Saturday, September 20, 2014

GLBP Overview

GLBP

Lessons Learned:


The advantage of using over HSPR and VRRP is you can have multiple active routers at the same time in order to do load-balancing out of the network.


GLBP
-Cisco proprietary protocol
-extends HSRP Functionality
Adds load balancing function to FHRP
-Every physical gateway may now be active
--Called Active Virtual forwarders (AVF)
--Each AVF assigned a virtual MAC address
-One gateway responds to ARP requests for GLBP IP
--called Active Virtual Gateway
-ARP response uses virtual MACs of AVFs to implement load balancing.


GLBP extends the HSRP functionality by decoupling the role of the person in charge of the ARP responses VS the person that actually forwards the traffic based on the virtual MAC addresses.
Where in HSRP and VRRP – we only have a single role for active routers.
GLBP has two separate roles, the AVG and the AVF…

The AVF are the routers who have the virtual MAC addresses assigned that actually forward the packets out of the network. The key is the additional role which is the AVG – the AVG is in charge of responding to the SARP requests from the end hosts. The AVG will respond with the MAC address of the AVF.  

The LB is based on the ARP replys and the traffic of the end hosts.

GLBP Implementation:

AVG elected based on priority
-by default AVG is the only AVF, all other are standby.
-No AVG preemption by default
--enable using glbp preempt

To enable load balancing
-command “glbp xxx loag-balancing weighted Y”
-Assign weights with glbp XXX weighting Y
Weight can be adjusted based on object tracking

Note: The will be one AVG where all the other routers will be backing up the AVG. The AVG will be the only forwarder unless we configure load-balancing…


GLBP CFG :

Topology:





GLBP 1  ip 192.168.1.1

Once the routers go through tier initial convergence and discover who the AVG and who are the AVF.

R2#
*Mar  1 00:08:14.251: %GLBP-6-STATECHANGE: FastEthernet0/0 Grp 1 state Standby -> Active
R2#
*Mar  1 00:08:24.251: %GLBP-6-FWDSTATECHANGE: FastEthernet0/0 Grp 1 Fwd 1 state Listen -> Active

Verify:::::::::

From the output we can see that preemption is disabled, the active router is router 2 and the priority is 100. < - this is talking about the AVG.
Farther down the output we can see that there is 3 AVF’s and their MAC addresses.

Technically it doesn’t matter who is the AVG as long as the AVF’s are correct. Which are the devices that are actually forwarding the traffic onto the link.  

Note: the AVG is basically used as the control plane for the GLBP feature. All forwarding takes place at the AVF.


R2#sh glbp
FastEthernet0/0 - Group 1
  State is Active
    2 state changes, last state change 00:04:15
  Virtual IP address is 192.168.1.254
  Hello time 3 sec, hold time 10 sec
    Next hello sent in 2.692 secs
  Redirect time 600 sec, forwarder time-out 14400 sec
  Preemption disabled
  Active is local
  Standby is 192.168.1.3, priority 100 (expires in 7.076 sec)
  Priority 100 (default)
  Weighting 100 (default 100), thresholds: lower 1, upper 100
  Load balancing: round-robin
  Group members:
    c000.1f40.0000 (192.168.1.1)
    c002.1f40.0000 (192.168.1.3)
    cc01.1a94.0000 (192.168.1.2) local
  There are 3 forwarders (1 active)

R1#sh glbp
FastEthernet0/0 - Group 1
  State is Listen
  Virtual IP address is 192.168.1.254
  Hello time 3 sec, hold time 10 sec
    Next hello sent in 2.876 secs
  Redirect time 600 sec, forwarder time-out 14400 sec
  Preemption disabled
  Active is 192.168.1.2, priority 100 (expires in 9.692 sec)
  Standby is 192.168.1.3, priority 100 (expires in 7.036 sec)
  Priority 100 (default)
  Weighting 100 (default 100), thresholds: lower 1, upper 100
  Load balancing: round-robin
  Group members:
    c000.1f40.0000 (192.168.1.1) local
    c002.1f40.0000 (192.168.1.3)
    cc01.1a94.0000 (192.168.1.2)
  There are 3 forwarders (1 active)

