Как отключить изоляцию AP в Linux-мосте?

521
sid

Контекст : я пытаюсь настроить точку доступа WiFi на Raspberry Pi, установив мост через Ethernet-соединение.

Вопрос : Как отключить изоляцию точки доступа или клиента?

Предварительная работа : вот что я уже сделал.

  1. Установите следующие модули.

    apt-get install hostapd bridge-utils 
  2. Остановите службу hostapd.

    systemctl stop hostapd 
  3. Запретить порты eth0 / wlan0 от DHCP.

    vi /etc/dhcpcd.conf 
  4. Добавьте следующие строки в конец файла, но над всеми интерфейсными блоками.

    denyinterfaces wlan0 denyinterfaces eth0 
  5. Добавьте мост.

    brctl addbr br0 
  6. Подключиться eth0к br0.

    brctl addif br0 eth0 
  7. Добавьте к интерфейсам.

    vi /etc/network/interfaces auto br0 iface br0 inet manual bridge_ports eth0 wlan0 
  8. Настройте точку доступа.

    vi /etc/hostapd/hostapd.conf interface=wlan0 ssid=wifi-ssid hw_mode=g channel=7 wmm_enabled=0 macaddr_acl=0 auth_algs=1 ignore_broadcast_ssid=0 wpa=2 wpa_passphrase=passphrase wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP 
  9. Система очков, чтобы использовать этот файл.

    vi /etc/default/hostapd DAEMON_CONF="/etc/hostapd/hostapd.conf" 
  10. перезагружать

    systemctl start hostapd reboot 
2
К сведению: для создания разделов кода в списке используйте 2 * 4 = 8 пробелов перед кодом. zx485 5 лет назад 1
Спасибо за редактирование, а также! sid 5 лет назад 0

1 ответ на вопрос

1
dirkt

Глядя на hostapd.conf, он говорит

# Client isolation can be used to prevent low-level bridging of frames between # associated stations in the BSS. By default, this bridging is allowed. #ap_isolate=1 

Таким образом, изоляция клиента (клиенты WLAN на одной точке доступа могут общаться друг с другом) по умолчанию отключена. Если в вашей сборке hostapdон не включен по умолчанию, клиенты должны иметь возможность общаться друг с другом. Если это так, включите его в файле конфигурации.

Как вы определили, что клиенты WLAN не могут общаться друг с другом, и включена изоляция клиентов? Два клиента WLAN проверяют связь друг с другом?

Если ваш вопрос не об изоляции клиента, а о мосте между eth0и wlan0не работает: опять же, как вы проверили, что он не работает? Хост в локальной сети и хост в WLAN пингуют друг друга? Вы проверяли конфигурацию IP на каждом из этих хостов? Как хосты получают свои IP-адреса (с какого DHCP-сервера? Или статический?) Вы проверяли маршруты? Вы можете выполнить отладку tcpdump -ni interface_nameв окне терминала для каждого важного интерфейса и посмотреть, где застряли ваши пакеты.

Чтобы фактически изолировать ЛВС от WLAN, обычно используются ebtablesправила, и вряд ли вы случайно вставили правильные ... Так что вы уверены, что что-то в вашей настройке просто не работает.

Имеет смысл, что изоляция клиента по умолчанию отключена. sid 5 лет назад 0
Полное раскрытие - одно из устройств представляет собой литой динамик, а другое - телефон. Я попытался соединить устройство и телефон, и я получил сообщение об ошибке, говорящее, что это не могло говорить с динамиком. Вы правильно поняли вопрос. Это была наша клиентская изоляция. Хостам назначаются IP через DHCP. sid 5 лет назад 0
Итак, что нужно проверить: (1) Подключите два устройства, которыми вы полностью управляете, к точке доступа, например два ноутбука, посмотрите, могут ли они пропинговать друг друга. (2) Запустите wireshark на `wlan0` на AP, чтобы отладить попытку" спаривания ". Я не помню, появляется ли связь между клиентами; если это не так, (3a) замените одно устройство на то, которым вы управляете, и запустите wireshark на этом устройстве, чтобы как минимум отладить половину «спаривания», или (3b) используйте две точки доступа, соединенные через LAN, если у вас есть оборудование, запустите Wireshark на порт LAN. Мои деньги заключаются в «сопряжении» с предположениями, которые не приводятся, такими как локальный IP-адрес канала или многоадресная рассылка. dirkt 5 лет назад 0
Мне удалось выяснить, что динамик не может подключиться к точке доступа. Именно поэтому телефон и динамик не могли разговаривать друг с другом. Я установил точку доступа на своем ноутбуке с Windows, и я смог настроить ее правильно. Но я хотел, чтобы горячая точка бежала от Raspberry Pi. Итак, я искал другие ОС, которые изначально поддерживали точки доступа вместо того, чтобы вручную использовать hostapd. Я установил Ubuntu MATE, и теперь он работает. sid 5 лет назад 0
Бьюсь об заклад, Ubuntu MATE также использует hostapd, только с другой конфигурацией и, возможно, с другими драйверами Wi-Fi. Так что на вашем месте, и чтобы чему-то научиться, я бы внимательно посмотрел на то, что Ubuntu MATE делает по-другому. «Я просто установлю разные« ОС »(точнее, дистрибутивы), пока один не будет работать», попал в ловушку, потому что все дистрибутивы используют более или менее одно и то же программное обеспечение, просто настроенное немного по-разному. dirkt 5 лет назад 0