ゲストOSのアプリがものすごく遅い。(数倍以上の遅さかもっとかも)
環境
- iMac(OSX 10.9.4, Marvericks)
- VirtualBox(4.3.12)
- ゲストOSは、CentOS6.5(64bit, NAT接続)
- アプリはネットワークを介してごにょごにょする普通のアプリ
症状
- "tcpdump -n port 53" を見ていると5秒待ち(タイムアウト)になっているのが分かる。
出力例(先頭のタイムスタンプに注目)
11:01:04.352682 IP 10.0.2.15.44697 > 10.247.XX.20.domain: 24278+ A? xxx.co.jp. (39)
11:01:04.352831 IP 10.0.2.15.44697 > 10.247.XX.20.domain: 56006+ AAAA? xxx.co.jp. (39)
11:01:09.356909 IP 10.0.2.15.44862 > 10.247.XX.21.domain: 24278+ A? xxx.co.jp. (39)
11:01:09.357024 IP 10.0.2.15.44862 > 10.247.XX.21.domain: 56006+ AAAA? xxx.co.jp. (39)
11:01:09.357783 IP 10.247.XX.21.domain > 10.0.2.15.44862: 56006* 0/1/0 (87)
11:01:09.357790 IP 10.247.XX.21.domain > 10.0.2.15.44862: 24278* 1/2/2 A 10.247.XX.36 (126)
11:01:09.466692 IP 10.0.2.15.44552 > 10.247.XX.20.domain: 62848+ PTR? 36.XX.247.10.in-addr.arpa. (43)
11:01:14.472534 IP 10.0.2.15.59215 > 10.247.XX.21.domain: 62848+ PTR? 36.XX.247.10.in-addr.arpa. (43)
11:01:14.473590 IP 10.247.XX.21.domain > 10.0.2.15.59215: 62848* 1/2/2 PTR xxx.co.jp. (149)
11:01:14.473775 IP 10.0.2.15.33606 > 10.247.XX.20.domain: 48864+ A? xxx.co.jp. (39)
11:01:19.479448 IP 10.0.2.15.43016 > 10.247.XX.21.domain: 48864+ A? xxx.co.jp. (39)
11:01:19.480513 IP 10.247.XX.21.domain > 10.0.2.15.43016: 48864* 1/2/2 A 10.247.XX.36 (126)
11:01:19.480942 IP 10.0.2.15.35673 > 10.247.XX.20.domain: 17890+ A? xxx.co.jp. (39)
11:01:19.480945 ・・・・・
- ssh を実行すると、接続(プロンプトがでる)までに数十秒待たされる。このとき、strace ssh hogehoge とかやると5秒待ちになっているシステムコールが分かる。
- pingだと待ちが発生しなかったりとか、実行するコマンドによって発生状況は異なる。
回避策
$ VBoxManage modifyvm "VMNAME" --natdnspassdomain1 off --natdnshostresolver1 on
VirtualBox の NATエンジンが関係していると思われる。
詳しい人以外は、設定ファイル(.vbox)を直接編集せず、この上のVBoxManageコマンドを使うのが良いと思います。
やってみたこと
- ブリッジ接続(固定IP)にすると発生しない。(NATが関係している)
- NAT接続のままで使いたい場合は、「VBoxManage modifyvm "VMNAME" --natdnspassdomain1 off --natdnshostresolver1 on」
- NATでFirewall越しのDNSタイムアウトの問題の解決のためのresolv.conf(single-request-reopen)では、解消しない。(別問題と思われる)
- IPv6 に関係する問題らしいので、IPv6 を止めてみたが、解決しない。