2011-08-17

LACP Cisco és 3Com/HPN/H3C/Huawei eszközök közt

A Cisco eszközökön az aggregált linkeket EtherChannelnek hívják, amit kétféle port aggregation protokoll is működtethet, az egyik a PAgP, a másik az LACP (IEEE 802.3ad, újabban 802.3ax). Más gyártóknál nem divat ennyire tolni a saját tervezésű protokollokat, így például az általam rendszeresen egy kalap alá sorolt 3Com, HPN, H3C és Huawei eszközöknél csak az IEEE szabvány LACP támogatott. Hogy ezek mennyire működnek együtt? Nézzük meg!

A teszthez egy Cisco 2960-ast és egy 3Com 5500-as switchet használtam, a két eszközt fizikailag összekötöttem, 47-es portot a 47-es porttal, 48-ast a 48-assal. Minden gyártónál közös alapelv, hogy az aggregálandó portoknak a típusa, sebessége, duplexitása, a VLAN trönkölési beállításai meg kell, hogy egyezzenek, egyébként gondok lehetnek az aggregált linkkel. Általánosságban azt is érdemes tudni, hogy az aggregált linkeken realizálható tényleges sebesség nem feltétlenül áll egyenes arányban az abban szereplő portok számával, tehát pl. egy nyolc darab gigabites fizikai portból felépülő aggregált link nem feltétlenül muzsikál majd 8Gb/s-on, érdemes a részleteknek mindig utánaolvasni az LACP-re használt eszköz dokumentációjában. Például a Cisco ISR routerek (28xx, 38xx) összesen két EtherChannel létrehozását támogatják, amelyekben a fizikai interfészek maximális száma négy, és a ténylegesen mérhető sebesség a routerben használt  egyéb funkcióktól is függ. A switcheken, tisztán Layer 2-es LACP linkeken persze nem jellemző az ilyesfajta korlát. A cégünknél eddig a gyakorlatban nem is a sávszélesség növelése miatt használtunk LACP-t, sokkal inkább a redundancia miatt, Layer 2-ben ez is egy lehetőség a sima STP-vel megvalósított redundancia mellett/helyett.

A két teszteszközön gyári alapbeállításokról indultam, a bemutatandó konfigurációban nincs feltüntetve a management IP cím beállítása, illetve a VLAN2 létrehozása. A cél egy működő, két interfészes Layer 2-es LACP kapcsolat létrehozása a Cisco 2960-as és a 3Com 5500-as eszköz között 802.1q VLAN trönköléssel. Ez utóbbi egyébként apró csalás: a 802.1q-t nem is kell a teszteszközökön állítani, a 3Com ezer éve kizárólag 802.1q-t implementált, a Cisco 2960-ason pedig már csak 802.1q van, ISL nincs, ennek megfelelően nincs is switchport trunk encapsulation parancs.

A konfiguráció során először az IOS-en elkészül a port-channel 1 interfész, üres konfigurációval, majd a channel-group 1 paranccsal hozzáadom az aggregációban részt vevő interfészeket (Fa0/47, Fa0/48), végül ezen port-channel 1 interfészen keresztül minden channel-group 1 port megkapja a VLAN trönk konfigurációt:

Switch#configure terminal
Switch(config)#interface port-channel 1
Switch(config-if)#exit

Switch(config)#interface range Fa0/47 - 48
Switch(config-if-range)#channel-group 1 mode active
Switch(config-if-range)#exit
Switch(config)#interface port-channel 1
Switch(config-if)#switchport mode trunk
Switch(config-if)#switchport trunk allowed vlan 1-2
Switch(config-if)#exit
Switch(config)#exit


Az alábbi példában szépen látszik, hogy nem nyúltunk ugyan közvetlenül az Fa0/47 és az Fa0/48 VLAN beállításaihoz, mégis megörökölték a beállításokat a Port-channel 1 virtuális interfésztől:

Switch#sh run | begin 0/47
interface FastEthernet0/47
 switchport trunk allowed vlan 1,2
 switchport mode trunk
 channel-group 1 mode active
