Фильтрация пакетов STP
У меня есть хост KVM, гости которого подключены к виртуальному мосту для работы в сети.
Сетевые данные о гостях этой системы привлекли мое внимание к тому, что пакеты отбрасываются на уровне сетевого интерфейса (метрика отображается какRX dropped
кifconfig
).
Я отслеживал отброшенные пакеты в широковещательной рассылке STP (протокол связующего дерева) за пределами хоста. У виртуального моста на хосте STP отключен, но эти пакеты от других коммутаторов в сети по-прежнему пересылаются гостям.
# tcpdump -i enp2s0 stp -etn
30:23:03:27:7c:27 > 01:80:c2:00:00:00, 802.3, length 38: LLC, dsap STP (0x42) Individual, ssap STP (0x42) Command, ctrl 0x03: STP 802.1d, Config, Flags [none], bridge-id fffe.30:23:03:27:7c:27.8001, length 43
# tcpdump -i enp1s0 stp -etn
10:06:45:e6:24:0b > 01:80:c2:00:00:00, 802.3, length 38: LLC, dsap STP (0x42) Individual, ssap STP (0x42) Command, ctrl 0x03: STP 802.1d, Config, Flags [none], bridge-id 8000.10:06:45:e6:24:0b.8004, length 43
Вопрос
Как я могу отбросить пакеты STP, пересылаемые через виртуальный мост?
Я пытался фильтровать по номеру dsap/ssap, но это не сработало.
ebtables -A FORWARD -p LENGTH --802_3-sap 0x42 -j DROP
в качестве альтернативы мне были бы интересны причины, почему это не очень хорошая идея .
1 ответ
Отброшенные пакеты означают, что ни одна подсистема ядра не зарегистрировала STP в качестве поддерживаемого протокола; драйвер Ethernet не знает, куда отправить пакет, поэтому отбрасывает его и увеличивает счетчик отброшенных пакетов. Это само по себе нормально, но Netdata рассматривает возрастающий счетчик как возможную проблему.
Самый простой способ исправить это — сообщить ядру/драйверу о STP:
sudo modprobe stp
Это должно привести к тому, что пакеты STP будут отбрасываться драйвером STP, а не драйвером Ethernet.
В большинстве дистрибутивов Linux вы можете сделать это постоянным, добавивstp
к/etc/modules
.