一、简介

        虚拟路由器冗余协议(VRRP)是一种选择协议,它可以把一个虚拟路由器的责

任动态分配到局域网上的 VRRP 路由器中的一台。控制虚拟路由器 IP 地址的VRRP

路由器称为主路由器,它负责转发数据包到这些虚拟 IP 地址。一旦主路由器不可

用,这种选择过程就提供了动态的故障转移机制,这就允许虚拟路由器的 IP 地址可

以作为终端主机的默认第一跳路由器。使用 VRRP 的好处是有更高的默认路径的可

用性而无需在每个终端主机上配置动态路由或路由发现协议。 VRRP 包封装在 IP

包中发送,是一种LAN接入设备备份协议。一个局域网络内的所有主机都设置缺省

网关,这样主机发出的目的地址不在本网段的报文将被通过缺省网关发往三层交换

机,从而实现了主机和外部网络的通信。

        工作原理  

        VRRP只定义了一种报文——vrrp报文,这是一种组播报文,由主三层交换机定

时发出来通告他的存在。使用这些报文可以检测虚拟三层交换机各种参数,还可以

用于主三层交换机的选举。

 

  VRRP中定义了三种状态模型,初始状态Initialize,活动状态Master和备份状态

Backup,其中只有活动状态的交换机可以为到虚拟IP地址的的转发请求提供服务。

 

  VRRP报文是封装在IP报文上的,支持各种上层协议,同时VRRP还支持将真实

接口IP地址设置为虚拟IP地址。

 

  那么如何从备份组的多台交换机中选举Master?这项工作由我们在备份组内每台

交换机上配置的相同IP地址的虚拟交换机完成。

 

  虚拟交换机根据配置的优先级的大小选择主交换机,优先级最大的作为主交换

机,状态为Master,若优先级相同(如果交换机没有配置优先级,就采用默认值

100),则比较接口的主IP地址,主IP地址大的就成为主交换机,由它提供实际的路

由服务。其他交换机作为备份交换机,随时监测主交换机的状态。当主交换机正常

工作时,它会每隔一段时间发送一个VRRP组播报文,以通知组内的备份交换机,主

交换机处于正常工作状态。如果组内的备份交换机长时间没有接收到来自主交换机

的VRRP组播报文,则将自己状态转换为Master。当组内有多台备份交换机,将有可

能产生多个主交换机。这时每一个主交换机就会比较VRRP报文中的优先级和自己本

地的优先级,如果本地的优先级小于VRRP中的优先级,则将自己的状态转换为

Backup,否则保持自己的状态不变。通过这样一个过程,就会将优先级最大的交换

机选成新的主交换机,完成VRRP的备份功能。

VRRP与HSRP和差别  

        1、在功能上,VRRP和HSRP非常相似,但是就安全而言,VRRP对HSRP的一个主

要优势:它允许参与VRRP组的设备间建立认证机制。并且不像HSRP那样要求虚拟

路由器不能是其中一个路由器的IP地址,但是VRRP允许这种情况发生(如果”拥有”

虚拟路由器地址的路由器被建立并且正在运行,那么应该总是由这个虚拟路由器管

理—等价于HSRP中的活动路由器),但是为了确保万一失效发生的时候终端主机不必

重新学习MAC地址,它指定使用的MAC地址00-00-5e-00-01-VRID,这里的VRID是

虚拟路由器的ID(等价于一个HSRP的组标识符).。

 

  2.另外一个不同是VRRP不使用HSRP中的政变或者一个等价消息,VRRP的状态

机比HSRP的简单,HSRP有6个状态(初始(Initial)状态,学习(Learn)状态,监听(Listen)

状态,对话(Speak)状态,备份(Standby)状态,活动(Active)状态)和8个事件,VRRP只

有3个状态(初始状态(Initialize)、主状态(Master)、备份状态(Backup))和5个事件。

 

  3. HSRP有三种报文,而且有三种状态可以发送报文,呼叫(Hello)报文,告辞

(Resign)报文,突变(Coup)报文。VRRP有一种报文——VRRP广播报文:由主路由器

