ブリッジングを使用してゲスト仮想マシンを自分のネットワークに接続しようとしています。私はオンラインでいくつかのリソースを見つけましたが、古いようなもの、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を有効にする必要があるかもしれません。eth0
54:52:00:1a:c8:4f
私が独自のネットワークを構築した理由は、外部から仮想マシンに接続できるためです。私は2つのブリッジを運営しており、そのうちの1つはDMZをホストしています。