KVM VM が LAN から表示/ping できない

KVM VM が LAN から表示/ping できない

私は、LAN に有線接続されたホスト上で仮想マシンを実行しています。ホストはローカル ネットワーク上に表示されますが (Wi-Fi で接続された他のホストも同様)、VM ゲストは表示されません。これは、VM ゲストがホストから NAT されたためでした。VM ゲストはインターネットや LAN 上の他のサーバーにはアクセスできますが、他のサーバーは VM ゲストにアクセスできませんでした。これは理にかなっています。私が実現したいのは、ゲスト VM がホストのように直接有線接続されているかのようにネットワーク上に表示されることです。何が足りないのか、どうしてもわかりません。

基本的なホーム ネットワークをセットアップしました。次の図のようになります。

ここに画像の説明を入力してください

  • Netgear Nighthawk wifi/ルーター
  • ルーターに有線接続された Intel NUC ホスト
    • Ubuntu サーバー OS
    • KVM/QEMU 仮想化

最初に、次のように NAT 構成で VM をセットアップしました (デフォルトのネットワークは NAT ブリッジ ネットワークです)。

ここに画像の説明を入力してください

上記はうまく機能しましたが、やはり LAN 上の他のデバイスから VM にアクセスできませんでした (VM が NAT されていたため)。

次に、各 VM が独自の IP を取得し、次のことができるように、ルーティング構成を設定しようとしました。

  • インターネットにアクセスする
  • LAN上の他のホストからアクセス可能であること

私がやろうとしていたのは次のようなものでした: ここに画像の説明を入力してください

次のように新しい仮想ネットワークを作成しました。 ここに画像の説明を入力してください

ただし、上記の設定では、VM はインターネットにアクセスできず、ネットワーク上の他のホストからもアクセスできません。これは、ホストの背後にある DMZ に何らかの方法で設定した場合とほぼ同じです。

私が読んだ限りでは、ルーティング構成 (上の画像のように virbr3 経由) を設定すると、ホスト上に「ルーティング」タイプの仮想ネットワークが作成され、ホストが通過するようになります。ホストの ARP テーブルを見ると、ホストが VM ゲストを認識していることがわかります。 ここに画像の説明を入力してください

Netgear ルーターにログインすると、VM ゲストが有線接続としてリストされるはずですが、リストされていません。ルーターにアクセスして、VM ゲストの IP (および VM ゲストの MAC アドレス) の予約済み IP アドレスを手動で追加し、その IP のネットワーク要求が適切にルーティングされると考えましたが、そうではありません。ホストは VM を認識しているものの、ルートを正しくアドバタイズしておらず、ルーターはゲスト VM を認識していないため、LAN 上の別のホストからゲストの IP に ping を実行しようとしても、ルーターは送信先がわからないかのようです。この問題を解決する方法について何か提案はありますか?

編集

1 つ足りないステップは、NetGear ルーターに静的ルートを追加して、VM に関連付けられた IP アドレス (eth0 ゲートウェイ経由) へのリクエストをどこに転送するかをルーターが認識できるようにすることでした。これで、ネットワーク上の他のホストから VM に ping を実行できるようになりました。これは大きな前進です。残る問題は、VM がインターネット (google.com など) にアクセスできないことです。

編集2

traceroute google.comゲスト VM から の出力は次のようになります。ここに画像の説明を入力してください

192.168.100.1 はローカル ゲートウェイです。192.168.1.1 は
私のワイヤレス ゲートウェイだと思います。この呼び出しを行うのは、ホストと、LAN に接続されている Mac 上でこれがデフォルト ゲートウェイとして表示されるためです。

関連情報