LINUX.ORG.RU

create_ap, свисток и траблы

 , ,


0

1

Значит, есть неттоп на атоме, на нём Arch. Через eth0 связан с сетью, через wlan0 раздаёт доступ при помощи небезызвестного скрипта create_ap. Для этого используется д-линковский адаптер:

# lsusb
Bus 003 Device 002: ID 2001:330f D-Link Corp.
# systemctl status create_ap
● create_ap.service - Create AP Service
   Loaded: loaded (/usr/lib/systemd/system/create_ap.service; enabled; vendor preset: disabled)
   Active: active (running) since Sun 2015-10-18 13:44:19 MSK; 13s ago
 Main PID: 1409 (bash)
   CGroup: /system.slice/create_ap.service
           ├─1409 /usr/bin/bash create_ap wlan0 eth0 my_netname my_passwd -w 2 -c 13 --no-virt --driver=rtl871xdrv
           ├─1432 dnsmasq -C /tmp/create_ap.wlan0.conf.jvKwBmVu/dnsmasq.conf -x /tmp/create_ap.wlan0.conf.jvKwBmVu/dnsmasq.pid
           └─1433 hostapd /tmp/create_ap.wlan0.conf.jvKwBmVu/hostapd.conf

Эта конструкция работает, хотя и не без глюков, уже довольно давно, но в последние пару дней на ровном месте началось полное непотребство: при загрузке wifi включается, можно подключиться по ssh, однако

# ping 8.8.8.8
connect: Network is unreachable
Как выяснило следствие, лежит hostapd:
# journalctl --unit=hostapd
...
Oct 16 23:45:13 regulus systemd[1]: Starting Hostapd IEEE 802.11 AP, IEEE 802.1X/WPA/WPA2/EAP/RADIUS Authenticator...
Oct 16 23:45:13 regulus systemd[1]: hostapd.service: Control process exited, code=exited status=1
Oct 16 23:45:13 regulus systemd[1]: Failed to start Hostapd IEEE 802.11 AP, IEEE 802.1X/WPA/WPA2/EAP/RADIUS Authenticator.
Oct 16 23:45:13 regulus systemd[1]: hostapd.service: Unit entered failed state.
Oct 16 23:45:13 regulus systemd[1]: hostapd.service: Failed with result 'exit-code'.
Oct 16 23:45:14 regulus hostapd[342]: rmdir[ctrl_interface]: No such file or directory
Oct 16 23:45:14 regulus hostapd[342]: Configuration file: /etc/hostapd/hostapd.conf
Oct 16 23:45:14 regulus hostapd[342]: nl80211 driver initialization failed.
...

Это наиболее вразумительное сообщение с предыдущей загрузки. Кстати, nl80211 у меня вообще не используется, как я понял.

Вся эта канитель сподвигла меня на окончательное решение вопроса с точкой доступа. Принимаю рекомендации. Менять железо и систему пока не планирую.

Вы уж определитесь, или у вас hostapd лежит, или вафля работает, но нет роутинга.

Axon ★★★★★ ()
Ответ на: комментарий от Axon

Проверил сейчас ещё раз (пока что всё работает, тьфу-тьфу) и понял, что hostapd пытается запуститься дважды: из-под самого systemd (ошибку выше привёл) и из-под моего скрипта create_ap (успешно). Это меня и сбило с толку. Выходит, глюк надо искать в направлении роутинга.

al_exquemelin ★★★ ()
Ответ на: комментарий от al_exquemelin

Именно. Добавьте в ОП выхлоп iptables -S. И ip route print в присутствии проблемы.

Axon ★★★★★ ()
Последнее исправление: Axon (всего исправлений: 1)
Ответ на: комментарий от Axon

Упс, сглазил

Долго ждать не пришлось.

# iptables -S
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-A INPUT -p udp -m udp --dport 67 -j ACCEPT
-A INPUT -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 53 -j ACCEPT
-A FORWARD -d 192.168.12.0/24 -i eth0 -j ACCEPT
-A FORWARD -s 192.168.12.0/24 -i wlan0 -j ACCEPT

