设为首页收藏本站language→→ 语言切换

鸿鹄论坛

 找回密码
 论坛注册

QQ登录

先注册再绑定QQ

查看: 713|回复: 2
收起左侧

[分享] 第一跳冗余协议FHRP(first hop redundancy protocol)

[复制链接]
 成长值: 63265
发表于 2023-9-8 15:01:53 | 显示全部楼层 |阅读模式
第一跳冗余协议FHRP(first hop redundancy protocol):
主要是用来解决网关问题,提高了默认网关的冗余性和负载均衡;其方法是让多台路由器组成一个组并虚拟出一个网关,让其中的一台路由器充当活跃的网关路由器,而另一台或多台其它路由器则处于备用模式;PC通过连接虚拟网关访问外网,当主备路由器进行切换时,由于虚拟路由器没有改变,所以主机仍然保持连接,没有受到故障的影响;当然也可以实现基于多台路由器的冗余备份或负载均衡;在可以使用第一跳冗余协议之前,网关的冗余性依赖于静态网关配置和代理ARP。


                               
登录/注册后可看大图


工作原理:
当网络中包含多台路由器时,让它们组成一个"热备份组",在这个组中形成一个虚拟路由器;在任一时刻一个组内只有一个路由器是活动的,并由它来转发数据,这就是活动路由器;如果活动路由器发生了故障,将重新选择一个备份路由器来替代活动路由器;但是在本网络内的主机看来,虚拟路由器是没有改变的,所以主机仍然保持连接,没有受到故障的影响,这样就较好地解决了路由器切换的问题,这就是热备份的原理;为了减少网络的数据流量,在设置完活动路由器和备份路由器之后,只有活动路由器和备份路由器定时发送报文;如果活动路由器失效,备份路由器将接管成为活动路由器;如果备份路由器失效或者变成了活跃路由器,将由另外的路由器被选为备份路由器。
在实际的一个特定的局域网中,可能有多个热备份组并存或重叠;每个热备份组模仿一个虚拟路由器工作,它有一个Virtual MAC地址和一个Virtua IP地址;Virtual MAC地址是根据对应组的组号自动生成的;Virtua IP地址、组内路由器的接口IP和主机IP必须在同一个子网内,但是不能一样;当在一个局域网内有多个热备份组存在时,把主机分布到不同的热备份组,可以实现负载分担。
在思科的网络设备上,有三种解决方案,包括热备用路由器协议HSRP、虚拟路由器冗余协议VRRP和网关负载均衡协议GLBP。

热备用路由器协议HSRP:
思科私有协议
HSRP的报文封装:802.3/IPV4/UDP/HSRP/FCS 端口号1985
▶HSRP有三种组播消息:组播地址224.0.0.2
*Hello:通知其他路由器发送路由器的HSRP优先级和状态信息,HSRP路由器默认为每3.3秒发送一个hello消息(3倍hold时间/10秒)。
*Coup:当一个备用路由器变为一个主动路由器时会发送一个coup消息;
*Resign:当主动路由器要宕机或者当有优先级更高的路由器发送hello消息时,主动路由器发送一个resign消息。
▶版本:HSRPv1(仅支持IPv4)和HSRPv2(同时支持IPv4和IPv6)
1、组号由原来的0-255扩展到现在的0-4095
2、组播地址由原来的224.0.0.2变成现在的224.0.0.102
3、原来的报文里面源MAC地址为虚MAC地址,现在v2在消息报文里面添加了发送MAC地址的字段
4、虚拟MAC地址,V1是00-00-0c-07-ac-xx,V2是00-00-0c-9f-fx-xx

