虚拟路由器冗余协议(VRRP

5.1 VRRP协议原理

VRRP协议(Virtual Router Redundancy Protocol,虚拟路由器冗余协议)与HSRP类似,能够提高网络的稳定性和可靠性,其由IETF标准RFC2338定义。由于VRRP与HSRP原理类似,只是术语和功能上有细微的差别,所以本节简要介绍VRRP的原理。

1、VRRP的工作原理

如图5.1所示,VRRP协议将LAN网段上的两台或者多台路由器可以作为一台“虚拟”路由器使用,通过同一个虚拟IP地址和虚拟MAC地址而对外提供服务。如果其中一台出现故障,另一台就能接替它,继续完成路由功能。

虚拟路由器冗余协议(VRRP)_网络

图5.1 VRRP创建了一个有自己MAC地址和IP地址的虚拟路由器

VRRP协议组中包括一台主路由器、备份路由器和一台虚拟路由器组成。VRRP协议中活跃路由器称为主路由器,其转发发送到虚拟路由器的数据包。而其他VRRP组中非主路由器的路由器都处于备份状态。虚拟路由器是向最终用户代表一台可以连续工作的路由器。

VRRP与HSRP相同根据优先级大小选择主路由器,同一个VRRP组中优先级最大的路由器成为主路由器,状态为Master。组中其他路由器都处于备份状态,并检测主路由器的状态。主路由器每隔一段时间会发送一个VRRP通告,通告其工作正常。如果VRRP组中的备份路由器长时间没有收到主路由器的通告,就将自己改为Master状态。VRRP组内可能有多台备份路由器同时认为自己是主路由器,这时每台主路由器都会比较收到的VRRP通告中的优先级与本地的优先级的大小。如果本地优先级小于VRRP通告的优先级,则自身路由器状态为备份状态,否则为Master状态不变。最终一个VRRP组中优先级最大的路由器成为新的主路由器。

2、虚拟MAC地址

VRRP组中虚拟路由器的MAC地址格式为0000.5e00.01xx,其中xx为VRRP组号。

例如:VRRP组47,则虚拟路由器的MAC地址是0000.5e00.012f。

3、VRRP通告

VRRP协议中只定义了一种报文即VRRP通告,其使用IP协议协议号为112,目的地址为组播地址224.0.0.18。

4、VRRP的状态

VRRP协议共定义了三种状态:Master(主状态)、Backup(备份状态)、Initialize(初始状态)。

n 初始状态:所有路由器都从初始状态开始,即进程启动后进入此状态。

n 备份状态:接收主路由器发送的VRRP组播通告,由此判断主路由器的状态;丢弃发送到虚拟路由器的MAC地址和IP地址的数据包;不响应对虚拟IP地址的ARP请求。

n 主状态:定期发送VRRP组播通告;响应对虚拟IP地址的ARP请求,并且发送免费ARP报文使网络内主机知道虚拟IP地址和虚拟MAC地址的对应关系;转发目的地址是虚拟MAC地址的IP数据包。

VRRP三种状态间的转换关系,如图5.2所示。

虚拟路由器冗余协议(VRRP)_稳定性_02

图5.2 VRRP三种状态之间的转换关系

在初始状态如果接收到startup消息,并且优先级为255(优先级范围0~255)时,则路由器状态转为主状态;如果优先级小于255时,则路由器状态转为备份状态。

在备份状态如果接口收到shutdown消息,则路由器状态转为初始状态;如果Master_Down_Interval时间超时,则路由器转为主状态。

在主状态如果接口收到shutdown消息,则路由器状态转为初始状态;如果接收到的VRRP组播通告中的优先级大于本地优先级,则路由器状态转为备份状态。

虚拟路由器冗余协议(VRRP)_工作原理_03 名称解释:

1、Master_Down_Interval相当于HSRP中的保持时间,即备份路由器一段时间没有收到主路由器的VRRP通告,则认为主路由器异常,自身成为主路由器。

2、VRRP优先级与HSRP优先级相同,范围是0~255,可以配置的范围是1~254,默认为100。如果,VRRP配置的虚拟IP地址和路由器的实际物理接口地址相同时这个VRRP路由器称为IP地址拥有者,这时此路由器的VRRP优先级为255。

5、VRRP计时器

VRRP通告的发送时间默认为1s,而Master_Down_Interval时间是3倍的主路由器VRRP通告发送时间再加上一个偏移时间,具体的计算公式详见RFC2338。

6、VRRP认证

VRRP协议提供了三种认证方式(无认证、简单字认证和MD5认证)可以根据不同的网络环境使用不同的认证方式。在一个安全的网络中可以使用无认证,在一个十分不安全的网络中可以使用MD5认证。

5.2 VRRP协议的相关配置

前面简单的讲解了VRRP协议的原理,本节介绍VRRP协议的相关配置。

5.2.1 VRRP的配置命令

1、将路由器配置为VRRP组成员

将路由器或三层交换机配置为VRRP组的成员,并指定虚拟IP地址:

Switch(config-if)#vrrp group-number ip virtual-ip-address

其中:

n group-number:表示该端口所属的VRRP组。可配置范围是1~255。

n virtual-ip-address:表示虚拟VRRP路由器的IP地址,即网段的网关地址。如果虚拟IP地址和接口的物理IP地址相同,则此VRRP组中本地路由器的优先级为255。

2、配置VRRP优先级

用户可以指定端口在组内的优先级。这样,在发生出现故障时,用户可以灵活地指定端口顺序。优先级数值高的将成为主路由器,指定优先级可使用下面的命令:

Switch(config-if)#vrrp group-number priority priority-value

其中,priority-value范围是0~255,可配置范围是1~254,默认值是100。

需要注意如果路由器是IP地址拥有者则优先级为255,无法配置优先级。

3、配置占先权

占先权的含义与HSRP相同,但是VRRP协议中占先权默认是开启的。

关闭VRRP占先权的命令为:

Switch(config-if)#no vrrp group-number preempt

可以使用vrrp group-number preempt命令开启VRRP占先权。

4、配置VRRP定时器

配置VRRP路由器的VRRP通告发送时间的命令为:

Switch(config-if)#vrrp 1 timers advertise [ msec ] interval

其中,使用msec参数配置的时间间隔为毫秒,范围50~999;不使用msec参数参数配置的时间间隔为秒,范围是1~255。

命令vrrp group-number timers learn为从主路由器那里获悉VRRP通告时间间隔,由此计算Master_Down_Interval的时间。

5、配置VRRP认证

VRRP配置明文认证的命令为:

Switch(config-if)#vrrp 1 authentication word

VRRP配置MD5认证的命令为:

Switch(config-if)#vrrp 1 authentication md5 key- string word

6、配置VRRP端口跟踪

VRRP配置端口跟踪的方式与HSRP稍有不同。VRRP配置端口跟踪时,首先,需要定义跟踪的端口命令如下:

Switch(config-if)#track number interface type mod/mun line-protocol

其中,number为编号,范围1~500;line-protocol表示接口链路层状态。

然后,在接口模式下配置VRRP端口跟踪,命令为:

Switch(config-if)#vrrp group-number track number decrement interface-priority

其中:

n group-number:采用跟踪功能的端口的VRRP组号;

n number:跟踪由track number所定义的端口;

n interface-priority:当端口失效时路由器的热备份优先级将降低的数值;当端口变为可用时,路由器的优先级将加上该数值。

要关闭端口跟踪功能时,可以使用no standby group-number track命令。

需要注意如果路由器是IP地址拥有者则优先级为255,不能配置端口跟踪。

7、查看VRRP路由器状态

要显示VRRP路由器的状态,在特权模式下输入如下命令:

Switch#show vrrp [interface type mod/mun] [group group-number] [brief]

其中:

n interface type mod/mun:要显示的端口类型和序号;

n group group-number:要显示的具体VRRP组;

n brief:显示摘要信息,每个备份组总结显示一行输出;

如果没有指定这些任选端口参数,那么,show vrrp 命令可以显示所有端口的VRRP信息。

使用show vrrp brief命令的输出结果如下:

SW1#show vrrp brief

Interface Grp Pri Time Own Pre State Master addr Group addr

Vl2 2 150 3414 Y Master 192.168.2.1 192.168.2.254

此输出表明,VLAN2端口参与了VRRP 2组,优先级为150,启用了占先权,不是IP地址拥有者,这个路由器处于Master状态,组中主路由器的IP地址192.168.2.1,VRRP组的虚拟IP地址是192.168.2.254。

使用show vrrp可以查看VRRP的详细信息,如下所示:

SW1#show vrrp

Vlan2 - Group 2 //VRRP组号

State is Master //状态为Master

Virtual IP address is 192.168.2.254 //VRRP组的虚拟IP地址

Virtual MAC address is 0000.5e00.0102 //VRRP组的虚拟MAC地址

Advertisement interval is 1.000 sec //VRRP通告发送时间间隔

Preemption enabled //占先权为启动状态

Priority is 150 //优先级为150

Track object 1 state Up decrement 100 //端口跟踪,降低优先级100

Master Router is 192.168.2.1 (local), priority is 150 //主路由器的信息

Master Advertisement interval is 1.000 sec //主路由器的VRRP通告时间间隔

Master Down interval is 3.414 sec //主路由器的Down interval时间

Vlan3 - Group 3

State is Backup

Virtual IP address is 192.168.3.254

Virtual MAC address is 0000.5e00.0103

Advertisement interval is 1.000 sec

Preemption enabled

Priority is 100

Master Router is 192.168.3.2, priority is 150

Master Advertisement interval is 1.000 sec

Master Down interval is 3.609 sec (expires in 3.217 sec) Learning

//学习到的主路由器Down interval时间

5.2.2 VRRP的配置实例

与HSRP相同,要实现网络流量的负载均衡,需要通过配置VRRP和生成树来实现。

下面通过一个配置实例来说明如何配置VRRP的负载均衡。

BENET公司组建网络如图5.3所示,要求使用SW1和SW2使用VRRP加强网络稳定,为了充分利用网络资源还要求实现VLAN的负载均衡。VRRP参数规划如表5.1所示。

表5.1 VRRP参数规划表

VRRP参数

主路由器

备份路由器

优先级

150

100

占先权

是(默认)

是(默认)

计时器

默认

默认

组号

VLAN-ID

注:

u 对于VLAN2:SW1为主路由器、SW2为备份路由器;

u 对于VLAN3:SW1为备份路由器、SW2为主路由器;

其它网络规划如下:

n 在SW1交换机VLAN 虚接口物理IP地址:

l VLAN 2:192.168.2.1/24

l VLAN 3:192.168.3.1/24

n 在SW2交换机VLAN 虚接口物理IP地址:

l VLAN 2:192.168.2.2/24

l VLAN 3:192.168.3.2/24

n PC1的IP地址:192.168.2.10/24,虚拟网关为192.168.2.254/24;PC2的IP地址:192.168.3.10/24,虚拟网关为192.168.3.254/24;

n SW1和R1的互联地址为192.168.0.0/30;SW2和R1的互联地址为192.168.1.0/30;

n 配置R1路由器的Loopback接口地址192.168.100.1/24模拟外网地址;

n 交换机之间链路均为中继链路,并使用静态路由实现网络互通;

虚拟路由器冗余协议(VRRP)_可靠性_04

5.3 VRRP案例网络拓扑图

根据网络规划配置网络。

1、配置设备基本信息(接口IP、VLAN、TRUNK、路由等配置),配置省略;

配置时需要注意三层交换机启用路由功能、VLAN虚端口需要开启、三层交换机端口启用三层功能等配置,以及接口配置的物理IP地址。

2、配置VRRP

分别在SW1和SW2上配置VRRP,如下所示:

SW1配置

SW1(config)#track 1 interface FastEthernet0/1 line-protocol //定义跟踪的端口

SW1(config)#interface Vlan2

SW1(config-if)#ip address 192.168.2.1 255.255.255.0

SW1(config-if)#vrrp 2 ip 192.168.2.254 //配置虚拟IP地址

SW1(config-if)#vrrp 2 timers learn

SW1(config-if)#vrrp 2 priority 150 //配置优先级150

SW1(config-if)#vrrp 2 track 1 decrement 100 //配置端口跟踪

SW1(config-if)#exit

SW1(config)#interface Vlan3 //优先级使用默认配置为100,并且不需要跟踪端口

SW1(config-if)#ip address 192.168.3.1 255.255.255.0

SW1(config-if)#vrrp 3 ip 192.168.3.254

SW1(config-if)#vrrp 3 timers learn //配置从主路由器获悉VRRP通告时间

SW1(config-if)#exit

SW2配置

SW2(config)#track 1 interface FastEthernet0/1 line-protocol

SW2(config)#interface Vlan2

SW2(config-if)#ip address 192.168.2.2 255.255.255.0

SW2(config-if)#vrrp 2 ip 192.168.2.254

SW2(config-if)#vrrp 2 timers learn

SW2(config-if)#exit

SW2(config)#interface Vlan3

SW2(config-if)#ip address 192.168.3.2 255.255.255.0

SW2(config-if)#vrrp 3 ip 192.168.3.254

SW2(config-if)#vrrp 3 timers learn

SW2(config-if)#vrrp 3 priority 150

SW2(config-if)#vrrp 3 track 1 decrement 100

SW2(config-if)#exit

3、配置STP实现VLAN负载均衡

SW1的配置信息如下:

SW1(config)#spanning-tree vlan 2 root primary

SW1(config)#spanning-tree vlan 3 root secondary

SW2的配置信息如下:

SW2(config)#spanning-tree vlan 2 root secondary

SW2(config)#spanning-tree vlan 3 root primary

由此可以保证VLAN2的STP实例阻塞的端口是SW2和SW3连接端口中的一个,而VLAN3的STP实例阻塞的端口是SW1和SW3连接端口中的一个。由此保证了不同VLAN从SW3到主路由器的链路不被阻塞。

4、验证VRRP

使用show vrrp命令查看VRRP详细信息,如下所示:

SW1#show vrrp

Vlan2 - Group 2

State is Master

Virtual IP address is 192.168.2.254

Virtual MAC address is 0000.5e00.0102

Advertisement interval is 1.000 sec

Preemption enabled

Priority is 150

Track object 1 state Up decrement 100

Master Router is 192.168.2.1 (local), priority is 150

Master Advertisement interval is 1.000 sec

Master Down interval is 3.414 sec

Vlan3 - Group 3

State is Backup

Virtual IP address is 192.168.3.254

Virtual MAC address is 0000.5e00.0103

Advertisement interval is 1.000 sec

Preemption enabled

Priority is 100

Master Router is 192.168.3.2, priority is 150

Master Advertisement interval is 1.000 sec

Master Down interval is 3.609 sec (expires in 3.225 sec) Learning

还可以使用show vrrp brief命令查看VRRP的简要信息,如下所示:

SW1#show vrrp brief

Interface Grp Pri Time Own Pre State Master addr Group addr

Vl2 2 150 3414 Y Master 192.168.2.1 192.168.2.254

Vl3 3 100 3609 Y Backup 192.168.3.2 192.168.3.254

分别在PC1和PC2(网关为虚拟IP地址)上使用ping命令,能够正常和R1(192.168.100.1)通信。

验证热备份,断开SW1交换机和R1的链路,然后使用show vrrp brief命令查看交换机上VRRP状态,如下所示:

SW1#show vrrp brief

Interface Grp Pri Time Own Pre State Master addr Group addr

Vl2 2 50 3414 Y Backup 192.168.2.2 192.168.2.254

Vl3 3 100 3609 Y Backup 192.168.3.2 192.168.3.254

SW2#show vrrp brief

Interface Grp Pri Time Own Pre State Master addr Group addr

Vl2 2 100 3609 Y Master 192.168.2.2 192.168.2.254

Vl3 3 150 3414 Y Master 192.168.3.2 192.168.3.254

主交换机优先级下降,备份交换机成为主交换机,并且PC1和PC2与路由器R1通信正常。

然后恢复SW1交换机和R1的链路,然后断开SW2交换机和SW3的链路,验证热备份。同样,主交换机优先级下降,备份交换机成为主交换机,并且PC1和PC2与路由器R1通讯正常。