kvmを使用したネットワークブリッジ

kvmを使用したネットワークブリッジ

ブリッジングを使用してゲスト仮想マシンを自分のネットワークに接続しようとしています。私はオンラインでいくつかのリソースを見つけましたが、古いようなもの、xenまたはUbuntuを参照するか、不完全なようです。ホストコンピュータはCentOS 5.5を実行しており、libvirtを使用して仮想マシンを管理しているため、仮想マシンを作成、起動、停止します。ブリッジ(br0)を作成し、eth0をここに接続しました。仮想マシンがIPアドレスを取得できないようです。 DHCPを使用してアドレスを取得し、仮想マシンの固定リースを設定します。

ホストのifconfig:

br0   Link encap:Ethernet  HWaddr 00:1A:4D:53:C3:A6  
      inet addr:192.168.1.121  Bcast:192.168.1.255  Mask:255.255.255.0
      inet6 addr: fe80::21a:4dff:fe53:c3a6/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:5222 errors:0 dropped:0 overruns:0 frame:0
      TX packets:470 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:0 
      RX bytes:753743 (736.0 KiB)  TX bytes:47868 (46.7 KiB)

eth0  Link encap:Ethernet  HWaddr 00:1A:4D:53:C3:A6  
      inet6 addr: fe80::21a:4dff:fe53:c3a6/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:103200 errors:0 dropped:0 overruns:0 frame:0
      TX packets:116575 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:13605883 (12.9 MiB)  TX bytes:63269448 (60.3 MiB)
      Interrupt:217 Base address:0xc000 

 eth1 Link encap:Ethernet  HWaddr 00:1B:21:0A:25:AA  
      inet addr:192.168.1.91  Bcast:192.168.1.255  Mask:255.255.255.0
      inet6 addr: fe80::21b:21ff:fe0a:25aa/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:3124648 errors:0 dropped:0 overruns:0 frame:0
      TX packets:1693433 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:100 
      RX bytes:4531121842 (4.2 GiB)  TX bytes:119907573 (114.3 MiB)

 lo   Link encap:Local Loopback  
      inet addr:127.0.0.1  Mask:255.0.0.0
      inet6 addr: ::1/128 Scope:Host
      UP LOOPBACK RUNNING  MTU:16436  Metric:1
      RX packets:27294 errors:0 dropped:0 overruns:0 frame:0
      TX packets:27294 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:0 
      RX bytes:34266420 (32.6 MiB)  TX bytes:34266420 (32.6 MiB)

virbr0 Link encap:Ethernet  HWaddr 00:00:00:00:00:00  
       inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0
       inet6 addr: fe80::200:ff:fe00:0/64 Scope:Link
       UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
       RX packets:51332 errors:0 dropped:0 overruns:0 frame:0
       TX packets:89020 errors:0 dropped:0 overruns:0 carrier:0
       collisions:0 txqueuelen:0 
       RX bytes:2916963 (2.7 MiB)  TX bytes:132997389 (126.8 MiB)

vnet0  Link encap:Ethernet  HWaddr FE:52:00:1A:C8:4F  
       inet6 addr: fe80::fc52:ff:fe1a:c84f/64 Scope:Link
       UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
       RX packets:25 errors:0 dropped:0 overruns:0 frame:0
       TX packets:518 errors:0 dropped:0 overruns:0 carrier:0
       collisions:0 txqueuelen:500 
       RX bytes:4226 (4.1 KiB)  TX bytes:51190 (49.9 KiB)

出力brctl show

bridge name bridge id       STP enabled interfaces
br0         8000.001a4d53c3a6       no              vnet0
                                                    eth0
virbr0      8000.000000000000       yes

出力route

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     *               255.255.255.0   U     0      0        0 eth1
192.168.1.0     *               255.255.255.0   U     0      0        0 br0
192.168.122.0   *               255.255.255.0   U     0      0        0 virbr0
169.254.0.0     *               255.255.0.0     U     0      0        0 br0
default         DD-WRT          0.0.0.0         UG    0      0        0 br0

最後に設定するVMのネットワーク部分は次のとおりです。

<interface type='bridge'>
  <mac address='54:52:00:1a:c8:4f'/>
  <source bridge='br0'/>
</interface>

答え1

すでに見つけたように、すべてのことが正しく行われています。ファイアウォールの問題です。以前のようにトラフィックを許可するルールを追加したり、ファイアウォールを完全にオフにしたり、FedoraやRHELの最新バージョンなど、/etc/sysctl.confに次のように追加することでこの問題を解決できます。

# Disable netfilter on bridges.
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0

次に、実行sysctl -pしてこれらの変更を適用します。

答え2

KVMは独自のネットワークブリッジを構築します。これは橋ですvirbr0。インターネットに接続する方法を設定できる必要があります。

eth0仮想マシンでは、ブリッジの代わりにインターフェイスを表示する必要があります。これはデバイスの反対側になりますvnet0

私は、KVMがDHCPアドレスを展開するためにブリッジネットワーク用のDNSMasqサーバーを起動するUbuntuで作業しています。 KVMは、iptables仮想マシンへのネットワークアクセスを設定するためにも使用されます。

作成したブリッジを削除し、仮想マシンを再起動してみてください。私が見た構成によると、192.168.122.0の範囲のアドレスを取得すると予想されます。

KVMが私のファイアウォールと対話する方法は気に入らず、私のファイアウォールも同じです。KVMパッシブネットワーキング。私の設定は、イーサネットインターフェイスに接続されていない仮想ブリッジを使用します。これKVMネットワークページUbuntuコミュニティのコンテンツは、現在KVMがどのようにネットワーキングを行うかを理解するのに役立ちます。

編集:ブリッジネットワーキングをもう一度見ました。なぜあなたのアドレスが192.168.1.xなのかわかりませんeth1。あなたの構成は私が期待したものとほぼ同じです。仮想マシンに固定アドレスを設定して、通信が可能かどうかを確認してください。

DHCPで何が起こっているかをテストするために、DHCPトラフィックまたはmacアドレスからのすべての着信トラフィックを実行またはtcpdump監視br0します。その後、DHCP アドレスを取得します。ブリッジでSPTを有効にする必要があるかもしれません。eth054:52:00:1a:c8:4f

私が独自のネットワークを構築した理由は、外部から仮想マシンに接続できるためです。私は2つのブリッジを運営しており、そのうちの1つはDMZをホストしています。

関連情報