Virtualboxの仮想マシンとlinuxホストマシン間でpingが通らない問題
はじめに
virtualboxにcentos8を入れたがpingが通らない問題が発生した。
NATを介してホストマシンから仮想マシンへ接続することはできた。
しかし、仮想マシンからホストマシンへ、ホストマシンから仮想マシンへブリッジを介した通信ができなかった。
くだらない理由だがハマったので解決方法を記録しておく。
結論
ブリッジアダプタに接続しているホストの物理IFがリンクアップしていなかった。
その物理IFのネットワークアドレスとと仮想マシンのIFのネットワークアドレスは揃える必要がある。
現象が発生したときのネットワーク
手元のローカルマシンからホストマシンへはsshで接続した。
ホストマシンから仮想マシンへはNATを介してsshすることができた。
しかし、仮想マシンのEth1、Eth2からホストマシンのEth1へ、ホストマシンのEth1から仮想マシンのEth1、Eth2へpingを通すことができなかった。
調査
それぞれでarpを試したところ、macアドレス解決できていないことがわかった。
nmcliコマンドを用いてOSがネットワークIFを認識していることを確認した。
そこで、ホストマシンのイーサネットケーブルを確認しに行ったところ、ホストマシンのeth1に接続しているケーブルが抜けているということがわかった。
ケーブルをさして、pingを実行したところホストと仮想マシン間で相互に通信することができた。
ついでに
ネットワークアドレスの異なる物理IFへブリッジしたところ、相互にpingが通らなくなった。
物理IFのリンクアップだけでなく、ネットワークアドレスを揃えることも必要だとわかった。
おわりに
お粗末な原因でげんなりした。
なぜリンクアップしていないといけないのかを今後調べる。
番外編(2021.06.28追記)
ネットワーク設定のケーブル接続チェックボックのチェックが外れていることが原因のときもある。
この設定は仮想マシンのイーサネットポートにケーブルが接続されているか、抜いているかをエミュレートしている。
チェック有りがケールブルを接続している、チェックなしがケーブルを抜いている状態を示す。
vboxmanageコマンドで設定変更が可能。