====== 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#