FHRP – 网关冗余协议

通常情况下,在终端设备进入网络前,都会有一个 Router 充当网络,作为第一跳的网络地址。但假设路由器发生故障,此时终端设备就无法再接入互联网。

为了防止这样的问题,一般会再加入一台路由器充当备份。但此时就出现一个问题,网关地址配这两个路由器中的那个?

于是 FHRP 协议出现,可以将多个路由器虚拟成一个路由器提供服务,当提供服务的路由器发生故障时,会自动切换到另一台上。

FHRP 是这类路由协议的统称,常见路由协议如下:

  • HSRP 协议,Cisco 私有协议。
  • VRRP 协议,公有协议。

HSRP

HRSP 热备份冗余协议,是 CISCO 私有协议,用于解决网关的备份问题。

能够在不改变组网的情况下,将多台路由器虚拟成一个虚拟路由器。

HRSP 角色

HRSP 组:由多个 HRSP 路由器组成,属于同一个 HSRP 组,组内的路由器会交换信息,每个组由唯一 ID 指定。经过选举会推选出 Active 路由器和 Standby 路由器。

HSRP 虚拟路由:对每个 HSRP 组,抽象出的虚拟路由器。作为我拿过来。具有虚拟 IP 和 MAC。虚拟出来的 IP 作为网关地址。

Active 路由器:HSRP 中实际转发数据包的路由器,每个 HRSP 组中,仅有一个 active 路由器,并绑定虚拟 IP,用于响应请求。

Stand by 路由器:在 HSRP 组中,处于监听状态的路由器,当 Active 路由器出现问题时,接替工作。

HSRP 选举过程

  1. 处于同一 HRSP 组的路由器会向组播地址 224.0.0.2 发送 Hello 报文,使用 UDP 1985 端口。
  2. 然后⽐较 Hello 报⽂中的优先级,拥有最⾼优先级(默认为100,范围为1~255)的设备将成为活动路由器。
  3. 最后优先级⼀样则⽐较接⼝ IP 地址,选⼤的。

HSRP状态

  • Initial:初始化状态,当接⼝UP的时候或某些配置变更时

  • Listen:路由器已获知虚拟IP,开始侦听其他同组HSRP路由器的Hello消息

  • Speak:发送周期的Hello同时参与Active/Standby路由器的选举

  • Standby:成为Standby路由器,同时周期性的发送Hello,持续侦听Active路由器的Hello消息以便在其失效后接替其位置

  • Active:成为Active路由器,响应PC对于虚拟IP的ARP请求,同时周期性发送Hello消息以宣告⾃⼰的存活状态

HSRP 版本

HSRPV1 HSRPV2
IPv4 HSRPv4/v6
Group numbers 0 – 255 Group numbers 0 -4095
Virtual MAC: 0000:0C07:ACxx (xx 来源 HSRP 组) Virtual MAC: 0000:0C9F:Fxxx (xxx 来源 HSRP 组)
广播地址:224.0.0.2 广播地址:224.0.0.102

HSRP 特性

  • 在 Active 路由器中负责分发虚拟 IP 和 MAC
  • Active 路由器会每三秒给 Standby 路由器发送 Hello 报文,如果 10s 未发送,Standby 会成为 Master 宣告 Active 路由器死亡。
  • 支持开启抢占功能,默认未开启,开启后,可配置立即抢占和延时抢占。
  • 支持追踪功能,用于检测当某个接口或路由条目丢失时,降低其 HSRP 优先级。
  • 每个接口最多支持 255 个 HSRP 组,可在一定意义上实现负载。
  • HSRP 支持明文和 MD5 认证。

HSRP 实验1

将 R1 和 R2 配置 HRSP 协议,down 掉 R1,网络依然正常。

# R1
inter Eth0/0
standby 1 ip 192.168.1.254
standby 1 priority 120
show standby

# R2
inter Eth0/0
standby 1 192.168.1.254
standby 1 priority 100

HSRP 实验2

准备工作 1 – 4:

# PC 5: IP 网关
VPC5> ip 10.1.1.1/24 10.1.1.251

# PC 6:
VPC6> ip 20.1.1.1/24 20.1.1.252

