15.2.1 实验目的
(1)理解VRRP的工作原理
(2)掌握VRRP的配置和测试
15.2.2 实验原理
1.VRRP和HSRP的区别
VRRP的工作原理和HSRP非常类似,不过VRRP是国际上的标准,允许在不同厂商的设备之间运行。HSRP与VRRP的差别如下:
(1)在功能上,VRRP和HSRP非常相似,但是就安全而言,VRRP对HSRP的一个主要优势:它允许参与VRRP组的设备间建立认证机制.并且,不像HSRP那样要求虚拟路由器不能是其中一个路由器的ip地址,但是VRRP允许这种情况发生.
(2)另外一个不同是VRRP的状态机比HSRP的要简单,HSRP有6个状态(初始(Initial)状态,学习(Learn)状态,监听(Listen)状态,对话(Speak)状态,备份(Standby)状态,活动(Active)状态), VRRP只有3个状态(初始状态(Initialize)、主状态(Master)、备份状态(Backup)。
(3)HSRP有三种报文,分别是呼叫(Hello)报文,告辞(Resign)报文,突变(Coup)报文;
VRRP只有一种报文:VRRP广播报文.由主路由器定时发出来通告它的存在,使用这些报文可以检测虚拟路由器各种参数,还可以用于主路由器的选举。
(4) HSRP将报文承载在UDP报文上,而VRRP承载在TCP报文上(HSRP 使用UDP 1985端口,向组播地址224.0.0.2 发送hello消息。)
(5) VRRP的安全:VRRP协议包括三种主要的认证方式:无认证,简单的明文密码和使用 MD5 HMAC ip认证的强认证. 而HSRP不支持认证。
(6)VRRP包括一个保护VRRP分组不会被另外一个远程网络添加内容的机制(设置TTL值=255,并在接受时检查),这限制了可以进行本地攻击的大部分缺陷.而另一方面,HSRP在它的消息中使用的TTL值是1.
2.VRRP工作过程与配置
VRRP(Virtual Router Redundancy Protocol)是一种LAN接入设备容错协议,VRRP将局域网的一组路由器(包括一个Master即活动路由器和若干个Backup即备份路由器)组织成一个虚拟路由器,称之为一个备份组,如图15-4所示。
VRRP将局域网的一组路由器,如图二中的RouterA和RouterB 组织成一个虚拟的路由器。这个虚拟的路由器拥有自己的IP地址192.168.1.3,称为路由器的虚拟IP地址。同时,物理路由器RouterA ,RouterB也有自己的IP地址(如RouterA的IP地址为192.168.1.1,RouterB的IP地址为192.168.1.2)。局域网内的主机仅仅知道这个虚拟路由器的IP地址192.168.1.3,而并不知道备份组内具体路由器的IP地址。在配置时,将局域网主机的默认网关设置为该虚拟路由器的IP地址192.168.1.3。于是,网络内的主机就通过这个虚拟的路由器来与其它网络进行通信,实际的数据处理由备份组内Master路由器执行。如果备份组内的Master路由器出现故障时,备份组内的其它Backup路由器将会接替成为新的Master,继续向网络内的主机提供路由服务。从而实现网络内的主机不间断地与外部网络进行通信。
VRRP通过多台路由器实现冗余,任何时候只有一台路由器为主路由器,其他的为备份路由器。路由器间的切换对用户是完全透明的,用户不必关心具体过程,只要把缺省路由器设为虚拟路由器的IP地址即可。路由器间的切换过程:
⑴ VRRP协议采用竞选的方法选择主路由器。比较各台路由器优先级的大小,优先级最大的为主路由器,状态变为Master。 若路由器的优先级相同,则比较网络接口的主IP地址,主IP地址大的就成为主路由器,由它提供实际的路由服务。
⑵ 主路由器选出后,其它路由器作为备份路由器,并通过主路由器发出的VRRP报文监测主路由器的状态。当主路由器正常工作时,它会每隔一段时间发送一个VRRP组播报文,以通知备份路由器,主路由器处于正常工作状态。如果组内的备份路由器长时间没有接收到来自主路由器的报文,则将自己状态转为Master 。当组内有多台备份路由器时,重复第1步的竞选过程。通过这样一个过程就会将优先级最大的路由器选成新的主路由器,从而实现VRRP的备份功能。
命令 |
|
Router(config)#track target_id interface interface_id line-protocol |
定义跟踪目标对应的接口 |
Router(config-if)# vrrp group_number ip ip_address |
设置VRRP组号和虚拟IP地址 |
Router(config-if)# vrrp group_number priority priority_value |
配置VRRP的优先级,如果不设置该项,默认优先级为100 ,该值越大,抢占为活动路由器的优先权越高 |
Router(config-if)# vrrp group_number preempt |
该设置允许该路由器在优先级是最高时成为活动路由器。 |
Router(config-if)# vrrp group_number timer hello_time hold_Time |
设置该路由器的hello_time和hold_time |
Router(config-if)# vrrp group_number Authentication md5 key-string password |
配置认证密码,防止非法设备加入到HSRP组中,同一个组的密码必须一致 |
Router(config-if)# vrrp group_number track target_id decrement priority_value |
表明跟踪的接口,如果该接口出故障了,优先级降低该值。降低的值应该选择合适的值,使得其他路由器能成为活动路由器。 |
3.VRRP配置实例
地址表:
设备 |
接口 |
IP地址 |
子网掩码 |
R1 |
Fa 0/0 |
192.168.13.1 |
255.255.255.0 |
S0/0/0 |
192.168.12.1 |
255.255.255.0 |
R2 |
Fa 0/0 |
172.16.1.1 |
255.255.255.0 |
S0/0/0 |
192.168.12.2 |
255.255.255.0 |
S0/0/1 |
192.168.23.2 |
255.255.255.0 |
R3 |
Fa 0/0 |
192.168.13.2 |
255.255.255.0 |
S0/0/0 |
192.168.23.3 |
255.255.255.0 |
PC1 |
NIC |
192.168.13.100 |
255.255.255.0 |
PC2 |
NIC |
192.168.13.200 |
255.255.255.0 |
PC3 |
NIC |
172.16.1.100 |
255.255.255.0 |
表15-3 IP地址表
(1)步骤 1 :配置ip地址和路由协议等,
R1(config)#interface fa 0/0
R1(config-if)#ip add 192.168.13.1 255.255.255.0
R1(config-if)#no shut
R1(config-if)#exit
R1(config)#int s0/0/0
R1(config-if)#ip add 192.168.12.1 255.255.255.0
R1(config-if)#no shut
R1(config-if)#exit
R1(config)#router rip
R1(config-router)#network 192.168.12.0
R1(config-router)#network 192.168.13.0
R1(config-rotuer)#passive-interface fa 0/0
//配置路由器R1:把fa0/0接口设为被动接口,防止从该接口发送rip信息给R3
R2(config)#int fa 0/0
R2(config-if)#ip add 172.16.1.1 255.255.255.0
R2(config-if)#no shut
R2(config-if)#exit
R2(config)#int s0/0/0
R2(config-if)#clock rate 128000
R2(config-if)#ip add 192.168.12.2 255.255.255.0
R2(config-if)#no shut
R2(config-if)#exit
R2(config)#int s0/0/1
R2(config-if)#clock rate 128000
R2(config-if)#ip add 192.168.23.2 255.255.255.0
R2(config-if)#no shut
R2(config-if)#exit
R2(config)#router rip
R2(config-router)#network 172.16.0.0
R2(config-router)#network 192.168.23.0
R2(config-router)#network 192.168.12.0
R2(config-router)#passive-interface fa 0/0
//配置路由器R3:把fa0/0接口设为被动接口,防止从该接口发送rip信息给R1
R3(config)#int fa 0/0
R3(config-if)#ip add 192.168.13.3 255.255.255.0
R3(config-if)#no shut
R3(config-if)#exit
R3(config)#int s0/0/0
R3(config-if)#iip add 192.168.23.3 255.255.255.0
R3(config-if)#no shut
R3(config-if)#exit
R3(config)#router rip
R3(config-router)#network 192.168.23.0
R3(config-router)#network 192.168.13.0
R3(config-router)#passive-interface fa 0/0
//配置路由器R3:把fa0/0接口设为被动接口,防止从该接口发送rip信息给PC3
(2)步骤2 :配置多个vrrp组并跟踪接口,
在R1:
R1(config)#track 100 interface s0/0/0 line-protocol
//vrrp的端口跟踪和hsrp有些不同,需要在全局配置模式下,先定义跟踪目标,才配置vrrp中跟踪目标,这里定义目标100是s0/0/0接口。
R1(config)#inter fa 0/0
R1(config-if)#vrrp 1 ip 192.168.13.254
R1(config-if)#vrrp 1 priority 120
R1(config-if)#vrrp 1 preempt
R1(config-if)#vrrp 1 authentication md5 key-string cisco
R1(config-if)#vrrp 1 track 100 decrement 30
//跟踪目标100定义的S0/0/0接口,一旦接口出现故障,优先级降低30
R1(config-if)#vrrp 2 ip 192.168.13.253
R1(config-if)#vrrp 2 preempt
R1(config-if)#vrrp 2 authentication md5 key-string cisco
在R3上:
R3 (config)#track 100 interface s0/0/0 line-protocol
//配置vrrp中跟踪目标,这里定义目标100是s0/0/0接口。
R3 (config)#interface fa 0/0
R3 (config-if)#vrrp 1 ip 192.168.13.254
R3 (config-if)#vrrp 1 preempt
R3 (config-if)#vrrp 1 authentication md5 key-string cisco
R3 (config-if)#vrrp 2 ip 192.168.13.253
R3 (config-if)#vrrp 2 priority 120
R3 (config-if)#vrrp 2 preempt
R3 (config-if)#vrrp 2 authentication md5 key-string cisco
R3 (config-if)#vrrp 2 track 100 decrement 30
//跟踪目标100定义的S0/0/0接口,一旦接口出现故障,优先级降低30
(3)步骤3:检查、测试VRRP
R1#show vrrp brief
Interface Grp Pri Time Own Pre State Master addr Group addr
Fa0/0 1 120 3531 Y Master 192.168.13.1 192.168.13.254
Fa0/0 2 100 3609 Y Backup 192.168.13.3 192.168.13.253
//以上表明R1是192.168.13.254虚拟网关的Master路由器,是192.168.13.253虚拟网关的Backup路由器
R3#show vrrp brief
Interface Grp Pri Time Own Pre State Master addr Group addr
Fa0/0 1 100 3609 Y Backup 192.168.13.1 192.168.13.254
Fa0/0 2 120 3531 Y Master 192.168.13.3 192.168.13.253
//以上表明R2是192.168.13.253虚拟网关的Master路由器,是192.168.13.254虚拟网关的Backup路由器
在PC1上配置IP地址192.168.13.100/24,网关指向192.168.13.254,PC2上配置IP地址192.168.13.200/24,网关指向192.168.13.253,在PC3上配置IP 地址172.16.1.100/24,网关指向172.16.1.1。
在PC1上连续ping PC3,
C:\>ping –t 172.16.1.100
Reply from 172.16.1.100; bytes=32 time=11ms TTL=254
Reply from 172.16.1.100; bytes=32 time=11ms TTL=254
Reply from 172.16.1.100; bytes=32 time=11ms TTL=254
Reply from 172.16.1.100; bytes=32 time=11ms TTL=254
Reply from 172.16.1.100; bytes=32 time=11ms TTL=254
Reply from 172.16.1.100; bytes=32 time=11ms TTL=254
… …
***以下省略部分输出***
PC2上连续ping PC3,
C:\>ping –t 172.16.1.100
Reply from 172.16.1.100; bytes=32 time=11ms TTL=254
Reply from 172.16.1.100; bytes=32 time=11ms TTL=254
Reply from 172.16.1.100; bytes=32 time=11ms TTL=254
Reply from 172.16.1.100; bytes=32 time=11ms TTL=254
Reply from 172.16.1.100; bytes=32 time=11ms TTL=254
Reply from 172.16.1.100; bytes=32 time=11ms TTL=254
… …
***以下省略部分输出***
可见网络通畅,然后在R1上关闭S 0/0/0接口,观察PC1上ping PC3的结果。
C:\>ping –t 172.16.1.100
Reply from 172.16.1.100; bytes=32 time=11ms TTL=254
Reply from 172.16.1.100; bytes=32 time=11ms TTL=254
Reply from 172.16.1.100; bytes=32 time=11ms TTL=254
Request timed out.
Reply from 172.16.1.100; bytes=32 time=11ms TTL=254
Reply from 172.16.1.100; bytes=32 time=11ms TTL=254
Reply from 172.16.1.100; bytes=32 time=11ms TTL=254
Reply from 172.16.1.100; bytes=32 time=13ms TTL=254
Reply from 172.16.1.100; bytes=32 time=13ms TTL=254
//以上可以看到,R1故障时,R3很快就替代了R1,通信只受到短暂的影响, PC2上pingPC3的情况的情况也类似。
再分别在R1和R3上查看VRRP的情况
R1#show vrrp brief
Interface Grp Pri Time Own Pre State Master addr Group addr
Fa0/0 1 90 3531 Y Backup 192.168.13.3 192.168.13.254
Fa0/0 2 100 3609 Y Backup 192.168.13.3 192.168.13.253
//以上表明R1是192.168.13.253虚拟网关和192.168.13.254虚拟网关的Backup路由器
R3#show vrrp brief
Interface Grp Pri Time Own Pre State Master addr Group addr
Fa0/0 1 100 3609 Y Master 192.168.13.3 192.168.13.254
Fa0/0 2 120 3531 Y Master 192.168.13.3 192.168.13.253
//以上表明R3是192.168.13.253虚拟网关和192.168.13.254虚拟网关的Master路由器