Еще осенью получил в наследство старый системник на базе Pentium III. Сделал из системника домашний сервер-роутер под Debian Linux для раздачи инета, качания торрентов и т.п. В том числе, хотелось раздавать по квартире беспроводную сеть. Для этого была куплена недорогая вайфай-карта от D-Link на базе чипа Ralink RT2561/R61. Но настройка оказалась не такой тривиальной, как хотелось.
Началось все с того, что карта наотрез отказывалась включать режим Master, жалуясь, что совсем не знает об этом режиме. Подолбавшись с этим около часа, решил плюнуть и настроить сеть в режиме Ad-Hoc – мы не гордые. В этом режиме карта завелась сразу, но тут в позу встал мой ноут с интеловским адаптером iwl3945. Эта железяка упорно не хотела работать в Ad-Hoc. В пору было отчаиваться. В форумах нагуглил посты о том, что сам чип rt61 умеет работать в Master – это DLink урезал функционал дешевого устройства средствами firmware. Поэкспериментировал с различными версиями firmware из репозитория дебиана – ничего путного не получилось. Режим Master я получил, но работало все очень нестабильно. Часы дальнейшего гугления дали свои результаты – нашелся пакет альтернативных драйверов для беспроводных адаптеров под Линукс – Compat Wireless. Страница для скачивания: http://wireless.kernel.org/en/users/Download. Для сборки стабильного релиза пришлось накатить ядро из нестабильной ветки дебиана, т.к. в стабильной все еще 2.6.26.
А теперь чуть поподробней про установку и настройку.
- Первым делом надо установить драйвер. Кстати, для этого необходимо иметь установленный пакет с заголовками от ядра – называется пакет linux-headers-2.6-686. Скачиваем архив с драйверами с указанного выше адреса. Распаковываем и делаем make в каталоге, куда распаковали. Ждем, пока все модули соберутся. Затем делаем make install и наблюдаем за процессом установки модулей-драйверов. Модули ставятся в папку /lib/modules/версия_ядра/updates, так что их можно потом спокойно удалить, если что. В процессе установки скрипт сделает depmod, что сделает свежеустановленные модули более приоритетными. После этого можно сделать update-initramfs -u, что добавит эти драйверы в загрузочный образ.После этого можно перегрузить машину. Все, у нас новые драйвера. Кстати, перацию по пересборке драйверов придется выполнять после каждого обновления или апгрейда ядра. Для пересборки нужно зайти в каталог с исходниками драйверов и выполнить make clean && make && make install.
- Для обслуживания беспроводной сети нужен софт, называющийся hostapd. Для корректной работы требуется версия из нестабильной ветки дебиана, а именно 0.6.9. Именно в этой версии добавили поддержку стандартного драйвера nl80211, то есть для любой вайфайной карты, а не только Atheros. На какие настройки стоит обратить внимание при конфигурировании hostapd:
- interface=wlan0 – интерфейс беспроводной сети
- bridge=br0 – беспроводная сеть объединена в бридж с проводной локалкой
- driver=nl80211 – выбран стандартный драйвер беспроводных карточек
- ssid=rigid – имя беспроводной сети
- country_code=RU – код страны определяет диапазон используемых каналов и ряд других правил
- hw_mode=g – режим работы сети
- channel=5 – выбранный канал (частота)
- macaddr_acl=1 управление доступом к беспроводной сети по мак-адресам
- accept_mac_file=/etc/hostapd/hostapd.accept – белый список мак-адресов. все, ктоне попал в этот список не смогут подключиться к сети
Есть еще куча настроек, в том числе и шифрование, но я не стал его включать. Итак достаточно защит
- Итак, hostapd предоставит беспроводную сеть, но надо выдать IP-адреса и другие сетевые настройки беспроводным и проводным пользователям. Этим у меня занимается dnsmasq. Эта программа так же есть в составе репозитория дебиан. Настраивается все достаточно просто. Вот ключевые параметры:
- no-resolv – не используем файл /etc/resolv.conf, днс-сервера укажем вручную
- server=x.y.z.a – днс-сервер, к которому буду перенаправлены запросы. можно указывать не один раз, если серверов много
- local=/local/ – суффикс локального домена, имена из которого будут искаться в /etc/hosts
- interface=br0 – интерфейс, на котором слушать
- domain=local – домен, который отдаем юзерам
- dhcp-range=192.168.254.2,192.168.254.254,255.255.255.0,12h – диапазон локальных адресов и время аренды
- dhcp-host=мак-адрес,айпи-адрес – конкретная привязка айпи к маку
- dhcp-host=мак-адрес – просто указываем что этот мак “свой”
- dhcp-option=option:router,192.168.254.1 – шлюз по умолчанию
- dhcp-ignore=#known – игнорировать запросы от неизвестных мак-адресов – дополнительная защита от левых халявщиков
Все, система готова к раздаче инета. Естественно, чтобы все это заработало, надо настроить соединение с инетом, тем способом, каким предполагает провайдер и настроить NAT средствами iptables.
Январь 15, 2010 в 13:13
Я с этой темой жутко натрахался! hostapd вообще не осилил, делал с помощью встроенной функции madwifi-драйвера, но в один прекрасный день оно отвалилось и я жутко переживал. Временно переключился на ad-hoc конфигурацию с usb-сетевушкой (на atheros pci-карточке всё отвалилось).
На новый год мне Марина подарила роутер DIR-320 и, фух, сейчас все хорошо. Я к нему ещё прицепил винт через переходник IDE->USB, поставил всякие штуки включая transmission-daemon и samba3.