Проблема с мостом, проходящим через L2, но не проходящим через L3 Traffic

Проблема с мостом, проходящим через L2, но не проходящим через L3 Traffic

Привет, ребята, надеюсь, кто-нибудь здесь сможет мне помочь.

Я настроил мост на своей системе Ubuntu для подключения к виртуальной машине, запущенной внутри KVM. Мост может отправлять запросы и ответы ARP, поэтому у меня есть двусторонний трафик, но IP-трафик не может пройти.

Сетевое подключение выглядит следующим образом: vnet0 -> bridge -> eth1 -> VLAN с хостами, которые я пытаюсь пинговать

Все пинги терпят неудачу при попытке пройти через eth1. Я сделал TCPDUMP на интерфейсах vnet0, bridge и eth1. Я вижу, что проблема в том, что IP-пакеты не покидают eth1 при отправке с vnet0, хотя они, кажется, прекрасно проходят через интерфейс bridge. Также следует отметить, что я использую гигабитный адаптер USB 3.0 для этого соединения.

Устранение неполадок на данный момент:

  1. Отключил IPv6 через sysctl.conf, думая, что это может быть проблемой
  2. Переместите USB-адаптер в другой USB-порт.
  3. Мост был удален и создан несколько раз
  4. Перезагрузки

Озадачен. Есть идеи, почему может пройти только L2? Моя виртуальная машина узнает MAC-адреса для систем через eth1 через arp, но не может отправлять IP-пакеты.

Спасибо

решение1

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

авто eth1
iface eth1 inet ручной
up ifconfig eth1 up

авто E-MGMT-Bridge
iface E-MGMT-Bridge inet ручной
bridge_stp выкл
bridge_fd 0
bridge_ports eth1

В 16.04 это каким-то образом нарушает Layer 3, при этом все еще пропуская трафик Layer 2, такой как кадры ARP, CDP и STP. Очень странно. Чтобы это заработало в 16.04, нужно удалить строфу eth1 и определить только мост, а не физический интерфейс, на который он ссылается, например так:

авто E-MGMT-Bridge
iface E-MGMT-Bridge inet ручной
bridge_stp выкл
bridge_fd 0
bridge_ports eth1

Мне пришлось перезагрузиться, а затем я смог пинговать с моей виртуальной машины через мост в реальную сеть, подключенную к моему коммутатору. Не уверен, сталкивался ли кто-то еще с этим или я простоудачливый.

решение2

Если вы видите только ARP, но не "реальный" трафик, то проблема может быть в iptables. Проверьте, установлена ​​ли политика FORWARDING iptables на ACCEPT. Если вы хотите использовать политику DROP, проверьте, добавлены ли правила пересылки для разрешения вашего трафика KVM.

Связанный контент