Giter Club home page Giter Club logo

Comments (19)

abh avatar abh commented on August 15, 2024

Hi Mark,

They are not. It's not a lot of code to add it, it's mostly a matter of deciding the configuration format.

For example for MX records we could do (inside a particular name) similar to how A/AAAA records work:

"mx": [ [ "mail.example.org", 20 ], [ "mail2.example.org", 10 ] ]

though are 10 and 20 "priorities" (as in regular MX records) or weights as in the A/AAAA records. The latter would be more useful if you are using geodns because you want to manage the "smarts" rather than letting the clients figure out what to do. The former (priorities) would be better if you are using geodns for the smarts for some records, but just need to serve some plain old ones here.

So anyway, I've been experimenting with that, but have come to the conclusion (I think, feedback would be welcome!) that the more future proof and sane variant would be to do:

"mx": [ { "data": "mail.example.org", "priority": 10, "weight": 500 }, { ... } ]

which would be more extensible, but feels a bit verbose. I think the valuable part of making it more verbose/explicit is that different record types more easily can fit into this without new users having to learn whatever crazy quirks we come up with for each type.

As a sidenote, it'd be a good idea to have it more consistently at least warn when it sees data it doesn't know what to do with.

from geodns.

Doridian avatar Doridian commented on August 15, 2024

That format with the object style would infact be very nice and allow for stuff like SRV records to be speicifed better ("protocol", "port", "host" fields etc)

from geodns.

abh avatar abh commented on August 15, 2024

I'll add some documentation and maybe a few more record types in the next couple of days. For now you can see the format for MX records in dns/example.com.json.

from geodns.

scyclops avatar scyclops commented on August 15, 2024

I'd love to see support for TXT records as well.

from geodns.

abh avatar abh commented on August 15, 2024

@scyclops 'txt' records are supported now. πŸ˜„

I guess I should do SPF and SRV too just so I can close the ticket here since those were the others mentioned.

from geodns.

cdown avatar cdown commented on August 15, 2024

Just echoing my desire for SPF records, this is a necessity for me before I can start using GeoDNS as part of our company infrastructure.

Thanks for the great work!

from geodns.

abh avatar abh commented on August 15, 2024

@cdown do you really need SPF record type? I thought "SPF records" were still just TXT records in practice... No?

from geodns.

maxclark avatar maxclark commented on August 15, 2024

SPF records are TXT records:

http://www.ietf.org/rfc/rfc4408.txt

On Mon, Oct 7, 2013 at 8:03 AM, Ask BjΓΈrn Hansen
[email protected]:

@cdown https://github.com/cdown do you really need SPF record type? I
thought "SPF records" were still just TXT records in practice... No?

β€”
Reply to this email directly or view it on GitHubhttps://github.com//issues/20#issuecomment-25815876
.

from geodns.

cdown avatar cdown commented on August 15, 2024

@abh @maxclark They share the same format, but that doesn't make them identical (namely, the semantics of being an SPF record matter as well as the underlying format). From the same RFC:

3.1.1.  DNS Resource Record Types

   This document defines a new DNS RR of type SPF, code 99.  The format
   of this type is identical to the TXT RR [RFC1035].  For either type,
   the character content of the record is encoded as [US-ASCII].

   It is recognized that the current practice (using a TXT record) is
   not optimal, but it is necessary because there are a number of DNS
   server and resolver implementations in common use that cannot handle
   the new RR type.  The two-record-type scheme provides a forward path
   to the better solution of using an RR type reserved for this purpose.

   An SPF-compliant domain name SHOULD have SPF records of both RR
   types.  A compliant domain name MUST have a record of at least one
   type.  If a domain has records of both types, they MUST have
   identical content.  For example, instead of publishing just one
   record as in Section 3.1 above, it is better to publish:

      example.com. IN TXT "v=spf1 +mx a:colo.example.com/28 -all"
      example.com. IN SPF "v=spf1 +mx a:colo.example.com/28 -all"

Since the presence of SPF records in addition to TXT records is marked as "SHOULD" by the RFC, I think this is worthy of implementation, especially since the goal is to continue to transition towards SPF records instead of TXT records for this purpose.

from geodns.

maxclark avatar maxclark commented on August 15, 2024

Chris,

Have you tried configuring a TXT record yet? It might just do what you want.

-Max

