VRRP技术原理及细节实现

VRRP(Virtual Router Redundancy Protocol,虚拟路由冗余协议)是一种网关冗余协议。一般来说,网络中的所有内网主机都需要设置IP地址以及一个缺省网关,通过配置缺省网关,主机发出的目的地址不在本网段的报文将被通过缺省网关发往路由器,由路由器进行下一步的选路转发,但是这样存在一个问题,因为主机的网关只能设置一个,当上联路由器如果出现故障的时候,网络就会发生中断,没有网络的冗余性,vrrp技术就是为了解决这样的问题而出现的,那么VRRP有事如何网关冗余性这个问题的呢?

首先,要使VRRP工作,需要在路由器上配置虚拟路由器号和虚拟IP地址,同时产生一个虚拟MAC地址,这样在这个网络中相当于加入了一个虚拟路由器.我们所有主机的网关只需要填写这个虚拟路由器的ip地址即可,而无需了解这个网络的路由器的内核情况。虚拟路由器可以由一个主路由器和若干个备份路由器组成,主路由器实现真正的转发功能,其它一个或多个路由器处于备份状态,不对数据包进行转发,也不响应网络中类似于arp请求的各种报文,主备路由器通过心跳线来彼此探知对方的状态,从而进行主备的切换。主备切换大体为两种情况:1.主路由器自身出现故障,会自己降低自身优先级(初始为255,优先级越大越优先),同时通过心跳线发送自身状态到备路由器,备路由器接收到主路由器发来的心跳报文,得知主路由器发生故障,备路由器立刻会接管业务,使用VRRP的虚地址对外进行通信,接替主路由器进行数据交换与转发,从而保证网络转发正常;2.备路由器在心跳线上在多个心跳时间间隔接收不到主路由器发来的心跳报文,则认为主路由器发生故障,自主由备状态转成主状态,使用虚地址进行业务转发。

VRRP技术原理及细节实现

VRRP定义的一种报文:

VRRP中定义了——VRRP报文,这是一种组播报文,封装在IP报文中,由主路由器在一定时间间隔发出来通告它的存在,也可以说是一种保活报文,使用这些报文可以检测虚拟路由器各种参数,还可以用于比较优先级,从而进行主路由器的选举。

VRRP定义的三种状态:

Initialize(初始状态)

系统启动VRRP后进入此状态,这是一种初始的状态,当收到接口Startup的消息,将转入Backup或Master状态(IP地址拥有者的接口优先级为255,直接转为Master),在此状态时,路由器不会对VRRP报文做任何处理。

Master(主状态)

当处于Master状态时,工作内容为:

  • 定期发送VRRP组播报文;
  • 以虚拟MAC地址响应对虚拟IP地址的ARP请求;
  • 转发目的MAC地址为虚拟MAC地址的IP报文;
  • 如果它是这个虚拟IP地址的拥有者,则接收目的IP地址为这个虚拟IP地址的IP报文,否则,丢弃这个IP报文;
  • 如果收到比自己优先级大的报文则转为Backup状态;
  • 如果收到优先级和自己相同的报文,并且发送端的主IP地址比自己的主IP地址大,则转为Backup状态;
  • 当接收到接口的Shutdown事件时,转为Initialize,后转为backup状态;

Backup(备份状态)

只有当Backup接收到MASTER_DOWN这个定时器到时的事件时才会转为Master, 当接收到接口的Shutdown事件时才会转为Initialize。

当路由器处于Backup状态时,它将会做下列工作:

  • 接收Master发送的VRRP报文,判断Master的状态是否正常;
  • 对虚拟IP地址的ARP请求,不做响应,不转发任何数据包;
  • 丢弃目的MAC地址为虚拟MAC地址的IP报文;
  • 丢弃目的IP地址为虚拟IP地址的IP报文;
  • Backup状态下如果收到比自己优先级小的报文时,丢弃报文,不重置定时器;如果收到优先级和自己相同的报文,则重置定时器,不进一步比较IP地址;
  • 当Backup接收到MASTER_DOWN_TIMER定时器超时的事件时,会转为Master;
  • 当接收到接口的Shutdown事件时,转为Initialize;

VRRP的安全功能

对于安全程度不同的网络环境,可以在报头上设定不同的认证方式和认证字。

在一个安全的网络中,可以采用缺省设置:路由器对要发送的VRRP报文不进行任何认证处理,收到VRRP报文的路由器也不进行任何认证,认为收到的都是真实的、合法的VRRP报文。这种情况下,不需要设置认证字。

在有可能受到安全威胁的网络中,VRRP提供简单字符认证,可以设置长度为1~8的认证字。


分享到:


相關文章: