虚拟路由器冗余协议(路由协议)

2023-05-18 39阅读

虚拟路由器冗余协议

路由协议

虚拟路由冗余协议(Virtual Router Redundancy Protocol,简称VRRP)是由IETF提出的解决局域网中配置静态网关出现单点失效现象的路由协议,1998年已推出正式的RFC2338协议标准。VRRP广泛应用在边缘网络中,它的设计目标是支持特定情况下IP数据流量失败转移不会引起混乱,允许主机使用单路由器,以及及时在实际第一跳路由器使用失败的情形下仍能够维护路由器间的连通性。

中文名 虚拟路由器冗余协议
英文名 Virtual Router Redundancy Protocol
简称 VRRP
推出 1998年
应用 计算机

简介

VRRP是一种选择协议,它可以把一个虚拟路由器的责任动态分配到局域网上的VRRP路由器中的一台。控制虚拟路由器IP地址的VRRP路由器称为主路由器,它负责转发数据包到这些虚拟IP地址。一旦主路由器不可用,这种选择过程就提供了动态的故障转移机制,这就允许虚拟路由器的IP地址可以作为终端主机的默认第一跳路由器。是一种LAN接入设备备份协议。一个局域网络内的所有主机都设置缺省网关,这样主机发出的目的地址不在本网段的报文将被通过缺省网关发往三层交换机,从而实现了主机和外部网络的通信。

VRRP是一种路由容错协议,也可以叫做备份路由协议。一个局域网络内的所有主机都设置缺省路由,当网内主机发出的目的地址不在本网段时,报文将被通过缺省路由发往外部路由器,从而实现了主机与外部网络的通信。当缺省路由器down掉(即端口关闭)之后,内部主机将无法与外部通信,如果路由器设置了VRRP时,那么这时,虚拟路由将启用备份路由器,从而实现全网通信。

VRRP(Virtual Router Redundancy Protocol,虚拟路由冗余协

议)是一种容错协议。通常,一个网络内的所有主机都设置一条缺省路由,这样,主机发出的目的地址不在本网段的报文将被通过缺省路由发往路由器RouterA,从而实现了主机与外部网络的通信。当路由器RouterA坏掉时,本网段内所有以RouterA为缺省路由下一跳的主机将断掉与外部的通信产生单点故障。VRRP就是为解决上述问题而提出的,它为具有多播组播或广播能力的局域网(如:以太网)设计。

VRRP将局域网的一组路由器(包括一个Master即活动路由器和若干个Backup即备份路由器)组织成一个虚拟路由器,称之为一个备份组。这个虚拟的路由器拥有自己的IP地址10.100.10.1(这个IP地址可以和备份组内的某个路由器的接口地址相同,相同的则称为ip拥有者),备份组内的路由器也有自己的IP地址(如Master的IP地址为10.100.10.2,Backup的IP地址为10.100.10.3)。局域网内的主机仅仅知道这个虚拟路由器的IP地址10.100.10.1,而并不知道具体的Master路由器的IP地址10.100.10.2以及Backup路由器的IP地址10.100.10.3。它们将自己的缺省路由下一跳地址设置为该虚拟路由器的IP地址10.100.10.1。于是,网络内的主机就通过这个虚拟的路由器来与其它网络进行通信。如果备份组内的Master路由器坏掉,Backup路由器将会通过选举策略选出一个新的Master路由器,继续向网络内的主机提供路由服务。从而实现网络内的主机不间断地与外部网络进行通信。

工作原理

VRRP的工作过程如下:

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

VRRP在不同的主用抢占方式下,主用角色的替换方式不同:

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

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

如果备用路由器的定时器超时后仍未收到主用路由器发送来的VRRP通告报文,则认为主用路由器已经无法正常工作,此时备用路由器会认为自己是主用路由器,并对外发送VRRP通告报文。备份组内的路由器根据优先级选举出主用路由器,承担报文的转发功能。

在实际组网中一般会进行VRRP负载分担方式的设置。负载分担方式是指多台路由器同时承担业务,避免设备闲置,因此需要建立两个或更多的备份组实现负载分担。VRRP负载分担方式具有以下特点:

每个备份组都包括一个主用路由器和若干个备用路由器。

各备份组的主用路由器可以不相同。

同一台路由器可以加入多个备份组,在不同备份组中有不同的优先级,使得该路由器可以在一个备份组中作为主用路由器,在其他的备份组中作为备用路由器。

VRRP在提高可靠性的同时,简化了主机的配置。在具有多播或广播能力的局域网中,借助VRRP能在某台路由器出现故障时仍然提供高可靠的缺省链路,有效避免单一链路发生故障后网络中断的问题,而无需修改动态路由协议、路由发现协议等配置信息。

一个VRRP路由器有唯一的标识:VRID,范围为0—255。该路由器对外表现为唯一的虚拟MAC地址,地址的格式为00-00-5E-00-01-[VRID]。主控路由器负责对ARP请求用该MAC地址做应答。这样,无论如何切换,保证给终端设备的是唯一一致的IP和MAC地址,减少了切换对终端设备的影响。

VRRP控制报文只有一种:VRRP通告(advertisement)。它使用IP多播数据包进行封装,组地址为224.0.0.18,发布范围只限于同一局域网内。这保证了VRID在不同网络中可以重复使用。为了减少网络带宽消耗只有主控路由器才可以周期性的发送VRRP通告报文。备份路由器在连续三个通告间隔内收不到VRRP或收到优先级为0的通告后启动新的一轮VRRP选举。

