I've had this problem on a G4 PowerMac running Panther, and it still had it after a Tiger upgrade. I just replaced it with a Core Duo MacMini, 10.4.7, same problem of slow DNS lookups (i.e., slow initial start to loading a web page, then it goes quickly). Windows machines on the same subnet have no such problem. I've tried the various suggestions on various forums, none of which worked. I tried:
- turn off IPv6 (no help)
- directly enter my ISPs DNS servers (no help)
- manually configure both IP and DNS (no help, went back to DHCP)
- swear at the computer (a little help, mentally)
After some more reading, I tried resolving some addresses using the host command from the Terminal:
host -v www.apple.com 24.34.240.9
where the IP address is one of the DNS servers for my ISP (Comcast). I got a no server found message! I then tried the second DNS server in the Comcast list (found from my router), also no server found. Tried the third one in Comcast's list of DNS servers, and it worked. Entered it in System Preferences -> Network as a DNS server, and now web browsing is zippy! I verified that the two DNS servers that MacOS couldn't see are also down as far as Windows was concerned (using the nslookup command in windows).
What this tells me is that the OS X algorithm for handling unreachable or slow DNS servers is different from that in Windows. Maybe Windows remembers a bad experience with a DNS server and uses ones that it has success with, while OS X just keeps trying them in order, slowing timing them out until it finds one that works?
This could also explain many of the puzzling symptoms people have been seeing (things work some times, other times not; some people have luck specifying the DNS server manually, others don't). It all depends on what DNS servers got distributed to the Mac via DHCP, and how far down the list you have to go to find one that is responsive.
Anyone reading this forum with technical knowledge of both UNIX and Windows DNS lookup implementations? Is there some way to tweak in MacOS to make it perform more like Windows in this situation (like, maybe shortening the DNS server failure timeout)?