I'm running bind9 on a server with recursion on for my home IP to experiment with running my own resolver.
It is working quite well most of the time, but occasionally this command:
nslookup -querytype=SRV _xmpp-client._tcp.sette.ca
Will return:
Non-authoritative answer:
_xmpp-client._tcp.sette.CA service = 5 0 5222 singpolyma.net.
instead of the normal answer:
Non-authoritative answer:
_xmpp-client._tcp.sette.ca service = 5 0 5222 singpolyma.net.
This causes resolution with some of my client applications to fail. While DNS should be case-insensitive (I think?) and so maybe this is a bug in the applications I'm using, it still seems strange that occasionally my server would choose a different case to return. Google DNS and my ISP DNS never seem to do this, and most of the time neither does my server.
Has anyone seen something like this before? What could cause bind9 to return a different case than I used in the query?
Names in DNS are case insensitive, meaning that
_xmpp-client._tcp.sette.ca.
,_xmpp-client._tcp.sette.CA.
,_xMpP-cLiEnT._tCp.SeTtE.cA.
, etc are all considered equal, so it's not actually incorrect per se.One possible reason why this could occur (not clear from
nslookup
's limited output), is as a result of message compression, where some other name included in the response was in uppercase and its uppercaseCA
was re-used as part of your name.