▶HSRP的状态机:
*Initial:HSRP启动时的状态,HSRP还没有运行,一般是在改变配置或端口刚刚启动时进入该状态。
*Learn:学习状态,不知道虚拟IP地址时,未看到活跃路由器发送hello消息;等待活跃路由器发hello消息。
*Listen:路由器已经得到了虚拟IP地址,但是它既不是活动路由器也不是备份路由器,它一直监听从活动路由器和备份路由器发来的hello消息。
*Speak:在该状态下,路由器定期发送hello报文,并且积极参加活动路由器或备份路由器的竞选。
*Standby:当活动路由器失效时,备份路由器准备接管数据包的传输功能时发送,然后备份路由器就进入了Standby角色。
*Active:当活动路由器执行包传输功能时发送,就进入了Active角色。
▶当路由器启用了HSRP协议,路由器之间通过组播周期性的发送hello消息,通过hello消息中包含的路由器HSRP优先级和状态信息,选出当前的活动路由器Active Router(初次选举时先比较HSRP优先级,以大为优;一样则比较接口IP地址,以大为优;HSRP活动路由器支持抢占,HSRP优先级大的可以抢占)
活动路由器充当PC的网关,当收到PC发送的ARP请求时,要给PC做ARP应答,当PC访问外网时,活动路由器需要将数据包通过VLAN间转发出去;当活动路由器出现故障时,在设定的一段时间内都没有收到活动路由器发送的hello消息,HSRP将激活备份路由器(Standby Routers)取代主动路由器,此时优先级最高的备用路由器抢占成为活动路由器;HSRP协议提供了一种决定使用活动路由器还是备份路由器的机制,当活动路由器出现故障了,备份路由器承接主动路由器的所有任务,并且不会导致主机连通中断现象;因为网络内的主机看来,由于虚拟路由器没有改变,所以主机仍然保持连接,没有受到活动路由器故障的影响。
*默认情况下HSRP的活动路由器不支持抢占,配置了preempt功能后才支持。
*路由器接口开启HSRP以后,会默认关闭该接口的ICMP重定向功能。

虚拟路由器冗余协议VRRP:共有标准协议
VRRP的报文封装:802.3/IPv4/VRRP/FCS 协议号112
▶在IP报文头中,源地址为发送报文的主接口地址(不是虚拟地址或辅助地址),目的地址是组播地址224.0.0.18,TTL是255。
▶VRRP只有一种报文,即VRRP报文;用来将Master设备的优先级和状态通告给同一虚拟路由器内的所有VRRP路由器成员,报文发送周期1秒/次。

VRRP的状态机:
▶初始状态Initialize:设备启动时进入此状态,当收到接口Startup的消息,将转入Backup或Master状态(路由器的接口优先级为255,直接转为Master)。
▶活动状态Master:可以转发那些发送到虚拟IP地址的报文
*定期发送VRRP报文。
*响应PC对虚拟IP地址的ARP请求。
*转发目的MAC地址为虚拟MAC地址的IP报文。
*如果它是这个虚拟IP地址的拥有者,则接收目的IP地址为这个虚拟IP地址的IP报文;否则丢弃这个IP报文。
*如果收到比自己优先级大的报文则转为Backup状态。
*如果收到优先级和自己相同的报文,并且发送端的主IP地址比自己的主IP地址大,则转为Backup状态
*当接收到接口的Shutdown事件时,转为Initialize。
▶备份状态Backup:
*接收Master发送的VRRP报文,判断Master的状态是否正常。
*对虚拟IP地址的ARP请求,不做响应。
*丢弃目的MAC地址为虚拟MAC地址的IP报文。
*Backup状态下如果收到比自己优先级小的报文时,丢弃报文,不重置定时器;如果收到优先级和自己相同的报文,则重置定时器,不进一步比较IP地址。
*当Backup接收到MASTER_DOWN_TIMER定时器超时的事件时,才会转为Master。
*当接收到接口的Shutdown事件时,转为Initialize。

VRRP的运作类似于HSRP,但在有些方面稍有不同;和HSRP相似的,多个路由器被配置进同一个组里面,其中一个被手工指定为主网关;主网关连接终端所在接口的物理IP地址被指派为默认网关的地址,VRRP组中的备用网关会不断和主网关进行通信,而且当主网关失效后马上替代主网关以转发流量;当主网关恢复正常后,又会自动夺回主网关的身份;但二者主要的区别是在HSRP中,需要单独配置一个IP地址作为虚拟路由器对外体现的地址,这个地址不能是组中任何一个成员的接口地址,在VRRP中,虚拟IP地址可以是其他路由器接口IP(此时接口优先级被设置成255)。
在一个单独的子网中也是允许存在多个VRRP组的,可以用来做负载均衡。不过这种方法需要在客户端的电脑中手动更改默认网关地址的配置。显然这样可行性非常低的,如果要实现相应的功能,那就要使用GLBP协议。
注:默认情况下VRRP的活动路由器开启了抢占功能。
*开启VRRP以后,路由器会默认关闭ICMP重定向功能。
*在VRRP中,Backup路由器的数量可以有很多台。

