Не так давно уже публиковалось краткое руководство -
Шлюз на FreeBSD за полчаса . А в данной заметке я хотел бы рассмотреть более частный случай - точка доступа Wi-Fi на FreeBSD.
Почему именно на FreeBSD? Сложилось так, что в наличии у меня есть только Wi-Fi-адаптер D-link DWA-510 (даже два), но в Linux в режиме AP с модулем RT61 (драйвер для чипа RT2561) есть некоторая достаточно существенная проблема. Всё работает достаточно хорошо и стабильно, кроме локальной сети. В локальной же сети плавающая ошибка - периодически пропадает связь с другими компьютерами из этой же локальной сети. Причём, со шлюзом связь есть всегда. С шлюза все компы тоже доступны. Помогает только перезагрузка шлюза или ожидание чуда (связь может появиться через 5 минут, а может и через 30). Соответственно, в офисе это будет сущий ад, если достаточно много клиентов работает по Wi-Fi.
Сразу замечу, что поднятие точки доступа под *BSD - задача более сложная, чем то же самое под Linux. Так что, если кого проблема выше не касается, я бы рекомендовал выбирать именно Linux для этих целей.
Итак, я исхожу из того, что FreeBSD уже установлена и настроена по предыдущему мануалу. Версия FreeBSD 8.1. В 8-й ветке возник ряд особенностей и старые рецепты без нескольких поправок не подходили.
$ uname -a
FreeBSD 8.1-RELEASE FreeBSD 8.1-RELEASE #0: Mon Jul 19 02:55:53 UTC 2010 root@almeida.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC i386
Сразу после загрузки в ifconfig должен появиться интерфейс ral0 (драйвер от Ralink Technology, Corp):
# ifconfig ral0
ral0: flags=8802 metric 0 mtu 2290
ether 00:17:9a:80:9f:33
media: IEEE 802.11 Wireless Ethernet autoselect (autoselect)
status: no carrier
Если это так, в /etc/rc.conf дописываем следующее:
wlans_ral0="wlan0"
create_args_wlan0="wlanmode ap authmode wpa"
ifconfig_wlan0="inet 192.168.46.1/24 ssid FreeBSDap mode 11g channel 7 country RU "
hostapd_enable="YES"
А так же создаём файл /etc/hostapd.conf и в него помещаем оставшееся:
interface=wlan0
debug=0
ctrl_interface=/var/run/hostapd
ctrl_interface_group=wheel
wpa=3
wpa_key_mgmt=WPA-PSK
wpa_passphrase=YtgXdj1234 #(пароль любой, но чтобы не менее 8 символов!)
wpa_pairwise=TKIP CCMP
где ssid FreeBSDap - это название вашей точки доступа и wpa_passphrase=YtgXdj1234 - пароль для оной. 192.168.46.1 - само собой, ip-адрес точки доступа.
hostapd входит в базовую систему и установки не требует.
После перезагрузки вы должны получить нечто похожее:
# ifconfig ral0
ral0: flags=8843 metric 0 mtu 2290
ether 00:17:9a:80:9f:33
media: IEEE 802.11 Wireless Ethernet autoselect mode 11g
status: running
и
# ifconfig wlan0
wlan0: flags=8843 metric 0 mtu 1500
ether 00:17:9a:80:9f:33
inet 192.168.46.1 netmask 0xffffff00 broadcast 192.168.46.255
media: IEEE 802.11 Wireless Ethernet autoselect mode 11g
status: running
ssid FreeBSDap channel 7 (2442 MHz 11g) bssid 00:17:9a:80:9f:33
regdomain NONE country RU authmode WPA1+WPA2/802.11i privacy MIXED
deftxkey 2 TKIP 2:128-bit txpower 30 scanvalid 60 protmode CTS
dtimperiod 1 -dfs
Если ваши листинги похожи на мои, значит всё должно работать и нужно проверять на клиентах :)
Пока всё работает в боевом режиме (6 компьютеров + столько же вот-вот тоже добавятся). При возникновении каких-то сложностей обязательно отпишу тут или поправлю заметку.