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 😉