Skip to content

Zenodotus should support (and respect) SRV records #139

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
choksi81 opened this issue Jun 2, 2014 · 0 comments
Open

Zenodotus should support (and respect) SRV records #139

choksi81 opened this issue Jun 2, 2014 · 0 comments
Assignees

Comments

@choksi81
Copy link
Contributor

choksi81 commented Jun 2, 2014

SRV Resource Records are a standardized way of discovering services through DNS (see RFC2782 for the specification). SRV gives clients a way to ask their DNS resolver for a service/transport protocol combination at some domain, and receive a domain name, port number, load balancing information etc. for this combination. Typical use cases include LDAP, the Session Initiating Protocol (SIP), and the !ZeroConf/Bonjour service discovery protocol. An example (from Wikipedia):

  • Client asks DNS for the SRV record of _sip._tcp.example.com
  • DNS tells it to go to bigbox.example.com. at TCP port 5060

Support for this, i.e. delivering answers when asked for an SRV resource record, should not be difficult to add to Zenodotus (or dnscommon.repy).

I also envision another use case where Zenodotus should respect and follow SRV RRs below its own domain name. Consider a DNS resolver running on a Seattle vessel. That resolver cannot listen on port 53 due to the limited port range available to vessels. Thus, a client that wants to use the vessel DNS needs to know the special port, and do the query using other means than gethostbyname_ex(), which basically requires port 53 in order to work. Accordingly, a vessel DNS will not work for browsers, and probably not work for most things not under the control of the researcher.

If on the other hand Zenodotus understands SRV records inside its own domain, it can look up the SRV record for DNS for the subdomain queried by the client, and then recurse to the vessel using the correct (high-numbered) port gathered thus to collect A/quad-A/etc. records as requested. This would open up quite some space for experimentation with load balancing, CDN stuff, etc.

@choksi81 choksi81 self-assigned this Jun 2, 2014
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant