LINUX.ORG.RU
ФорумAdmin

Обживание Wi-Fi точки доступа из PC: uPNP, просмотр количества соединений


2

0

Здравствуй, форум.

Ещё в 2007 году я из своей Wi-Fi PCI-платы сделал точку доступа. Запускается простой скрипт, и всё работает. Как выглядит моя сеть:

Телефонный кабель

ADSL-модем, встроенный в ADSL-роутер

ADSL-роутер «Интеркросс», работающий в режиме роутера

Кабель до PC

PC

PC раздаёт Wi-Fi

Ноутбук, с которого я отправляю вам сообщение

Вот так всё и работает. Способов поднять точку доступа у меня два: первый с помощью wireless-tools (iwconfig) + dpchd + правила iptables. Но так как этот способ везде называют не модным (нет поддержки WPA2), то есть ещё способ с hostapd + dnsmasq + а как раздавать Интернет я ещё не понял, так что пока только локалка, но не в этом вопрос. Wi-Fi-платка Atheros пятой серии, драйвер ath5k заменён на madwifi в связи с его предсказуемостью: просто работает. Дистрибутивы Linux: Debian, Gentoo, openSUSE.

Собственно, что мне не хватает. Запускаю я кошелёк Bitcoin, например. Он показывает 8 соединений P2P. Отключаю Wi-Fi, перевтыкаю Ethernet-кабель с PC в ноутбук. 200 соединений P2P! Как такое возможно?! Возможно, это и есть тот самый uPNP, который поддерживается роутером Интеркросс и всеми P2P-клиентами. Задача: добавить в мою точку доступа поддержку uPNP, и связать её с тем uPNP, которая в роутере.

Что мне ещё надо. Мне надо смотреть, кто соединился с моей точкой доступа (их количество), как на телефоне с Android, который у меня поддерживает до двух подключившихся, и показывает это количество на экране. Опционально ограничение скорости Интернета (но не локалки) для них. И ещё, если можно, статистику.

Где готовое решение (кроме телефона с Android)? Что читать?

И ещё: пробовал ли кто-нибудь kwlan, утилиту из KDE 3? Как поднимать точку доступа ей? А с помощью YaST в openSUSE?

★★★★★

Последнее исправление: ZenitharChampion (всего исправлений: 3)

а как раздавать Интернет я ещё не понял

Теми же самыми правилами iptables разве не работает?

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

Нет :-( Я сначала подумал, что это моя openSUSE такая умная, и надо как-то по-особому настраивать фаерволл, лучше всего из GUI. Просто там правил - на экран не помещаются. Загрузил Debian с абсолютно чистыми правилами iptables, но и там то же самое: с wireless-tools интернет раздаётся, с hostapd - нет. Вообще строчка iptables из руководства отличалась от моей, и не работала. Но и мой скрипт iptables тоже не работает (не работает только с hostapd).

Я доразберусь сам, надо наверное почитать о wpa_supplicant и tinyproxy. А вот uPNP я вообще не знаю как сделать. Но ведь сделали же как-то в роутере.

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

Нет

Странно, на моём роутере всё пашет. В /proc/sys/net/ipv4/ip_forward точно 1?

Но ведь сделали же как-то в роутере.

В роутерах на Линуксе обычно устанавливают miniupnpd или linuxigd. Они принимают upnp-трафик и открывают порты через iptables. Думаю, здесь надо установить один из этих демонов. Как лучше перенаправить модифицированный upnp-трафик ещё и на роутер, я не знаю, но в этом не было бы необходимости, если ADSL-модем перевести в режим моста (bridge) и поднимать PPPoE на компе, раздающем Wi-Fi.

gentoo_root ★★★★★
()

как раздавать Интернет я ещё не понял,

маскарад или snat

p.s. графомания - болезнь
</thread>

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

Да, там 1. Что-то я предоставил конфиги wireless-tools, но не предоставил hostapd:

hostapd.conf:

interface=ath0
driver=madwifi
ssid=ATHLON64-INET
auth_algs=1
wpa=0
wpa_psk_file=/etc/hostapd.wpa_psk
wpa_key_mgmt=WPA-PSK 
wpa_pairwise=CCMP TKIP
rsn_pairwise=CCMP

dosmasq.conf:

interface=ath0
dhcp-range=192.168.0.2,192.168.0.255,12h

Собственно, всё раздаётся, ноутбук получает IP. Интернета только нет. Я почему решил что проблема в openSUSE: для dnsmasq пришлось открывать порт в фаерволле. Интернет раздаётся теми же правилами iptables, что по ссылке на конфиг wireless-tools, также пробовал строчку из мануала:

iptables -t nat -A POSTROUTING --out-interface eth0 -j MASQUERADE

Одна, вместо трёх у меня. Или такую:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Толку нет: не работает. Буду перечитывать мануалы, и пробовать сделать br0. Некоторые делают, и у них всё работает.

Спасибо за названия демонов uPNP, буду искать по этим ключевым словам.

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

Вот так было:

iptables -F
iptables -t nat -F
iptables -A FORWARD -i ath0 -s 192.168.2.0/255.255.255.0 -j ACCEPT
iptables -A FORWARD -i eth0 -d 192.168.1.0/255.255.255.0 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

И как бы работает, но не с hostapd.

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

-s 192.168.2.0/255.255.255.0

dhcp-range=192.168.0.2,192.168.0.255,12h

Что-то здесь не так с адресами, не так ли? Видимо, hostapd создаёт подсеть 192.168.0.0/24, а wireless-tools — 192.168.2.0/24. В iptables открыта 192.168.2.0/24, но закрыта 192.168.0.0/24. Надо пофиксить либо конфиги hostapd и dnsmasq, либо iptables.

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

> Видимо, hostapd создаёт подсеть 192.168.0.0/24, а wireless-tools — 192.168.2.0/24.

Ух ты. Но вряд ли. Ноутбук получает IP 192.168.0.2, и иногда какой-то непонятный, которого в конфиге DHCP вообще не было.

Это не основная проблема - я только начал пробовать hostapd и не ожидал, что он заработает сразу.

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

А основную проблему я щас буду пробовать, только роутер в режим Bridge переключу. Буду добиваться 200 соединений Bitcoin-кошелька.

ZenitharChampion ★★★★★
() автор топика

Троллить на лоре научился, судя по двум звёздам, а настраивать iptables - нет?

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

Ух ты. Но вряд ли. Ноутбук получает IP 192.168.0.2, и иногда какой-то непонятный, которого в конфиге DHCP вообще не было.

По крайней мере, в фаерволе открыта сеть 192.168.2.0/24. ЕМНИП, можно сделать так:

iptables -A FORWARD -i ath0 -j ACCEPT

… и не париться с адресами.

иногда какой-то непонятный

Скорее всего, 169.254.*.*: http://ru.wikipedia.org/wiki/Zeroconf

Протокол используется, если клиент не смог достучаться до DHCP-сервера.

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

Ноутбук получает IP 192.168.0.2, и иногда какой-то непонятный, которого в конфиге DHCP вообще не было.

Небось из подсети 169.254?

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

Когда нет NAT, либо есть uPNP, количество соединений именно такое. Так что пусть будет 200. Или ты про 200 юзеров? Так их гораздо больше: обычно кошелёк запускается редко.

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

теперь буду отключать, чтобы всегда получать предсказуемый IP.

Ты хотел сказать «чтобы не знать, работает ли dhcp»?

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