<3>VRRP的工作机制和工作过程

1、报文格式

VRRP协议的正常工作依赖于VRRP报文的正常收发。VRRP只定义了一种报文格式,即通告(Advertisement)报文,它将封装在IP报文中,IP头部的协议号字段值为112,报文的目的IP地址是组播地址224.0.0.18,VRRP报文指的就是通告报文。

VRRP报文格式  的图像结果

各个字段的含义如下:

  • 版本(Version):4比特;指VRRP协议版本,VRRPv2此字段为2,VRRPv3此字段为3。
  • 类型(Type):4比特;定义了VRRP报文的类型。本版本的协议仅定义了一个报文类型:1。
  • 虚拟路由器ID(VRID):8比特;虚拟路由器标识(VRID)字段标识了此报文所报告状态的虚拟路由器。可配置的范围是1–255。没有缺省值。属于同一个VRRP组的路由器的路由器需要使用相同的VRID。
  • 优先级(Priority):8比特;Priority字段申明了发送此报文的VRRP路由器的优先级。值越高优先级越高,路由器也就越有可能成为Master。缺省的VRRP路由器优先级为100(在华为路由器默认优先级为100)。优先级值0 用于指示当前虚拟路由器的主路由器停止参与VRRP组。
  • IP地址个数(Count IP Address):8比特;在此VRRP通告中包含的虚拟IP地址的数量。这个字段指示了该报文后续的”IP肚地址“字段的个数。
  • 认证类型(Authentication Type):8比特;定义的认证方法有:
  • (1)0 : No Authentication 不认证该认证类型表明VRRP协议报文的交换不需要认证。在发送VRRP协议报文时,Authentication Data 字段将被置为0;而在接收协议报文时,Authentication Data 字段被忽略。
  • (2)1 : Simple Text Password,表示明文认证方式。
  • (3)2: IP Authentication Header,表示MD5认证方式。
  • 通告间隔(Advertisement Interval):8比特;VRRP通告间隔时间,单位为秒。缺省情况下,VRRP的报文发送时间间隔为为1秒。
  • 校验和(Checksum):16比特;校验和,用于检测VRRP报文中的数据破坏情况。
  • IP地址(IP Address):32比特;VRRP虚拟IP地址
  • 认证数据(Authentication Data):32比特;VRRP认证数据,当VRRP明文认证或者MD5认证被激活时,该字段则填充相应的数据。

2、状态机

VRRP定义了三种状态,RFC3768(Virtual Router Redundancy Protocol)详细的描述了这些状态。

<1>Initialize(初始状态)

Initialize状态是VRRP的初始状态,在接口配置VRRP后,如果该接口是Down的(例如接口被关闭,或者没有连接任何的线缆),那么该接口的VRRP状态将会停滞在Initialize。

当接口Up之后,如果其VRRP优先级为255(这种情况发生在该接口的实际IP地址是VRRP虚拟IP地址的情况),那么接口的VRRP状态将由Initialize切换到Master,而如果接口的VRRP优先级不是255,则进入Backup状态。

<2>Backup(备份状态)

【1】处于Backup 状态的路由器是VRRP组中的备用路由器,作为一条备用设备,它不会参与数据转发工作,但是它会实时监控当前Master路由器的状态,并随时准备接替它的工作。Backup路由器会进行的工作有以下:

  • 对关于VRRP虚拟IP地址的ARP请求不予回答
  • 丢弃目的MAC地址为VRRP虚拟MAC地址的数据帧
  • 不接收目的IP地址为VRRP虚拟IP地址的数据包
  • 实时侦听Master路由器发送的VRRP报文,以便了解其工作状态。
  • 当收到一个VRRP报文时:

(1)若该VRRP报文的优先级为0(这可能意味着当前Master路由器希望主动放弃Master侦听),则将Master_Down_Timer设置为Skew_Time。

(2)若该VRRP报文的优先级不为0,则当抢占功能(Preempt Mode)未激活时,或者当VRRP报文中的优先级大于或者等于本监控优先级时,将Master_Adver_Interval设置未VRRP报文中的Advertisement Interval,并重置Master_Down_Timer,将Master_Down_Timer的时间设置为Master_Down_Interval。

(3)若该VRRP报文的优先级不为0,则当抢占功能(Preempt Mode)激活并且VRRP报文中的优先级小于本接口优先级时,忽略该VRRP报文,立刻切换到Master状态。

【2】当Master_Down_Timer超时(这意味着它认为当前的Master路由器已经失效)。

(1)将接口的状态切换到Master。

(2)开始从接口发送自己的VRRP报文。

(3)从接口发送一个免费ARP Request(Gratuitous ARP Request)广播帧,该ARP Request 携带了VRRP虚拟IP地址及虚拟MAC地址的绑定信息,用于刷新该接口所直连的广播域内的设备的ARP表,MAC地址表。

对以上的专业术语解释:

(1)Master_Adver_Interval:Master路由器所发送的VRRP报文中,Advertisement Interval 字段所填充的值,缺省时该值为1s,【该时间间隔即Master路由器周期性发送VRRP报文的时间间隔】。

