FreeBSD

Agregacja linku, czyli WiFi i LAN jednocześnie

Posted by Maciej Suszko on April 14, 2012
FreeBSD / No Comments

O lagg(4) już dawno słyszałem, ale ponieważ nie wspierało WPA dla interfejsów WLAN do niego podpiętych, temat automatycznie trafił do kosza… Dzisiaj, niewiadomo dlaczego, zajrzałem do manuala w którym ani słowa o braku wsparcia dla WPA nie było, więc postanowiłem spróbować ponownie.

Celem było takie skonfigurowanie interfejsu WiFi z WPA2 oraz połączenia kablowego, aby oba działały jednocześnie i wzajemnie się zastępowały w przypadku braku linku na jednym z interfejsów, czyli typowy failover. Szczerze mówiąc, jestem mile zaskoczony, bo wszystko działa jak należy, a konfiguracja zajęła mi dosłownie kilka chwil… system to oczywiście FreeBSD, 9.0-STABLE (r234215).

 

W moim HP nx7300 interfejs LAN to karta na chipsecie BCM4401, obsługiwana przez sterownik bfe(4) a WiFi to z kolei nienajgorszy Intel 3945ABG obsługiwany przez wpi(4). Oczywiście połączenie kablowe ma mieć pierwszeństwo nad bezprzewodowym, znacznie wolniejszym, co oznacza że w przypadku dostępnych obu połączeń, ruch będzie kierowany tylko i wyłącznie przez interfejs LAN.

Fragment /etc/rc.conf :

cloned_interfaces="lagg0"
ifconfig_bfe0="up"
ifconfig_wpi0="ether xx:xx:xx:xx:xx:xx"
wlans_wpi0="wlan0"
ifconfig_wlan0="WPA"

ifconfig_lagg0="laggproto failover laggport bfe0 laggport wlan0 SYNCDHCP"

Adres MAC karty bezprzewodowej należy ustawić na identyczny z tym z karty LAN. Restart komputera i voilà:

tlhscd@arsenic:~ $ ifconfig lagg0
lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        ether xx:xx:xx:xx:xx:xx
        inet 172.16.2.2 netmask 0xfffffff0 broadcast 172.16.2.15
        media: Ethernet autoselect
        status: active
        laggproto failover
        laggport: wlan0 flags=4<ACTIVE>
        laggport: bfe0 flags=1<MASTER>

Jak widać – aktywne jest tylko połączenie WiFi, teraz podłączamy kabel sieciowy, wszystkie połączenia są dalej aktywne a cały ruch jest już kierowany przez szybszy interfejs:

tlhscd@arsenic:~ $ ifconfig lagg0
lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        ether xx:xx:xx:xx:xx:xx
        inet 172.16.2.2 netmask 0xfffffff0 broadcast 172.16.2.15
        media: Ethernet autoselect
        status: active
        laggproto failover
        laggport: wlan0 flags=0<>
        laggport: bfe0 flags=5<MASTER,ACTIVE>

Kolejny raz stwierdzam – FreeBSD rządzi 😉

Tags: , , ,