VRRP技术

VRRP概述

Virtual Router Redundancy Protocol,也即虚拟路由器冗余协议。
利用VRRP,一组路由器(同一个LAN中的接口)协同工作,但只有一个处于Master状态,处于该状态的路由器(的接口)承担实际的数据流量转发任务。在一个VRRP组内的多个路由器接口共用一个虚拟IP地址,该地址被作为局域网内所有主机的缺省网关地址。
VRRP决定哪个路由器是Master,Master路由器负责接收发送至用户网关的数据包并进行转发,以及响应PC对于其网关IP地址的ARP请求。
Backup路由器侦听Master路由器的状态,并在Master路由器发生故障时,接替其工作,从而保证业务流量的平滑切换。

VRRP的作用:

提供了局域网上的设备备份机制。VRRP是一种容错协议,它保证当主机的下一跳路由器坏掉时,可以及时由另一台路由器来代替,从而保证通讯的连续性和可靠性。
VRRP工作时会在网络中加入一个含有虛拟IP和虚拟MAC地址的虚拟路由器,该路由器充当网络用户的网关,使得网络上的主机与虛拟路由器通信无需了解这个网络上物理路由器的任何信息。

VRRP术语

VRRP路由器:
运行VRRP的路由器。一台VRRP路由器(的接口)可以同时参与到多个VRRP组中,在不同的组中,一台VRRP路由器可以充当不同的角色。
VRRP组:
一个VRRP组由多个VRRP路由器组成,使用相同的VRID ( Virtual Router ID ,虛拟路由器ID )进行标识,属于同一VRRP组的VRRP路由器互相交换信息,每一个VRRP组中只能有一个Master。
虚拟路由器:
对于每一个VRRP组,抽象出来的一个逻辑路由器,该路由器充当网络用户的网关,该路由器并非真实存在。事实上对于用户而言,只需知道虚拟路由器的IP ,至于具体的虚拟路由器的角色由谁来承担、数据转发任务由谁来承担、Master故障后谁来接替,这是VRRP的工作。

虛拟IP地址、MAC地址:
虚拟IP地址就是虚拟路由器的IP地址,该地址实际上就是用户的网关地址。
虚拟MAC地址是虚拟路由器根据VRID生成的MAC地址。一个虚拟路由器拥有一个虚拟MAC地址 ,格式为: 00-00-5E-00-01-{VRID}.
Master、Backup路由器 :
Master路由器:在VRRP组中实际转发数据包的路由器,在每一个VRRP组中,仅有Master响应对虚拟IP地址的ARP请求。Master路由器同时以一定的时间间隔发送VRRP消息,以便通知Backup路由器自己的存活情况。
Backup路由器 :处于监听状态的路由器, 一旦Master路由器出现故障 ,Backup路由器就开始接替工作。
选举依据:先比较接口VRRP优先级(比大) ,如果相等,则比较接口IP地址(比大)。

VRRP状态机

VRRP协议的状态共有3三种,分别是Initialize , Master , Backup ,初始状态都是Initialize ,通过比较优先级产生Master和Backup ,在规定时间内, Backup若没有收到Master发来的心跳报文,将切换为Master。
image.png

Master/Backup路由器

Backup路由器:
接收Master设备发送的VRRP通告报文,判断Master设备的状态是否正常。
对虚拟IP地址的ARP请求,不做响应。
丢弃目的IP地址为虚拟IP地址的IP报文。
如果收到优先级和自己相同或者比自己大的报文,则重置Master Down Interval定时器 ,不进一步比较IP地址。
如果收到比自己优先级小的报文且该报文优先级是0时,定时器时间设置为Skew_ time (偏移时间) ,如果该报文优先级不是0 ,丢弃报文,立刻成为Master。

Master Down Interval定时器 : Backup设备在该定时器超时后仍未收到通告报文,则会转换为Master状态。计算公式如下: Master. Down Interval=(3*Advertisement Interval) + Skew time。 其中,Skew Time=(256- -Priority)/256。

Master报文的发送:当Master正常工作时,它会每隔一段时间(缺省为1秒)向组内Backup设备发送vrrp通告报文,通告自己工作正常。 (注:只有Master发送VRRP报文)

