一、VRRP概述:
VRRP:virtual router redundancy protocol ,虚拟路由器冗余协议,由IETF标准RFC 2338定义,协议版本:VRRPv2(仅适用于IPv4网络)和VRRPv3(适用于IPv4和IPv两种网络),是公有的标准协议,(还有一个类似的网关冗余协议-HSRP,是思科私有的)。
VRRP协议的主要作用:就是在多个真实的网关设备之间运行之后,形成一个“虚拟的网关”,从而实现多个真实网关之间的“冗余备份”以及数据转发的负载均衡,增强网关的稳定性。
VRRP协议的应用场景:当我们为了提高一个网络中的网关的健壮性,从而在同一个网络中部署多个网关设备的时候,此时,我们需要在多个网关设备之间运行 VRRP,如果仅有 1个 网关设备,那就不需要运行vrrp。
VRRP协议的工作原理: VRRP在设备(接口)上运行之后,会形成一个虚拟的网关设备。会通过发送 VRRP 的报文,比较其中的参数,从而在多个真实的网关设备之间确定出不同的设备角色:
master - 主设备,有且只有1个;
backup - 备份设备,可以有很多;
一旦确定设备的master和backup的角色之后,就仅有master一直周期性的发送 vrrp 报文;如果backup 设备,在一定的时间内,没有收到 master 发送过来的 vrrp 报文,就认为master 设备出现了故障,从而进行设备角色的切换(自身成为主路由器);
*vrrp通告默认发送周期:1s
*Master_Down_Interval时间是3倍的VRRP通告发送时间再加上一个偏移时间
用户终端设备在向网关(虚拟网关)发送数据的时候,其实是由 master 设备在进行处理。
当 master 设备故障以后,backup 设备才会变成 master ,继续为客户服务;如果原先的 master 设备故障恢复了,那么备份的网关设备会再次变为 backup 状态。
-VRRP报文中,互相比较的参数:
1.首先比较优先级优,数值越大越好;默认值是100;
2.其次比较接口IP地址,数值越大越好。(PS:在模拟器做实验,可能现象不对,真机没问题)
-VRRP报文的发送方式是 “组播” , 组播地址为:224.0.0.18
-VRRP报文是封装在IP头部后面的,协议号为112
二、VRRP的配置:
-在R1和R2网关接口上配置(注:网关是一个接口概念)
* R1
[R1] interface gi0/0/0
[R1-GigabitEthernet0/0/0]ip address 192.168.10.1 255.255.255.0
[R1-GigabitEthernet0/0/0]vrrp vrid 1 virtual-ip 192.168.10.254
| |
虚拟路由器的名字 虚拟路由器的IP地址(即虚拟网关)
*R2
[R2] interface gi0/0/0
[R2-GigabitEthernet0/0/0]ip address 192.168.10.2 255.255.255.0
[R2-GigabitEthernet0/0/0]vrrp vrid 1 virtual-ip 192.168.10.254
[R2-GigabitEthernet0/0/0]vrrp vrid 1 priority 150 // 将该网关接口的VRRP优先级设置 为 150,成为master;
*验证命令:
display vrrp //查看虚拟网关的名字、IP地址、自己的VRRP状态和优先级等信息;
[R2]display vrrp //查看该设备上的 VRRP 的基本状态信息;
GigabitEthernet0/0/0 | Virtual Router 1 //这个真实的网关接口,形成的是虚拟 路由器 1 ;
State : Master //该设备的状态为 master,主设备;
Virtual IP : 192.168.10.254 //虚拟路由器的IP地址:192.168.10.254
Master IP : 192.168.10.2 //该路由器的真实IP地址:192.168.10.2
PriorityRun : 150 //当前正在使用的优先级:150
PriorityConfig : 150 //通过命令,配置的优先级是:150
MasterPriority : 150 //主网关设备的优先级是:150
Preempt : YES Delay Time : 0 s //抢占功能开启,且没有任何抢占延迟,立刻抢
TimerRun : 1 s //master发送vrrp报文的周期:1s;
TimerConfig : 1 s //vrrp默认配置的报文发送周期:1s;
Auth type : NONE //认证类型:没有认证
Virtual MAC : 0000-5e00-0101 //虚拟网关的MAC地址
Check TTL : YES
Config type : normal-vrrp
Backup-forward : disabled
Create time : 2019-01-25 10:15:08 UTC-08:00
Last change time : 2019-01-25 10:15:13 UTC-08:00
-VRRP链路跟踪特性:
即在内部网关接口上运行的 VRRP 协议,可以跟踪网关设备连接外部网络的链路的可用性; 如果外部链路不可用了,那么该设备就不能向外转发数据了,所以应该将自己从master设备变成backup设备,故:vrrp协议是通过“主动降低”自己的VRRP的优先级来实现的。即一旦VRRP协议发现跟踪的接口的状态成为了 down,就会自动的降低自己发送的 vrrp 报文中所携带的优先级,降低到比网络中的 backup 角色的网关设备的优先级还要低,从而可以确保其他 的backup 设备,成功的成为新的 “master” ,接管用户的数据包的转发。
PS: 链路跟踪仅仅在主网关上配置就可以了,不要在所有的网关上都配置。
*R2
[R2] interface gi0/0/0
[R2-GigabitEthernet0/0/0]ip address 192.168.10.2 255.255.255.0
[R2-GigabitEthernet0/0/0]vrrp vrid 1 virtual-ip 192.168.10.254
[R2-GigabitEthernet0/0/0]vrrp vrid 1 priority 150
[R2-GigabitEthernet0/0/0]vrrp vrid 1 track interface gi0/0/2 reduced 100
//即该接口上的 vrrp 协议,一直监控跟踪这 gi0/0/2这个连接外部网络的接口的状态。如果该接口的状态由现在的 up 变成了 down,那么该接口上发送出去的 vrrp 报文的优先级,就会由原来的 150 ,减少100,变成50 。从而对方设备(R1)就会变成 master,因为对方的优先级为100。如果 gi0/0/2 接口从 down 恢复成了 up ,那么该接口发送的优先级又会变成 150 ,从而再次变为 master 设备。
*验证命令:
[R2] display vrrp
GigabitEthernet0/0/0 | Virtual Router 1
State : Backup //当前的状态为 backup,不再是master;
Virtual IP : 192.168.10.254
Master IP : 192.168.10.2
PriorityRun : 50 //该设备当前使用的优先级为:50
PriorityConfig : 150 //该设备手动配置的优先级为:150
MasterPriority : 100 //当前master的优先级为:100;
Preempt : YES Delay Time : 0 s
TimerRun : 1 s
TimerConfig : 1 s
Auth type : NONE
Virtual MAC : 0000-5e00-0101
Check TTL : YES
Config type : normal-vrrp
Backup-forward : disabled
Track IF : GigabitEthernet0/0/2 Priority reduced : 100 // 跟踪接口 gi0/0/2 ;
IF state : DOWN // 接口的状态变成了 down ;
-VRRP负载均衡
我们知道在多个运行VRRP的真实的网关中,同一个时刻,永远只能有一个设备成为master。那么其他的设备就只能是backup,所以在数据转发的角度来说的话,其实无论存在多少个设备,只有一个设备在干活。如此一来的话,其实整个网络中的设备利用率是非常低的。这种情况下,仅仅是实现了网关设备的“冗余和备份”,那如果我们想继续提高设备的利用率的话,就得确保网络中的每个网段的网关,都均匀的分布在不同的真实的网关设备上,这样的话,多个真实的网关设备之间,既可以实现网关设备的冗余又可以确保在所有的设备都正常的情况下,都可以用来为不同的网段中的终端设备转发数据,既实现了设备的备份,又实现了数据转发的负载均衡。即,我们可以通过这个“vrid概念”,让一个真实的物理网关设备,同时参与到多个虚拟网关设备中。就可以实现:让该设备在 vrid 1 是主设备,同时在其他的虚拟路由器 vrid 2 中扮演的是备份设备。所以,该设备仅仅会转发 vrid 1 所代表的那个网段中的主机发送的数据,不会转发 vrid 2 所表示的那个网段中的主机发送的数据。只有当 vrid 2 中的主网关故障以后,该设备才会转发。其实想实现这一点,也非常的简单。我们只要在每个真实的网关设备上,所配置几个接口,并且启用 VRRP,加入到不同的 vrrid 中,同时设置不同的优先级,实现主备网关的设置。
-负载均衡配置:
R1:
[R1] interface gi0/0/0
[R1-GigabitEthernet0/0/0]ip address 192.168.10.1 255.255.255.0
[R1-GigabitEthernet0/0/0]vrrp vrid 1 virtual-ip 192.168.10.254 // 作为 vlan 10 的备份网关;
[R1] interface gi0/0/1
[R1-GigabitEthernet0/0/1]ip address 192.168.20.1 255.255.255.0
[R1-GigabitEthernet0/0/1]vrrp vrid 2 virtual-ip 192.168.20.254 // 作为 vlan 20 的主网关;
[ R1-GigabitEthernet0/0/1]vrrp vrid 2 priority 150
[R1-GigabitEthernet0/0/1]vrrp vrid 2 track interface gi0/0/2 reduced 100
R2:
[R2] interface gi0/0/0
[R2-GigabitEthernet0/0/0]ip address 192.168.10.2 255.255.255.0
[R2-GigabitEthernet0/0/0]vrrp vrid 1 virtual-ip 192.168.10.254// 作为 vlan 10 的主网关;
[R2-GigabitEthernet0/0/0]vrrp vrid 1 priority 150
[R2-GigabitEthernet0/0/1]vrrp vrid 1 track interface gi0/0/2 reduced 100
[R2] interface gi0/0/1
[R2-GigabitEthernet0/0/1]ip address 192.168.20.2 255.255.255.0
[R2-GigabitEthernet0/0/1]vrrp vrid 2 virtual-ip 192.168.20.254 // 作为 vlan 20 的备份网关;
-VRRP的加密认证
为了vrrp报文的转发更加的安全,我们可以为VRRP配置认证。
认证类型
-NULL
-明文 (simple) ( 密码在传输过程中,是不加密的)
-密文 md5 ( 密码在传输过程中,是加密的)
认证密码
-plain (在设备配置文件中保存的时候,是不加密的)
-cipher (在设备配置文件中保存的时候,是加密的)
VRRP的明文认证:(两边相同)
[R1]interface g0/0/0
[R1-GigabitEthernet0/0/0] vrrp vrid 100 authentication-mode simple cipher HCIE
[R2]interface g0/0/0
[R2-GigabitEthernet0/0/0] vrrp vrid 100 authentication-mode simple cipher HCIE
VRRP的密文认证:(两边相同)
[R1]interface g0/0/0
[R1-GigabitEthernet0/0/0]vrrp vrid 100 authentication-mode md5 HCIE
[R2interface g0/0/0
[R2-GigabitEthernet0/0/0]vrrp vrid 100 authentication-mode md5 HCIE