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.
Есть предположения?,
Благодарность
К вашему сведению, в случае, если кто-то столкнется с этим, что может иметь понимание, я хочу добавить, что я также попробовал предложения из этого поста:
"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.