In this post you’ll read some key points of GLBP and then I’ll invite you to test a sample implementation of GLBP.
What does GLBP mean now?
GLBP means Gateway Load Balancing Protocol. What an easy definition
It is a VGP (Virtual Gateway Protocol) similar to HSRP and VRRP which I’ll mention later in other posts. It’s the strongest kind of VGPs because it is capable of using multiple physical gateways at the same time.
You know Cisco is always introducing greatest in any field, and also this great protocol is a Cisco proprietary too.
This protocol attempts to overcome the limitations of existing redundant router protocols by adding basic load balancing functionality
In addition to being able to set priorities on different gateway routers, GLBP allows a weighting parameter to be set. Based on this weighting (compared to others in the same virtual router group), ARP requests will be answered with MAC addresses pointing to different routers. Thus, load balancing is not based on traffic load, but rather on the number of hosts that will use each gateway router. By default GLBP load balances in round-robin fashion.
GLBP elects one AVG
(Active Virtual Gateway) for each group
. Other group members act as backup in case of AVG failure
. In case there are more than two members, the second best AVG is placed in the Standby state and all other members are placed in the Listening state. This is monitored using hello
timers, which are 3
seconds by default. The elected AVG then assigns a virtual MAC address to each member of the GLBP group, including itself, thus enabling AVFs (Active Virtual Forwarders). Each AVF assumes responsibility for forwarding packets sent to its virtual MAC address. There could be up to four active AVFs at the same time.
Here are the key points of GLBP in my point of view:
- Unequal Load Balancing is supported.
- Single VIP on multiple VMACs
- GLBP supports IPv6.
- GLBP uses 188.8.131.52 multicast address to send hello packets to their peers every 3 seconds over UDP 3222.
- Hello: 3seconds, Hold: 10seconds
My topology is shown below:
The goal of this configuration is that if one of the links to the active of each glbp group changed state to down, R1 & R4 continue to be reachable for each other.
( c=config mode)
Two GLBP groups should be configured, one for each side of the network. Also we’ve to track both interfaces of GLBP routers to be informed of their link-state and be capable to change the active/standby routers.
Creating two tracking objects of both interfaces for use in glbp-weighting for both routers: c–>track [object#] interface [int] line-protocol
- These commands should be applied on all glbp interfaces in interface mode:
These commands should be applied just on the interfaces which we want to be the AVG of each GLBP group# in interface mode:
- Configuring the VIP(Virtual IP) for each glbp group on both router interfaces: c–>interface [int]–>glbp[group#] ip [VIP]
- Enabling weighted Load-Balancing: –>glbp[group#] load-balancing weighted
- Enabling Preemption: –>glbp[group#] preempt //Using this command means that, the router with higher priority should be Active and the lower should be Standby.
- Speeding GLBP by lowering the hello and hold timers: –>glbp[group#] timers [hello] [hold]
Useful EXEC Commands:
#show glbp brief
You can download my topolgy and config files here.
Read more: Wikipedida , Cisco , INE CCIE Blog
- Prioritizing the router which we want to be AVG, using: c–>interface [int]–>glbp[group#] priority [priority] //The router with highest priority will be the AVG.
- Applying both tracks to glbp weighting: –>glbp [group#] weighting track [object#] decrement [weight-value-decrement] //This command means if the track object considers the line-protocl of any glbp interface of the router as down, the glbp weight value of this router will be decremented and it will change to Standby from AVF.
- Configuring the weighting threshold: –>glbp [group#] weighting [default-value] lower [lower-threshold] upper [upper-threshold] //This command sets the default weight value, and if the value which is tracked by the weighting track be less than the lower-threshold it will lose AVF state, and if it becomes more than the upper-threshold it will change to AVF state. This can be also configured on the interfaces which we want to act as an AVF, and not only for AVG.