GLBP

  1. Gateway Load Balancing Protocol
    1. Active virtual gateway (AVG)
    2. Active virtual forwarder (AVF)
    3. Timers
    4. TLV
    5. Load-balancing
  2. GLBP + STP (L2 between AVF)
  3. Design

Gateway Load Balancing Protocol

  • Cisco proprietary
  • per host load-balancing
  • everybody sends Hello
    • no gratuitous ARP, Hello is used instead
  • IP src: interface IP address
  • MAC src:
    • during neighbourship negotiation – physical MAC
    • vMAC 0007.b4××.××yy, ×××× – group number, yy – AVF number
  • IP dst: 224.0.0.102
  • MAC dst: 0100.5e00.0066
  • UDP 3222
  • BFD not supported
  • ICMP Redirect is filtered
; 100 by default
(config-if)# glbp <GROUP> priority <N>

; can be learned from AVG
(config-if)# glbp <GROUP> ip [<IP> [secondary]]

(config-if)# glbp <GROUP> ipv6 autoconfigure

; cache ARP replies, sent by AVG, disabled by default, cache is not transferred on preempt
(config-if)# glbp <GROUP> client-cache maximum <N>

Active virtual gateway (AVG)

  • highest priority, if tie – highest IP
  • replies to ARP requests
  • assigns vMAC to AVF using TLV
; AVG preempt, disabled by default
(config-if)# glbp <GROUP> preempt [delay minimum <sec>]

Active virtual forwarder (AVF)

  • up to 4 active
  • highest weight
  • load-balancing host traffic
  • sends Hello from assigned vMAC
  • AVF fails
    • load is transferred to min weight AVF, if tie – highest IP
  • AVF preemption:
    • AVF is restored after failure
    • AVF preempts its assigned vMAC back, AVG not involved
    • vMAC preemption does not depend on weight
    • does not preempt vMACs, that were assigned after other AVF failure
  • if packet for not-owned vMAC is received, it is forwarded further
; AVF preempt, enabled by default, delay = 30s by default
(config-if)# glbp <GROUP> forwarder preempt [delay minimum <sec>]

; defaults: MAX = 100, LOW = 1, UP = max
; if weight < low, cannot be an AVF; if weight > up, become AVF again
(config-if)# glbp <GROUP> weighting <MAX> [lower <LOW>] [upper <UP>] 

; N = 10 by default
(config-if)# glbp <GROUP> weighting track <OBJ> [decrement <N>]

Timers

  • AVG timers are used
  • timers:
    1. hello:
      • 3s default
    2. hold:
      • 10s default
    3. redirect:
      • 10 min default
      • how long vMAC from failed AVF is serviced: traffic forwarding + reply to ARP with vMAC
    4. timeout:
      • 4h default
      • AVF and vMAC valid time
(config-if)# glbp <GROUP> timers [msec] <HELLO> [msec] <HOLD>
(config-if)# glbp <GROUP> redirect <REDIRECT> <TIMEOUT>

TLV

  • Hello: AVG role, vIP, priority, timers
  • Request/Response: AVF role, AVF number, vMAC

Load-balancing

  1. round-robin: default
  2. weighted
  3. host dependent: does not tear NAT session
  4. none: HSRP behaviour
(config-if)# glbp <GROUP> load-balancing round-robin|weighted|host-dependent

GLBP + STP (L2 between AVF)

Design

  • preempt delay = 1.5 × boot time
  • do not use with VSS