web-dev-qa-db-ja.com

KVM Ubuntuゲストはブリッジネットワークでインターネットに接続できません

Ubuntu 14.04(64ビット)+ KVM 2 NICを搭載したホスト:
-「パブリック」ネットワークに接続されたeth0
-プライベートIPアドレス範囲でbr0ブリッジに接続されたeth1

ホストから私はインターネットにアクセスできます。pingVM Guestで、SSH経由でそれに接続します。
From VM Guest Fromホストにのみpingできますが、インターネットにアクセスできず、google.comにpingできません

以下に説明する設定でインターネットに接続するVMゲストへの接続を手伝ってください:


ホスト上:

/ etc/network/interfaces

 auto lo 
 iface lo inet loopback 
 
 auto eth0 
 iface eth0 inet static 
 address 192.168.2.60 
ネットマスク255.255.255.0 
ゲートウェイ192.168.2.254 
 dns-nameservers 8.8.8.8 
 
 auto eth1 
 iface eth1 inet manual 
 
 auto br0 
 iface br0 inet static 
 address 10.0.0.1 
 netmask 255.255.255.0 
 bridge_ports eth1 
 bridge_stp off 
 bridge_maxwait 0 
 bridge_fd 0 
 
#ブリッジを自動的に作成して破棄します。
 pre-up brctl addbr br0 
 ip link set dev br0 up 
 post-up/usr/sbin/brctl setfd br0 0 addif br0 eth1 
 post-down brctl delbr br0 

KVMネットワークは次のように定義されます。

<network>
<name>br0-net</name>
<uuid>9d24b473-0b4d-4cfa-8b12-7bf267d856ae</uuid>
<forward mode='bridge'/>
<bridge name='br0'/>
</network>

#sysctl -p /etc/sysctl.conf

 net.ipv4.ip_forward = 1 
 net.bridge.bridge-nf-call-ip6tables = 0 
 net.bridge.bridge-nf-call-iptables = 0 
 net.bridge.bridge-nf-call-arptables = 0 

#route -n

カーネルIPルーティングテーブル
宛先ゲートウェイGenmaskフラグメトリックRef Use Iface 
 0.0.0.0 192.168.2.254 0.0.0.0 UG 0 0 0 eth0 
 10.0.0.0 0.0 .0.0 255.255.255.0 U 0 0 0 br0 
 192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 

#iptables -t nat -vnL

チェーンPREROUTING(ポリシーACCEPT 0パケット、0バイト)
 pktsバイトターゲットプロトアウトソースソース宛先
 
チェーンINPUT(ポリシーACCEPT 0パケット、0バイト) )
 pkts bytes target prot opt in out source destination 
 
 Chain OUTPUT(policy ACCEPT 0 packets、0 bytes)
 pkts bytes target prot opt in out source destination 
 
チェーンPOSTROUTING(ポリシーACCEPT 0パケット、0バイト)
 pktsバイトターゲットプロトインをソースの宛先にオプトインします
 

VMゲスト:

/ etc/network/interfaces

 auto lo 
 iface lo inet loopback 
 
 auto eth0 
 iface eth0 inet static 
 address 10.0.0.11 
ネットマスク255.255.255.0 

ゲストxmlは次のように定義されます

<interface type='bridge'>
<mac address='52:54:00:6b:93:69'/>
<source bridge='br0'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
</interface>

#route -n

カーネルIPルーティングテーブル
宛先ゲートウェイGenmaskフラグメトリックRef Use Iface 
 0.0.0.0 10.0.0.1 0.0.0.0 UG 0 0 0 eth0 
 10.0.0.0 0.0 .0.0 255.255.255.0 U 0 0 0 eth0 

#iptables -t nat -vnL

チェーンPREROUTING(ポリシーACCEPT 0パケット、0バイト)
 pktsバイトターゲットプロトアウトソースソース宛先
 
チェーンINPUT(ポリシーACCEPT 0パケット、0バイト) )
 pkts bytes target prot opt in out source destination 
 
 Chain OUTPUT(policy ACCEPT 0 packets、0 bytes)
 pkts bytes target prot opt in out source destination [。

Ping KVM Guestからのホストは10.0.0.1および192.168.2.60で機能します:

$ ping 10.0.0.1

 PING 10.0.0.1(10.0.0.1)56(84)バイトのデータ。
 64バイトから10.0.0.1:1:icmp_seq = 1 ttl = 64 time = 0.555 ms 

$ ping 192.168.2.60

 PING 192.168.2.60(192.168.2.60)56(84)バイトのデータ。
 64バイトから192.168.2.60:icmp_seq = 1 ttl = 64時間= 0.772 ms 

ゲストから別のコンピューター192.168.2.3へのpingが機能しません:

 --- 192.168.2.3 ping統計--- 
 277パケット送信、0受信、100%パケット損失、時間276399ms 

ゲストからのping google.comが機能しません:

 ping:不明なホストgoogle.com 
3
Daniel

仮面舞踏会のiptableルールがないと思います

iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o eth0 -j MASQUERADE
3
c4f4t0r