wifi+lan failoverbe konfigolva FreeBSD-n

Már megint Imp (Warner Losh)
http://bsdimp.blogspot.com">blogját néztem, ahol is következő fogadott. Hogyan csináljunk drótos és dróttalan hozzáférésünkből failover konfigot? (Mondjuk berakjuk a laptopot a dokkolóba, amiben van egy "fixen" bedugott kábel - ekkor nyugodtan át lehetne kapcsolni a wifi-ről a kábelesre; aztán felvesszük a gépet és kapcsoljon át automatikusan wifire - de persze ne szakadjon meg, ne kapjunk új IP-címet, stb.) A cikk röviden. Használjuk a FreeBSD-ben elég régóta (6.3 óta) meglevő lagg (Link Aggregation and Failover) interfészt, meg egy kis shell mágiát. A példában re0 a drótos, és az ath0 a vezetéknélküli interfész. (Megjegyzem az, hogy lagg-al lehet ilyet csinálni, az nem újdonság, viszont az egyszerűsége és eleganciája az.) A példa 8-as vagy újabb verzión működik, de elvben 7-esen is megoldható. (*) Az alanti sorok természetesen a rendszerkonfigot tartalmazó /etc/rc.conf -ba kell menjenek.

# Ezzel egyszerűen "engedélyezzük" az re0 interfészt
# se statikus, se DHCP által adott címet nem állítunk be.
ifconfig_re0="up"

# a backtick!!! miatt az az ifconfig_ath0 megkap egy hosszú sztringet,
# amiben *többek* *között* re0 MAC-címe van. (ez van a végén)
ifconfig_ath0=`ifconfig re0 ether`

# JAV1: no ez a komment marhaság, de csak most jöttem rá
# a backtick helyett most a $( ... ) formát használjuk, persze ez ugyanaz
# JAV1: ez már jó
# JAV1: szóval a lényeg, nem $() hanem ${} - magyarul változóhelyettesítés parancshelyettesítés helyett; GRRRR
# eredménye a hosszú sztringből kidobunk mindent, ami *nem* a MAC cím
# és ez lesz a WLAN interfész MAC címe - ügyes
ifconfig_ath0="ether ${ifconfig_ath0##*ether }"

# 8-asbeli újdonság, előkészítjük a rendszert a WLAN interfész használatára
# és jelezzük, hogy konkrétan az ath0 lesz a WLAN
wlans_ath0="wlan0"

# ezzel gyakorlatilag elindítjuk a wpa_supplicant-ot, ami majd elintézi
# a csatlakozást jelszavastul, stb - eredménye a működőképes wlan0 interfész
ifconfig_wlan0="WPA"

# és a trükk - felhúzzuk a lagg interfészt
cloned_interfaces="lagg0"

# a re0-ból és a wlan0 -ból, és mellesleg elindítjuk a DHCP-t is
ifconfig_lagg0="laggproto failover laggport re0 laggport wlan0 DHCP"

Csinos, de legalábbis nekem tetszik.

(*) Mivel a 7-esben nincs az, hogy az ath0-ból csinálunk wlan0 -t (a wlans_ath0="wlan0" változóbeállítással, meg persze a háttérben dolgozó parancsfájlokkal), ott egy picit finomítani kell - szerintem a blogban szereplő verzió nem jó. Ha lesz kedvem, majd megnézem 7-esen és ideírom.

(**) JAV1. volt benne egy ronda hiba, amire most jöttem rá - és milyen ciki, az eredeti cikkben direkt megnéztem, persze jól van. Már másolni se tudok... (Az már csak hab a tortán, hogy nekem valamiért nem megy.)

Hozzászólások

Bizony ez nagyon jo dolog, en is hasznalom tobb helyen, csak trunk(4) -ot.