Так как два прошлых вечера были проведены в войне за wi-fi, то неплохо бы изложить, что я понял, пока оно все в голове держится.
Речь пойдет про PCI и USB устройства. И про режимы, которые полезны на домашнем роутере.
[+] под Линуксом дрова есть для большинства существующих устройств. И часто уже в ядре/комплекте.
[+] на крайний случай можно прикрутить дрова для windows, через
ndiswrapper. Главное к 64-линуксу прикручивать дрова от 64-битной винды. Лучше всего от XP
[-] правда это все касается работы «клиентом». То есть в основном, как managed в паре с access point. Но так как нам нужно раздавать коннекты по wi-fi, а не подключаться к другим, то нам это не слишком полезно. В режиме access point, он же infrastructure, он же master все подряд работать не будут из-за своих ограничений: надо же как-нибудь заставить народ покупать отдельные точки доступа. С режимом ad-hoc — подключение точка-к-точке уже лучше, но тут мы переходим к следущему пункту
[-] не все линуксовые дрова держат master, а у некоторых даже с ad-hoc проблемы. На крайний случай можно ndiswrapper и виндовые дрова доставить.
Режим access point намного предпочтительнее ad-hoc хотя бы по двум причинам: безопастность ad-hoc ограничена wep и wpa-null и то wpa-null не всегда поднимется. Для wpa2 нужен именно access point. Да и скорость по ad-hoc пониже, как пишут.
Так что если вокруг вас сидят малолетние хацкеры, а инет стоит денег, то wep — это то же самое, что никакой защиты.
[-?] не все (а точнее почти никакие) wi-fi драйвера позволяют запихать себя в сетевой мост (bridge). Об этом прямо написано в Linux Bridging FAQ. Правда, также сама суть сетевых мостов не всем нравится и в интернете можно найти разные мнения о том как лучше и безопаснее объединять подсети вместе.
Вообще, сетевой мост позволяет легко и просто объединять разные сетевые интерфейсы по типу виртуального хаба, чтобы они думали, что находятся в одной подсети.
Например, у меня интерфейс eth1 — локалка к которой подрублен домашний комп и HTPC объединен вместе с tap0 — туннель openvpn в интерфейс br0, который потом и используется во всех настройках.
В итогее имеем, что если я подниму VPN-туннель, то я из любого места попадаю в локалку и не вижу абсолютно никакой разницы (кроме скорости интернета, где этот туннель проложен), как будто я физически подрубился проводом.
И если теперь в этот туннель добавить беспроводной интерфейс (wlan0 или ath0 или другой в зависимости от драйвера), то клиенты wifi будут сразу оказываться в одной локалке со всеми и не испытывать никаких проблем.
Ну а если в мост интерфейс не загоняется, то придется настраивать ему роутинг отдельно: свои правила в iptables, возможно ip route2 и не забыть настроить программы, которые завязаны на интерфейсы (типа DHCP сервера)
Практически единственные устройства, которые отлично уживаются в мосту — это устройства на чипе prism. Например в моем бывшем роутере ASUS был чип именно от prism. Поэтому он там был в одном мосту со всеми. И работал во всех известных науке режимах.
Как же узнать, чего можно добится от устройства в Линуксе.
Тут первое дело надо сходить на сайт
Linux Wireless и посмотреть список
поддерживаемых драйверов и устройств
Например, донгл Z-202EE, который был у меня, сделан на чипе zd1211rw и поэтому не держит режим access point. А сравнение списка с каталогом городских магазинов родило только NetGear WG111EE.
Плюс еще есть
проект madwifi и его
список совместимости.
Я все таки поднял Z-202 в режимер ad-hoc с шифрованием wep и настроил все службы, но выводы для себя сделал следущие: если дома не нашлось рабочего донгла или карточки и нет уверенности в выборе и нет возможности взять на время, потестировать, то лучше пойти и купить отдельную точку доступа. Она сама все разрулит и к другим компьютерам будет подключаться по сети, так что ничего там несовместимого уже не будет. По здешним ценам, некоторые хорошие usb и pci устройства по цене сравнимы со средними точками доступа.
Ну и ключевые слова по настройке:
- ndiswrapper
- iwconfig
- iwlist wlan0 scan
пример /etc/network/interfaces с включенным wep:
auto wlan0
iface wlan0 inet static
address 10.6.11.1
network 10.6.11.0
netmask 255.255.255.0
broadcast 10.6.11.255
wireless-mode ad-hoc
#имя точки доступа
wireless-essid coolname
wireless-channel 11
wireless-rate auto
#секретный ключик (hex). Обычно 80 бит в режиме ad-hoc
wireless-key 05aa18ab04
#или (ascii). Тоже 80 бит
#никогда так не делайте
#wireless-key s:hello
#совсем без защиты
#wireless-key off
либо так:
sudo iwconfig wlan0 mode ad-hoc essid coolname rate auto channel 11 key 05aa18ab04
Такой же конфиг на стороне клиента. Только IP-адреса другие или вообще DHCP