Vagrantで public_network
設定時に、デフォルトゲートウェイの設定を追加する方法メモ
公式ドキュメントの DEFAULT ROUTER
の設定例の通りに設定すれば良かったです。
Vagrantfile
config.vm.network "public_network", ip: "192.168.0.17"
# default router
config.vm.provision "shell",
run: "always",
inline: "route add default gw 192.168.0.1"
# default router ipv6
config.vm.provision "shell",
run: "always",
inline: "route -A inet6 add default gw fc00::1 eth1"
# delete default gw on eth0
config.vm.provision "shell",
run: "always",
inline: "eval `route -n | awk '{ if ($8 ==\"eth0\" && $2 != \"0.0.0.0\") print \"route del default gw \" $2; }'`"
Public Networks - Networking - Vagrant by HashiCorp
上記の例ではデフォルトゲートウェイに 192.168.0.1
, fc00::1
という設定で追加しています。
注意点としては一番下の delete default gw on eth0
というところで元々のデフォルトゲートウェイの設定を削除している箇所です。この設定を忘れると旧設定と新設定で2重に設定されてしまうため不正な状態になってしまいます。
内容としては route
コマンドを起動時に毎回使用しているだけのため、環境に合わせて内容は変更して下さい。
/etc/network/interfaces
などを変更する方法もあるようですが、vagrantで運用するならこちらのほうがお手軽感はあります。
参考
Public Networks - Networking - Vagrant by HashiCorp
一時的にIPアドレス、ゲートウェイアドレスを変える - Humanity