VRRP通告报文被封装在中报文里,通过组播地址224.0.0.18发送, TTL为255, 协议号为112

VRRP报文

VRRP报文是一种多播报文,由Master路由器发出来通告它的存在,使用VRRP报文可以检测虚拟路由器的各种参数,用于主路由器的选择。VRRP报文是封装在IP报文中,通过组播的方式传送。也就是VRRP协议跟ICMP协议一样,工作在第三层(路由层),它是不具有端口的说法的。
(1) Version: VRRP协议版本号,RFC3768定义了版本号2
(2) Type:
指明VRRP报文类型,RFC3768只定义了一种VRRP报文, 即VRRP通告报文,所以该字段总为1 (若收到的VPPR通告报文的该字段的类型为非1则会被丢弃)
(3) Virtual Rtr ID:
即上面讲的大VRID。一个VRID唯一标识了一个虚拟路由器,取值范围为[1,255]。(所以一台路由器的接口最多可以运行255个VRRP组)
(4) Priority:
优先级。虚拟路由器中用该字段来决定Master路由器和Backup路由器,值越大表明优先级越高,取值为[1,255],缺省值为100。假设虛拟路由器的IP地址跟VRRP组中某台路由器IP地址相同,那么该路由器的发出的VRRP报文的该字段总为255,即使人为指定为其他值也不受影响。若此字段为0表示这是Master路由器出现故障发送的VRRP通告报文,当Backup路 由器收到此通告报文后,会等待(Skew time (256-Backup路由器的优先级) /256)秒时间,然后将自己切换为Master路由器。
(5)CountIPAddrs:VRRP通告报文中包含的IP数目,即被一个VRRP虛拟路由器所分配的IP地址的数量。
(6) Auth Type:
认证类型字段,一个虚拟路由器只能使用一种认证类型,若Backup路由器收到的通告报文段中认证类型字段是未知或者和本地配置不匹配,则将该数据包丢弃。
认证类型字段的定义:
0表示无认证
1表示保留,向前一个版本的RFC2338提供兼容性
2表示保留,向前一个版本的RFC2338提供兼容性

(7)Adver Int: Mater路由器向外发送VRRP通告报文的时间间隔,以秒为单位,取值范围是[1,255],缺省为1

(8) Checksum: 整个VRRP报文的校验和
(9)IP Address:VRP虚拟路由器的虚拟IP地址(可配置多个)
(10) Authentication Data:验证字。为了向RFC2338兼容,在实际的封装时,全置为0,接收方会忽略此字段

命令及实例配置

image.png
R1

[R1]int vlanif 10 网关接口(三层交换为VLAN接口,路由器为下行接口)

[R1-vlanif10]ip address 192.168.10.11 24[R1-vlanif10] vrrp vrid l virtual-ip 192.168.10.1 创建VRRP虚拟路由器的标识vrid为1,并配置vrid 1的虚拟IP地址

[R1-vlanif10]vrrp vrid 1 priority 120 设置设备A的优先级为120(缺省值为100),数值越大越优先[R1-vlanif10]vrrp vrid 1 preempt-mode timer delay 6配置Master设备的抢占时延为6秒(缺省值为o,立即抢占),以防频繁地进行状态切换

[R1-vlanif10]vrrp vrid 1 track interface GigabitEthernet0/0/1reduce 30跟踪上行接口g0/0/1的状态,如端口故障则Master优先级降低30 (缺省值为10)

[R1-vlanif10]vrrp vrid 1 track interface g0/0/2 跟踪下行接口

R

[R2]int vlanif 10[R2-Vlanif10]ip address 192.168.10.10 24

[R2-vlanif10] vrrp vrid 1 virtual-ip 192.168.10.1

[R2-Vlanif10] vrrp vrid 1 priority 115

[R2]dis vrrp 显示VRRP状态

Pc测试验证,tracert 10.0.0.1

先配好R1 ip地址

sys

sys R1

[R1]un in en

[R1]int g0/0/0

[R1-GigabitEthernet0/0/0]ip add 192.168.10.100 24

[R1-GigabitEthernet0/0/0]un sh

