LoginSignup
2
3

More than 5 years have passed since last update.

ホストOSでのVPN接続時に割り当てられたDNSを,NAT接続されたVirtualBox上のゲストOSから使用する方法

Posted at

結論

# natdnsproxy1は各自の環境に合わせて番号を変えること
$ VBoxManager modifyvm $vm_name --natdnsproxy1 on

以下の設定だと,docker runのたびにネットワークの接続が切れる場合があるようなので使わないこと(原因不明).

# natdnshostresolver1は各自の環境に合わせて番号を変えること
$ VBoxManager modifyvm $vm_name --natdnshostresolver1 on

単にこうやったらうまくいったというだけの話で,問題の原因も不明だし,発生した現象を詳細に解析したわけでもないので,本当に正しい方法なのかは不明..

事の発端

ゲストOS上でVPN接続先ネットワーク内のサーバー名をnslookupしたところ,ゲストOS起動直後としばらく経過した後で返ってくるIPアドレスが異なるという現象に遭遇した.

原因は分からないが,何らかの理由でDNSの検索順が変わってしまう,もしくはDNSサーバーの設定が変わってしまうのだろうと推測.そこで,ホストOS(Windows 10)でもnslookupを実行してみた.結果,返ってくるIPアドレスは変化しないことがわかった.

どうやらゲストOSからの名前解決のみおかしくなっているようなので,ホストOSのリゾルバーを使用するようにしてみた.

$ VBoxManager modifyvm $vm_name --natdnshostresolver1 on

これでホストOSと同じ名前解決手順になるはず.

しばらく使っていると,Googleスプレッドシートが編集できなくなった.どうやら接続が切れているようだ.しばらく待つと回復する.

現象を調べてみたことろ,どうやらdocker run(正確にはdocker-compose run --rmだが,同じことが起こるだろう)が終了したときに接続が切れることがあるように見える(docker engineは同じゲストOS上で動かしている).ちゃんと調べればわかるのだろうが,コンテナとの通信のためにdocker engineはネットワークをいじっているようだ.それが影響しているのかもしれない.

そこでホストOSのリゾルバー使用を無効にし,

$ VBoxManager modifyvm $vm_name --natdnsproxy1 on

としてみたところ,接続が切れなくなった.

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3