Сетевой мост в dom0 не может пинговать domU's

Я использую Debian wheezy с XEN 4.1. У меня есть два сетевых моста xenbr0 и xenbr1.

xenbr0 связан с реальным eth0-nic, так что domU могут общаться с внешним миром, который работал нормально.

xenbr1 был задуман как внутренний сетевой мост для связи между domU и dom0.

Проблема в xenbr1, и я не знаю почему. DOMU успешно подключены к xenbr1, потому что я могу Ping между DOMU. Таким образом, мост как-то работает, но трафик к xenbr1 или из dom0 невозможен.

Моя настройка xenbr1 в / etc / network / interfaces:

auto xenbr1
iface xenbr1 inet static
        pre-up brctl addbr $IFACE
        up ip link set $IFACE up
        post-down brctl delbr $IFACE
        down ip link set $IFACE down
        address         10.0.0.1
        netmask         255.255.255.0
        hwaddress       ether MAC

brctl show:

bridge name     bridge id               STP enabled     interfaces
xenbr0          8000.mac                no              eth0
                                                        vif1.0
                                                        vif2.0
xenbr1          8000.mac                no              vif1.1
                                                        vif2.1

Сетевые соединения:

                  dom0
            xenbr1 - 10.0.0.1
            /               \
           /                 \
        domU-1              domU-2
  vif1.1 - 10.0.0.2      vif2.1 - 10.0.0.3

domU-1 может пинговать domU-2 и наоборот.
dom0 не может добраться до domU, а domU не может достичь dom0. Так что что-то заблокировано в dom0, я думаю.

Моей первой мыслью было, что у меня может быть проблема с iptables, но кажется, что xen создал необходимые правила:

-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-A FORWARD -m physdev --physdev-out vif2.1 --physdev-is-bridged -j ACCEPT
-A FORWARD -m physdev --physdev-in vif2.1 --physdev-is-bridged -j ACCEPT
-A FORWARD -m physdev --physdev-out vif2.0 --physdev-is-bridged -j ACCEPT
-A FORWARD -m physdev --physdev-in vif2.0 --physdev-is-bridged -j ACCEPT
-A FORWARD -m physdev --physdev-out vif1.1 --physdev-is-bridged -j ACCEPT
-A FORWARD -m physdev --physdev-in vif1.1 --physdev-is-bridged -j ACCEPT
-A FORWARD -m physdev --physdev-out vif1.0 --physdev-is-bridged -j ACCEPT
-A FORWARD -m physdev --physdev-in vif1.0 --physdev-is-bridged -j ACCEPT

Я надеюсь, что кто-нибудь может мне помочь или имеет начало, где искать.

1 ответ

Вам необходимо подключить dom0 к мосту xenbr1. Думайте о мосте как о коммутаторе Ethernet, вам нужно "подключить" к нему dom0, чтобы он работал. Вы заметите, что dom0 подключен к xenbr0 через eth0.

Если у вас есть дополнительный интерфейс на хосте (eth1), вы можете просто сделать:

brctl addif xenbr1 eth1

Это должно работать при условии правильной настройки IP-сети.

Другие вопросы по тегам