QEMU/KVM/libvirt macvtap VEPA не работает - запрос ARP не пересылается

Привет, я изо всех сил пытался заставить гостевую сеть работать при использовании macvtap в режиме VEPA между двумя виртуальными машинами на хосте. Я провел часы (дни), гуглив без радости. Эта конфигурация сети действительно работает?

Я создал vtap с помощью KVM Manager, добавив сетевую карту, выбрав Источник сети "macvtap", Режим источника VEPA, Модель устройства: virtio.

Конфигурация выглядит следующим образом (MAC-адрес):

vm3-62                                  vm2-62
----------                           ------------
eth1: 172.15.62.105            eth1:  172.15.62.205
(52:54:00:08:9d:8b)            (52::54:00:8a:b1:0f)
           +                               +
           |                               |
            \                              /
              \             host          /
            macvtap1                  macvtap0
          (52:54:00:08:9d:8b)      (52:54:00:8a:b1:0f)
                 \                         /
                  \                       /
                    \                    /
                           bond1.62
                     (98:03:9b:2d:91:a2) 
                              |
                           bond1
                             |
                       NIC port 1 and 2 (active/passive config)

Не уверен, что выше будет форматировать нормально, если выше диаграмма не отформатировать здесь JPEG

Главный сетевой адаптер подключен к cisco nexus 9000, который я настроил для Reflective Relay 802.1Qbg.

На vm2-62, когда я пытаюсь пропинговать 172.15.62.105, я получаю хост назначения недоступным.

Когда я использую tcpdump на хосте, я вижу ARP-запрос от vm2-62, ищущий mac для 172.15.62.105 (vm3-62). Я вижу запрос на macvtap0, и на bond1.62, и на bond1, но НЕ на macvtap1.

Если я вручную добавлю записи ARP в vm3-62 и vm2-62, пинг будет работать нормально, поэтому я думаю, что отражающее реле на коммутаторе настроено нормально.

Просто кажется, что либо коммутатор не возвращает запрос ARP, либо мне нужно что-то сделать в Linux, чтобы bond1.62 перенаправил запрос ARP в macvtap1.

Есть предположения?,

Благодарность

К вашему сведению, в случае, если кто-то столкнется с этим, что может иметь понимание, я хочу добавить, что я также попробовал предложения из этого поста:

https://superuser.com/questions/944678/how-to-configure-macvtap-to-let-it-pass-multicast-packet-correctly/1501508

"ip link установил dev macvtap0 allmulticast" вручную, а также в /etc/libvirt/hook/qemu и добавил "interface type='direct' trustGuestRxFilters='yes'" в файл vn с помощью virsh edit.

0 ответов

Я дошел до сути, и проблема была в переключателе.

Таким образом, проблема оказалась в том, что коммутатор (серия Cisco Nx9000) не возвращал ARP-запрос обратно. Но это было еще не все: мои системы подключены к сети VXLAN, и у меня есть L2 VTEP, настроенные с включенным подавлением arp. Когда это отключено, коммутатор действительно отражает ARP обратно на тот же порт, что и предполагалось, и все работает нормально. Я работал с инженерами Cisco, и они согласились, что VTEP должен также отражать ARP, когда включено подавление ARP (предполагается, что VTEP в этом случае отвечает на запросы ARP). Но похоже, что программное обеспечение VTEP сбивается с толку, когда его просят отправить широковещательную передачу обратно через интерфейс, на который она пришла. В любом случае cisco заявляет, что ищет исправление, а пока что обходной путь - отключить подавление arp.

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