R3#sh glbp
FastEthernet0/0 - Group 1
  State is Standby
    1 state change, last state change 00:05:47
  Virtual IP address is 192.168.1.254
  Hello time 3 sec, hold time 10 sec
    Next hello sent in 0.096 secs
  Redirect time 600 sec, forwarder time-out 14400 sec
  Preemption disabled
  Active is 192.168.1.2, priority 100 (expires in 9.764 sec)
  Standby is local
  Priority 100 (default)
  Weighting 100 (default 100), thresholds: lower 1, upper 100
  Load balancing: round-robin
  Group members:
    c000.1f40.0000 (192.168.1.1)
    c002.1f40.0000 (192.168.1.3) local
    cc01.1a94.0000 (192.168.1.2)
  There are 3 forwarders (1 active)


Now to configure the weighting of traffic on the AVG.
The weighting is essentially how it responds to the arp replies.

On the router who sis elected the AVG – in this case it’s R2:



R2(config-if)#int fa0/0

R2(config-if)#glbp 1 weighting 10

R2(config-if)#glbp 1 load-balancing weighted


Basically we’ve configured weighting (we can get into complex weighting if we have tracking enabled and based on how many upstream neighbors we have.)
We now have configured and value and said LB based on that value. On the other two Forwarder I will configure a weight of 5.

The verify output – show that we still have one active and the original forwarders.

R2#sh glbp
FastEthernet0/0 - Group 1
  State is Active
    2 state changes, last state change 00:32:37
  Virtual IP address is 192.168.1.254
  Hello time 3 sec, hold time 10 sec
    Next hello sent in 1.356 secs
  Redirect time 600 sec, forwarder time-out 14400 sec
  Preemption disabled
  Active is local
  Standby is 192.168.1.3, priority 100 (expires in 8.660 sec)
  Priority 100 (default)
  Weighting 10 (configured 10), thresholds: lower 1, upper 10
  Load balancing: weighted
  Group members:
    c000.1f40.0000 (192.168.1.1)
    c002.1f40.0000 (192.168.1.3)
    cc01.1a94.0000 (192.168.1.2) local
  There are 3 forwarders (1 active)
  Forwarder 1
    State is Active
      1 state change, last state change 00:32:27
    MAC address is 0007.b400.0101 (default)
    Owner ID is cc01.1a94.0000
    Redirection enabled
    Preemption enabled, min delay 30 sec
    Active is local, weighting 10
    Arp replies sent: 1


We now need to configure all the routers LB to use the configured weight.
EX: glbp 1 load-balancing weighted


R3#sh glbp
FastEthernet0/0 - Group 1
  State is Standby
    1 state change, last state change 00:35:55
  Virtual IP address is 192.168.1.254
  Hello time 3 sec, hold time 10 sec
    Next hello sent in 2.320 secs
  Redirect time 600 sec, forwarder time-out 14400 sec
  Preemption disabled
  Active is 192.168.1.2, priority 100 (expires in 8.568 sec)
  Standby is local
  Priority 100 (default)
  Weighting 5 (configured 5), thresholds: lower 1, upper 5
  Load balancing: weighted
  Group members:
    c000.1f40.0000 (192.168.1.1)
    c002.1f40.0000 (192.168.1.3) local
    cc01.1a94.0000 (192.168.1.2)
  There are 3 forwarders (1 active)
  Forwarder 1
    State is Listen
    MAC address is 0007.b400.0101 (learnt)
    Owner ID is cc01.1a94.0000
    Time to live: 14398.560 sec (maximum 14400 sec)
    Preemption enabled, min delay 30 sec
    Active is 192.168.1.2 (primary), weighting 10 (expires in 7.424 sec)
  Forwarder 2
    State is Listen
    MAC address is 0007.b400.0102 (learnt)
    Owner ID is c000.1f40.0000
    Time to live: 14397.492 sec (maximum 14400 sec)
    Preemption enabled, min delay 30 sec
    Active is 192.168.1.1 (primary), weighting 5 (expires in 7.492 sec)
  Forwarder 3
    State is Active
      1 state change, last state change 00:36:00
    MAC address is 0007.b400.0103 (default)
    Owner ID is c002.1f40.0000
    Preemption enabled, min delay 30 sec
    Active is local, weighting 5
R3#

Note: now for forwarder 3 (R3) we are now active and also notice that preemption is active.
Note: remember the LB is based on ARP request and reply. The LB is not a pre destination like CEF, it’s a pre ARP request.

If we wanted to us tracking we can configure the weighting and tracking together.

EX: glbp 1 weighting track 10 decrement (value to decrement)