~ mclark$ host -t spf google.com
google.com has no SPF record
~ mclark$ host -t txt google.com
google.com descriptive text "v=spf1 include:_spf.google.com ip4:
216.73.93.70/31 ip4:216.73.93.72/31 ~all"

On Mon, Oct 7, 2013 at 9:26 PM, Chris Down [email protected] wrote:

Anything in the following post is "please correct me if I'm wrong"
territory. :-)

@abh https://github.com/abh As far as I know, SPF is a separate RR type
from TXT, whilst sharing the same attributes.

@maxclark https://github.com/maxclark They share the same attributes,
but as far as I am aware, they're not interchangeable RR types. From that
RFC:

3.1.1. DNS Resource Record Types

This document defines a new DNS RR of type SPF, code 99. The format
of this type is identical to the TXT RR [RFC1035]. For either type,
the character content of the record is encoded as [US-ASCII].

It is recognized that the current practice (using a TXT record) is
not optimal, but it is necessary because there are a number of DNS
server and resolver implementations in common use that cannot handle
the new RR type. The two-record-type scheme provides a forward path
to the better solution of using an RR type reserved for this purpose.

An SPF-compliant domain name SHOULD have SPF records of both RR
types. A compliant domain name MUST have a record of at least one
type. If a domain has records of both types, they MUST have
identical content. For example, instead of publishing just one
record as in Section 3.1 above, it is better to publish:

  example.com. IN TXT "v=spf1 +mx a:colo.example.com/28 -all"
  example.com. IN SPF "v=spf1 +mx a:colo.example.com/28 -all"

I require the SPF records before I can use this because we have a
particularly virulent piece of "enterprise" software that refuses to
operate unless I have SPF records.

β€”
Reply to this email directly or view it on GitHubhttps://github.com//issues/20#issuecomment-25864176
.

from geodns.

cdown avatar cdown commented on August 15, 2024

It doesn't, sadly.

My use case is irrelevant though -- my main argument is that the RFC very clearly wants people to use SPF records, not TXT records.

from geodns.

maxclark avatar maxclark commented on August 15, 2024

The RFC wants you to use both if the DNS server implements the SPF record type. IIRC bind is the only DNS server that implements SPF at this time while everything else uses txt.Β 

β€”
Sent from Mailbox for iPad

On Tue, Oct 8, 2013 at 2:04 AM, Chris Down [email protected]
wrote:

It doesn't, sadly.

My use case is irrelevant though -- my main argument is that the RFC very clearly wants people to use SPF records, not TXT records.

Reply to this email directly or view it on GitHub:
#20 (comment)

from geodns.

cdown avatar cdown commented on August 15, 2024

I know that djbdns and nsd (two other extremely popular servers) implement it, it's definitely not just bind.

Even if they didn't, I don't see how that's a good argument to ignore the IETF's clearly desired transition to SPF...

from geodns.

abh avatar abh commented on August 15, 2024

Do you know of any non-hobby/small-business domains that use SPF (type 99) records? I tried google.com, yahoo.com, gmail.com and a bunch others and didn't find any.

The current draft for the next version of the SPF RFC says to just use TXT records, I think because that's what everybody does: http://tools.ietf.org/html/draft-ietf-spfbis-4408bis-21#section-3.1

That being said, patches welcome – I'm just not going to do it before I've done other work that's more useful (to me). :-)

from geodns.

cdown avatar cdown commented on August 15, 2024

github.com uses them, off the top of my head.

I will send a patch if I can understand the code well enough and have the time, I guess. Unfortunately this makes geodns unusable for me right now.

Thanks anyway. :-)

from geodns.

abh avatar abh commented on August 15, 2024

You might just need to add a few lines to zones.go to have it know how to add SPF records into the zone.

from geodns.

afsheenb avatar afsheenb commented on August 15, 2024

I've taken an initial stab at adding support for SPF records (basically making a new TXT record that is not a TXT record, which meets the RFC requirements if I'm reading them right. abh and cdown, let me know if this is welcome / if I'm on the right track, I just wanted to dip my toe in and see how difficult this would be.

from geodns.

cdown avatar cdown commented on August 15, 2024

In the meantime my broken software actually allowed using TXT records :-D

Having SPF records in here while non-draft RFCs promote them is a good idea, though, in my opinion.

from geodns.

afsheenb avatar afsheenb commented on August 15, 2024

All of the records mentioned in the inital issue (MX, SPF, TXT and SRV) are now supported by geodns. I believe it's safe to close this.

from geodns.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.