!
interface FastEthernet0/48
 switchport trunk allowed vlan 1,2
 switchport mode trunk
 channel-group 1 mode active
!


Egy kis kiegészítő még a channel-group parancshoz: a mode active az LACP protokollt engedélyezi az adott porton, az "active" érték esetén a port küld és fogad is LACP üzeneteket, míg a "passive" érték esetén csak fogad. Mindez azért érdekes, mert a 3Com oldalon megvan ezeknek a beállításoknak a párjai, ám a 3ComOS alatt nem a portoknál kell megadnunk ezt a beállítást, hanem az aggregation group konfigurációjánál.

<5500-EI>sys
[5500-EI]link-aggregation group 1 mode static
[5500-EI]interface Ethernet 1/0/47
[5500-EI-Ethernet1/0/47]port link-aggregation group 1
[5500-EI-Ethernet1/0/47]quit
[5500-EI]interface Ethernet 1/0/48
[5500-EI-Ethernet1/0/48]port link-aggregation group 1
[5500-EI-Ethernet1/0/48]port link-type trunk
[5500-EI-Ethernet1/0/48]port trunk permit vlan 1 2

[5500-EI-Ethernet1/0/48]quit
[5500-EI]quit


A 3ComOS-ben háromféle aggregáció lehetséges. A "manual" esetén az aggregált portok egyáltalán nem használnak LACP-t, ilyenkor nincsenek az aggregációra vonatkozó metaüzenet-váltások az eszközök közt, nincs LACP statisztika, márpedig a statisztikákat a networkösök általában kedvelik. Személy szerint jobb szeretem, ha egy protokoll felügyeli magát az aggregációt, folyamatosan egyeztet a partner eszközzel, valahogy nyugodtabb az ember, és gond esetén könnyebb a hibakeresés is, látszanak az LACP partner eszköznek az azonosítói. A "static" beállítás esetében működik az LACP az aggregált portokon, ám nekünk magunknak kell létrehozni az aggregation group-okat, illetve azokba nekünk kell portokat pakolnunk, legjobban ezt a beállítást szeretem, és nem mellesleg a fenti példa is ilyen. Létezik még a "dynamic" típus is, ám ezt nem kell külön beállítani, semmiféle aggregation group-ot nem kell létrehoznunk, csupán a megfelelő portokon kiadni az lacp enable parancsot, és az OS magától kitalálja, hogy melyik port milyen aggregation groupba tartozik, majd lekezel mindent. Értelemszerűen ezt a "dynamic" típust sok aggregált link esetén bátor dolog használni, főképp ha dokumentálni is szeretnénk az aggregált linkjeinket.

A 3Com "manual" módról a Cisco IOS azt gondolja, hogy az a channel-group x mode passive beállítással egyezik meg, míg a 3Com "static" módja IOS alatt "active" beállításnak felel meg.

Még egy érdekesség: az IOS-ben a VLAN trönkölést a port-channel 1 interfészen végeztük el, ahonnan a fizikai portok megörökölték a beállításokat. 3ComOS-ben nincs ilyen virtuális interfész, azonban ha már él az aggregált linkünk, akkor annak bármelyik portját konfiguráljuk át, a beállításokat megkapja a többi port is. A példában fent csak a 48-as porton állítottam be a VLAN trönkölést, ám ezek a beállítások érvényre jutnak az adott aggregation group minden egyéb portján, esetünkben a például a 47-esen. Az viszont elengedhetetlen, hogy az aggregation groupban lévő portok konfigurációja a groupba való helyezéskor egyforma legyen.


Diagnosztika, hibakeresés IOS alatt: show lacp parancsok, különösen a show lacp x neighbor, show lacp sys-id, illetve a show etherchannel parancsok, különösen a show etherchannel summary, valamint a show etherchannel x detail. 3ComOS-en a display lacp system-id, valamint a display link-aggregation summary, illetve a display link-aggregetion interface <interfész>.

Nincsenek megjegyzések:

Megjegyzés küldése