

**環境**  
Vagrant: 2.1.1  
VirtualBox: 5.2.12  
ホスト: Windows10  
ゲスト: Ubuntu14.04

**現象が発生した要因**  
VM作成直後はこの現象は発生していなかった。apt-
get等でパッケージの追加等を色々行っていると、いつのまにか発生するようになった？別の仮想マシン(Ubuntu16.04)では同様の設定でも現象は発生していない。

**詳細**

`デフォルトゲートウェイの設定に失敗する`とは下記の症状を指します。

`route`コマンドでdefaultが表示されない。eth0がNAT, eth1がホストオンリーアダプタ(private_network),
eth2がブリッジアダプタ(public_network)です。

[code]

    vagrant@vagrant:~$ route
    カーネルIP経路テーブル
    受信先サイト    ゲートウェイ    ネットマスク   フラグ Metric Ref 使用数 インタフェース
    10.0.2.0        *               255.255.255.0   U     0      0        0 eth0
    172.28.128.0    *               255.255.255.0   U     0      0        0 eth1
    192.168.254.0   *               255.255.255.0   U     0      0        0 eth2
    
[/code]

本来期待する結果は下記の通りです。

[code]

    vagrant@vagrant:~$ route 
    カーネルIP経路テーブル 
    受信先サイト    ゲートウェイ    ネットマスク   フラグ Metric Ref 使用数 インタフェース
    default         10.0.2.2        0.0.0.0         UG    0      0        0 eth0
    10.0.2.0        *               255.255.255.0   U     0      0        0 eth0
    172.28.128.0    *               255.255.255.0   U     0      0        0 eth1
    192.168.254.0   *               255.255.255.0   U     0      0        0 eth2
    
[/code]

Vagrantfileでは下記のように設定しています。

[code]

    Vagrant.configure("2") do |config|
      config.vm.network "public_network", type: "dhcp"
    end
    
[/code]

起動後、手動でeth0を再起動させると、defaultが表示されるようになります。

[code]

    sudo ifdown eth0 && sudo ifup eth0
    vagrant@vagrant:~$ route 
    カーネルIP経路テーブル 
    受信先サイト    ゲートウェイ    ネットマスク   フラグ Metric Ref 使用数 インタフェース
    default         10.0.2.2        0.0.0.0         UG    0      0        0 eth0
    10.0.2.0        *               255.255.255.0   U     0      0        0 eth0
    172.28.128.0    *               255.255.255.0   U     0      0        0 eth1
    192.168.254.0   *               255.255.255.0   U     0      0        0 eth2
    
[/code]

`/etc/network/interfaces`のpost-
upの行をコメントアウトし、VirtualBoxから直接起動した場合もdefaultが表示されます。 (defaultがeth2になっていますが)

[code]

    #VAGRANT-BEGIN
    # The contents below are automatically generated by Vagrant. Do not modify.
    auto eth2
    iface eth2 inet dhcp
        # post-up ip route del default dev $IFACE || true
    #VAGRANT-END
    
    vagrant@vagrant:~$ route
    カーネルIP経路テーブル
    受信先サイト    ゲートウェイ    ネットマスク   フラグ Metric Ref 使用数 インタフェース
    default         192.168.254.1   0.0.0.0         UG    0      0        0 eth2
    10.0.2.0        *               255.255.255.0   U     0      0        0 eth0
    172.28.128.0    *               255.255.255.0   U     0      0        0 eth1
    192.168.254.0   *               255.255.255.0   U     0      0        0 eth2
    
[/code]

何か原因や、確認すべきポイントはわからないでしょうか？

**追記**  
今回はデフォルトゲートウェイはethNのどれでもよかったので、public_networkの設定を下記のようにすることで、eth2がデフォルトゲートウェイとして設定されるようになりました。

[code]

    Vagrant.configure("2") do |config|
      config.vm.network "public_network", type: "dhcp", use_dhcp_assigned_default_route: true
    end
    
[/code]

ただ、この質問で知りたいのは、なぜeth0が自動的にデフォルトゲートウェイとして設定されないのか、です。  
情報をお持ちの方は引き続きよろしくお願いします。

**@cubickさんのコメントを受けて追記**

下記の通り、public_networkを使用した場合だけ現象が発生します。

**成功**

  * NATのみ
  * NAT + private_network

**失敗**

  * NAT + public_network
  * NAT + private_network + public_network


CC BY-SA 4.0
2018-05-29T01:36:10.993
44343
2018-05-30T12:46:28.477
2018-05-30T12:46:28.477
17238
17238
question
ubuntu vagrant network virtualbox
Vagrantで起動したUbuntu14.04でpublic_networkを使用するとeth0がデフォルトゲートウェイの設定に失敗する