36416


## 環境構成

ノートPC

ホスト: Windows 10  
ゲスト: Ubuntu  
仮想マシン: VirtualBox + Vagrant

## 起きていること

ノートパソコンの上で、 VirtualBox + Vagrant で ubuntu
を構成しています。ノートPCなので、移動のタイミングなどで電源をつけっぱなしにしてノートPCを閉じて、移動するということをよく行います。

これを行っていくと、気づいたら、問題なく動いていた仮想マシンから、ホスト名の解決ができなくなっている場合があります。具体的には:

[code]

    curl www.google.com        # => unknown host 
    curl ホストで調べたIP直指定  # => 正しく取得できる
    
[/code]

グーグルに限らず、あらゆるホスト名の解決ができなくなります。一方で、ホスト側では問題なくホスト名でもって WEB の閲覧や nslookup
が実行できています。

* * *

これが起きた時の対処方法は分かっていて、 `vagrant reload`
でもって仮想マシンを再起動すれば治るのですが、疑問に思っているのが、どうして、これがそもそも発生しているのだろうか、また、もうちょっと楽な直し方はないのか、ということです。(コンテナ内で完結すれば、楽です。)

## 質問

一体どうして、仮想マシンのみで、ホスト名が解決できなくなっているのでしょうか。再起動以外で治す方法はありますでしょうか。


CC BY-SA 3.0
2017-07-15T15:59:19.243
36394
2017-08-07T08:04:25.890
754
question
vagrant virtualbox
PCをスリープさせると、 vagrant からホスト名の解決ができなくなる


ubuntuで指定しているDNSサーバが参照できなくなっているように見受けます。  
例えば、`/etc/resolv.conf`の`nameserver`にパブリックDNSサーバ(`8.8.8.8`(Google))を指定すると、事象解消しませんか?

* * *

### OP 追記

デフォルトの `/etc/resolv.conf` は、

[code]

    nameserver 10.0.2.3
    
[/code]

になっていました。少し調べてみたところ、これは virtualBox の NAT エンジンが用意する DNS
サーバーの様子です。なぜこれが突如動作しなくなるのかは追究できていないですが。。

`8.8.8.8` にしたところ、host 名を解決できるようになりました。


CC BY-SA 3.0
2017-07-16T09:47:43.677
36416
2017-08-07T08:04:25.890
2017-08-07T08:04:25.890
754
20098
36394
answer