在VRRP路由器组中,按优先级选举主控路由器,VRRP协议中优先级范围是0—255。若VRRP路由器的IP地址和虚拟路由器的接口IP地址相同,则该VRRP路由器被称为该IP地址的所有者;IP地址所有者自动具有最高优先级:255。优先级0一般用在IP地址所有者主动放弃主控者角色时使用。可配置的优先级范围为1—254。优先级的配置原则可以依据链路的速度和成本、路由器性能和可靠性以及其它管理策略设定。主控路由器的选举中,高优先级的虚拟路由器获胜,因此,如果在VRRP组中有IP地址所有者,则它总是作为主控路由的角色出现。对于相同优先级的候选路由器,按照IP地址大小顺序选举。VRRP还提供了优先级抢占策略,如果配置了该策略,高优先级的备份路由器便会剥夺当前低优先级的主控路由器而成为新的主控路由器。

为了保证VRRP协议的安全性,提供了两种安全认证措施:明文认证和IP头认证。明文认证方式要求:在加入一个VRRP路由器组时,必须同时提供相同的VRID和明文密码。适合于避免在局域网内的配置错误,但不能防止通过网络监听方式获得密码。IP头认证的方式提供了更高的安全性,能够防止报文重放和修改等攻击。

应用实例

VRRP协议的工作机理与CISCO公司的HSRP(Hot Standby Routing Protocol)有许多相似之处。但二者主要的区别是在CISCO的HSRP中,需要单独配置一个IP地址作为虚拟路由器对外体现的地址,这个地址不能是组中任何一个成员的接口地址。

使用VRRP协议,不用改造网络结构,最大限度保护了投资,只需最少的管理费用,却大大提升了网络性能,具有重大的应用价值。

最典型的VRRP应用:RTA、RTB组成一个VRRP路由器组,假设RTB的处理能力高于RTA,则将RTB配置成IP地址所有者,H1、H2、H3的默认网关设定为RTB。则RTB成为主控路由器,负责ICMP重定向、ARP应答和IP报文的转发;一旦RTB失败,RTA立即启动切换,成为主控,从而保证了对客户透明的安全切换。

在VRRP应用中,RTB在线时RTA只是作为后备,不参与转发工作,闲置了路由器RTA和链路L1。通过合理的网络设计,可以达到备份和负载分担双重效果。让RTA、RTB同时属于互为备份的两个VRRP组:在组1中RTA为IP地址所有者;组2中RTB为IP地址所有者。将H1的默认网关设定为RTA;H2、H3的默认网关设定为RTB。这样,既分担了设备负载和网络流量,又提高了网络可靠性。

配置方式

spanning-tree 开启生成树(默认为mstp)

spanning-tree mst configuration 进入mst配置模式

revision 1 指定MST revision number 为1

name region1 指定mst配置名称

instance 0 vlan 1-9, 11-19, 21-4094 缺省情况下vlan都属于实例0

instance 1 vlan 10 手工指定vlan10属于实例1

instance 2 vlan 20 手工指定vlan20属于实例2

spanning-tree mst 1 priority 0 指定实例1的优先级为0(为根桥)

spanning-tree mst 2 priority 4096 指定实例2的优先级为4096

interface GigabitEthernet 0/1

switchport access vlan 10 配置g0/1属于vlan10

interface GigabitEthernet 0/2

switchport access vlan 20 配置g0/2属于vlan 20!interface GigabitEthernet 0/3!

interface GigabitEthernet 0/24 设置g0/24为trunk接口且允许vlan10/20通过

switchport mode trunk!interface VLAN 10 创建vlan 10 svi接口

ip address 192.168.10.1 255.255.255.0 配置ip地址

vrrp 1 priority 120 配置vrrp组1 优先级为120

vrrp 1 ip 192.168.10.254 配置vrrp组 1虚拟ip地址为 192.168.10.254!

interface VLAN 20 创建vlan 20 svi接口

ip address 192.168.20.1 255.255.255.0 配置ip地址

vrrp 2 ip 192.168.20.254 配置vrrp组 2虚拟ip地址为 192.168.20.254

默认vrrp组的优先级为100默认不显示!

line con 0

line vty 0 4

login[4] 

验证配置

s1#show vlan

VLAN Name Status Ports1 VLAN0001 STATIC Gi0/3, Gi0/4, Gi0/5, Gi0/6

Gi0/7, Gi0/8, Gi0/9, Gi0/10

Gi0/11, Gi0/12, Gi0/13, Gi0/14

Gi0/15, Gi0/16, Gi0/17, Gi0/18

Gi0/19, Gi0/20, Gi0/21, Gi0/22

Gi0/23, Gi0/24

10 VLAN0010 STATIC Gi0/1, Gi0/24

20 VLAN0020 STATIC Gi0/2, Gi0/24

接下来的同级设备照上面大体框架配置既可。

跟踪配置

一般对网关的上联接口监控,如果上联接口故障,则自动让出转发权,配置vrrp需要监控的对象。对应的no命令取消对接口的监控。

vrrp group-number track {interface-name | track-id} [decrement]

no vrrp group-number track {interface-name | track-id}

描述 group-number 指定group-number号,取值范围是1-255。

interface-name 指定监控的接口。

track-id 指定监控的track对象ID。

Decrement 指定优先级降低幅度。缺省10。

这里还要在全局模式下配置track组

track track-ip intface intface-id line-protocol

注意:在启动了vrrp后,才可以配置该命令。

存在问题

目前虚拟路由冗余协议(VRRP)的标准实现中,如果把虚拟地址作为主机路由加入到路由表中,会导致上行的数据流向与下行数据流向的不一致,可能造成报文丢失。

参考资料

1.基于VRRP的虚拟路由通告·知网

目录[+]