Building simplicidade.org: notes, projects, and occasional rants

SRV records and ADSL routers

The last 2 ADSL routers I bought (the most recent 3 months ago) lack support of SRV DNS records.

When I get my IP address via DHCP, the router also sets itself as my DNS server. But if I use it, dig srv _xmpp-client._tcp.simplicidade.org gives me zero answers.

This, as you might imagine, sucks big time. This is a D-Link router bought in 2007, and basic SRV lookups are still missing in action.

Two applications I use on a regular basis have problems with this: XMPP clients and the Mac OS X 10.4.x version of ssh command line client.

Both of them use SRV lookups, and while ssh just becomes slower to connect, for XMPP clients this has a devastating effect because all of my accounts only have SRV records.

I know that you can use also fallback to a A record, but if you have out-sourced your XMPP server to someone like Google Apps for Domains, or if you use different servers for web and XMPP, it might not be as easy. There is also XEP-0156: Discovering Alternative XMPP Connection Methods but the business rules section (in particular rule 2) prevents us from using TXT records to provide the same information that is already in the SRV records.

The solution is to use a decent router, or upgrade to a decent firmware if available.

But in the meantime, this sucks.

Update: it's not a SMC router, but a DLink router, DSL-524T. Anyway, the firmware is the latest one available at my local support site, but the http://www.dlink.co.uk/ has a newer firmware, 3.00B01T02.UK-A.20060621. I'll install that one. A good thing is that this router supports OpenWRT, another option.

Update 2: all firmwares I could find for the D-Link would fail the upgrade process, so I gave up on any official firmware. Next step: OpenWRT.

I had a SpeedTouch 580 around (as a backup for the 510 I use at the office). The default firmware, 4.2.7, had the same problem with SRV lookups, but a quick update to 4.3.6 solved the problem and now I have SRV lookups again, yeah!