(2)Master_Down_Timer:Backup路由器将持续接收来自当前Master路由器的VRRP报文,每当报文到达时,Backup路由器上的Master_Down_Timer会被重置。如果一定时间内没有收到来自Master路由器的VRRP报文并导致Master_Down_Timer超时,那么Backup路由器将认为Master路由器已经失效。

(3)Master_Down_Interval:一定时间内没有收到来自Master路由器的VRRP报文后,Backup路由器可认为当前Master路由器已经失效。Master_Down_Interval = (3 * Master_Adver_Interval) +  Skew_Time。

(4)Skew_Time:一个偏移时间;Skew_Time = ((256 - VRRP优先级) * Master_Adver_Interval ) / 256.

<3>Master(主状态)

处于Master状态的路由器是当前VRRP组的主路由器,它承担数据转发任务。Master路由器会进行如下工作。

  • 当收到关于虚拟IP地址的ARP请求时,以虚拟MAC地址进行回应。
  • 转发目的MAC地址为虚拟MAC地址的报文。
  • 周期性的发送VRRP报文,时间间隔缺省值为1s
  • 当其收到一个VRRP报文时:

(1)若该VRRP报文的优先级为0,则继续发送自己的报文。

(2)若该VRRP报文的优先级不为0,并且比本接口的VRRP优先级值更大,或者VRRP优先级值相等但是VRRP报文的源IP地址比本IP地址更大,则将接口的状态切换到Backup状态、

(3)若该VRRP报文的优先级不为0,并且比本接口的VRRP优先级值更小,则忽略该VRRP报文。

(4)小总结:

Master路由器接收到VRRP报文,优先级为0,则继续转发VRRP;优先级不为0,【1】比本接口VRRP优先级高或者优先级相等但IP地址大,则切换为Backup;【2】比本接口VRRP优先级小,则忽略。

3、Master路由器的”选举“和工作过程

(1)Master路由器的”选举“

在一个VRRP组中,正常情况下只能存在一台Master路由器。VRRP根据优先级和IP地址来决定哪台路由器充当Master。优先级的范围时0-255,优先级越大越优先,则路由器就越有可能成为Master。其中0和255是两个特殊的优先级,不能被直接配置。

【1】优先级为255:当路由器的接口IP地址与VRRP虚拟IP地址相同时,它的优先级将自动会变成最大值255,此时该路由器被称为IP地址的拥有者(IP Address Owner)。

【2】优先级为0:它出现在Master路由器主动放弃Master角色时,例如当接口的VRRP配置被手工删除时,该Master路由器会立即发送一个优先级为0的VRRP报文,用来通知网络中的Backup路由器。

当一个激活了VRRP的接口Up之后,如果接口的VRRP优先级为255,那么其VRRP状态将直接从Initialize(初始状态)切换到Master(主状态),而如果接口的VRRP优先级不为255,那么首先切换到Backup(备份状态),然后再看竞争结果决定是否切换到Master。

如果在同一个广播域的同一个VRRP组内出现两台Master路由器,那么它们将比较自己与对方的优先级,优先级的值更大的设备胜出,继续保持Master状态,而竞争失败的路由器则切换到Backup状态。如果这两台Master路由器的优先级相等,那么接口IP地址更大的路由器接口将会保持Master状态,而另一台设备则切换到Backup状态。当然,一个网络在稳定运行时,同一个VRRP组内不应该同时出现两台Master路由器。

处于Master状态的路由器会周期性的发送VRRP报文,并在报文中描述自己的优先级,IP地址等等信息。同一个广播域中,同一个VRRP组的Backup路由器会侦听这些报文。如果此时网络中新出现一台Backup路由器(其优先级高于当前的Master路由器),激活了抢占功能,那么它会忽略收到VRRP报文,并且切换到Master侦听,同时发送自己的VRRP报文并在报文中描述其优先级等信息,而此前的Master路由器在收到了该VRRP报文后,则切换到Backup状态。

(2)工作过程

(1) 路由器使能VRRP功能后,会根据优先级确定自己在备份组中的角色。优先级高的路由器成为Master路由器,优先级低的成为Backup路由器。Master路由器定期发送VRRP通告报文,通知备份组内的其他路由器自己工作正常;Backup路由器则启动定时器等待通告报文的到来。

(2) 在抢占方式下,当Backup路由器收到VRRP通告报文后,会将自己的优先级与通告报文中的优先级进行比较。如果大于通告报文中的优先级,则成为Master路由器;否则将保持Backup状态。

(3) 在非抢占方式下,只要Master路由器没有出现故障,备份组中的路由器始终保持Master或Backup状态,Backup路由器即使随后被配置了更高的优先级也不会成为Master路由器。

(4) 如果Backup路由器的定时器超时后仍未收到Master路由器发送来的VRRP通告报文,则认为Master路由器已经无法正常工作,此时Backup路由器会认为自己是Master路由器,并对外发送VRRP通告报文。备份组内的路由器根据优先级选举出Master路由器,承担报文的转发功能。
(转载于https://blog.csdn.net/looyo/article/details/5492014

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dark_Ice_

你的支持是我创作的核动力。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值