Задний план
Я настроил OpenWRT в режиме моста.
Я проталкиваю пакеты с L2 на L3, используя net.bridge.bridge-nf-call-iptables=1.
Сценарий «Немаркированные пакеты»
В случае непомеченных пакетов эта настройка работает нормально, и я могу перехватывать все пакеты и перенаправлять их на портал захвата, используя правило iptable, например:
iptables -A ПРЕДВАРИТЕЛЬНАЯ МАРШРУТИЗАЦИЯ -m physdev --physdev-in ath242113 -j prt_captive_2113
iptables -A ПРЕДВАРИТЕЛЬНАЯ МАРШРУТИЗАЦИЯ -m physdev --physdev-in ath512113 -j prt_captive_2113
iptables -A prt_captive_2113 -p tcp -m tcp --dport 80 -j ПЕРЕНАПРАВЛЕНИЕ --to-ports 8080
iptables -A prt_captive_2113 -p tcp -m tcp --dport 443 -j ПЕРЕНАПРАВЛЕНИЕ --to-ports 8443
где ath242113 и ath512113 — мои интерфейсы Wi-Fi
Пакеты с тегами / сценарий VLAN
В случае настройки VLAN с мостом перенаправление не работало с обычными конфигурациями и правилом iptables, как указано выше.
Это моя установка моста:
br-vlan80 7fff.587be915a963 нет ath242113
ath512113
eth0.80
где ath242113 и ath512113 — это беспроводной интерфейс, а eth0.80 — тегированный интерфейс Ethernet.
Итак, я попытался включить net.bridge.bridge-nf-filter-vlan-tagged=1 и bridge-nf-pass-vlan-input-device=1 в соответствии с этим патчем:
https://patchwork.ozlabs.org/project/netfilter-devel/patch/[email protected]/
Я также изменил правило iptables на:
iptables -A ПРЕДВАРИТЕЛЬНАЯ МАРШРУТИЗАЦИЯ -i br-vlan80 -j prt_captive_2113
iptables -A prt_captive_2113 -p tcp -m tcp --dport 80 -j ПЕРЕНАПРАВЛЕНИЕ --to-ports 8080
iptables -A prt_captive_2113 -p tcp -m tcp --dport 443 -j ПЕРЕНАПРАВЛЕНИЕ --to-ports 8443
Но, похоже, это тоже не работает.