并且可以在 SW1 或 2 看到如下的路由信息:
SW2#show ip route Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP a - application route + - replicated route, % - next hop override, p - overrides from PfR Gateway of last resort is not set 1.0.0.0/24 is subnetted, 1 subnets D 1.1.1.0 [90/409600] via 200.1.1.2, 00:31:52, Ethernet0/2 10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks C 10.1.1.0/24 is directly connected, Vlan10 L 10.1.1.252/32 is directly connected, Vlan10 20.0.0.0/8 is variably subnetted, 2 subnets, 2 masks C 20.1.1.0/24 is directly connected, Vlan20 L 20.1.1.252/32 is directly connected, Vlan20 100.0.0.0/24 is subnetted, 1 subnets D 100.1.1.0 [90/307200] via 200.1.1.2, 00:31:52, Ethernet0/2 200.1.1.0/24 is variably subnetted, 2 subnets, 2 masks C 200.1.1.0/24 is directly connected, Ethernet0/2 L 200.1.1.1/32 is directly connected, Ethernet0/2配置 SW1 为 VLAN 10 的根桥 ID. 配置 SW2 为 VLAN 20 的根桥 ID.
# SW1 SW1(config)#spanning-tree vlan 10 priority 0 SW1(config)#spanning-tree vlan 20 priority 4096 # SW2 SW2(config)#spanning-tree vlan 10 priority 4096 SW2(config)#spanning-tree vlan 20 priority 0现在用 PC5 Ping 1.1.1.1:
trace to 1.1.1.1, 8 hops max, press Ctrl+C to stop 1 10.1.1.251 0.893 ms 0.852 ms 2.083 ms 2 *100.1.1.2 0.654 ms (ICMP type:3, code:3, Destination port unreachable) *用 PC6 Ping 1.1.1.1:
VPC6> trace 1.1.1.1 trace to 1.1.1.1, 8 hops max, press Ctrl+C to stop 1 20.1.1.252 0.402 ms 0.327 ms 0.378 ms 2 *200.1.1.2 0.754 ms (ICMP type:3, code:3, Destination port unreachable) *可以发现 VLAN 10 走 SW1 ,VLAN 20 走 SW2.
配置 HSRP :
# 配置 Vlan 10 HSRP: SW1(config)#int vlan 10 SW1(config)#standby 1 ip 10.1.1.254 SW1(config)#standby 1 priority 120 SW2(config)#int vlan 10 SW2(config)#standby 1 ip 10.1.1.254 SW2(config)#standby 1 priority 100 # 配置 Vlan 20 HSRP: SW1(config)#int vlan 20 SW1(config)#standby 2 ip 20.1.1.254 SW1(config)#standby 2 priority 100 SW2(config)#int vlan 20 SW2(config)#standby 2 ip 20.1.1.254 SW2(config)#standby 2 priority 120此时将 PC5 和 PC 6 的网关改为:10.1.1.254 和 20.1.1.254. 然后 shutdown SW1 vlan 10,可以发现依然可以访问 1.1.1.1 只不过现在走 SW2. 这条备份链路。
接着将 Vlan1 10 接口打开, 但发现无法将 VLAN 10 的 Active 恢复 SW1,这时需要打开抢占功能:
SW1(config)#interface Vlan 10 SW1(config-if)#standby 1 preempt打开认证功能:
SW2(config)#int vlan 10 SW2(config-if)#standby 1 authentication md5 key-string cisco SW1(config)#int vlan 10 SW1(config-if)#standby 1 authentication md5 key-string cisco打开链路跟踪功能, 当 SW1 或 SW2 上行链路出现问题,立即进行切换:
SW1(config)# track 1 inerface e0/2 line-protocol SW1(config)#int vlan 10 # 调用跟踪链路 track1 SW1(config-if)#standby 2 track 1 decrement 30 # 抢占等待时间 10 SW2(config-if)#standby 2 preempt delay minimum 10 SW2(config)# track 1 inerface e0/2 line-protocol SW2(config)#int vlan 20 SW2(config-if)#standby 2 track 1 decrement 30 SW2(config-if)#standby 2 preempt delay minimum 10 VRRPVRRP 本身是公有协议,和 HSRP 非常类似,用于解决网关备份的问题。
VRRP 角色VRRP 组:由多个 VRRP 路由器组成,属于同一个 VRRP 组,组内的路由器会交换信息,每个组由唯一 ID 指定。经过选举会推选出 Active 路由器和 Standby 路由器。
VRRP 虚拟路由:对每个 HSRP 组,抽象出的虚拟路由器。作为我拿过来。具有虚拟 IP 和 MAC。虚拟出来的 IP 作为网关地址。
Master 路由器:HSRP 中实际转发数据包的路由器,每个 HRSP 组中,仅有一个 Master 路由器,并绑定虚拟 IP,用于响应请求。
backup 路由器:在 HSRP 组中,处于监听状态的路由器,当 Master 路由器出现问题时,接替工作。
VRRP 特性在 VRRP 组中的路由器,通过 Advertise 报文交互。
报文间隔时间为 1 s,失效时间为 3s + (256 - 优先级) / 256
VRRP 使用 224.0.0.18 为组播地址,协议号为 112
每个接口最多支持 256 个组,可以实现像 HRSP 一样的负载分摊。
VRRP 和 HSRP 不同的是,VRRP 虚拟出的来 IP 可以和同一网络下的实际物理 IP 相同。称为 IP 拥有者,优先级为最大 255.
优先级范围:0 - 255,可配置范围为 1 - 254, 255 是 IP 拥有者,0 是在关闭 VRRP 进程触发
虚拟 MAC 地址为:000.5e00.01xx (xx 为 VRRP 组ID)
VRRP 默认开启抢占功能
VRRP 状态Init 状态:初始化状态
如果虚拟 IP 和物理 IP 一样,表示为 IP 拥有者,立即变成 Master 状态。
其他情况,都会转化为 Backup 状态。
Backup 状态:备份状态
等待时滞时间后,先发送 Hello 报文的成为 master.
Master 状态:实际转发状态
GLBPGLBP 思科私有协议,和 VRRP 不同,组内可有多台 Active,能实现真正意义的上的负载分担。能提供一个虚拟 IP 和多个 MAC 地址并分配给 PC。
当 PC 在解析网关时,由于一个 IP 对应多个 MAC 地址,可将流量分配到不同的 MAC 地址所对应的设备上,实现负载分摊。
GLBP 角色AVG(Active Virtual Gateway):在每个组中,分配 MAC 地址给成员
Active AVG 默认不能自动强占,只能手动强占。
AVF(Active Virtual Forwarder):组内实际转发的成员
每组最多 4 个,每个 AVF 都有一个虚拟的 MAC 地址(0007-b400-XXYY,XX 表示组号,YY代表转发者编号)
如果组内成员超过 4 个,最先成为 AVF 成为 Primary 成员,其余为 Secondary 成员(不参与转发,处于等待状态)。
如果 Primary AVF 中的权重值小于,Secondary AVF 成员中的权重值,会被替换。
BVG(Backup Virtual Gateway):充当分配 MAC 地址的备份,防止单点故障
选举过程通过 Hello 报文交互,数值越大,优先级越高。如果优先级一样,选 IP 地址大的。
GLBP 特性负载分摊模式:
加权负载均衡:取决于 AVF 网关的权重值
主机负载均衡:确保主机一直使用同一个虚拟 MAC 地址,根据主机实现负载均衡
循环负载均衡:默认模式,按照顺序分配
GLBP 配置 # R1 inter Eth0/0 glbp 1 ip 192.168.1.254 show glbp GLBP 的问题需要注意的是 GLBP 不能用在二层链路上,因为二层链路上存在生成树协议,存在阻塞端口,进一步导致次优路径。
总结本篇共提到了三个协议,用于解决网关单点故障的问题。
从目前使用的情况看,VRRP 由于是公有协议使用的更多些。HSRP 和 GLBP 由于是思科的私有协议,仅能跑在思科设备上。
从配置的角度看,VRRP 和 HSRP 非常类似,其中概念也较为相似。仅在命名和选举的计算方式稍有不同。