[R1-GigabitEthernet0/0/0]q

[R1]int g0/0/1

[R1-GigabitEthernet0/0/1]ip add 13.0.0.1 24

[R1-GigabitEthernet0/0/1]un sh

[R1]iproute-static 30.0.0.0 24 13.0.0.2

R2与之相似

[R2]iproute-static 30.0.0.0 24 23.0.0.2

R3与之相似

[R3]ip routo-static 192.168.10.0 24 13.0.0.1

[R3]ip route-static 192.168.10.0 24 23.0.0.1 preference 70

配置R3自带逻辑接口

[R3]int LoopBack 0

[R3-LoopBack0]ip add 30.0.0.1 24

配置VRRP

[R1]int g0/0/0

[R1-GigabitEthernet0/0/0]vrrp vrid 1 virtual-ip 192.168.10.1

[R1-GigabitEtherneto/0/0]vrrp vrid 1 priority 120

[R1-GigabitEtherneto/0/0]vrrp vrid 1 preempt-mode timer delay 5

[Ri-GigabitEthernet0/0/0]vrrp vrid 1 track interface GigabitEthernet0/0/1 reduced 30

[R2]R2]int g0/0/0

[R2-GigabitEthernet0/0/0]vrrp vrid 1 virtual-ip 192.168.10.1

检查PC1>tracert 30.0.0.1

配置地址

SW1

[SW1]vlan batch 10 20

[SW1]int e0/0/1

[SW1-Ethernet0/0/1]p l a

[SW1-Ethernet0/0/1]p d v 10

[SW1-Ethernet0/0/1]int e0/0/2

[SW1一Ethernet0/0/2]p l a

[SW1-Ethernet0/0/2]p d v 20

[SW1-Ethernet0/0/2j]inteo/0/3

[SW1一Ethernet0/0/3]p l t

[SW1一Ethernet0/0/3]p t a v a

[SW1-Ethernet0/0/3]int e0/0/4

[SW1-Etherneto/0/4]p l t

[SW1-Ethernet0/0/4]p t a v a

SW2

[SW2]vlan b 10 20 30

[SW2]int g0/0/1

[SW2-GigabitEthernet0/0/1]p l t

[SW2-GigabitEthernet0/0/1]p t a v a

[SW2-GigabitEtherneto/0/iiint g0/0/2

[SW2-GigabitEtherneto/o/2ip l a

[SW2-GigabitEtherneto/o/2jp d v 30

[SW2-Vlanif10]ip add 192.168.10.100 24

[SW2-Vlanif20]ip add 192.168.20.100 24

[SW2-Vlanif30]ip add 13.0.0.124

SW3与SW2

相似配置VRRP

SW2[SW2]int vlanif 10

[SW2-vlanif10]lvrrp vrid 10 virtual-ip 192.168.10.1

[SW2-vlanif10]vrrp vrid 10 priority 120

[SW2-vlanif10]vrrp vrid 10 preempt-mode timer delay 5

[SW2-vlanif10]vrrp vrid 10 track int g0/0/2 reduced 30

[SW2]int vlanif 20

[SW2-vlanif20]vrrp vrid 20 virtual-ip 192.168.20.1

[SW2-vlanif20]vrrp vrid 20 priority 115

[SW2]iproute-static 0.0.0.0 0.0.0.0 13.0.0.2

SW3

[SW3]int vlanif 10

[SW3-vlanif10]vrrp vrid 10 virtual-ip 192.168.10.1

[SW3]int vlanif 20[SW3-vlanif20]vrrp vrid 20 priority 120

[SW3-vlanif20]vrrp vrid 20 preempt-mode timer delay 5

[SW3-vlanif20]vrrp vrid 20 track int g0/0/2

[SW3]iproute-static 0.0.0.0 0.0.0.0 23.0.0.2

R3

[R3]ip routo-static 192.168.10.0 24 13.0.0.1

[R3]ip route-static 192.168.10.0 24 23.0.0.1 preference 70

[R3]ip route-static 192.168. 20.0 24 23.0.0.1

[R3]ip route-static 192.168.20.0 24 13.0.0.1 preference 70