与HSRP相同,VRRP也是一种默认网关冗余方法,它让一组路由器构成一台虚拟路由器。HSRP是cisco私有的,只适用于cisco设备。VRRP是符合internet标准(RFC2338)。
在VRRP协议中,有两组重要的概念:VRRP路由器和虚拟路由器,主控路由器和备份路由器。VRRP路由器是指运行VRRP的路由器,是物理实体,虚拟路由器是指VRRP协议创建的,是逻辑概念。一组VRRP路由器协同工作,共同构成一台虚拟路由器。该虚拟路由器对外表现为一个具有唯一固定IP地址和MAC地址的逻辑路由器。处于同一个VRRP组中的路由器具有两种互斥的角色:主控路由器和备份路由器,一个VRRP组中有且只有一台处于主控角色的路由器,可以有一个或者多个处于备份角色的路由器。VRRP协议使用选择策略从路由器组中选出一台作为主控,负责ARP响应和转发IP数据包,组中的其它路由器作为备份的角色处于待命状态。当由于某种原因主控路由器发生故障时,备份路由器能在几秒钟的时延后升级为主路由器。由于此切换非常迅速而且不用改变IP地址和MAC地址,故对终端使用者系统是透明的。
如上图,路由器A,路由器B,路由器C都是VRRP路由器组成了一台虚拟路由器,这个虚拟路由器的IP地址为路由器A的IP地址为10.0.0.1,网络中其它的主机的默认网关都为虚拟路由器的IP地址。
由于虚拟路由器使用路由器A的物理以太网接口的IP地址,因此路由器A担当了主虚拟路由器的角色,被称为IP地址拥有者(owner)。作为主虚拟路由器,路由器A控制虚拟路由器的IP地址,并负责对发送到该IP地址的数据包进行转发。路由器B和路由器C为备用虚拟路由器。如果主虚拟路由器A发生故障,路由器B和路由器C作为备用虚拟路由器优先级高的将替代为主虚拟路由器。当路由器A恢复正常后,将再次成为主虚拟路由器。
一个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选举。
组成虚拟路由器的路由器会有三种状态 分别是Initialize Master和Backup
1)Initialize
系统启动后进入此状态,当收到接口startup的消息,将转入Backup (优先级不为255时)或Master状态(优先级为255时)。在此状态时,路由器不会对VRRP报文做任何处理。
2)Master
当路由器处于Master状态时 它将会做下列工作
*定期发送VRRP组播报文
*发送免费(gratuitous)ARP报文,以使网络内各主机知道虚拟IP地址所对应的虚拟MAC地址
*响应对虚拟IP地址的ARP请求,并且响应的是虚拟MAC地址,而不是接口的真实MAC地址
*转发目的MAC地址为虚拟MAC地址的IP报文
*如果它是这个虚拟IP地址的拥有者,则接收目的IP地址为这个虚拟IP地址的IP报文,否则,丢弃这个IP报文。需要注意的是,由于有这一点要求,所以除非主路由器是IP地址拥有者,否则主机ping虚拟IP地址不能ping通。
在Master状态中只有接收到比自己的优先级大的VRRP报文时,才会转为Backup。只有当接收到接口的Shutdown事件时才会转为Initialize
3)Backup
当路由器处于Backup状态时 它将会做下列工作:
*接收Master发送的VRRP组播报文 从中了解Master的状态
l*对虚拟IP地址的ARP请求 不做响应
*丢弃目的MAC地址为虚拟MAC地址的IP报文
*丢弃目的IP地址为虚拟IP地址的IP报文
只有当Backup接收到MASTER_DOWN这个定时器到时的事件时,才会转为Master 而当接收到比自己的优先级小的VRRP报文时,它只是做丢弃这个报文的处理,从而就不对定时器做重置处理。 这样定时器就会在若干次这样的处理之后到时,于是就转为Master。只有当接收到接口的Shutdown事件时才会转为Initialize
HSRP VRRP
通告类型: Hello、Coup、Resign3种 VRRP广播报文通告
状态: Init,listen,learn,speak,standby,active6种 Init,master,backup3种
虚拟IP地址: 不能为接口的实际IP地址 可以使用路由器的接口地址
虚拟MAC地址: 0000.0007.acxx 0000.5e00.01xx
认证: 明文(12.3IOS支持md5) 明文,无认证,md5
报文承载: UDP 1985 224.0.0.1 TCP
路由器特征: 一组中只能有一个活动路由器 一组中必须有一个主路由器
如下图,有两台虚拟路由器。对于虚拟路由器1而言,路由器A为其ip地址的拥有者,它是主虚拟路由器,而路由器b是备用虚拟路由器。在主机1和2上,默认网关为10.0.0.1。虚拟路由器2的IP地址是路由器B的IP地址,路由器B是主虚拟路由器,主机3和主机4上,默认网关IP地址被配置为10.0.0.2。
1) 进入全局模式 configure terminal
2) 进入接口模式 interface 接口
3) 配置vrrp组和虚拟路由器的IP地址(可选)
vrrp 组号 ip ip地址
4) 配置优先级
vrrp 组号 priority 优先级别
5) 配置抢占
vrrp 组号 preempt
6) 配置vrrp通告时间
vrrp 组号 timer advertise [msec] 秒数
默认为1秒
7) 配置认证
(1)MD5认证:
0:表示不以加密方式显示密码
7:表示以加密的方式显示密码(service password-encryption命令配置)
(2)MD5钥匙串认证:
必须事先定义了key串
(3) 明文认证:
8) 跟踪端口
(1) 定义跟踪,全局模式: track 编号 interface 接口 [line-protocol | ip-routing]
(2) vrrp 组号 track 编号 decrement 优先级
decrement 优先级:减少的优先级
9) 验证结果
show vrrp [brief]
show vrrp interface 接口
show track
routerA#config termi
routerA(config)#track 1 interface s0/0
routerA(config)#interface e0
routerA(config-if)#ip addr 10.10.10.1 255.255.255.0
routerA(config-if)#vrrp 1 priority 120
routerA(config-if)#vrrp 1 ip 10.10.10.1
routerA(config-if)#vrrp 1 timer advertise 3
routerA(config-if)#vrrp 1 preempt
routerA(config-if)#vrrp 1 authentication text cisco
routerA(config-if)#vrrp 1 track 1 decrement 100
routerA(config-if)#vrrp 2 ip 10.10.10.2
routerA(config-if)#vrrp 2 timer advertise 30
routerA(config-if)#vrrp 2 priority 100
routerA(config-if)#vrrp 2 preempt
----------------------------------------------------------------
routerB#config termi
routerB(config)#track 1 interface s0/0
routerB(config)#interface e0
routerB(config-if)#ip addr 10.10.10.2 255.255.255.0
routerB(config-if)#vrrp 1 priority 100
routerB(config-if)#vrrp 1 ip 10.10.10.1
routerB(config-if)#vrrp 1 timer advertise 3
routerB(config-if)#vrrp 1 preempt
routerB(config-if)#vrrp 1 authentication text cisco
routerB(config-if)#vrrp 2 track 1 decrement 150
routerB(config-if)#vrrp 2 ip 10.10.10.2
routerB(config-if)#vrrp 2 timer advertise 30
routerB(config-if)#vrrp 2 priority 200
routerB(config-if)#vrrp 2 preempt
--------------------------------------------------------------
routerA# show vrrp
Ethernet0 - Group 1
State is Master
Virtual IP address is 10.10.10.1
Virtual MAC address is 0000.5e00.0101
Advertisement interval is 3.000 sec
Preemption is enabled
min delay is 0.000 sec
Priority is 120
Authentication text, key-string “cisco”, timeout 30 secs
Master Router is 10.10.10.1 (local), priority is 120
Master Advertisement interval is 2.000 sec
Master Down interval is 3.609 sec
----------------------------------------------------------------
routerA#show track
Track 1
Interface Serial0/0 line-protocol
Line protocol is Down (hw down)
1 change, last change 00:06:53
Tracked by:
VRRP Ethernet0 1
案例:
CCIE-LAB(V142)
题目要求:
VLAN D上冗余网关使用VRRP(Router Redundancy Protocol),优选R5,认证密码为明文cisco,没有特别要求IP地址,可以采用R5的IP地址,也就是说R5为主虚拟路由器
配置:
R5
config term
interface f0/1
ip address 1.1.65.5 255.255.255.0
vrrp 1 priority 101
vrrp 1 ip 1.1.65.5
vrrp 1 preempt
vrrp 1 authentication text cisco
R6
config term
interface f0/1
ip address 1.1.65.6 255.255.255.0
vrrp 1 priority 100
vrrp 1 ip 1.1.65.5
vrrp 1 preempt
vrrp 1 authentication text cisco