* * * * *

                           Now this is interesting

When I came across RFC-2782 [1], which proposes some extentions to DNS
(Domain Name Service) I said the heck with it and added the experimental
records to my zone files for conman.org.

The idea itself is interesting. For instance, the MX record allows one to
specify several hosts in a priority scheme that can handle SMTP (Simple Mail
Transfer Protocol) traffic on TCP (Transmission Control Protocol) port 25.
The experiemental records proposed in RFC-2782, SRV extends that to any
service on any port. So for instance, the setup I have for my own domain
using MX records:

-----[ DNS ]-----
conman.org.     IN      MX      10 tower.conman.org.
               IN      MX      20 ophelia.kill9.org.
-----[ END OF LINE ]-----

Can also be specified using the SRV records as:

-----[ DNS ]-----
_smtp._tcp.conman.org.  IN      SRV     10 0 25 tower.conman.org.
                       IN      SRV     20 0 25 ophelia.kill9.org.
-----[ END OF LINE ]-----

The first field is a priority field that works the same was as the MX
priority field. The second field is a weight field, which allows one to
choose the order among hosts at the same priority level. The third field is I
think the most interesting one—the port number. The MX record always defaults
to TCP port 25, but with the SRV record type, you can specify other ports!
And any service can be specified. So you could do something like:

-----[ DNS ]-----
_http._tcp.example.com. IN      SRV     10 1 80   www1.example.com.
                       IN      SRV     10 1 80   www2.example.com.
                       IN      SRV     10 1 80   www3.example.com.
                       IN      SRV     10 1 80   www4.example.com.
                       IN      SRV     10 2 80   www5.example.com.
                       IN      SRV     10 2 80   www6.example.com.
                       IN      SRV     20 1 8080 backup1.example.com.
                       IN      SRV     20 1 8080 backup2.example.com.
                       IN      SRV     30 1 8008 backup3.example.com.
                       IN      SRV     30 1 1234 backup4.example.com.
-----[ END OF LINE ]-----

So that you can spread the load around to several webservers (of which www5
and www6 are not to be hit as hard), and if none of the default ones are
running, hit the backup servers where the webserver is running on a non-
standard port.

Of course software that makes DNS quiries has to be rewritten to take
advantage of this, so it will be some time before this is in common use.

Now, the real interesting part is the company that is actively using this—
Microsoft! [2]

Spring [3] and I were visiting Russ, a friend who runs a web hosting company
out of his house and uses mostly Microsoft servers. He was complaining about
running DNS under Windows 2000 as it uses all these wierd records. When he
started describing them I knew exactly what records he was talking about and
I think Microsoft is using them as a form of resource discovery.

And as I found out later, Kerberos authentication services use SRV records as
well.

[1] http://www.cis.ohio-state.edu/cgi-bin/rfc/rfc2782.html
[2] http://www.microsoft.com/
[3] http://www.springdew.com/

Email author at [email protected]