Проблема с сетью libvirt: хост не может получить доступ к Интернету (а гости могут!)

Я запускаю машину с Ubuntu, которая через libvirt размещает несколько гостевых виртуальных машин (также Ubuntu). Гости могут получить доступ к Интернету, в то время как хост может получить доступ только к локальной сети, включая шлюз. Это кажется странным, и я понятия не имею, что может быть причиной.

Я не могу вспомнить, где на этом пути эта проблема возникла первой или какие изменения вызвали ее. Поэтому я просто описываю текущую ситуацию в терминах некоторой конфигурации и вывода:

$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         a.b.c.1    0.0.0.0         UG    0      0        0 eth0
a.b.c.0    0.0.0.0         255.255.255.0   U     0      0        0 br0
a.b.c.0    0.0.0.0         255.255.255.0   U     1      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 br0
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0

Это, кажется, говорит в основном то же самое:

$ ip route show
default via a.b.c.1 dev eth0  proto static 
a.b.c.0/24 dev br0  scope link 
a.b.c.0/24 dev eth0  proto kernel  scope link  src a.b.c.38  metric 1 
169.254.0.0/16 dev br0  scope link  metric 1000 
192.168.122.0/24 dev virbr0  proto kernel  scope link  src 192.168.122.1 

/ etc / network / interfaces:

auto lo
iface lo inet loopback

auto br0 
iface br0 inet static
    address a.b.c.38
    netmask 255.255.255.0
    network a.b.c.0
    broadcast a.b.c.255
    gateway a.b.c.1
    dns-nameserver XXX.XXX.XXX.XXX XXX.XXX.XXX.XXX XXX.XXX.XXX.XXX
    bridge_ports all
    bridge_stp yes
    bridge_fd 0
    post-up /sbin/ethtool -s eth0 wol g
    post-down /sbin/ethtool -s eth0 wol g

Эта команда не выполняется:

$ sudo ifdown eth0 && sudo ifup eth0
ifdown: interface eth0 not configured
Ignoring unknown interface eth0=eth0.   

Другая команда, касающаяся моста:

$ brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.14dae9726e93       no              eth0
                                                        vnet0
                                                        vnet1
                                                        vnet2
virbr0          8000.000000000000       yes

Это кажется подозрительным:

$ arp -n
Address                  HWtype  HWaddress           Flags Mask            Iface
a.b.c.50                    (incomplete)                              eth0
a.b.c.63                    (incomplete)                              eth0
a.b.c.1             ether   00:00:0c:07:ac:3d   C                     br0
a.b.c.63            ether   4c:72:b9:8f:b8:6c   C                     br0
a.b.c.50                    (incomplete)                              br0
a.b.c.40            ether   52:54:00:2f:79:ac   C                     br0
a.b.c.39            ether   00:25:90:7c:f8:94   C                     br0
a.b.c.1                     (incomplete)                              eth0
a.b.c.48            ether   3c:07:54:13:7c:55   C                     br0
a.b.c.2             ether   f0:f7:55:2a:15:00   C                     br0
0
задан 26 August 2015 в 20:22

2 ответа

Прежде всего, /etc/network/interfaces определяет br0 интерфейс, но не eth0 интерфейс, таким образом, Вы, конечно, ожидали бы ifup eth0 перестать работать. Вы могли попробовать к ifdown br0; ifup br0. Вы ожидали бы видеть маршрут по умолчанию в своей системе, выходящей br0 а не eth0, учитывая Вашу конфигурацию.

eth0 не должен иметь никакого присвоенного IP-адреса.

Примечание, что перевод в нерабочее состояние моста и может прервать доступ в Интернет от Ваших виртуальных машин, таким образом, что они должны быть перезапущены (я не уверен, будет ли это или не, но я не могу протестировать это в данный момент).

0
ответ дан 27 August 2015 в 06:22
  • 1
    Да, у меня есть общедоступный IP направления. That' s, как я смог запустить тест с canyouseeme.org – TenLeftFingers 22 November 2016 в 00:30

Кажется, была внешняя причина. Коммутируемая сеть была настроена способом, который не выполняет STP (Протокол связующего дерева) и для этого разъединяет порты, которые отправляют пакеты STP. В сетевой конфигурации bridge_stp yes ведомый к передающим пакетам тезисов. Однако неясно, как гости VM могли все еще общаться с внешним Интернетом. Так или иначе проблема теперь решена - Спасибо!

0
ответ дан 27 August 2015 в 06:22
  • 1
    Пониженный до 14.04.1 - 14.04.2 и все использование аппаратная стопка реализации возможностей. – Chris 18 January 2017 в 06:01

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

Похожие вопросы: