Мост wlan0 to eth0 работает, но MAC-адрес перепутан
У меня есть точка доступа (hostapd
) работает на wlan0
, wlan0
а также eth0
соединены и eth0
подключен к роутеру. br0
настроен для DHCP и получает адрес, зарезервированный на маршрутизаторе.
Пусть коробка с точкой доступа будет называться коробкой точки доступа.
Иногда маршрутизатор показывает, что в поле точки доступа есть MAC-адрес wlan0
устройство вместо MAC eth0
как и должно быть.
Любые устройства, подключенные к точке доступа, будут отображать свои соответствующие MAC-адреса в arp-кэше маршрутизатора.
Маршрутизатор имеет правила межсетевого экрана моста, которые обеспечивают, чтобы все пакеты с зарезервированного IP-адреса DHCP окна точки доступа приходили с MAC-адреса eth0
поэтому коробка теряет сетевое подключение, когда MAC меняется с eth0
в wlan0
, Когда ящик теряет связь, все связанные клиенты на точке доступа все еще могут использовать Интернет.
Я смог обойти правила моста маршрутизатора, используя следующие ebtables
Команды на поле, которое имеет wlan0
,
ebtables -t nat -A PREROUTING -i eth0 -s $WLAN_MAC -j dnat --to-destination $LAN_MAC
ebtables -t nat -A POSTROUTING -o eth0 -s $WLAN_MAC -j snat --to-source $LAN_MAC
ebtables -t nat -A PREROUTING -i eth0 --logical-in br0 -s $WLAN_MAC -j dnat --to-destination $LAN_MAC
ebtables -t nat -A POSTROUTING -o eth0 --logical-out br0 -s $WLAN_MAC -j snat --to-source $LAN_MAC
Хотя окно точки доступа никогда не теряет подключения к Интернету, arp-кеш маршрутизатора все еще смешивает MAC-адреса. Есть ли способ предотвратить это?
РЕДАКТИРОВАТЬ
Я смог неуклюже решить эту проблему, установив MAC-адрес wlan0
к тому же MAC, что и eth0
, Мне не нравится это решение, и я хочу, чтобы оно работало без изменения MAC wlan0
непосредственно.
1 ответ
Решено, мне пришлось использовать arptables для манипулирования пакетами, которые содержали wlan0 mac, к eth0 mac.