10

I have a centos linux running as a virtual machine in a Virtual Box on my Mac OS 10.8.2. The virtual machine has the IP address 172.17.33.2. I created an entry in /etc/hosts with

172.17.33.2 centos.dev

When I try to ping the virtual machine via

ping centos.dev

it takes about 30 seconds for the first ping, after that, everything works as expected:

meckbuck2:~ mimi$ ping -n centos.dev
PING centos.dev (172.17.33.2): 56 data bytes
64 bytes from 172.17.33.2: icmp_seq=0 ttl=64 time=0.521 ms
64 bytes from 172.17.33.2: icmp_seq=1 ttl=64 time=0.294 ms
64 bytes from 172.17.33.2: icmp_seq=2 ttl=64 time=0.274 ms

If I use ping 172.17.33.2 (no DNS resolution), everything is fast and the first ping starts within fractions of a second. So it seems as something is broken with the name resolution on my computer. Can anybody give me a hint how to solve this? It is a new MacBook Retina 15" which I set up from scratch less than a week ago.

I have also tried centos.localhost as a domain name - same problem here.

Once the domain is resolved and the IP is there, everything works as expected (ssh, smb, http...). Any hint is welcome!

Edit: I used dtruss to get a dump of the syscalls when I ping the server name. The ping gets stuck at the end of the trace. You can find it here: http://pastebin.com/JXgeHsBu

Edit 2: I followed the instructions on http://blog.root-of-all-evil.com/2012/07/how-to-bypass-os-x-lions-reverse-dns-lookup-order-to-resolve-slow-local-host-lookups/ to set up a local DNS server. Still the same issue.

tcpdump gives me the following output when I start a ping on the virtual machine:

01:16:27.668409 IP 192.168.6.101.62932 > 8.8.8.8.53: 26754+ A? www.isg-apple.com.akadns.net. (46)
01:16:27.668456 IP 192.168.6.101.20149 > 8.8.8.8.53: 41456+ AAAA? www.isg-apple.com.akadns.net. (46)
01:16:27.670650 IP 8.8.8.8.53 > 192.168.6.101.62932: 26754 3/8/0 CNAME www.apple.com.edgekey.net., CNAME e3191.c.akamaiedge.net., A 23.1.61.15 (275)
01:16:27.670932 IP 8.8.8.8.53 > 192.168.6.101.20149: 41456 2/1/0 CNAME www.apple.com.edgekey.net., CNAME e3191.c.akamaiedge.net. (176)
01:16:33.178960 IP 192.168.6.101.41429 > 8.8.8.8.53: 21942+ A? e3191.c.akamaiedge.net. (40)
01:16:33.180452 IP 8.8.8.8.53 > 192.168.6.101.41429: 21942 1/8/0 A 23.1.61.15 (200)
01:16:46.876547 IP 192.168.6.101.24354 > 8.8.8.8.53: 6871+ A? 1.courier-push-apple.com.akadns.net. (53)
01:16:46.877900 IP 8.8.8.8.53 > 192.168.6.101.24354: 6871 8/10/5 A 17.149.36.102, A 17.149.36.169, A 17.149.32.52, A 17.149.36.115, A 17.149.36.178, A 17.149.36.127, A 17.149.36.181, A 17.149.36.108 (494)
01:16:53.863153 IP 192.168.6.101.61304 > 8.8.8.8.53: 32328+ A? e3191.c.akamaiedge.net. (40)
01:16:53.884441 IP 8.8.8.8.53 > 192.168.6.101.61304: 32328 1/8/0 A 23.1.61.15 (200)

Edit 3: Here is my output of scutil --dns

meckbuck2:~ mimi$ scutil --dns
DNS configuration

resolver #1
  search domain[0] : hil-allhw.phl.wayport.net
  search domain[1] : phl.wayport.net
  nameserver[0] : 127.0.0.1
  reach    : Reachable,Local Address

resolver #2
  domain   : local
  options  : mdns
  timeout  : 5
  order    : 300000

resolver #3
  domain   : 254.169.in-addr.arpa
  options  : mdns
  timeout  : 5
  order    : 300200

resolver #4
  domain   : 8.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  order    : 300400

resolver #5
  domain   : 9.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  order    : 300600

resolver #6
  domain   : a.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  order    : 300800

resolver #7
  domain   : b.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  order    : 301000

DNS configuration (for scoped queries)

resolver #1
  search domain[0] : hil-allhw.phl.wayport.net
  search domain[1] : phl.wayport.net
  nameserver[0] : 127.0.0.1
  if_index : 4 (en0)
  flags    : Scoped

reach : Reachable,Local Address

2
  • The trace is interesting, but I suspect you might see more useful info if you try running tcpdump -n port 53. You'll probably need to add a -i interface name also.
    – Zoredache
    Dec 27, 2012 at 18:22
  • This might be helpful. Dec 27, 2012 at 19:04

3 Answers 3

8

I am on OSX 10.13.6 and experienced this issue for .local domains. The trick was to specify both, IPv4 and IPv6:

127.0.0.1    php.local
::1          php.local

Taken from Make .local domains NOT slow in macOS.

3
  • 1
    This worked on Mac OS Big Sur. 👍🏼 Apr 26, 2021 at 13:45
  • 1
    My solution is change from .local to .work, because specify IPv4 and IPv6 to one .local domain make other vhosts in local become useless.
    – Van Tho
    Aug 25, 2021 at 6:50
  • You save my day. It works like a charm on Monterey!
    – odiszapc
    Jul 5, 2022 at 4:30
0

Might be some program is trying to update. I would guess you have already looked at setting the the Domain Name Server to something like Google DNS. There is a freeware for Apple that is called NameBench, which might provide more data.

0

In my case, resolve of a locally defined name myserver.local was slow and was fixed by the following modification -

10.0.0.5    myserver.local alias.local               # original config

changed to (added ServerName and moved myserver.local to end of list) -

10.0.0.5    ServerName alias.local myserver.local    # altered config

Fixed the issue. Now dscacheutil -q host -a name myserver.local was instant.

The reason I thought of this, was because the above dscacheutil output for another host printed -

name: localhost
alias: mypc.local 
ip_address: 10.0.0.1

so the theory was that the first item should be the name of the host, no idea if that's really the case, but it solved the issue in my case.

You must log in to answer this question.