Vagrantでprivate_networkが設定できないときの対応

Tag:

vagrantを利用して、CentOS7.2のゲストマシンを立ち上げた際、private_networkの設定が上手くいきませんでした。「vagrant ssh」でログインできるのですが、ホストマシンからpingが通らないといった状態です。ここでは、その時にとった対応について書いています。

private_networkが設定されない

Vagrantfileに以下のように記述。

Vagrant.configure(2) do |config|
  config.vm.box = "bento/centos-7.2"
 
  config.vm.provider "virtualbox" do |vm|
    vm.memory = 1024
  end
 
  config.vm.define :app do |server|
    server.vm.hostname = "app"
    server.vm.network "private_network", ip: "192.168.33.20"
  end
end

「vagrant up」で立ち上げ、「vagrant ssh」でログインまでできました。

しかし、ホストマシンからpingが通らない、、、

$ping 192.168.33.20
PING 192.168.33.20 (192.168.33.20): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
Request timeout for icmp_seq 2
Request timeout for icmp_seq 3

ゲストマシンにログインしてネットワークを調べてみます。

$vagrant ssh
[vagrant@app ~]$ ifconfig
enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.2.15  netmask 255.255.255.0  broadcast 10.0.2.255
        inet6 fe80::a00:27ff:fe5a:e9e7  prefixlen 64  scopeid 0x20<link>
        ether 08:00:27:5a:e9:e7  txqueuelen 1000  (Ethernet)
        RX packets 991  bytes 110852 (108.2 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 709  bytes 101376 (99.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 0  (Local Loopback)
        RX packets 8  bytes 656 (656.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 8  bytes 656 (656.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

「192.168.33.20」の情報がない、、、

対応

まず、Vagrantfileを以下のように修正。

Vagrant.configure(2) do |config|
  config.vm.box = "bento/centos-7.2"
 
  config.vm.provider "virtualbox" do |vm|
    vm.memory = 1024
  end
 
  config.vm.define :app do |server|
    server.vm.hostname = "app"
    server.vm.network "private_network", ip: "192.168.33.20", auto_config:false
  end
end

10行目で「auto_config:false」を追記しています。これでVagrantが自動でネットワークを設定しなくなります。

再読み込みします。

vagrant reload

ゲストマシンにログインしてネットワークを確認します。

$vagrant ssh
[vagrant@app ~]$ ifconfig
enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.2.15  netmask 255.255.255.0  broadcast 10.0.2.255
        inet6 fe80::a00:27ff:fe5a:e9e7  prefixlen 64  scopeid 0x20<link>
        ether 08:00:27:5a:e9:e7  txqueuelen 1000  (Ethernet)
        RX packets 762  bytes 87895 (85.8 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 569  bytes 81799 (79.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

enp0s8: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether 08:00:27:81:55:f0  txqueuelen 1000  (Ethernet)
        RX packets 4  bytes 1530 (1.4 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 9  bytes 1246 (1.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 0  (Local Loopback)
        RX packets 8  bytes 656 (656.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 8  bytes 656 (656.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

デバイスの状態を確認します。

[vagrant@app ~]$ nmcli device
デバイス  タイプ    状態      接続   
enp0s3    ethernet  接続済み  enp0s3 
enp0s8    ethernet  切断済み  --     
lo        loopback  管理無し  --     

enp0s8が切断済みとなっていたので、デバイスの接続を行います。

[vagrant@app ~]$ sudo nmcli device connect enp0s8
Device 'enp0s8' successfully activated with '521fb524-3fed-4657-be04-b8447649119f'.
[vagrant@app ~]$ 
[vagrant@app ~]$ nmcli device
デバイス  タイプ    状態      接続   
enp0s3    ethernet  接続済み  enp0s3 
enp0s8    ethernet  接続済み  enp0s8 
lo        loopback  管理無し  --   

接続プロファイルの詳細を確認します。


[vagrant@app ~]$ nmcli con show enp0s8
connection.id:                          enp0s8
connection.uuid:                        521fb524-3fed-4657-be04-b8447649119f
connection.interface-name:              enp0s8
connection.type:                        802-3-ethernet
connection.autoconnect:                 yes
connection.autoconnect-priority:        0
connection.timestamp:                   1481809396
connection.read-only:                   no
connection.permissions:                 
connection.zone:                        --
connection.master:                      --
connection.slave-type:                  --
connection.autoconnect-slaves:          -1 (default)
connection.secondaries:                 
connection.gateway-ping-timeout:        0
connection.metered:                     不明
802-3-ethernet.port:                    --
802-3-ethernet.speed:                   0
802-3-ethernet.duplex:                  --
802-3-ethernet.auto-negotiate:          yes
802-3-ethernet.mac-address:             08:00:27:81:55:F0
802-3-ethernet.cloned-mac-address:      --
802-3-ethernet.mac-address-blacklist:   
802-3-ethernet.mtu:                     自動
802-3-ethernet.s390-subchannels:        
802-3-ethernet.s390-nettype:            --
802-3-ethernet.s390-options:            
802-3-ethernet.wake-on-lan:             1 (default)
802-3-ethernet.wake-on-lan-password:    --
ipv4.method:                            auto
ipv4.dns:                               
ipv4.dns-search:                        
ipv4.addresses:                         
ipv4.gateway:                           --
ipv4.routes:                            
ipv4.route-metric:                      -1
ipv4.ignore-auto-routes:                no
ipv4.ignore-auto-dns:                   no
ipv4.dhcp-client-id:                    --
ipv4.dhcp-send-hostname:                yes
ipv4.dhcp-hostname:                     --
ipv4.never-default:                     no
ipv4.may-fail:                          yes
ipv6.method:                            auto
ipv6.dns:                               
ipv6.dns-search:                        
ipv6.addresses:                         
ipv6.gateway:                           --
ipv6.routes:                            
ipv6.route-metric:                      -1
ipv6.ignore-auto-routes:                no
ipv6.ignore-auto-dns:                   no
ipv6.never-default:                     no
ipv6.may-fail:                          yes
ipv6.ip6-privacy:                       -1 (不明)
ipv6.dhcp-send-hostname:                yes
ipv6.dhcp-hostname:                     --
GENERAL.名前:                           enp0s8
GENERAL.UUID:                           521fb524-3fed-4657-be04-b8447649119f
GENERAL.デバイス:                       enp0s8
GENERAL.状態:                           アクティベート済み
GENERAL.デフォルト:                     いいえ
GENERAL.デフォルト6:                    いいえ
GENERAL.VPN:                            いいえ
GENERAL.ゾーン:                         --
GENERAL.DBUS パス:                      /org/freedesktop/NetworkManager/ActiveConnection/1
GENERAL.CON パス:                       /org/freedesktop/NetworkManager/Settings/1
GENERAL.スペックオブジェクト:           /
GENERAL.マスターパス:                   --
IP4.アドレス[1]:                        192.168.56.101/24
IP4.ゲートウェイ:                       
DHCP4.オプション[1]:                    requested_domain_search = 1
DHCP4.オプション[2]:                    requested_broadcast_address = 1
DHCP4.オプション[3]:                    requested_time_offset = 1
DHCP4.オプション[4]:                    requested_rfc3442_classless_static_routes = 1
DHCP4.オプション[5]:                    requested_classless_static_routes = 1
DHCP4.オプション[6]:                    requested_domain_name = 1
DHCP4.オプション[7]:                    expiry = 1481810517
DHCP4.オプション[8]:                    requested_wpad = 1
DHCP4.オプション[9]:                    next_server = 0.0.0.0
DHCP4.オプション[10]:                   broadcast_address = 192.168.56.255
DHCP4.オプション[11]:                   dhcp_message_type = 5
DHCP4.オプション[12]:                   requested_interface_mtu = 1
DHCP4.オプション[13]:                   requested_subnet_mask = 1
DHCP4.オプション[14]:                   dhcp_lease_time = 1200
DHCP4.オプション[15]:                   ip_address = 192.168.56.101
DHCP4.オプション[16]:                   subnet_mask = 255.255.255.0
DHCP4.オプション[17]:                   requested_static_routes = 1
DHCP4.オプション[18]:                   requested_nis_servers = 1
DHCP4.オプション[19]:                   requested_ntp_servers = 1
DHCP4.オプション[20]:                   requested_domain_name_servers = 1
DHCP4.オプション[21]:                   requested_ms_classless_static_routes = 1
DHCP4.オプション[22]:                   requested_routers = 1
DHCP4.オプション[23]:                   requested_nis_domain = 1
DHCP4.オプション[24]:                   network_number = 192.168.56.0
DHCP4.オプション[25]:                   requested_host_name = 1
DHCP4.オプション[26]:                   dhcp_server_identifier = 192.168.56.100
IP6.アドレス[1]:                        fe80::a00:27ff:fe81:55f0/64
IP6.ゲートウェイ:                       

「192.168.33.20」を固定IPにするため以下コマンドを実行します。

[vagrant@app ~]$ sudo nmcli con mod enp0s8 ipv4.addresses "192.168.33.20/24"
[vagrant@app ~]$ sudo nmcli con mod enp0s8 ipv4.method "manual"

デバイスを再起動します。

[vagrant@app ~]$ sudo nmcli device disconnect enp0s8
Device 'enp0s8' successfully disconnected.
[vagrant@app ~]$ sudo nmcli device connect enp0s8

これでホストからpingが繋がるようになりました。

$ ping 192.168.33.20
PING 192.168.33.20 (192.168.33.20): 56 data bytes
64 bytes from 192.168.33.20: icmp_seq=0 ttl=64 time=0.322 ms
64 bytes from 192.168.33.20: icmp_seq=1 ttl=64 time=0.658 ms
64 bytes from 192.168.33.20: icmp_seq=2 ttl=64 time=0.955 ms
64 bytes from 192.168.33.20: icmp_seq=3 ttl=64 time=0.683 ms
64 bytes from 192.168.33.20: icmp_seq=4 ttl=64 time=0.820 ms

※参考URL
Vagrantのprivate_networkをCentOS7.0で設定 – Qiita

スポンサーリンク