I ran the queries directly against Qwest's nameservers... so the problem isn't in the modems at all, it's in certain providers' fubared nameservers:
jcomeau@intrepid ~/www/www/blog $ nslookup test.jcomeau.com 206.80.192.1 Server: phx-dns-01.inet.qwest.net Address: 206.80.192.1*** phx-dns-01.inet.qwest.net can't find test.jcomeau.com: Server failed
jcomeau@intrepid ~/www/www/blog $ nslookup www.jcomeau.com 206.80.192.1 Server: phx-dns-01.inet.qwest.net Address: 206.80.192.1
Non-authoritative answer: Name: www.jcomeau.com Address: 207.210.74.124
OK, now change the CNAME:
jcomeau@intrepid ~/www/www/blog $ nslookup test.jcomeau.com 206.80.192.1 Server: phx-dns-01.inet.qwest.net Address: 206.80.192.1Non-authoritative answer: Name: cosf.unternet.net Address: 207.210.74.124 Aliases: test.jcomeau.com
Then I changed it back, but unlike the DSL modem, it cached this latest record as the CNAME that it is, and still gives the correct result. I've got to wait 8 hours till the record expires.
So it's a combination of bugs. Qwest has buggy nameservers that can't resolve a recursive query x.y.z CNAME y.z, and Actiontec DSL modems cache CNAME records as A records when the CNAME fails to resolve. Still not sure I understand it, but it's getting clearer.
last updated 2013-01-10 20:47:25. served from tektonic.jcomeau.com