Bridge usb0 a wlan0 při připojení telefonu

Pavouk106

  • *****
  • 2 395
    • Zobrazit profil
    • Můj blog
    • E-mail
Bridge usb0 a wlan0 při připojení telefonu
« kdy: 03. 07. 2015, 00:19:17 »
Ahoj ve spolek,

přicházím s lehce pokročilým dotazem.

Nejdřív popíšu cíl:
Chci připojit k RPi (raspbian) Wi-Fi kartu a mojí N900, na které spustím USB tether a přes Wi-Fi kartu si udělám hotspot. Zní to zbytečně složitě? Ano, máte pravdu :-) Nicméně poprosím o řešení problému, ne rozebírání proč to nedělám jinak.

Záhadným způsobem jsem se dokázal dostat až do následujícího stavu:
1. Wi-Fi karta vysílá, lze se na ni připojit, WPA2 ověření ok, IP adresu nedostanu (na wlan0 neběží dhcp server, ale má pevnou IP), ale po ručním přidělení adresy u klienta v klidu pinguju. Tohle je ok.
2. Po připojení mobilu se objeví interface usb0 a po spuštění tetheru dostane od mobilu IP adresu.
3. Při ručním vytvoření br0 přes usb0 a wlan0 vše jede jak po másle a jsem ve stavu, jakej chci - klient, kterej se připojí Wi-Fi dostane od mobilu IP adresu, DNS a všechny potřebný věci a je připojenej k netu.

Problém:
Když to chci zautomatizovat, dostanu se do stavu po bodu 2. Tedy wlan0 vysílá, usb0 má IP adresu, ale automatickej bridge se mi nesestavil. Osobně si myslím, že kvůli tomu, že usb0 v době startu systému neexistovalo (nebyl připojenej telefon). Já bych to ale rád dostal na takovou úroveň, že jen přijdu, připojim mobil na "nabíječku" (RPi), pustim tether a mam funkční hotspot. Tedy jde mi o automatický sestavení br0, jakmile se objeví/dostane IP adresu interface usb0 (a jeho likvidaci, jakmile usb0 zmizí). Případně sestavení funkčního bridge tak, aby si usb0 přidal sám, když je a odebral když neni.

Tedy dotaz:
Lze (a jak, v jakym souboru) sestavit bridge až když se ukáže konkrétní interface (řídíme se jménem, ne nějakým identifikátorem HW nebo IP adresou) a jeho smazání po zmizení té interface?
Lze sestavit bridge tak, aby si neexistující interface přidával za běhu sám, když se objeví? Něco jako sestavení SW RAID1 s jedním diskem a pozdější přidání druhýho (ale automatický)...

Můj /etc/network/interfaces
Kód: [Vybrat]
auto lo br0

iface lo inet loopback
iface eth0 inet dhcp
iface usb0 inet dhcp

#Wireless AP setup & bridge

iface wlan0 inet static
address 192.168.4.1
netmask 255.255.255.0

iface br0 inet dhcp
bridge_ports usb0 wlan0


Re:Bridge usb0 a wlan0 při připojení telefonu
« Odpověď #1 kdy: 03. 07. 2015, 12:06:55 »
Tak především, členská rozhraní bridge nesmějí mít IP adresu, ta patří jen na rozhraní br0. Zkus těm dílčím síťovkám dát jen řádek iface wlan0 inet static bez ničeho dalšího.

mhepp

Re:Bridge usb0 a wlan0 při připojení telefonu
« Odpověď #2 kdy: 03. 07. 2015, 12:31:24 »
inet static vyžaduje minimální konfiguraci. Lepší je použít manual:

Kód: [Vybrat]
iface usb0 inet manual
V tu chvíli se pouze nahodí iface, ale veškeré jeho nastavování je potlačeno.

Wololo

