Я хочу отбросить все кадры Ethernet 802.1Q с помощью ebtables. Моя структура системы следующая: и моя хостовая, и гостевая системы работают с Scientific Linux 7.4. Виртуализация осуществляется с помощью virtualbox.
phyInterface --|-- Host system |-- Guest system (virtualbox)
| |
eth0-----------|--br1---vnic3--|-eth0
| |
Команда ebtables:
ebtables -I INPUT -i vnic3 -p 802_1Q -j DROP
В результате я получаю все пакеты 802.1Q в интерфейсе eth0 гостевой системы. Я использую tcpdump, чтобы проверить это.
При использовании следующей настройки
phyInterface --|-- Host system -------------------------------|-- Guest system (virtualbox)
| |
eth0-----------|--br1---vnic1---vnic2---brRemoveVlan---vnic3--|-eth0
| |
с командой ebtables
ebtables -I INPUT -i vnic2 -p 802_1Q -j DROP
все пакеты 802.1Q отбрасываются на мост brRemoveVlan. Работает как положено. В чем разница между виртуальным интерфейсом vnic3 (veth) в первом подходе и виртуальным интерфейсом vnic2 (veth) во втором подходе?
Кроме того, я также пытался заставить его работать в виртуальной машине с помощьюотдельное сетевое пространство имен (со своим собственным адаптером обратной связи) для виртуального интерфейса vnic2
phyInterface --|-- Virtualbox--------------------------------
|
| |--- network namespace
eth0-----------|--br1--------------vnic1--------|-- vnic2
| |
Команда ebtables выполняется на vnic1. Я все еще получаю все пакеты 802.1Q на vnic2.
Может кто-нибудь из вас объяснить мне, когда ebtables используются или рассматриваются, а когда нет? В чем разница между виртуальным интерфейсом (veth) перед мостом и виртуальным интерфейсом перед другим пространством имен или виртуальной машиной?