web-dev-qa-db-ja.com

新規KVMゲストは外部LANにアクセスできません

KVMホスト(192.168.0.10)で、現在1つの作業中KVMゲスト(192.168.0.12))があります。新しいKVMゲストを今日インストールします。新しいゲストのネットワークが部分的にしか機能しないという問題が発生しました。

新しいゲストからアクセスできるのは、ネットワーク内のリソースだけです。他のネットワークリソース(ゲートウェイを通過したものを含む)にアクセスしようとすると、宛先へのパケット損失が100%発生します。

ゲストは、br0を使用してネットワークにアクセスするeth2のブリッジを介して接続します。

ホストネットワークは期待どおりに機能し、同じブリッジを介して接続している他の(現在は1つだけの)ゲストのネットワークも機能します。作業中のゲストをシャットダウンしても問題は解決しません。

両方のゲストは、DHCPを介してネットワークの詳細を取得します。

ゲストの仮想インターフェイスでホストからtcpdumpを実行すると、ゲストが外部と通信しようとし、ホストとゲートウェイからのみ応答を取得していることがわかります。


ホスト

問題のあるゲストは現在、vnet0を介して接続しています。

# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope Host lo
    inet6 ::1/128 scope Host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 00:1e:4f:34:dc:79 brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 00:1e:4f:34:dc:7b brd ff:ff:ff:ff:ff:ff
4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP qlen 1000
    link/ether 00:15:17:6a:fb:ee brd ff:ff:ff:ff:ff:ff
13: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
    link/ether 00:15:17:6a:fb:ee brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.10/24 brd 192.168.0.255 scope global br0
    inet6 fe80::215:17ff:fe6a:fbee/64 scope link
       valid_lft forever preferred_lft forever
24: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UNKNOWN qlen 500
    link/ether fe:54:00:fc:0f:07 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::fc54:ff:fefc:f07/64 scope link
       valid_lft forever preferred_lft forever
25: vnet1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UNKNOWN qlen 500
    link/ether fe:54:00:89:8e:17 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::fc54:ff:fe89:8e17/64 scope link
       valid_lft forever preferred_lft forever
# ip route
default via 192.168.0.202 dev br0
192.168.0.0/24 dev br0  proto kernel  scope link  src 192.168.0.10
# cat /etc/network/interfaces
auto lo
iface lo inet loopback

auto br0
iface br0 inet dhcp
    bridge_ports    eth2
    bridge_stp      off
    bridge_maxwait  0
    bridge_fd       0
# brctl show
bridge name bridge id       STP enabled interfaces
br0     8000.0015176afbee   no      eth2
                            vnet0
                            vnet1

働いていないゲスト

動作していないゲストはbusyboxipを使用することに注意してください。

# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope Host lo
    inet6 ::1/128 scope Host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisk pfifo_fast qlen 1000
    link/ether 52:54:00:fc:0f:07 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.27/24 scope global eth0
    inet6 fe80::5054:ff:fefc:f07/64 scope link
       valid_lft forever preferred_lft forever
# ip route
default via 192.168.0.202 dev eth0
192.168.0.0/24 dev eth0  src 192.168.0.27

働くゲスト

# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope Host lo
    inet6 ::1/128 scope Host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 52:54:00:89:8e:17 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.12/24 brd 192.168.0.255 scope global eth0
    inet6 fe80::5054:ff:fe89:8e17/64 scope link
       valid_lft forever preferred_lft forever
# ip route
default via 192.168.0.202 dev eth0
192.168.0.0/24 dev eth0  proto kernel  scope link  src 192.168.0.12

ホストとゲストの両方がDebianWheezyを実行します。

投稿された詳細に設定ミスは見られません。特に、まったく同じセットアップ方法が最近、他のKVMゲストをインストールするために機能した(そして現在も機能し続けている)ことを念頭に置いてください)。この問題の原因と、どうすれば修正できますか?

5
Chris

STPを有効にする必要があります KVM仮想マシンに使用されるブリッジ上。

/etc/network/interfacesファイルでこれを修正してください。

    bridge_stp      on

ネットワークサービスを再起動せずに実行時に有効にします。

# brctl stp br0 on
4
Michael Hampton