virsh 仮想ネットワーク上の KVM ゲストが実際の内部ネットワークにアクセスできるようにする

virsh 仮想ネットワーク上の KVM ゲストが実際の内部ネットワークにアクセスできるようにする

ルーター 192.168.1.1 の背後にホーム ネットワーク 192.168.1.0 があります。既存の Linux および Windows ホストのセットがこのネットワーク上にあり、そのほとんどは有線イーサネット接続です。KVM ハイパーバイザーと 3 つの Debian ゲストを実行する新しいサーバーを構成しています。新しいサーバーはネットワーク接続に Wi-Fi を使用します。

ハイパーバイザーでは、virsh次のように仮想ネットワークを構成していました。

<network>
  <name>virtual</name>
  <forward mode='route'/>
  <ip address='192.168.2.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.2.2' end='192.168.2.255'/>
      <host mac='52:54:00:00:00:01' ip='192.168.2.2'/>
      <host mac='52:54:00:00:00:02' ip='192.168.2.3'/>
      <host mac='52:54:00:00:00:03' ip='192.168.2.4'/>
    </dhcp>
  </ip>
</network>

次に、ルーターに 192.168.2.0/24 からハイパーバイザーの IP アドレス 192.168.1.41 への静的ルートを作成しました。

Debian ゲストを作成したときに、仮想ネットワーク名と仮想ネットワークの MAC アドレスをvirsh次のように指定しました。

--network network=virtual,mac=52:54:00:00:00:01

これにより、/etc/network/interfaces各ゲストで次のようになります。

iface eth0 inet static
   address 192.168.2.2
   netmask 255.255.255.0
   network 192.168.2.0
   broadcast 192.168.2.255
   gateway 192.168.2.1

この構成では、ほとんどすべてが機能します。次のことが可能です。

  • 192.168.1.0 のホストから両方のハイパーバイザー IP アドレス (.2.1 と .1.41) に接続します。
  • 192.168.1.0のホストから各ゲストに接続する
  • ハイパーバイザーから各ゲストに接続する
  • 各ゲストからハイパーバイザー(.2.1)および他の各ゲストに接続します
  • 各ゲストからパブリックインターネットに接続する
  • ルータから個々のゲストに外部(インターネット)接続を転送する

しかし、私はできないゲストから 192.168.1.0 ネットワーク上の任意のホストに接続します。たとえば、192.168.2.2 から 192.168.1.31 に ssh することはできません。

A はtraceroute次のようになります:

traceroute to 192.168.1.31 (192.168.1.31), 30 hops max, 60 byte packets
 1  sol (192.168.2.1)  0.295 ms  0.252 ms  0.243 ms
 2  * * *
 3  * * *
 4  * * *
 5  * * *
 6  * * *

設定が間違っているのか、ワイヤレス アクセス ポイントに問題が発生しているのかはわかりません。

設定を追加してみましたebtables(議論したようにここ) を使って MAC 変換を行おうとしましたが、違いはありませんでした。 の外部に別のブリッジ ネットワーク デバイスを追加しようとしましたvirshが、既存の仮想デバイスを他のブリッジに接続することはできません。virshフィルターや iptables ルールなどの他のオプションも検討しましたが、どうにもなりません。

これにアプローチする正しい方法を提案してくれる人はいますか?

関連情報