网关负载均衡协议GLBP:思科私有协议
GLBP的报文封装:802.3/IPV4/UDP/GLBP/FCS 端口号3222
▶HSRP有三种组播消息:组播地址224.0.0.102
*Hello:通知其他路由器发送路由器的HSRP优先级和状态信息,GLBP路由器默认为每3秒钟发送一个hello消息。
*Coup:当一个备用路由器变为一个主动路由器时会发送一个coup消息;
*Resign:当主动路由器要宕机或者当有优先级更高的路由器发送hello消息时,主动路由器发送一个resign消息。

▶GLBP状态机:
GLBP中我们需要选举两种角色,一个是活动虚拟网关AVG,另一个是活动虚拟转发者AVF,AVG的选举同HSRP,而AVF的选举则和一个权重有关,权重越高,成为ACF的可能性越高,可以通过调整权重来为路由器实现一个合理的负载分担。
GLBP的状态机同HSRP,不过Active状态下的路由器又称为AVG(Active Virtual Gateway),用来向下游PC发送虚拟的MAC地址,并周期发送Hello数据包,而真正的转发数据包的路由器我们称为AVF(Active Virtual Forwarder);默认情况下可以同时存在4个AVF,但是只有一个AVG,也就是说VAG和AVF是单独选举的,AVG作为AVG的备份。

GLBP的提供了一种前两个协议都没有的东西:动态负载平衡;不像HSRP或VRRP,GLBP组中存在的所有的路由器是活动的,并转发流量;当配置完一个GLBP组,组内的其中一个路由器将当选为活动虚拟网关(AVG);其他路由器都将作为AVG的备份;AVG是负责给GLBP组内所有的成员分配虚拟MAC地址(可以重复),这些成员都被称为活动虚拟转发器(简称AVF);AVG是负责响应PC主机的ARP请求,并选择该组的哪一个路由器将处理流量;所有PC主机的默认网关的IP地址是相同的;这个IP地址是虚拟出来的,当一个设备发出ARP包请求MAC地址时,AVG将用其中一个虚拟的MAC地址回应,AVG是通过这种方式,能控制成员路由器处理每个独立子网设备的流量从而达到负载的效果。
*默认情况下GLBP的AVG/AVF不支持抢占,配置了preempt功能后才支持。
*一个组中拥有最高优先级和最大IP地址的路由器一定能做AVG
GLBP协议中AVG支持三种负载均衡方式:
第一:主机依赖,根据主机的源mac地址到网关的映射,固定使用同一个网关。
主机相关负载分担算法:只要某个虚拟MAC地址还在GLBP组中参与流量转发,就确保某主机总是使用这个虚拟MAC地址进行通信。
第二:根据ARP请求轮询,收到第一个PC发送的ARP分配第一个网关,以此类推。
循环负载分担算法:当客户端发送ARP请求来解析默认网关的MAC地址时,每个客户端接收到的ARP响应中包含的MAC地址,是循环算法中下一个可用路由器的MAC地址。所有路由器的MAC地址会被按顺序放入地址解析响应中,作为默认网关IP地址对应的MAC地址返回给客户端。
第三:根据路由器的权重分配,权重越高被分配的可能性越大。
虚拟MAC地址:
1、 HSRP为0000.070C.ACXX(XX为组号)
2、 VRRP为0000.5E00.01XX(XX为组号)
3、 GLBP为0007.b400.01XX(XX为组号)

发表于 2024-5-13 16:29:03 | 显示全部楼层
华为认证,值得拥有!
板凳 2024-5-13 16:29:03 回复 收起回复
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-1-24 04:51 , Processed in 0.052693 second(s), 11 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表