17.04.2020 18:39, Nick Kostirya wrote:
> Привет.
> Подскажите, пожалуйста, как правильно указывать default router для wlan со
> статической ip.
>
> В /etc/rc.conf прописано.
> defaultrouter="192.168.0.1"
> ifconfig_wlan0="WPA inet 192.168.0.50 netmask 255.255.255.0"
>
> На момент запуска routing wpa_supplicant еще не успевает поднять сеть и
> получаю в лог:
> add net default: gateway 192.168.0.1 fib 0: Network is unreachable
>
> DHCP с привязкой к MAC использовать не хочется, так как это USB-WiFi их
> всегда путаешь.
К сожалению, из штатных средств есть только возможность создать скрипт
/etc/start_if.wlan0
такого содержания:
#!/bin/sh
waitfor_wlanif() {
local _i _s
ifconfig_up "$1"
_i=30
while [ $_i -gt 0 ]
do
_s=$(ifconfig "$1" | awk '/status:/ {print $2}')
[ "$_s" = associated ] && break
_i=$(($_i - 1))
sleep 1
done
return 0
}
waitfor_wlanif "$1"
# EOF
При загрузке, обнаружив скрипт с таким именем, системные скрипты вызывают его
через команду "точка" .
Поэтому у него есть доступ к внутренним функциям системной библиотеки скриптов
и он может вызвать функцию ifconfig_up для интерфейса, которая уже штатным
образом
конфигурирует интерфейс и запускает для него wpa_supplicant как обычно.
После этого скрипт до 30 секунд ждёт, пока суппликант не подключится к точке
доступа
и после этого уже маршруты добавятся нормально.
У этого решения есть небольшой косячок: ifconfig_up будет вызван повторно
штатными
скриптами и запустит wpa_supplicant ещё раз, но вторая копия увидит, что для
интерфейса
суппликант уже запущен, ругнётся на консоль и выйдет, так что мешать не будет.
_______________________________________________
freebsd mailing list
[email protected]
http://mailman.uafug.org.ua/mailman/listinfo/freebsd