ip route print не знает, есть

# ip route show
192.168.12.0/24 dev wlan0  proto kernel  scope link  src 192.168.12.1

al_exquemelin ★★★ ()
Ответ на: Упс, сглазил от al_exquemelin

Дык у вас дефолтного маршрута нет. Естественно, пакеты наружу не идут.

ip route add default via $YOUR_WAN_IP dev eth0
И надо понять куда он девается.

Axon ★★★★★ ()
Последнее исправление: Axon (всего исправлений: 1)
Ответ на: комментарий от Axon

Там dhcpcd падает, я сейчас заметил. Если перезапустить (получилось со второго раза), доступ в интернет появляется.

//----
Oct 19 23:44:06 regulus dhcpcd[5068]: eth0: offered 172.18.27.41 from 172.18.0.1
Oct 19 23:44:06 regulus dhcpcd[5068]: eth0: probing static address 172.18.27.41/19
Oct 19 23:44:06 regulus dhcpcd[5068]: eth0: ignoring offer of 192.168.0.166 from 192.168.0.254
Oct 19 23:44:06 regulus dhcpcd[5068]: eth0: NAK: from 192.168.0.254
Oct 19 23:44:06 regulus dhcpcd[5068]: eth0: soliciting a DHCP lease
Oct 19 23:44:06 regulus dhcpcd[5068]: eth0: offered 172.18.27.41 from 172.18.0.1
Oct 19 23:44:06 regulus dhcpcd[5068]: eth0: ignoring offer of 192.168.0.166 from 192.168.0.254
Oct 19 23:44:06 regulus dhcpcd[5068]: eth0: probing static address 172.18.27.41/19
Oct 19 23:44:06 regulus dhcpcd[5068]: eth0: NAK: from 192.168.0.254
Oct 19 23:44:06 regulus dhcpcd[5068]: eth0: soliciting a DHCP lease
Oct 19 23:44:06 regulus dhcpcd[5068]: eth0: offered 172.18.27.41 from 172.18.0.1
Oct 19 23:44:06 regulus dhcpcd[5068]: eth0: probing static address 172.18.27.41/19
Oct 19 23:44:06 regulus dhcpcd[5068]: eth0: ignoring offer of 192.168.0.166 from 192.168.0.254
Oct 19 23:44:06 regulus dhcpcd[5068]: eth0: NAK: from 192.168.0.254
//^^^^ подобное повторяется много раз
Oct 19 23:44:06 regulus kernel: dhcpcd[5068]: segfault at ec ip 0805df45 sp bff251c0 error 4 in dhcpcd[8048000+46000]
Oct 19 23:44:06 regulus systemd[1]: dhcpcd.service: Main process exited, code=dumped, status=11/SEGV
Oct 19 23:44:06 regulus dhcpcd[5255]: sending signal TERM to pid 5068
Oct 19 23:44:06 regulus dhcpcd[5255]: dhcpcd not running
Oct 19 23:44:06 regulus dhcpcd[5255]: dhcpcd not running
Oct 19 23:44:06 regulus dhcpcd[5255]: sending signal TERM to pid 5068
Oct 19 23:44:06 regulus systemd[1]: dhcpcd.service: Control process exited, code=exited status=1
Oct 19 23:44:06 regulus systemd[1]: dhcpcd.service: Unit entered failed state.
Oct 19 23:44:06 regulus systemd[1]: dhcpcd.service: Failed with result 'exit-code'.
Oct 19 23:44:06 regulus systemd-coredump[5254]: Process 5068 (dhcpcd) of user 0 dumped core.

В «рабочем положении» вот так, кстати:

# ip route show
default via 172.18.0.1 dev eth0  metric 202 
172.18.0.0/19 dev eth0  proto kernel  scope link  src 172.18.27.41  metric 202 
192.168.12.0/24 dev wlan0  proto kernel  scope link  src 192.168.12.1

