So over the past few days, I’ve been trying to hack together a setup at my home for this website using an old Thinkpad T41 on my cable modem connection (yea…I didn’t think I’d need a ton of bandwidth…yet!). Of course port 80 and 443 are blocked by default since Optimum Online doesn’t want us hosting servers on a non-business account, so I was running this on port 85 and 886 for HTTP and HTTPS respectively. Simple right? Yes, up until you try to make DNS work all nice and pretty (a.k.a. no port numbers needed in the address).
An absolutely perfect solution to this dilemma would have been DNS SRV entries. Or they would have been if any browser in existence supported them. I can’t really fathom why they aren’t supported either.
DNS SRV entries are basically entries that map a service to a destination host and port, which is an elegant solution to a problem presented by an outdated paradigm. Our old method of connectivity revolves around sockets which are a combination of an IP Address and a port. In this day, who really cares what port a service like HTTP is running on? If we can recognize that they’re looking for HTTP, then we can simply do a DNS SRV lookup to find that for the domain dch-it.com, an HTTP server exists over at randomdns.com at port 87 or whatever I had set it up as. The user will never know that though, all he/she will see is http://dch-it.com as it should be.
It’s also a very cost efficient (read: FREE) way of load balancing servers. You can set a priority and weight for each individual SRV entry. Let’s ignore priority for the moment since I’m sure you can figure what that does (if you can’t, please reference dictionary.com). Let’s say we have two HTTP SRV entries with equal priority, and we set one of their weights to be 70 and the other 30. That means that 70% of DNS queries will be directed to server A, and 30% to server B. Now isn’t that much easier than setting up any kind of funky Load Balancing Hardware or a software based solution? The only downside is that it doesn’t take the current load of the server into consideration, however most small companies really don’t have to worry about things like that unless they are heavy into the web business.
So how about it Microsoft or Mozilla? Who’s going to be the big man and step up first?