Транкинг 802.1Q внутри KVM через MacVTap

В настоящее время у меня есть настройка ниже, где vm - это гость KVM хоста , подключенная к одному из сетевых интерфейсов хоста через MacVTap работает в режиме моста.

               |---------------|
               |  ___________  |
switch ======= |  |   vm    |  |
               |  -----------  |
               |____ host _____|

Внутри vm я установил несколько интерфейсов VLAN вместе с нетегированным:

3: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 52:54:00:00:00:02 brd ff:ff:ff:ff:ff:ff promiscuity 0 minmtu 68 maxmtu 65535 addrgenmode eui64 numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535
4: enp2s0.2@enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
    link/ether 52:54:00:00:00:02 brd ff:ff:ff:ff:ff:ff promiscuity 0 minmtu 0 maxmtu 65535 
    vlan protocol 802.1Q id 2 <REORDER_HDR> addrgenmode eui64 numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535
...

хост не имеет интерфейсов VLAN.

Нетегированный трафик потоки входят и исходят из enp2s0 совершенно нормально, но тегированный трафик, кажется, теряется где-то между хостом и vm . Я проверил это, подключив машину к интерфейсу, представленному enp2s0 , создав новые тегированные интерфейсы через iproute2 , назначив IP-адрес, а затем отправив эхо-запрос IP-адреса vm. , соответствующий тегированной VLAN, из которой я пингую.

Интересно, что запуск tcpdump на интерфейсе необработанного резервного копирования на хосте пропускает тегированные пакеты, но только пока работает tcpdump . На изображении ниже показан этот странный эффект. (Сверху вниз: хост , работает tcpdump ; машина подключена к enp2s0 , пингует vm ; [1110210217] vm ], проверяя связь с указанной машиной)

terminals showing the impact of running tcpdump on VLAN packets

Правильно ли отправлять транковый трафик в интерфейс MacVTap, или я должен создавать разные интерфейсы на хосте и передавать их в виртуальную машину? Есть ли какая-то проблема с тем, как я настраиваю свои интерфейсы, будь то на хосте или в виртуальной машине?

1
задан 27 July 2020 в 12:54
1 ответ

Установка необработанного резервного интерфейса на хосте в неразборчивый режим, казалось, заставляла все работать постоянно (т.е. ip link set dev enp2s0 промиск и добавление соответствующих строк в /etc/network/interfaces). Я не уверен, что это правильно, но из-за отсутствия других вещей, которые можно попробовать, это отлично работает для меня, пока не появится лучшее решение.

0
ответ дан 29 July 2020 в 00:40

Теги

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