定时发出来通告它的存在,使用这些报文可以检测虚拟路由器各种参数,还可以用

于主路由器的选举。

 

  4. HSRP将报文承载在UDP报文上,而VRRP承载在IP报文上(HSRP 使用UDP

1985端口,向组播地址224.0.0.2 发送hello消息)。

 

  5.VRRP的安全:VRRP协议包括三种主要的认证方式:无认证,简单的明文密码

和使用 MD5 HMAC IP认证的强认证.。

 

  6.VRRP的崩溃间隔时间:3*通告间隔+时滞时间(skew-time)。

二、案例

         拓扑图:

          配置过程:

          R1:

拆分子端口 封装协议

[r1]int e1.10
 
[r1-Ethernet1.10]vlan-type dot1q vid 10
 
[r1-Ethernet1.10]ip add 192.168.10.1 24   
 
[r1-Ethernet1.10]int e1.20
 
[r1-Ethernet1.20]vlan-type dot1q vid 20
 
[r1-Ethernet1.20]ip add 192.168.20.1 24
 
创建vrrp组和虚拟路由器ip,设置vrrp组的优先级,确省为100
 
[r1]vrrp ping-enable
 
[r1]int e1.10
 
[r1-Ethernet1.10]vrrp vrid 10 virtual-ip 192.168.10.254 
 
[r1-Ethernet1.10]vrrp vrid 10 prio 120 
 
[r1-Ethernet1.10]int e1.20                            
 
[r1-Ethernet1.20]vrrp vrid 20 virtual-ip 192.168.20.254
 
[r1-Ethernet1.20]vrrp vrid 20 prio 100

        SW-1:

[switch-1]int Ethernet 0/24

[switch-1-Ethernet0/24]port link-type trunk    //设置trunk接口
 
[switch-1-Ethernet0/24]port trunk permit vlan all   //永许所有vlan通过
 
[switch-1-Ethernet0/24]int e0/23
 
[switch-1-Ethernet0/23]port link-type trunk
 
[switch-1-Ethernet0/23]port trunk permit vlan all
 
[switch-1-Ethernet0/23]vlan 10
              
[switch-1-vlan10]port Ethernet 0/5 to 0/10     //加入端口
 
[switch-1-vlan10]vlan 20
     
[switch-1-vlan20]port Ethernet 0/11 to Ethernet 0/15

          R2:

[R2]int eth1.10

[R2-Ethernet1.10]vlan-type dot1q vid 10
 
[R2-Ethernet1.10]ip add 192.168.10.2 255.255.255.0
 
[R2-Ethernet1.10]int eth1.20

 

[R2-Ethernet1.20]vlan-type dot1q vid 20

[R2-Ethernet1.20]ip add 192.168.20.2 255.255.255.0 

[R2]int eth 1.10
 
[R2-Ethernet1.10]vrrp vrid 10 virtual-ip 192.168.10.254
 
[R2-Ethernet1.10]vrrp vrid 10 priority 100     
 
[R2]int eth 1.20
 
[R2-Ethernet1.20]vrrp vrid 20 virtual-ip 192.168.20.254
 
[R2-Ethernet1.20]vrrp vrid 20 priority 120

        SW-2:

[SW-2]vlan 10       

 
[SW-2-vlan10]port eth1/0/5 to eth1/0/10
 
[SW-2-vlan10]quit
 
[SW-2]vlan 20                   
 
[SW-2-vlan20]port eth1/0/11 to eth1/0/15
 
[SW-2-Ethernet1/0/24]port link-type trunk
 
[SW-2-Ethernet1/0/24]port trunk permit vlan all
 
[SW-2]int eth1/0/23
 
[SW-2-Ethernet1/0/23]port link-type trunk
 
[SW-2-Ethernet1/0/23]port trunk permit vlan all

        测试结果:

Pc1 ping pc2结果

跟踪路由信息

 

当r1路由器断开时 仍能ping通,跟踪路由信息如下

Pc2 ping pc1结果

 

跟踪路由信息如下