Конфигурация BSSID Hostapd

У нас есть устройство, которое создает точку доступа, используя MAC-адрес wlan1 в качестве BSSID. Мы пытаемся изменить этот BSSID по умолчанию, и нам каким-то образом это удается, но, похоже, наши изменения не влияют на то, что клиенты видят как BSSID для сети.

Вопрос в том, как правильно настроить hostapd для запуска точки доступа с нужным нам BSSID.

На стороне сервера

Мы видим, что наша конфигурация влияет на все 3 места, где мы ожидаем, что она будет иметь место.

конфигурационный файл hostapd

# ctrl_interface=/var/run/hostapd
ctrl_interface_group=0
interface=wlan1
driver=nl80211
country_code=DK

# WPA2-AES encryption
ssid=ap-wlan1-ccee
bssid=02:03:7f:d7:00:04
auth_algs=1
wpa=2
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
wpa_passphrase=password-wpa2aes
max_num_sta=5

# IEEE 802.11ac
hw_mode=g
channel=7
ieee80211ac=1
ieee80211n=1

logger_stdout=-1
logger_stdout_level=2

Вывод hostapd работает /usr/sbin/hostapd /etc/hostapd_wlan1.conf

Configuration file: /etc/hostapd_wlan1.conf
wlan1: interface state UNINITIALIZED->COUNTRY_UPDATE
Using interface wlan1 with hwaddr 02:03:7f:d7:00:04 and ssid "ap-wlan1-ccee"
wlan1: interface state COUNTRY_UPDATE->ENABLED
wlan1: AP-ENABLED

ifconfig wlan1

wlan1     Link encap:Ethernet  HWaddr 02:03:7F:D7:00:04
          inet addr:192.168.46.30  Bcast:192.168.46.255  Mask:255.255.255.0
          inet6 addr: fe80::3:7fff:fed7:4%2126838504/64 Scope:Link
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:14 errors:0 dropped:0 overruns:0 frame:0
          TX packets:63 errors:0 dropped:15 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1890 (1.8 KiB)  TX bytes:5588 (5.4 KiB)

/sys/класс/сеть/wlan1/адрес

02:03:7f:d7:00:04

На стороне клиента

Сервер предоставляет неправильный BSSID, поэтому согласование не выполняется.

Результат WirelessNetView

WirelessNetView

Результат Wireshark

Мы видим, что сервер отправляет с правильного адреса, но клиент отвечает не на тот.


person Edu Ponz    schedule 15.08.2018    source источник


Ответы (2)


Наконец, причиной проблемы была комбинация аппаратного программного обеспечения, которое мы используем. Мы запускаем образ Yocto Linux, запеченный с помощью Digi Embedded Yocto 2.0 в модуле Digi cc6ul. Эти модули поставляются с U-Boot, который имеет 3 переменные для MAC-адресов виртуального интерфейса: wlan1adrr, wlan2adrr и wlan3adrr. Оказывается, на cc6ul переменная wlan1adrr используется для присвоения MAC-адреса интерфейсу p2p0, тогда как для присвоения MAC-адреса интерфейсу wlan1 используется переменная wlan2addr. Кроме того, пользовательская конфигурация hostapd для BSSID не переопределяет широковещательный BSSID, который непосредственно является значением wlan2adrr. Решение - просто изменить переменную wlan2addr U-Boot, тогда после перезагрузки все работает!

person Edu Ponz    schedule 24.08.2018

Я думаю, журнал показывает адреса src и dst, а не BSSID. поэтому летнее время совпало с 02:03:7f:d7:00:04. Поэтому адрес, который вы видите на стороне клиента, является mac-адресом клиента. Если вам нужно расшифровать BSSID, вам может потребоваться захват беспроводных пакетов.

person Deep    schedule 22.08.2018
comment
Я не совсем уверен, что понимаю, что вы говорите. На Wireshark вы можете видеть, что сначала сервер AP отправляет пакет нашему клиенту (это процесс рукопожатия). Это сообщение 1 из 4 отправляется с адреса, на который мы изменились. a4:17:31:19:04:03 — это клиент, с которого мы пытаемся подключиться. Однако клиент отвечает на неправильный адрес назначения (который соответствует этому адресу по умолчанию интерфейса wlan1 сервера), который является BSSID, который мы видим при сканировании сети. Почему-то сервер вещает на BSSID, но отправляет пакеты с другого адреса. - person Edu Ponz; 22.08.2018