Re:Bridge usb0 a wlan0 při připojení telefonu
« Odpověď #3 kdy: 03. 07. 2015, 13:04:05 »
Mne se nikdy nepodarilo rozbehat wlan0 v bridge, teda pokud jsem nepouzil ebtables

https://wiki.debian.org/BridgeNetworkConnections#Bridging_with_a_wireless_NIC

tohle by ti snad mohlo pomoci: https://www.raspberrypi.org/forums/viewtopic.php?t=39269  je tam odkaz na tohle: http://sirlagz.net/2012/08/09/how-to-use-the-raspberry-pi-as-a-wireless-access-pointrouter-part-1/

Good luck a kdyz se ti to povede urcite nasdilej nejake strucne how to, budu rad a myslim, ze ne jenom ja :)

Re:Bridge usb0 a wlan0 při připojení telefonu
« Odpověď #4 kdy: 03. 07. 2015, 13:53:47 »
Problém je bridegovat Wi-Fi kartu v klientském režimu. V AP režimu s tím žádný problém není.


Pavouk106

  • *****
  • 2 395
    • Zobrazit profil
    • Můj blog
    • E-mail
Re:Bridge usb0 a wlan0 při připojení telefonu
« Odpověď #5 kdy: 03. 07. 2015, 18:07:48 »
Jak píše Ondra Caletka - není problém zbridgovat wlan0, kyž je nastavená jako AP (tzn. předtím spouštím hostapd).

Jinak k mému problému - když to spouštím s konfigurákem, který jsem posílal, dostane usb0 po připojení mobilu a zapnutí tetheru IP adresu od mobilu. Pak ručně sestavím bridge (brctl) a i bridge dostane IP adresu od mobilu (wlan0 jsem dodatečně nastavil na manual a nic jí nenastavil). Po připojení z PC dostanu taky IP adresu od mobilu (což chci) a funguju. Tento příspěvek je důkazem.

Když jsem do konfiguráku dal:
Kód: [Vybrat]
auto lo br0

iface lo inet loopback
iface eth0 inet static
address 192.168.4.1
netmask 255.255.255.0

iface usb0 inet manual

#Wireless AP setup & bridge

iface wlan0 inet manual

iface br0 inet dhcp
bridge_ports usb0 wlan0

tak se mi sice sestavuje bridge v pohodě až po připojení mobilu, ale zase si nevezme IP adresu...  KDyž jsem nastavil místo manual static, chovalo se to ještě divnějš... Budu ještě chvíli experimentovat, uvidíme.

Pavouk106

  • *****
  • 2 395
    • Zobrazit profil
    • Můj blog
    • E-mail
Re:Bridge usb0 a wlan0 při připojení telefonu
« Odpověď #6 kdy: 03. 07. 2015, 18:56:56 »
Jsem tu zpět. Vypadá to, že mobil dává jen jednu IP adresu (no, má jen jedno USB :-) ).

Když použiju konfiguraci
Kód: [Vybrat]
auto lo br0

iface lo inet loopback
iface eth0 inet static
address 192.168.4.1
netmask 255.255.255.0

iface usb0 inet dhcp
iface wlan0 inet manual
tak mobil dá rozhraní usb0 IP adresu 10.5.212.12, pak sestavím bridge, ten IP nedostane, pak se připojím z PC na wlan0 a PC dostane 10.5.212.13, ale zároveň RPi přijde o tu svojí (nedostanu se na něj ani z PC ani z mobilu, ale data přes něj dál tečou).

S nastavením
Kód: [Vybrat]
auto lo br0

iface lo inet loopback
iface eth0 inet static
address 192.168.4.1
netmask 255.255.255.0

iface usb0 inet manual
iface wlan0 inet manual

iface br0 inet dhcp
bridge_ports usb0 wlan0
se sestaví br0 i přes absenci usb0. Když pak připojím mobil a zapnu tether, nedostane IP adresu ani usb0, ani br0, ani klient připojující se na wlan0.

Udělám maškarádu, kašlu na to...