mDNSResponder, used for all DNS queries in Mac OS X 10.6 Snow Leopard, has a strange behavior when it comes to query DNS records.
It will simultaneously ask for a A and a AAAA record when performing a DNS lookup but will be only using the first response and will reject any further responses with a “port unreachable”.


For example. You are using a dual stack client and want to browse to a dual stack website. The mDNSResponder will send a A and a AAAA request. The DNS server will respond to both queries but the client only uses the responds that it receives first. If for example the A record is received first you will be using a IPv4 connection even though you are dual stacked.


Stuart Cheshire gave a presentation on IPv6 adoption at the IETF 72 Technical Plenary. In that presentation he explains the motivation behind this double query.


Initially, from a end user perspective, it is a nice idea that could have its benefits, but if you look u bit further it has many downsides to it. Some are: Harder to debug on your network. DNS servers get twice as much queries. It will not work when your client is on a IPv6-only network and, even more troubling, if you only have a AAAA record the responds to the A record request will result in a NXDOMAIN and the client thinks the domain doesn’t exist.


So be aware of this behavior when working with MacOS X 10.6 (and perhaps other Apple products) and keep an eye on the bug report.