为了减少交换机故障的影响,交换上有STP技术。然而作为网关的路由器出故障了,又有什么办法?HSRP和VRRP是最常用的网关冗余技术。HSRP和VRRP类似,由多个路由器共同组成一个组,虚拟一个网关,其中的一台路由器处于活动状态,当它出故障时,由备份路由器接替它的工作,从而实现对用户透明的切换。然而我们希望在冗余的同时,能同时实现负载平衡,以充分利用设备的能力,GLBP同时提供了冗余和负载平衡的能力。
网关冗余和负载平衡简介
一、HSRP 是 Cisco 的专有协议。
HSRP(Hot Standby Router Protocol )把多台路由器组成一个”热备份组”,形成一个虚拟路由器。这个组内只有一个路由器是活动的(Active),并由它来转发数据包,如果活动路由器发生了故障,备份路由器将成为活动路由器。从网络内的主机来看,网关并没有改变。
HSRP 路由器利用Hello包来互相监听各自的存在。当路由器长时间没有接收到Hello包时,就认为活动路由器故障了,备份路由器就会成为活动路由器。HSRP协议利用优先级决定哪个路由器成为活动路由器。如果一个路由器的优先级比其他路由器的优先级高,则该路由器成为活动路由器。路由器的默认优先级是 100.在一个组中,最多有一个活动路由器和一个备份路由器。
HSRP路由器发送的多播消息有以下3种。
- Hello;Hello 消息通知其他路由器发送路由器的 HSRP 优先级和状态信息,HSRP 路由器默认为每 3 s 发送一个 Hello消息;
- Coup;当一个备用路由器变为一个活动路由器时,发送一个 Coup 消息;
- Resign;当活动路由器要宕机或者当有优先级更高的路由器发送 Hello 消息时,主动发送一个 Resign 消息。
HSRP 路由器有以下 6 种状态。
- Initial;HSRP 启动时的状态,HSRP 还没有运行,一般是在改变配置或接口刚刚启动时进入该状态;
- Learn;路由器已经得到了虚拟 IP 地址,但是它既不是活动路由器,也不是备份路由器,它一直监听从活动路由器和备份路由器发来的 Hello 报文;
- Listen;路由器正在监听 Hello 消息;
- Speak;在该状态下,路由器定期发送 Hello 报文,并且积极参加活动路由器或备份路由器的竞选;
- Standby;当活动路由器失效时路由器准备接管数据传输功能;
- Active;路由器执行数据传输功能。
二、VRRP
VRRP的工作原理和HSRP非常类似,不过VRRP是国际上的标准,允许在不同厂商的设备之间运行。VRRP中虚拟网关的地址可以和接口上的地址相同,VRRP 中接口只有3个状态:初始状态(Initialize)、主状态(Master)和备份状态(Backup)。VRRP只有一种报文。
三、GLBP
HSSP和VRRP能实现网关冗余,然而,如果要实现负载平衡,需要创建多个组,并让客户端指向不同的网关。GLBP(Gateway Load Balance Protocol)也是Cisco的专有协议,不仅提供冗余网关功能,还在各网关之间提供负载均衡。GLBP也是由多个路由器组成一个组,虚拟一个网关出来。GLBP 选举出一个 AVG(Avtive Virtual Gateway),AVG 不是负责转发数据的。AVG 分配最多 4 个 MAC地址给一个虚拟网关,并在计算机进行ARP请求时,用不同的MAC进行响应,这样计算机实际就把数据发送给不同的路由器了,从而实现负载平衡。在 GLBP 中,真正负责转发数据的是AVF(Avtive Virtual Forawarder),GLBP会控制GLBP组中哪个路由器是哪个MAC地址的活动路由器。
AVG 的选举和HRSP中活动路由器的选举非常类似,优先级最高的路由器成为AVG,次之的为Abckup AVG,其余的为监听状态。一个 GLBP 组只能有一个AVG和一个Backup AVG,主 AVG 失败,备份 AVG 顶上。一台路由器可以同时是AVG和AVF。AVF是某些MAC的活动路由器,也就是说,如果计算机把数据发往这个 MAC,它将接收。当某一MAC的活动路由器有故障时,其他 AVF 将成为这一 MAC 的新的活动路由器,从而实现冗余功能GLBP的负载平衡策略可以根据不同主机、简单地轮询,或者根据路由器的权重平衡,默认是轮询方式。
三层交换机(左)配置:
S3A#show run
Building configuration...
Current configuration : 1650 bytes
!
version 16.3.2
no service timestamps log datetime msec
no service timestamps debug datetime msec
no service password-encryption
!
hostname S3A
!
!
!
!
!
!
!
no ip cef
ip routing
!
no ipv6 cef
!
!
!
!
!
!
!
!
!
!
!
!
!
!
spanning-tree mode pvst
!
!
!
!
!
!
interface GigabitEthernet1/0/1
!
interface GigabitEthernet1/0/2
!
interface GigabitEthernet1/0/3
!
interface GigabitEthernet1/0/4
!
interface GigabitEthernet1/0/5
!
interface GigabitEthernet1/0/6
!
interface GigabitEthernet1/0/7
!
interface GigabitEthernet1/0/8
!
interface GigabitEthernet1/0/9
!
interface GigabitEthernet1/0/10
!
interface GigabitEthernet1/0/11
!
interface GigabitEthernet1/0/12
!
interface GigabitEthernet1/0/13
!
interface GigabitEthernet1/0/14
!
interface GigabitEthernet1/0/15
!
interface GigabitEthernet1/0/16
!
interface GigabitEthernet1/0/17
!
interface GigabitEthernet1/0/18
!
interface GigabitEthernet1/0/19
!
interface GigabitEthernet1/0/20
!
interface GigabitEthernet1/0/21
!
interface GigabitEthernet1/0/22
!
interface GigabitEthernet1/0/23
!
interface GigabitEthernet1/0/24
!
interface GigabitEthernet1/1/1
!
interface GigabitEthernet1/1/2
!
interface GigabitEthernet1/1/3
!
interface GigabitEthernet1/1/4
!
interface Vlan1
no ip address
shutdown
!
interface Vlan10
mac-address 00d0.ff8d.0701
ip address 192.168.10.100 255.255.255.0
standby 10 ip 192.168.10.254
standby 10 preempt
standby 10 track GigabitEthernet1/0/1
!
interface Vlan20
mac-address 00d0.ff8d.0702
ip address 192.168.20.100 255.255.255.0
standby 20 ip 192.168.20.254
!
ip classless
!
ip flow-export version 9
!
!
!
!
!
!
!
!
line con 0
!
line aux 0
!
line vty 0 4
login
!
!
!
!
end
S3A#
三层交换机(右)配置:
S3B#show run
Building configuration...
Current configuration : 1650 bytes
!
version 16.3.2
no service timestamps log datetime msec
no service timestamps debug datetime msec
no service password-encryption
!
hostname S3B
!
!
!
!
!
!
!
no ip cef
ip routing
!
no ipv6 cef
!
!
!
!
!
!
!
!
!
!
!
!
!
!
spanning-tree mode pvst
!
!
!
!
!
!
interface GigabitEthernet1/0/1
!
interface GigabitEthernet1/0/2
!
interface GigabitEthernet1/0/3
!
interface GigabitEthernet1/0/4
!
interface GigabitEthernet1/0/5
!
interface GigabitEthernet1/0/6
!
interface GigabitEthernet1/0/7
!
interface GigabitEthernet1/0/8
!
interface GigabitEthernet1/0/9
!
interface GigabitEthernet1/0/10
!
interface GigabitEthernet1/0/11
!
interface GigabitEthernet1/0/12
!
interface GigabitEthernet1/0/13
!
interface GigabitEthernet1/0/14
!
interface GigabitEthernet1/0/15
!
interface GigabitEthernet1/0/16
!
interface GigabitEthernet1/0/17
!
interface GigabitEthernet1/0/18
!
interface GigabitEthernet1/0/19
!
interface GigabitEthernet1/0/20
!
interface GigabitEthernet1/0/21
!
interface GigabitEthernet1/0/22
!
interface GigabitEthernet1/0/23
!
interface GigabitEthernet1/0/24
!
interface GigabitEthernet1/1/1
!
interface GigabitEthernet1/1/2
!
interface GigabitEthernet1/1/3
!
interface GigabitEthernet1/1/4
!
interface Vlan1
no ip address
shutdown
!
interface Vlan10
mac-address 00d0.ba4e.a701
ip address 192.168.10.200 255.255.255.0
standby 10 ip 192.168.10.254
!
interface Vlan20
mac-address 00d0.ba4e.a702
ip address 192.168.20.200 255.255.255.0
standby 20 ip 192.168.20.254
standby 20 preempt
standby 20 track GigabitEthernet1/0/2
!
ip classless
!
ip flow-export version 9
!
!
!
!
!
!
!
!
line con 0
!
line aux 0
!
line vty 0 4
login
!
!
!
!
end
S3B#
S3B#
二层交换机配置:
S2A#show run
Building configuration...
Current configuration : 1555 bytes
!
version 12.2
no service timestamps log datetime msec
no service timestamps debug datetime msec
no service password-encryption
!
hostname S2A
!
!
!
!
!
!
spanning-tree mode pvst
spanning-tree extend system-id
!
interface FastEthernet0/1
switchport access vlan 10
!
interface FastEthernet0/2
switchport access vlan 10
!
interface FastEthernet0/3
switchport access vlan 10
!
interface FastEthernet0/4
switchport access vlan 10
!
interface FastEthernet0/5
switchport access vlan 10
!
interface FastEthernet0/6
switchport access vlan 10
!
interface FastEthernet0/7
switchport access vlan 10
!
interface FastEthernet0/8
switchport access vlan 10
!
interface FastEthernet0/9
switchport access vlan 20
!
interface FastEthernet0/10
switchport access vlan 20
!
interface FastEthernet0/11
switchport access vlan 20
!
interface FastEthernet0/12
switchport access vlan 20
!
interface FastEthernet0/13
switchport access vlan 20
!
interface FastEthernet0/14
switchport access vlan 20
!
interface FastEthernet0/15
switchport access vlan 20
!
interface FastEthernet0/16
switchport access vlan 20
!
interface FastEthernet0/17
!
interface FastEthernet0/18
!
interface FastEthernet0/19
!
interface FastEthernet0/20
!
interface FastEthernet0/21
!
interface FastEthernet0/22
!
interface FastEthernet0/23
!
interface FastEthernet0/24
!
interface GigabitEthernet0/1
switchport mode trunk
!
interface GigabitEthernet0/2
switchport mode trunk
!
interface Vlan1
no ip address
shutdown
!
!
!
!
line con 0
!
line vty 0 4
login
line vty 5 15
login
!
!
!
!
end
S2A#
S2A#