Dirbant prie aukšto pasiekiamumo užtikrinimo kompiuterių tinkle, greičiausiai susidursite su viena
ar kita, dviejų ar daugiau komutatorių apjungimo į vieną grupę, technologija. Šiuo metu dauguma
gamintojų turi rinkoje bent vieną tokią technologinį sprendimą, kaip pavyzdys Cisco (VSS, StackWise), Aruba (IRF, VSF, VSX), Mikrotik (MLAG). Vienos šių technologijų yra sutinkamos rečiau, kitos tik pradedamos naudoti, siekiant užtikrinti augančius verslų poreikius ir kuriant nepertraukiamos veiklos sistemas.
Vieną iš tokių naujų technologijų Aruba VSX bandysime trumpai aprašyti, bei sukonfigūruoti, taip, kaip rekomenduoja šios technologijos kūrėjai.
Trumpai apie Aruba (VSX) – tai yra virtualizacijos technologija, skirta būtent pagrindiniams arba tarpinio lygio (angl. aggregation, distribution) tinklo komutatoriams, atsakingiems už kritinę kompiuterių tinklo dalį. Dažniausiai technologija diegiama duomenų centruose, didesnių įmonių kompiuterių tinkluose.
Toks sprendimas leidžia komutatoriams veikti kaip vienam virtualizuotam komutatoriui, sinchronizuojant visą konfigūraciją iš pagrindinio (kuris yra nustatomas pasirinktinai) komutatoriaus į antrinį komutatorių. Komutatorių konfigūraciją išlieka visada abiejuose komutatoriuose, net ir atliekant konfigūracijos pakeitimus pagrindiniame komutatoriuje, tiesa yra kai kurių niuansų.
Verta dar paminėti apie kitus šios technologijos privalumus kompiuterių tinkle:
- Visada veikiantis komutatorius – vienam komutatoriui nustojus veikti iš grupės, kitas perima darbą nepastebimai.
- L2 tinklo sluoksnyje apjungti kitų tinklo komutatorių tinklo prievadai yra neblokuojami STP protokolo, todėl perduodamų duomenų srautas veikia nenutrūkstamai per visus prijungtus tinklo prievadus.
- L3 tinklo sluoksnyje galime sukurti ECMP duomenų perdavimo maršrutus su aukšto pasiekiamumo užtikrinimu.
- Visada pasiekiamas tinklo šliuzas – automatiškai sinchronizuojamas tinklo šliužo IP adresas tarp grupės, kuris visada pasiekiamas, nebereikalingi papildomi tinklo protokolai kaip VRRP/HSRP. Pateiksime pavyzdį kaip tai lengvai yra įgyvendinama.
Minimali L2 tinklo architektūra
Pradiniai nustatymai
Pradėsime konfigūruoti nuo pagrindinių parametrų visus apjungtus komutatorių tinklo prievadus.
CORE1
hostname core1
ssh server vrf mgmt
vlan 1
interface mgmt
no shutdown
ip dhcp
interface 1/1/1
no shutdown
description KeepAlive link
interface 1/1/2
no shutdown
description ISL link
interface 1/1/3
no shutdown
description ISL link
interface 1/1/6
no shutdown
description to ACC1
CORE2
hostname core2
ssh server vrf mgmt
vlan 1
interface mgmt
no shutdown
ip dhcp
interface 1/1/1
no shutdown
description KeepAlive link
interface 1/1/2
no shutdown
description ISL link
interface 1/1/3
no shutdown
description ISL link
interface 1/1/6
no shutdown
description to ACC1
ACC1
hostname acc1
ssh server vrf mgmt
vlan 1
interface mgmt
no shutdown
ip dhcp
interface 1/1/1
no shutdown
description to CORE1
interface 1/1/2
no shutdown
description to CORE2
Patikriname ar visi komutatoriai mato vienas kitą:
show lldp neighbor-info
Aruba VSX konfigūracija
Tęsiame konfigūraciją ir vadovaujamės Aruba rekomendacijomis.
- Apjungiami pagrindiniai komutatoriai turi turėti tą pačią veikiančią ArubaOS-CX sistemos versiją.
- ISL sujungimui reikia naudoti bent du komutatoriaus tinklo prievadus. Geriausia tinka DAC kabeliai.
Toliau reikės sukurti tinklo portų apjungimus (anlg. LAG) vidiniam ISL ryšiui tarp komutatorių Core1 ir Core2. Taip pat paminėsime, kad LAG grupės pavadinimas nebūtinai turi sutapti abiejuose komutatoriuose. Čia tiesiog naudosime 100 abiejuose, nes taip patogiau.
Core1, Core2
interface lag 100
no shutdown
description ISL
no routing
vlan trunk allowed all
lacp mode active
interface 1/1/2
no shutdown
mtu 9198
description ISL link
lag 100
interface 1/1/3
no shutdown
mtu 9198
description ISL link
lag 100
Patikriname ar LAG apjungimai aktyvūs ir LACP tinklo protokolas veikia (prie tinklo prievadų turime matyti tokius simbolius ALFNCD).
show interface lag100
show lacp interfaces
Jei viskas veikia judame tolia prie komutatorių tarpusavio statuso apsikeitimo nustatymų. Šiam tikslui Aruba rekomenduoja sukurti atskira VRF lentelę. Todėl sukuriame tokią ir pavadiname KeepAlive.
Core1
vrf KeepAlive
interface 1/1/1
no shutdown
vrf attach KeepAlive
description VSX keepalive
ip address 172.31.254.1/30
Core2
vrf KeepAlive
interface 1/1/1
no shutdown
vrf attach KeepAlive
description VSX keepalive
ip address 172.31.254.2/30
Patikriname ar matome kaimyną kitame gale, tiesiog naudodami komandą ping su vrf KeepAlive parametru.
ping 172.31.254.1 vrf KeepAlive
Paruošiamieji darbai baigti, judame toliau ir apjungiame komutatorių į VSX komutatorių grupę. Čia vėl Aruba rekomenduoja apjungiant komutatorius į grupę, pagrindiniam komutatoriui priskirti sisteminį MAC adresą pagal jų MAC rekomendacijų lentelę. Vėliau keičiant pačius komutatorius, bus nesudėtinga pridėti naują įrangą, išlaikant tą pačią konfigūraciją. Kaip pavyzdys (gamyklinis tinklo prievado ar sistemos MAC adresas).
XX bus unikalus komutatorių klasterio ID, o Y bus virtualus MAC ID (skaičiais nuo 0 iki 15)
Mes priskirstime 02:01:00:00:01:01 mūsų pasirinktam komutatoriui, kuris bus pirminis (angl. primary) ir iš kurio visa konfigūracija bus sinchronizuojama į kitą grupės komutatorių. Užtikrindami, kad viską sinchronizuotų, naudosime rekomenduojamą parametrą vsx-global. Šis parametras apima visus šiuos kitus pavienius parametrus (juos reiktų aprašinėtume atskirai pagal poreikius): inter-switch-link hello-interval, dead-interval, hold-time, peer-detect-interval, keepalive udp-port, hello-interval, keepalive dead-interval, system-mac, split-recovery, linkup-delay-timer.
Core1
vsx
system-mac 02:01:00:00:01:01
inter-switch-link lag 100
role primary
vsx-sync vsx-global
Core2
vsx
inter-switch-link lag 100
role secondary
Tikriname ar sinchronizacija veikia.
show vsx status
Papildomai yra rekomenduojame sinchronizuoti šiuos papildomus VSX parametrus, kurie bus nustatomi taip pat tik pagrindiniame komutatoriuje.
Core1
vsx
vsx-sync aaa acl-log-timer bfd-global bgp control-plane-acls copp-policy dhcp-relay dhcp-server dhcp-snooping dns icmp-tcp lldp loop-protect-global mac-lockout mclag-interfaces neighbor ospf qos-global route-map sflow-global snmp ssh stp-global time vsx-global
Jei viskas pavyko, turite matyti ISL-State: In-Sync. Liko paskutinis parametras, kuris reikalingas, jei komutatoriai prarastų ISL apjungimą ar vienas iš komutatorių būtų nepasiekiamas dėl vienokių ar kitokių priežasčių. Kitaip tokia situacija angliškai vadinama „Split Brain”. Kad to išvengti, nustatysime „Keepalive” parametrus tarp komutatorių.
Core1
vsx
keepalive peer 172.31.254.2 source 172.31.254.1 vrf KeepAlive
Core2
vsx
keepalive peer 172.31.254.1 source 172.31.254.2 vrf KeepAlive
Peržiūrime ar veikia. Turime matyti Keepalive State: Keepalive-Established.
show vsx brief
show vsx status keepalive
Dar patikriname ar pagal rekomendacijas yra įjungtas/įsijungęs „VSX Split-recovery”.
show vsx configuration split-recovery
VLAN tinklai ir VLAN tinklo šliuzai (šiek tiek L3)
Turime veikiančią apjungtą komutatorių grupę, kurią toliau paruošime darbui su duomenimis. Pradžiai jei norėsime naudoti VLAN, juos reikės kurti šiek tiek kitaip. O taip pat panaudosime vieną iš VSX technologijos privalumų VLAN tinkle, tai visada pasiekiamą tinklo šliuzą (angl. Always Active Gateway). Kuriant pastarąjį, reikia prisiminti Aruba rekomendacijas dėl MAC adresų, nes ši technologija taip pat naudos ne gamyklinį komutatoriaus MAC adresą, o tą kurį, nurodysime pagal rekomendacijas. Toks principas toliau leidžia lanksčiai keisti komutatorius, jei vienas iš jų neveiktų ir reikėtų jį pakeisti.
Konfigūraciją atliksime pagrindiniame komutatoriuje Core1, o likusią dalį Core2. VSX technologija sinchronizuos likusią konfigūraciją, vos tik baigsite konfigūruoti Core2 dalį.
Core1
vlan 100
vsx-sync
description DATA
interface vlan 100
ip address 10.10.100.252/24
active-gateway ip 10.10.100.254 mac 12:01:00:00:01:10
vsx-sync active-gateways
Core2
interface vlan 100
ip address 10.10.100.253/24
Baigus darbus VLAN 100 šliuzo IP adresas 10.10.100.254 turi būti pasiekiamas. Testuojame tiesiog paprasta komanda ping 10.10.100.254.
Prijungiame prieigos komutatorius
Toliau, kad prijungti prieigos komutatorius reikės konfigūruoti „MCLAG” tinklo prievadus (angl. Multi-Chassis Link Aggregation Group) apjungiančius Core1, Core2 komutatorius su Acc1 komutatoriumi.
Core1
interface lag 99 multi-chassis
description VSX LAG to ACC1
no shutdown
vlan trunk allowed 100
interface 1/1/6
no shutdown
mtu 9100
description to ACC1
lag 99
Core2
interface lag 99 multi-chassis
no shutdown
interface 1/1/6
no shutdown
mtu 9100
description to ACC1
lag 99
Acc1
vlan 100
interface lag 99
no shutdown
no routing
vlan trunk native 1
vlan trunk allowed 100
lacp mode active
interface 1/1/1
no shutdown
description to Core1
lag 99
interface 1/1/2
no shutdown
description to Core2
lag 99
interface 1/1/3
no shutdown
no routing
vlan access 100
description PC1
Patikriname ar viskas veikia. Turite matyti State: ALFNCD prie lag99 tinklo prievadų.
Core1, Core2
show lacp interfaces multi-chassis
Acc1
show lacp interfaces
Kad išvengti „netyčinės” tinklo kilpos (anlg. network loop), reikės įjungti vieną iš STP protokolų, bei vieną kitą jų funkciją. Šiuo atveju rekomenduojamas MSTP protokolas, kurį minimaliai sukonfigūruosime.
Keletas rekomendacijų, kurios reikalingos bus VSX pagrindiniame komutatoriuje Core1. O į kitą Core2 komutatorių konfigūracija tiesiog sinchronizuosis automatiškai.
- Naudosime numatytą instance MST0 .
- Kad lengviau valdyti sumažinsime spanning-tree priority iki 4, kad VSX komutatoriai taptų STP šakniniu STP tiltu.
- Naudosime STP funkciją root-guard ant visų tinklo prievadų jungiančių į prieigos komutatorius, kad išvengtumėte prieigos komutatorių tapimo šakniniais STP tiltais.
Core1
spanning-tree
spanning-tree priority 4
interface lag 99 multi-chassis
no shutdown
description VSX LAG to ACC1
no routing
vlan trunk native 1
vlan trunk allowed 100
lacp mode active
lacp fallback
spanning-tree root-guard
Toliau leidžiamės į žemesnį tinklo architektūros lygį – prieigos komutatorių. Čia taip pat keletas rekomendacijų:
- Naudosime numatytą instance MST0 .
- Nekeisime spanning-tree priority ir paliksime default 8. Taip užtikrinsime, kad VSX komutatoriai visada taps STP šakniniais STP tiltais.
- Naudosime loop-guard tinklo įrenginių apjungimo prievadams (lag99) jungiantiems prieigos komutatorių prie VSX pagrindinių komutatorių. Taip užtikrinsime, kad BPDU gavimo klaidos metu (pvz. nutrūkus optinės jungties laidui) „neužtvindytume” tinklo nereikalingais paketais.
- Naudosime funkciją loop-protect visiems tinklo prievadams, prie kurių bus jungiama galinė tinklo įrangą. Nustatykite užblokuoto tinklo prievado automatinį atsistatymą po 1 valandos.
- Visiems galinės įrangos prieigos prievadams nustatysime tinklo tipą į admin-edge ir įjungsime funkciją tcn-guard, kad sustabdyti gavimą BPDU paketų iš šių prievadų.
- Papildomai apsaugai taip pat naudosime funkciją loop-protect visiems galinių įrenginių prieigos prievadams, jei būtų prijungtas nevaldomas komutatorius, kuris nufiltruoja BPDU paketus ir sukuria tinklo kilpą.
Acc1
spanning-tree
loop-protect re-enable-timer 3600
interface lag 99
spanning-tree loop-guard
interface 1/1/3
no shutdown
description PC1
no routing
vlan access 100
spanning-tree bpdu-guard
spanning-tree port-type admin-edge
spanning-tree tcn-guard
loop-protect