# SW3:
vlan 10,20
!
hostname SW3
!
interface Ethernet0/0
 switchport trunk encapsulation dot1q
 switchport mode trunk
!
interface Ethernet0/1
 switchport trunk encapsulation dot1q
 switchport mode trunk
!
interface Ethernet0/2
 switchport access vlan 10
 switchport mode access
!
interface Ethernet0/3
 switchport access vlan 20
 switchport mode access
!

# SW1
vlan 10,20
ip routing
!
hostname SW1
!
interface Ethernet0/0
 switchport trunk encapsulation dot1q
 switchport mode trunk
!
interface Ethernet0/1
 switchport trunk encapsulation dot1q
 switchport mode trunk
!
interface Ethernet0/2
 no switchport
 ip address 100.1.1.1 255.255.255.0
!
interface Vlan10
 ip address 10.1.1.251 255.255.255.0
!
interface Vlan20
 ip address 20.1.1.251 255.255.255.0
!
router eigrp 1
 network 100.1.1.0 0.0.0.255
 network 10.1.1.251 0.0.0.255
 network 20.1.1.251 0.0.0.255
!

# SW2
vlan 10,20
ip routing
!
hostname SW2
!
interface Ethernet0/0
 switchport trunk encapsulation dot1q
 switchport mode trunk
!
interface Ethernet0/1
 switchport trunk encapsulation dot1q
 switchport mode trunk
!
interface Ethernet0/2
 no switchport
 ip address 200.1.1.1 255.255.255.0
!
interface Vlan10
 ip address 10.1.1.252 255.255.255.0
!
interface Vlan20
 ip address 20.1.1.252 255.255.255.0
!
!
router eigrp 1 
 network 200.1.1.0  0.0.0.255
 network 10.1.1.252 0.0.0.255
 network 20.1.1.252 0.0.0.255
!

# Router
!
hostname R1
!
interface Loopback0
 ip address 1.1.1.1 255.255.255.0
!
interface Ethernet0/0
 ip address 100.1.1.2 255.255.255.0
 duplex auto
!
interface Ethernet0/1
 ip address 200.1.1.2 255.255.255.0
 duplex auto
!
router eigrp 1
 network 1.1.1.1 0.0.0.0
 network 100.1.1.0 0.0.0.255
 network 200.1.1.0
!

配置成功后,PC 5 可以 ping 通 PC6.

并且可以在 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

VRRP

VRRP 本身是公有协议,和 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 状态:实际转发状态

GLBP

GLBP 思科私有协议,和 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 非常类似,其中概念也较为相似。仅在命名和选举的计算方式稍有不同。

从流量的负载角度看,GLBP 更加优秀一些,相比 VRRP 和 HSRP,实现的是真正意义上的负载分摊。但由于其存在多个 MAC 的原因,不能适用于充当二层网关的设备。

给TA买糖
共{{data.count}}人
人已赞赏
经验教程

salesforce lightning零基础学习(十七) 实现上传 Excel解析其内容,salesforce零基础学习(八十九)使用 input type=file 以及RemoteAction方式上传附件

2021-3-15 15:27:00

经验教程

十大排序算法详解

2021-3-15 15:48:00

⚠️
免责声明:根据《计算机软件保护条例》第十七条规定“为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。”您需知晓本站所有内容资源均来源于网络,仅供用户交流学习与研究使用,版权归属原版权方所有,版权争议与本站无关,用户本人下载后不能用作商业或非法用途,需在24个小时之内从您的电脑中彻底删除上述内容,否则后果均由用户承担责任;如果您访问和下载此文件,表示您同意只将此文件用于参考、学习而非其他用途,否则一切后果请您自行承担,如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。 本站为个人博客非盈利性站点,所有软件信息均来自网络,所有资源仅供学习参考研究目的,并不贩卖软件,不存在任何商业目的及用途,网站会员捐赠是您喜欢本站而产生的赞助支持行为,仅为维持服务器的开支与维护,全凭自愿无任何强求。本站部份代码及教程来源于互联网,仅供网友学习交流,若您喜欢本文可附上原文链接随意转载。
无意侵害您的权益,请发送邮件至 momeis6@qq.com 或点击右侧 私信:momeis 反馈,我们将尽快处理。
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
有新私信 私信列表
搜索