====== GLBP Gateway Load Balancing Protocol ====== //(Cisco)// * Podpora na MLS Cat6500 Supervizor 2 * vychází z principu HSRP/VRRP + vylepšuje Load Balancing * Ve skupině je více aktivních routerů pro jednu virt.IP * Klienti dostávají v odpovědích na ARP dotazy (dotazující se na virt.IP) MAC adresy vybraných routerů ve skupině * Všichni klienti používají stejnou IP adresu vých.brány, ale různou MAC ===== AVG Active Virtual Gateway ===== * router s nejvyšší prioritou nebo IP * odpovídá na všechny ARP requesty týkající se virt.IP * v odpovědích posílá virtuální MAC jednoho z routerů ve skupině v závislosti na zvoleném load balancing algorytmu * ostatním routerům určuje jejich virt. MAC adresy (**max.4**) * routery s přidělenou virt. MAC adresou jsou AVF - Active Virtual Forwarder * ostatní routery ve skupině slouží jako záloha AVF, v případě výpadku * v případě výpadku AVG, převezme jeho fci jiný router * v případě obnovení funkčnosti původního AVG nemůže tento router převzít roli AVG, dokud neselže současný AVG, nebo pokud není nakonfigurováno **preempt** stejně jako v HSRP * AVG pravidelně rozesílá "Hello" def. každé **3 s** * pokud Hello nepřichází po dobu "holdtime" timeru (def. **10 s**), převezme fci AVG někdo jiný * timery se konfigurují na AVG, ten je propaguje ostatním >Switch(config-if)# **glbp** //group(0-1023)// **priority** //level(1-255, def.100)// >Switch(config-if)# **glbp** //group// **preempt** [**delay minimum ** //seconds//] >Switch(config-if)# **glbp** //group// **timers** [**msec**] //hellotime// [**msec**] //holdtime// * //hellotime// - 1-60s nebo 50-60000ms * //holdtime// - až 180s nebo 180000ms, musí být větší (ideálně třikrát) než hellotime ===== AVF Active Virtual Forwarder ===== * virtual MAC: **0007.b4xx.xxyy** * xx.xx = 16 bitů, 6 bitů = 0, zbylých 10 bitů = č. GLBP skupiny * yy = 8 bitů, Virtual Forwarder Number * Všechny routery v GLBP skupině posílají "Hello" * Pokud AVG nepřijímá hello od AVF, je MAC virt. adresa přiřazena jinému routeru, který se tak stane AVF * běžně se může stát, že zaskakující router již je AVF s jinou MAC, to však nevadí, router se může tvářit jako AVF se dvěma virt. MAC adresami zároveň * AVG nabízí starou virt. MAC adresu po ještě dobu "redirect timeru" * AVF se dvěmi MAC funguje maximálně po dobu "timeout" timeru, pak starou MAC zahodí a klienti, kteří ji používali musí poslat nový ARP request, aby si aktualizovali ARP tabulku >Switch(config-if)# **glbp** //group// **timers redirect** //redirect timeout// * "redirect timer" - **0-3600 s**, defaultně **600 s** * "timeout timer" - **700-64800** s (18h), def. **14400** s (4h) * GLBP má nástroje na rozhodování, který router bude AVF v závislosti na aktivních interfejsech. * Každý router začíná s maximání váhou (weight 1-254), při pádu sledovaného interfejsu, je hodnota snížena o definovanou velikost. * GLBP používá prahy "tresholds" dle kterých rozhoduje zda router může či nemůže být AVF * Klesne li váha routeru pod spodní práh, musí se vzdát své AVF role. * Jestliže se váha zvedne nad horní práh, může se router opět stát AVF. * Defaultně je váha routeru 100 >Switch(config)# **track** //object-number(1-500)// **interface** //type mod/num// {**line-protocol** | **ip routing**} * **line-protocol** - sleduje line protocol up/down * **ip routing** - sleduje zapnutý routing, nastavenou IP adresu, a line protocol na interfejsu >Switch(config-if)# **glbp** //group// **weighting** //maximum// [**lower** //lower//] [**upper** //upper//] * //lower// - 1-254, def. 1 * //upper// - 1-254, def. = 100 (defaultně = max weight) >Switch(config-if)# **glbp** //group// **weighting track** //object-number// [**decrement** //value//] * //value// - 1-254. def. 10 ===== GLBP Load Balancing ===== * provádí se "rozdáváním" MAC adres výchozí brány klientům v ARP odpovědích * MAC adresy se rozdávají dle určitého algorytmu * **Round robin** - Defaultní metoda. MAC adresy jsou rovnoměrně rozdělovány mezi klienty, každý AVF obsluhuje přibližně stejný počet hostů. * **Weighted** - MAC adr. AVF s vyšší "váhou" jsou v ARP odpovědích odesílány častěji * **Host dependent** - každý klient dostává pořád stejnou MAC adresu brány >SW_AVG(config-if)# **glbp** //group// **load-balancing** [**round-robin** | **weighted** | **host-dependent**] ===== Aktivace GLBP ===== * Virt. IP adresu stačí nakonfigurovat na AVG, ostatní routery v GLBP skupině se oní od AVG dozví >Switch(config-if)# **glbp** //group// **ip** [//ip-address// [**secondary**]] >Switch# **show glbp** [//group//] [**brief**] Na obrázku je vidět funkce algorytmu Round-robin, hosti posílali ARP requesty postupně zleva do prava: {{:wiki:site:cisco:13-3.png|}} {{:wiki:site:cisco:13-4.png|}} **Příklad konfigurace sítě na obrázcích:** CatalystA(config)# interface vlan 50 CatalystA(config-if)# ip address 192.168.1.10 255.255.255.0 CatalystA(config-if)# glbp 1 priority 200 CatalystA(config-if)# glbp 1 preempt CatalystA(config-if)# glbp 1 ip 192.168.1.1 CatalystB(config)# interface vlan 50 CatalystB(config-if)# ip address 192.168.1.11 255.255.255.0 CatalystB(config-if)# glbp 1 priority 150 CatalystB(config-if)# glbp 1 preempt CatalystB(config-if)# glbp 1 ip 192.168.1.1 CatalystC(config)# interface vlan 50 CatalystC(config-if)# ip address 192.168.1.12 255.255.255.0 CatalystC(config-if)# glbp 1 priority 100 CatalystC(config-if)# glbp 1 ip 192.168.1.1 CatalystA# show glbp brief Interface Grp Fwd Pri State Address Active router Standby router Vl50 1 - 200 Active 192.168.1.1 local 192.168.1.11 Vl50 1 1 7 Active 0007.b400.0101 local - Vl50 1 2 7 Listen 0007.b400.0102 192.168.1.11 - Vl50 1 3 7 Listen 0007.b400.0103 192.168.1.12 - CatalystA# CatalystB# show glbp brief Interface Grp Fwd Pri State Address Active router Standby router Vl50 1 - 150 Standby 192.168.1.1 192.168.1.10 local Vl50 1 1 7 Listen 0007.b400.0101 192.168.1.10 - Vl50 1 2 7 Active 0007.b400.0102 local - Vl50 1 3 7 Listen 0007.b400.0103 192.168.1.12 - CatalystB# CatalystC# show glbp brief Interface Grp Fwd Pri State Address Active router Standby router Vl50 1 - 100 Listen 192.168.1.1 192.168.1.10 192.168.1.11 Vl50 1 1 7 Listen 0007.b400.0101 192.168.1.10 - Vl50 1 2 7 Listen 0007.b400.0102 192.168.1.11 - Vl50 1 3 7 Active 0007.b400.0103 local - CatalystC# CatalystA# show glbp Vlan50 - Group 1 State is Active 7 state changes, last state change 03:28:05 Virtual IP address is 192.168.1.1 Hello time 3 sec, hold time 10 sec Next hello sent in 1.672 secs Redirect time 600 sec, forwarder time-out 14400 sec Preemption enabled, min delay 0 sec Active is local Standby is 192.168.1.11, priority 150 (expires in 9.632 sec) Priority 200 (configured) Weighting 100 (default 100), thresholds: lower 1, upper 100 Load balancing: round-robin There are 3 forwarders (1 active) Forwarder 1 State is Active 3 state changes, last state change 03:27:37 MAC address is 0007.b400.0101 (default) Owner ID is 00d0.0229.b80a Redirection enabled Preemption enabled, min delay 30 sec Active is local, weighting 100 Forwarder 2 State is Listen MAC address is 0007.b400.0102 (learnt) Owner ID is 0007.b372.dc4a Redirection enabled, 598.308 sec remaining (maximum 600 sec) Time to live: 14398.308 sec (maximum 14400 sec) Preemption enabled, min delay 30 sec Active is 192.168.1.11 (primary), weighting 100 (expires in 8.308 sec) Forwarder 3 State is Listen MAC address is 0007.b400.0103 (learnt) Owner ID is 00d0.ff8a.2c0a Redirection enabled, 599.892 sec remaining (maximum 600 sec) Time to live: 14399.892 sec (maximum 14400 sec) Preemption enabled, min delay 30 sec Active is 192.168.1.12 (primary), weighting 100 (expires in 9.892 sec) CatalystA#