Я использую роутер openwrt. У него есть мост br-lan и к этому мосту подключены wlan0, wlan1. eth0 действует как интерфейс WAN. Когда пакет приходит от wlan0 или wlan1, он идет от моста, получает NAT и выходит через eth0 в Интернет, а ответ приходит от eth0, снова получает NAT и переходит на br-lan, а затем выходит через wlan0 или wlan1 в зависимости от того, где исходный пакет пришел из.
wlan0 / wlan1 -> br-lan -> NAT -> eth0 -> Интернет
Интернет -> unNAT -> br-lan -> wlan0 / wlan1
Теперь у меня есть приложение, которое прослушивает интерфейс br-lan через необработанный сокет, и я хочу выполнить некоторую обработку пакетов, идущих от br-lan к wlan0 / wlan1. Таким образом, я хочу остановить / заблокировать все пакеты с br-lan на wlan0 / wlan1, поскольку я сам буду перенаправлять их на wlan0 / wlan1 в своем приложении. Как это сделать с помощью iptables или ebtables?
Я пробовал некоторые правила, подобные приведенным ниже, но они не работают, и весь трафик идет нормально -
ebtables -I FORWARD -i br-lan -o wlan1 -j DROP
ebtables -I OUTPUT -o br-lan -j DROP
iptables -I FORWARD -i br-lan -o wlan1 -j DROP
iptables -I OUTPUT -o br-lan -j DROP
поэтому я взглянул на эта страница и почти все, что они делали с отбрасыванием пакетов, было связано с цепочками. Мне интересно, пробовали ли вы сначала сделать цепочку? НАПРИМЕР.
iptables -N zone_wan_block
iptables -I FORWARD -i br-lan -o wlan1 -j zone_wan_block
iptables -A zone_wan_block -j DROP
(Вместо этого я бы прокомментировал это, так как я сам неопытен в этом (и у меня нет времени проверить это), но у меня недостаточно репутации ...)
Кроме того, при необходимости используя ВЫХОД.
Надеюсь, это поможет, но опять же, у меня нет опыта. Хорошего дня!