31.6. Linkek összefűzése és hibatűrése
Vissza | 31. fejezet - Egyéb haladó hálózati témák | Előre

## 31.6. Linkek összefűzése és hibatűrése

Írta: Thompson, Andrew.

### 31.6.1. Bevezetés

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.

### 31.6.2. Működési módok

failover

  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.

Cisco® Fast EtherChannel®

  A Cisco® Fast EtherChannel® (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.

LACP

  Az IEEE® 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.

Loadbalance

  Ez a FEC mód másik neve.

Round-Robin

  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.

### 31.6.3. Példák

31.1. példa - LACP alapú összefűzés egy Cisco® switch-csel

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® 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.

31.2. példa - A hibatűrés beállítása

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.

31.3. példa - Hibatűrés beállítása vezetékes és vezeték nélküli hálózatok között

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"

Vissza | Fel | Előre
31.5. Hálózati hidak | Főoldal | 31.7. Lemez nélküli működés

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>.