al_exquemelin ★★★ ()
Последнее исправление: al_exquemelin (всего исправлений: 1)
Ответ на: комментарий от al_exquemelin

eth0: NAK: from 192.168.0.254

Кто такой 192.168.0.254?

Axon ★★★★★ ()
Ответ на: комментарий от Axon

Сам не понял. За eth0 вообще не должно быть таких адресов, там 172.18.x.x.

al_exquemelin ★★★ ()
Ответ на: комментарий от al_exquemelin

Если в вашей сети 100% ничего лишнего нет, то наиболее вероятный вариант - хитрожопый сосед. Влез на ваш порт и получает ваш ip раньше вас, отсюда конфликт адресов и отлуп. Звоните провайдеру, пусть ищет и карает засранца.

Axon ★★★★★ ()
Последнее исправление: Axon (всего исправлений: 1)
Ответ на: комментарий от Axon

Влез на ваш порт и получает ваш ip раньше вас

Не думаю. В сущности, eth0 у меня смотрит в околоуниверситетскую локалку, в ней адреса раздаются по макам. Кстати, надо проверить, привязан ли к моему маку конкретный IP, или дают первый попавшийся свободный.

al_exquemelin ★★★ ()

Значится, ещё надоедливый глюк. Соединение по wifi не рвётся, но уровень сигнала падает почти до минимума. Соответственно, доступ в интернет пропадает. Закономерностей не нашёл, иногда такая ерунда сразу после загрузки арча, иногда — после подключения второго клиента. В логах что-то вроде следующего:

Oct 22 19:36:08 regulus hostapd[379]: wlan0: STA 60:36:dd:f0:a8:bb IEEE 802.11: associated
Oct 22 19:36:08 regulus hostapd[379]: wlan0: STA 60:36:dd:f0:a8:bb WPA: received EAPOL-Key 2/4 Pairwise with unexpected replay counter
Oct 22 19:36:08 regulus hostapd[379]: wlan0: STA 60:36:dd:f0:a8:bb RADIUS: starting accounting session 56290FC1-00000005
Oct 22 19:36:08 regulus hostapd[379]: wlan0: STA 60:36:dd:f0:a8:bb WPA: pairwise key handshake completed (RSN)
Oct 22 19:36:08 regulus dnsmasq-dhcp[378]: DHCPREQUEST(wlan0) 192.168.12.208 60:36:dd:f0:a8:bb
Oct 22 19:36:08 regulus dnsmasq-dhcp[378]: DHCPACK(wlan0) 192.168.12.208 60:36:dd:f0:a8:bb
Oct 22 19:36:08 regulus bash[255]: Configuration file: /tmp/create_ap.wlan0.conf.fdu9MbDD/hostapd.conf
Oct 22 19:36:08 regulus bash[255]: drv->ifindex=2
Oct 22 19:36:08 regulus bash[255]: l2_sock_recv==l2_sock_xmit=0x0x985da48
Oct 22 19:36:08 regulus bash[255]: +rtl871x_sta_deauth_ops, ff:ff:ff:ff:ff:ff is deauth, reason=2
Oct 22 19:36:08 regulus bash[255]: rtl871x_set_key_ops
Oct 22 19:36:08 regulus bash[255]: rtl871x_set_key_ops
Oct 22 19:36:08 regulus bash[255]: rtl871x_set_key_ops
Oct 22 19:36:08 regulus bash[255]: rtl871x_set_key_ops
Oct 22 19:36:08 regulus bash[255]: Using interface wlan0 with hwaddr c0:a0:bb:57:a7:a1 and ssid 'my_netname'
Oct 22 19:36:08 regulus bash[255]: random: Only 15/20 bytes of strong random data available from /dev/random
Oct 22 19:36:08 regulus bash[255]: random: Not enough entropy pool available for secure operations
Oct 22 19:36:08 regulus bash[255]: WPA: Not enough entropy in random pool for secure operations - update keys later when the first station connects
Oct 22 19:36:08 regulus bash[255]: rtl871x_set_key_ops
Oct 22 19:36:08 regulus bash[255]: rtl871x_set_beacon_ops
Oct 22 19:36:08 regulus bash[255]: rtl871x_set_hidden_ssid_ops
Oct 22 19:36:08 regulus bash[255]: +rtl871x_get_sta_wpaie, 60:36:dd:f0:a8:bb is sta's address
Oct 22 19:36:08 regulus bash[255]: wlan0: STA 60:36:dd:f0:a8:bb IEEE 802.11: associated
Oct 22 19:36:08 regulus bash[255]: wlan0: STA 60:36:dd:f0:a8:bb WPA: pairwise key handshake completed (RSN)
Oct 22 19:36:08 regulus bash[255]: wlan0: STA 60:36:dd:f0:a8:bb IEEE 802.11: disassociated
Oct 22 19:36:08 regulus bash[255]: wlan0: AP-STA-DISCONNECTED 60:36:dd:f0:a8:bb
Oct 22 19:36:08 regulus bash[255]: rtl871x_set_key_ops
Oct 22 19:36:08 regulus bash[255]: rtl871x_set_key_ops
Oct 22 19:36:08 regulus bash[255]: +rtl871x_sta_remove_ops, 60:36:dd:f0:a8:bb is sta address removed
Oct 22 19:36:08 regulus bash[255]: +rtl871x_get_sta_wpaie, 60:36:dd:f0:a8:bb is sta's address
Oct 22 19:36:08 regulus bash[255]: wlan0: STA 60:36:dd:f0:a8:bb IEEE 802.11: associated
...
Oct 22 19:36:09 regulus bash[255]: rtl871x_set_key_ops
Oct 22 19:36:09 regulus bash[255]: rtl871x_set_key_ops
Oct 22 19:36:09 regulus bash[255]: +rtl871x_send_eapol
Oct 22 19:36:09 regulus bash[255]: +rtl871x_send_eapol
Oct 22 19:36:09 regulus bash[255]: rtl871x_set_key_ops
Oct 22 19:36:08 regulus bash[255]: rtl871x_set_key_ops
Oct 22 19:36:08 regulus bash[255]: wlan0: AP-STA-CONNECTED 60:36:dd:f0:a8:bb
Oct 22 19:36:08 regulus bash[255]: wlan0: STA 60:36:dd:f0:a8:bb RADIUS: starting accounting session 56290FC1-00000001
Oct 22 19:36:08 regulus bash[255]: wlan0: STA 60:36:dd:f0:a8:bb WPA: pairwise key handshake completed (RSN)
Oct 22 19:36:08 regulus bash[255]: wlan0: STA 60:36:dd:f0:a8:bb IEEE 802.11: disassociated
Oct 22 19:36:08 regulus bash[255]: wlan0: AP-STA-DISCONNECTED 60:36:dd:f0:a8:bb
На всякий случай призываю Axon.

al_exquemelin ★★★ ()
Ответ на: комментарий от al_exquemelin

В логах не вижу ничего особенного. Проблемы с сигналом остаются если поместить клиентский девайс рядом с антенной? Попробуйте посканить эфир чем-нибудь вроде WiFi Analyzer'а, может, у вас сосед из-за стены на вашем канале вещает вдвое сильнее.

Axon ★★★★★ ()
Ответ на: комментарий от Axon

Так это лог на момент с нерабочим соединением. Этот цикл auth/deauth повторяется в логах, а дальше компьютер пристрелили, чтоб не мучился перезагрузили.

если поместить клиентский девайс рядом с антенной

Да вроде как ничего не меняется. Тут расстояния копеечные, 2-5 метров в пределах комнаты.

посканить эфир чем-нибудь вроде WiFi Analyzer'а

Надо бы. Когда настраивал create_ap, как раз сканировал и выбрал 13-й канал, как слабо загруженный. Если соберусь всё-таки менять железо, буду выбирать что-нибудь на диапазон 5 ГГц.

al_exquemelin ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.