Я пытался настроить прозрачный брандмауэр L2 для моста Linux, используя мост Linux в сочетании с системными переменными bridge-nf-call-iptables, bridge-nf-filter-vlan-tagged и bridge-nf-filter-pppoe-tagged. .
Моя конфигурация:
Мост:
brctl addif br0 enp1s0
brctl addif br0 enp2s0
ifconfig enp1s0 выше
ifconfig enp2s0 выше
ifconfig br0 вверх
Мост-nf:
/proc/sys/net/bridge/bridge-nf-call-iptables> 1
/proc/sys/net/bridge/bridge-nf-filter-vlan-tagged > 1
/proc/sys/net/bridge/bridge-nf-filter-pppoe-tagged > 1
IP-таблицы:
iptables -A INPUT -d 8.8.8.8 -j DROP
iptables -A ВПЕРЕД -d 8.8.8.8 -j УДАЛИТЬ
С приведенной выше настройкой при попытке выполнить поиск DNS для 8.8.8.8 через инкапсулированное соединение PPPoE (проходящее через мост) ничего не блокируется, и запрос DNS выполняется успешно. Выполнение того же запроса напрямую (без инкапсуляции PPPoE) действительно блокируется. Таким образом, похоже, что пакет не декапсулирован должным образом перед обработкой iptables. Однако, согласно документации, настройка /proc/sys/net/bridge/bridge-nf-filter-pppoe-tagged должна позволить iptables фильтровать инкапсулированные пакеты PPPoE.
Что я делаю не так/пропускаю?