FHRP(第一跳冗余协议)是旨在为默认网关创建冗余的一系列协议。 这些协议的一个共同思想是将多个路由器组合成一个具有公共IP地址的虚拟路由器。 该IP地址将在主机上分配为默认网关地址。 这个想法的免费实现是VRRP协议(虚拟路由器冗余协议)。 本文将介绍VRRP的基础知识。
VRRP路由器被组合为一个虚拟路由器。 该组中的所有路由器都有一个通用的虚拟IP(VIP)地址和一个通用的组号或VRID(虚拟路由器标识符)。 一个路由器可以由几组组成,每组必须具有自己唯一的VIP / VRID对。
对于Cisco,使用以下命令在我们感兴趣的接口上设置虚拟路由器:
R1(config-if)# vrrp <group-number> ip <ip-address>
所有路由器都分为两种类型:VRRP Master和VRRP Backup。
VRRP Master是为该虚拟组转发数据包的路由器。
VRRP备份是一个路由器,希望从主服务器收到数据包。 如果来自主服务器的数据包停止到达,则备份将尝试切换到主服务器状态。
如果路由器具有最高优先级,则它将成为主路由器。 主服务器不断向广播地址224.0.0.18发送消息,以通知备用路由器它正在工作。 主机根据Adver计时器发送消息,该计时器默认为1秒。
在这种情况下,组地址00:00:5E:00:01:xx被用作发送者的MAC地址,其中xx是十六进制格式的VRID。 在此示例中,使用第一组。
如果备用路由器在三个Adver计时器(主服务器关闭计时器)内未收到消息,则优先级最高的路由器或IP最高的路由器将成为新的主服务器。 同时,具有较高优先级的备用路由器将接管具有较低优先级的主路由器的角色。 但是,如果在抢占模式下禁用了备份,则备份将不会拦截来自主服务器的角色。
R1(config-if)# no vrrp <group-number> preempt
如果VRRP路由器拥有VIP地址,则它将始终拦截主路由器的角色。
VRRP优先级设置为1到254之间的值。为0保留用于主控方需要
减轻自己承担路由责任的情况。 路由器将值255设置为VIP所有者。 默认优先级为100,但可以通过管理方式设置:
R1(config-if)#vrrp <group-number> priority <priority 1-254>
在这里,我们可以看到在管理上设置路由器时的优先级:
当路由器是VIP的所有者时,就是这种情况:
VRRP路由器可以具有三种状态:初始化,备份,主控。 这些状态表明路由器顺序更改。
在初始化状态下,路由器正在等待操作开始。 如果此路由器拥有VIP地址(优先级为255),则该路由器发送有关成为主服务器的消息。 它还发送
免费ARP请求 ,其中源MAC地址等于虚拟路由器的地址。 然后进入主状态。 如果路由器不拥有VIP,则它将进入备份状态。
在备份状态下,路由器希望来自主服务器的数据包。 处于此状态的路由器不响应来自VIP地址的ARP请求。 此外,它也不接受以虚拟路由器的MAC地址作为目标地址的数据包。
如果Backup在Master Down Timer期间未收到来自Master的消息,则它将发送一条VRRP消息,表明它将成为Master。 然后,它发送一条广播VRRP消息,其中源MAC地址等于该虚拟路由器的地址。 在此消息中,路由器指示其优先级。
在主状态下,路由器处理寻址到虚拟路由器的数据包。 他还响应VIP ARP请求。 Master会在每个Adver Timer中发送VRRP消息,以确认其正常工作。
*May 13 19:52:18.531: %VRRP-6-STATECHANGE: Et1/0 Grp 1 state Init -> Backup *May 13 19:52:21.751: %VRRP-6-STATECHANGE: Et1/0 Grp 1 state Backup -> Master
VRRP还允许在多个路由器之间进行负载平衡。 为此,在同一接口上创建了两个VRRP组。 一个组的优先级高于另一组。 同时,在第二台路由器上以相反的方式设置优先级。 即 如果在一个路由器上第一组的优先级是100,第二组的优先级是200,则在另一台路由器上,第一组的优先级是200,第二个优先级是100。
如前所述,每个组应具有自己的唯一VIP。 结果,我们得到了两个路由器提供的两个IP地址,每个路由器都可以用作默认网关。
一半的计算机被分配了一个默认网关地址,另一半被分配了。 因此,一半的流量将通过一个路由器,另一半通过。 如果其中一台路由器发生故障,第二台路由器将拦截两个VIP的工作。
因此,VRRP允许您组织默认网关的容错能力,从而提高网络的可靠性。 并且在使用多个虚拟路由器的情况下,可以平衡真实路由器之间的负载。 故障响应率可以通过减少计时器来降低。