A lagg(4) felület lehetővé teszi, hogy több hálózati felületet egyetlen virtuális felületként fűzzünk össze, és ezzel egy hibatűrő és nagysebességű összeköttetést alakítsunk ki.
Csak az elsődlegesként kijelölt porton keresztül fogad és küld adatokat. Amikor ez az elsődleges port elérhetetlenné válik, a következő aktív portot fogja használni. Az elsőként felvett felület válik automatikusan az elsődleges porttá, és az utána felvett összes többit pedig csak hiba esetén használjuk.
A Cisco(R) Fast EtherChannel(R) (FEC) technológia támogatása. Ez egy statikus beállítás, és nem egyezteti az összefűzést a többiekkel vagy a linkek felügyeletéhez nem vált kereteket. Ha a switch támogatja az LACP használatát, akkor inkább azt válasszuk.
A FEC a kimenő forgalmat a fejlécekben szereplő protokollok alapján számolt hasítókóddal próbálja szétosztani az aktív portok között, és tetszőleges aktív porton fogad beérkező adatokat. Az említett hasítókódban egy Ethernetes forrás- és célcím szerepel, valamint ha elérhető, akkor egy VLAN címke, illetve az IPv4/IPv6 forrás- és célcím.
Az IEEE(R) 802.3ad Link Aggregation Control Protocol (LACP) és a Marker Protcol támogatása. Az LACP megpróbálja egyeztetni a többi géppel az összefűzhető linkeket egy vagy több csoportban (Link Aggregated Group, LAG). Mindegyik ilyen csoportban ugyanolyan sebességű portokat találunk, full-duplex működési módban. A forgalmat így a legnagyobb összsebességgel rendelkező csoportban megtalálható portok között osztja el, ami a legtöbb esetben az összes portot magában foglaló csoport. A fizikai konnektivitás megváltozása esetén a linkek összefűződése igen gyorsan alkalmazkodik az új konfigurációhoz.
Az LACP a kimenő forgalmat az aktív portok között osztja szét fejlécekben szereplő protokollok alapján számolt hasítókóddal, és bármelyik aktív portról fogad bejövő forgalmat. A hasítókódban megtalálható az Ethernetes forrás- és célcím, valamint ha elérhető, akkor a VLAN címke, illetve az IPv4/IPv6 forrás- és célcímek.
Ez a FEC mód másik neve.
A kimenő forgalmat egy körkörös (Round-Robin) elvű ütemezővel osztja szét az aktív portok között és tetszőleges aktív portról fogad bejövő forgalmat. Ez a működési mód megsérti az Ethernet keretek rendezését és csak nagy körültekintés mellett alkalmazzuk.
Ebben a példában egy FreeBSD-s gép két felületét kapcsoljuk össze switch-csel egy egyszerű terhelés-kiegyenlítéssel és hibatűréssel beállított linken keresztül. Mivel az Ethernet keretek sorrendje döntő fontosságú, ezért a két állomás között egyazon fizikai linken zajló forgalom maximális sebességét az adott felület kapacitása korlátozza. A küldési algoritmus a lehető legtöbb információ alapján próbálja egymástól megkülönböztetni a forgalmakat és elosztani ezeket a rendelkezésre álló felületek között.
A Cisco(R) switch-en vegyünk fel a
FastEthernet0/1
és
FastEthernet0/2
interfészeket az 1
csoportba
(channel group):
interface FastEthernet0/1 channel-group 1 mode active channel-protocol lacp
!interface FastEthernet0/2 channel-group 1 mode active channel-protocol lacp
A FreeBSD-s gépen pedig a
fxp0
és
fxp1
használatával
hozzunk létre a lagg(4) interfészt:
#
ifconfig lagg0 create
#
ifconfig lagg0 up laggproto lacp laggport fxp0 laggport fxp1
Ellenőrizzük a felület állapotát:
#
ifconfig lagg0
A ACTIVE jelzésű, vagyis aktív állapotú portok az összefűzéshez kialakított csoport azon tagjai, amelyeknél felépült a kapcsolat a távoli switch felé és készen állnak a küldésre és fogadásra. Ha az ifconfig(8) programtól részletesebb kimenetet kérünk, akkor láthatjuk a csoportok azonosítóit is:
lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=8<VLAN_MTU> ether 00:05:5d:71:8d:b8 media: Ethernet autoselect status: active laggproto lacp laggport: fxp1 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING> laggport: fxp0 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
A show lacp neighbor
paranccsal
kérdezhetjük le a portok
állapotát:
switch# show lacp neighbor Flags: S - Device is requesting Slow LACPDUs F - Device is requesting Fast LACPDUs A - Device is in Active mode P - Device is in Passive mode Channel group 1 neighbors Partner's information: LACP port Oper Port Port Port Flags Priority Dev ID Age Key Number State Fa0/1 SA 32768 0005.5d71.8db8 29s 0x146 0x3 0x3D Fa0/2 SA 32768 0005.5d71.8db8 29s 0x146 0x4 0x3D
Részletesebb kijelzést a show
lacp neighbor detail
paranccsal kaphatunk.
A hibatűrési mód arra alkalmas, hogy
amikor az elsődleges porton elvesztjük a
kapcsolatot, helyette egy másodlagos interfész
használatára tudunk áttérni.
Hozzuk létre és állítsuk be a
lagg0
interfészt, ahol az
fxp0
legyen a
főinterfész, az fxp1
pedig a tartalék interfész:
#
ifconfig lagg0 create
#
ifconfig lagg0 up laggproto failover laggport fxp0 laggport fxp1
Az így létrejövő interfész nagyjából az alábbi lesz, ahol eltérés a MAC-cím és az eszköz neve:
#
ifconfig lagg0
lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=8<VLAN_MTU> ether 00:05:5d:71:8d:b8 media: Ethernet autoselect status: active laggproto failover laggport: fxp1 flags=0<> laggport: fxp0 flags=5<MASTER,ACTIVE>
A forgalom kezdetben az fxp0
felületen keresztül érkezik és
távozik. Ha az fxp0
felületen valamiért megszakadna a kapcsolat,
helyette az fxp1
lesz az
aktív link. Ha később helyreáll a
kapcsolat az elsődleges felületen, akkor újra
az lesz aktív link.
Hordozható számítógépek használata esetén általában érdemesebb a vezeték nélküli kapcsolatot másodlagos interfészként beállítani, így csak akkor használja a rendszer, ha vezetékes hálózat nem érhető el. A lagg(4) segítségével egyetlen IP-címmel tudjuk használni mind a két interfészt: a teljesítmény és biztonságosság miatt elsősorban a vezetékes hálózatot használjuk, miközben megmarad a lehetőség az adatok továbbítására a vezeték nélküli kapcsolaton keresztül is.
A beállítás során a vezeték nélküli interfész MAC-címét úgy kell módosítanunk, hogy megegyezzen a lagg(4) címével. A lagg(4) interfész a saját MAC-címét az elsődleges interfésztől örökli, amely jelen esetünkben a vezetékes interfész lesz.
A most következő példában a
vezetékes hálózatunk lesz az
elsődleges interfész
(bge0
), míg a vezeték
nélküli (wlan0
) a
másodlagos. A wlan0
interfészt az iwn0
interfészből hoztuk létre, és a
vezetékes kapcsolat
MAC-címét
állítjuk be neki. Első
lépésként tehát le kell
kérdeznünk a vezetékes interfész
MAC-címét:
#
ifconfig bge0
bge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=19b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4> ether 00:21:70:da:ae:37 inet6 fe80::221:70ff:feda:ae37%bge0 prefixlen 64 scopeid 0x2 nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL> media: Ethernet autoselect (1000baseT <full-duplex>) status: active
A bge0
helyett
természetesen a saját vezetékes
hálózati interfészünket kell
megadni, és az ether
kezdetű
sorban is saját kártyánk
MAC-címe fog megjelenni.
Ezután már meg is tudjuk változtatni az
iwn0
címét:
#
ifconfig iwn0 ether 00:21:70:da:ae:37
Aktiváljuk a vezeték nélküli interfészt, de ne állítsunk be neki semmilyen IP-címet:
#
ifconfig wlan0 create wlandev iwn0 ssid wlan_hálózat up
Hozzuk létre a lagg(4) interfészt a
bge0
mint elsődleges
interfész megadásával, valamint a
wlan0
legyen a szükség
esetén használható
tartalék:
#
ifconfig lagg0 create
#
ifconfig lagg0 up laggproto failover laggport bge0 laggport wlan0
Az így létrehozott interfész nagyjából így fog megjelenni, egyedüli fontosabb eltérések a MAC-címek és az eszközök nevei:
#
ifconfig lagg0
lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=8<VLAN_MTU> ether 00:21:70:da:ae:37 media: Ethernet autoselect status: active laggproto failover laggport: wlan0 flags=0<> laggport: bge0 flags=5<MASTER,ACTIVE>
Hogy ne kelljen a rendszer minden egyes
indítása után ezt a műveletet
megismételni, vegyük fel a következő
sorokat az /etc/rc.conf
állományba:
ifconfig_bge0="up" ifconfig_iwn0="ether 00:21:70:da:ae:37" wlans_iwn0="wlan0" ifconfig_wlan0="WPA" cloned_interfaces="lagg0" ifconfig_lagg0="laggproto failover laggport bge0 laggport wlan0 DHCP"
Ha kérdése van a FreeBSD-vel kapcsolatban, a
következő címre írhat (angolul):
<questions@FreeBSD.org>.
Ha ezzel a dokumentummal kapcsolatban van kérdése, kérjük erre a címre írjon:
<gabor@FreeBSD.org>.