2

Я использую Raspberry Pi на лодке для регистрации различных датчиков, а также в качестве точки доступа к Интернету на лодке. У меня есть USB-адаптер Wi-Fi с внешней антенной, установленной на мачте. У меня также есть модем 4G, опять же с внешней антенной, с подключением Ethernet обратно к Raspberry pi. Я смог использовать iptables для создания трансляции сетевых адресов для совместного использования описанных выше подключений WiFi на внутреннем устройстве Wi-Fi Raspberry Pi 3.

Однако в некоторых общественных точках доступа Wi-Fi постоянно отключается. Мои исследования показали, что общедоступная точка доступа Wi-Fi, вероятно, просматривает MAC-адрес устройств, подключенных к моей локальной точке доступа, и обнаруживает, что она не совпадает с MAC-адресом устройства USB, на котором она аутентифицировалась, и поэтому де-аутентифицирует USB устройство.

Я понимаю, что можно использовать режим WDS или 4 адреса, если бы я контролировал Общедоступную точку доступа, которая имеет соединение Wi-Fi, но это явно невозможно.

Я исследовал использование ebtables, но вы не можете подключить Wi-Fi-устройство STA к виртуальному мосту, если оно не использует режим 4 Address.

Я уверен, что должна быть возможность эмулировать то, что описано в инструкциях по Wi-Fi TP Link:

«Когда Range Extender работает в универсальном режиме:

В этом режиме Range Extender заменит MAC-адреса всех своих клиентов на собственные MAC-адреса RE ".

Я не могу найти ничего, что описывает, как добиться этого с помощью дистрибутива Linux.

Если кто-нибудь знает, как мне достичь того, что описано в Универсальном Режиме выше, я был бы благодарен.

В качестве альтернативы, если есть какой-либо способ аутентификации каждого клиента в моей локальной точке доступа к общедоступной точке доступа Wi-Fi?

1 ответ1

2

Вы не можете (надежно) использовать мостовой режим с точками доступа, которые вы не контролируете. Использование режима повторителя (по сути 1:1 NAT MAC-адресов) потребует нетривиальных усилий. Это также означает, что вам придется входить в систему отдельно на каждом устройстве.

Вместо этого вам нужен NAT. Самое простое решение - просто использовать что-то вроде этого:

iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE

Кроме того, вам нужно убедиться, что ваша внутренняя сеть использует другую IP-подсеть, чтобы не вызывать конфликтов.

С NAT у вас есть разные сегменты сети. Точка доступа никогда не узнает об устройствах, которые скрываются за вашим RasPi. Он не увидит никаких MAC-адресов, кроме wlan0. Вам нужно будет войти в систему только один раз за соединение.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .