有線と無線の両LANカードを搭載したPCのように、ネットワークカードが複数搭載されたPCでパブリックネットワークを設定する場合には、ブリッジされたインタフェースにどのネットワークインタフェースを使うか指定しないとならない。
都度手動で指定する
Vagrantfileにネットワークインタフェースを指定しないと、VM立ち上げ時に聞いてくる。
Vagrantfile
1 |
config.vm.network "public_network" |
VM起動。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
$ vagrant up Bringing machine 'default' up with 'virtualbox' provider... ==> default: Checking if box 'laravel/homestead' is up to date... ==> default: Clearing any previously set forwarded ports... ==> default: Clearing any previously set network interfaces... ==> default: Available bridged network interfaces: 1) Broadcom NetXtreme 57xx Gigabit Controller 2) Dell Wireless 1540 802.11a/g/n (2.4GHz/5GHz) ==> default: When choosing an interface, it is usually the one that is ==> default: being used to connect to the internet. default: Which interface should the network bridge to? 1 ==> default: Preparing network interfaces based on configuration... default: Adapter 1: nat default: Adapter 2: hostonly default: Adapter 3: bridged ==> default: Forwarding ports... default: 80 (guest) => 8000 (host) (adapter 1) default: 443 (guest) => 44300 (host) (adapter 1) default: 3306 (guest) => 33060 (host) (adapter 1) default: 5432 (guest) => 54320 (host) (adapter 1) default: 22 (guest) => 2222 (host) (adapter 1) ==> default: Running 'pre-boot' VM customizations... ==> default: Booting VM... ==> default: Waiting for machine to boot. This may take a few minutes... default: SSH address: 127.0.0.1:2222 default: SSH username: vagrant default: SSH auth method: private key ==> default: Machine booted and ready! ==> default: Checking for guest additions in VM... ==> default: Setting hostname... ==> default: Configuring and enabling network interfaces... ==> default: Mounting shared folders... default: /vagrant => C:/Users/aidi_dev/Homestead default: /home/vagrant/Code => C:/Users/aidi_dev/Code ==> default: Machine already provisioned. Run `vagrant provision` or use the `-- provision` ==> default: flag to force provisioning. Provisioners marked to run always will still run. |
立ち上がったVM上でネットワークカードを確認。テストした環境にはDHCPサーバーがあるので、IPアドレス(192.168.1.16)は自動で振られている。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
$ ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 08:00:27:92:2d:f6 brd ff:ff:ff:ff:ff:ff inet 10.0.2.15/24 brd 10.0.2.255 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::a00:27ff:fe92:2df6/64 scope link valid_lft forever preferred_lft forever 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 08:00:27:f9:f8:b9 brd ff:ff:ff:ff:ff:ff inet 192.168.10.10/24 brd 192.168.10.255 scope global eth1 valid_lft forever preferred_lft forever inet6 fe80::a00:27ff:fef9:f8b9/64 scope link valid_lft forever preferred_lft forever 4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 08:00:27:fc:d8:21 brd ff:ff:ff:ff:ff:ff inet 192.168.1.16/24 brd 192.168.1.255 scope global eth2 valid_lft forever preferred_lft forever inet6 fe80::a00:27ff:fefc:d821/64 scope link valid_lft forever preferred_lft forever |
ネットワークインタフェースとパブリックIPアドレスを固定するには
Vagrantfileに記述すればネットワークインタフェースとパブリックIPアドレスを固定できる。すなわち、VM起動時にネットワークインタフェースを聞いてこなくなる。
そのためにはVirtualBoxが認識しているネットワークインタフェースの名称がわからなければならない。VirtualBox同梱のVBoxManageを使うと、認識されているネットワークインタフェースを一覧することができる。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
C:\Program Files\Oracle\VirtualBox>VBoxManage list bridgedifs Name: Broadcom NetXtreme 57xx Gigabit Controller GUID: f6e9d2de-999c-4525-b85e-dfd4f49fad5d DHCP: Enabled IPAddress: 192.168.1.8 NetworkMask: 255.255.255.0 IPV6Address: fe80:0000:0000:0000:2d02:30f9:4823:2f83 IPV6NetworkMaskPrefixLength: 64 HardwareAddress: b8:ca:3a:c9:c5:9c MediumType: Ethernet Status: Up VBoxNetworkName: HostInterfaceNetworking-Broadcom NetXtreme 57xx Gigabit Control ler Name: Dell Wireless 1540 802.11a/g/n (2.4GHz/5GHz) GUID: c5948608-bd40-4ebb-8864-a270e70bcba8 DHCP: Enabled IPAddress: 192.168.1.11 NetworkMask: 255.255.255.0 IPV6Address: fe80:0000:0000:0000:2c85:12c3:9041:e587 IPV6NetworkMaskPrefixLength: 64 HardwareAddress: f4:b7:e2:0d:d0:f4 MediumType: Ethernet Status: Up VBoxNetworkName: HostInterfaceNetworking-Dell Wireless 1540 802.11a/g/n (2.4GHz/ 5GHz) |
ネットワークインターフェースの名前がわかったら、VagrantfileにIPアドレスと共に記述する。
Vagrantfile
1 |
config.vm.network "public_network", ip: "192.168.1.100", bridge: "Broadcom NetXtreme 57xx Gigabit Controller" |
これで設定は完了。あとはVMを立ち上げればよし。
参考サイト
Public Networks – Networking – Vagrant by HashiCorp
https://www.vagrantup.com/docs/networking/public_network.html