A couple had wandered up and were looking for the owner of the condo. I walked up and introduced myself. They asked if I had placed the condo up for sale yet.
“No, not yet,” I said. “I'm still in the process of getting everything out,” I said, motioning to some of the items still left, “and getting it into a saleable condition before putting it on the market.”
“Oh, so you are selling it?” said the wife.
“Because a friend of ours that also lives here is interested in buying it.”
“Yes, and he'll be willing to buy it as is and fix it up himself.”
Woo hoo! I thought. Yes! This will be over soon!
“So, can we have your phone number so we can give it to our friend?”
“Um … ” I still don't know the new phone number for The Facility in the Middle of Nowhere. “I don't know the new phone number yet. Do you have email?”
Woo hoo! “Okay,” I said. “Here's my email address … ”
email from the neighbors with the sales lead for Condo Conner. Woo hoo! Send a reply back to them with the phone number to the Facility in the Middle of Nowhere. Hopefully I'll get a call soon.
RFC-2782, which proposes some extentions to DNS 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 traffic on TCP 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:
conman.org. IN MX 10 tower.conman.org. IN MX 20 ophelia.kill9.org.
Can also be specified using the SRV records as:
_smtp._tcp.conman.org. IN SRV 10 0 25 tower.conman.org. IN SRV 20 0 25 ophelia.kill9.org.
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:
_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.
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!
Spring 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.