VRRP(虚拟路由器冗余协议)基本概述
VRRP路由器:
运行VRRP协议的路由器,如R1和R2。Vrrp是配置在路由器的接口上的,而且是基于接口来工作
VRID(虚拟路由器标识符):
一个VRRP组由多台协作工作的路由器的接口组成,使用相同的VRID进行标识
VRRP报文格式:
VRRP只有一种报文,即Advertisement报文,基于组播方式发送,因此只能在同一个广播域 传递,Advertisement报文的目的组播地址为224.0.0.18
VRRP定时器如下:
VRRP状态机 VRRP协议状态机有三种状态:Initialize(初始状态)、Master(活动状态)、Backup(备份状态)
主备选举过程
VRRP主备回切
VRRP负载分担
通过创建多个虚拟路由器,每个物理路由器在不同的VRRP组中扮演不同的角色,不同虚拟路由器的Virtual IP作 为不同的内网网关地址可以实现流量转发负载分担
VRRP监视上行端口
当设备感知上行端口或者链路发生故障时,可主动降低VRRP优先级,从而保证上行链路正常的Backup设备能 够通过选举切换为Master状态,指导报文转发
VRRP与BFD联动
通过配置VRRP与BFD联动,当Backup设备通过BFD感知故障发生之后,不再等待Master_Down_Timer计时器超时而 会在BFD检测周期结束后立即切换为VRRP状态,此时可以实现毫秒级的主备切换
设备名 | 地址 | 网关 | 子网掩码 |
---|---|---|---|
PC1 | 192.168.10.1 | 192.168.10.254 | 255.255.255.0 |
PC2 | 192.168.20.1 | 192.168.20.254 | 255.255.255.0 |
R3^loopback0 | 1.1.1.1/32 | 无 | 无 |
R3^g0/0/1 | 10.1.1.2/24 | 无 | 无 |
R3^g0/0/2 | 10.2.2.1/24 | 无 | 无 |
R1^g0/0/1 | 10.1.1.1/24 | 无 | 无 |
R1^g0/0/0.10 | 192.168.10.253/24 | 无 | 无 |
R1^g0/0/0.20 | 192.168.20.253/24 | 无 | 无 |
R2^g0/0/1 | 10.2.2.2/24 | 无 | 无 |
R2^g0/0/0.10 | 192.168.10.252/24 | 无 | 无 |
R2^g0/0/0.20 | 192.168.20.252/24 | 无 | 无 |
注意g0/0/0.10的意思是g0/0/0的虚拟子接口10
源设备名称 | 设备端口 | 端口描述 | 目标设备名称 |
---|---|---|---|
R3 | g0/0/1 | 无 | R1 |
R3 | g0/0/2 | 无 | R2 |
R1 | g0/0/1 | 无 | R3 |
R1 | g0/0/0 | 无 | LSW1 |
R2 | g0/0/1 | 无 | R3 |
R2 | g0/0/0 | 无 | LSW1 |
LSW1 | g0/0/3 | 无 | R1 |
LSW1 | g0/0/4 | 无 | R2 |
LSW1 | g0/0/2 | 无 | PC2 |
LSW1 | g0/0/1 | 无 | PC1 |
PC1 | e0/0/1 | 无 | LSW1 |
PC2 | e0/0/1 | 无 | LSW1 |
小提示:virtual-ip其实就是PC的网关
1、配置PC的ip
2、在LSW1创建两个VLAN,并把端口划分进对应的VLAN。双击LSW1
xxxxxxxxxx
sys
un in en
sys SW
vlan batch 10 20
int g0/0/1
port link-type access
port default vlan 10
int g0/0/2
port link-type access
port default vlan 20
int g0/0/3
port link-type trunk
port trunk allow-pass vlan 10 20
int g0/0/4
port link-type trunk
port trunk allow-pass vlan 10 20
3、配置R1各个端口的ip,且配置虚拟子接口的VLAN10.10要dot1q去标签,然后启用arp广播,使用vrid创建组, 组名为20,并且使用virtual-ip设置虚拟ip地址。注意VLAN10是主设备,所以优先级要priority调高一点,默认 优先级是100。双击R1
xxxxxxxxxx
sys
un in en
sys R1
int g0/0/0.10
int GigabitEthernet 0/0/0.10
ip add 192.168.10.253 24
dot1q termination vid 10
arp broadcast enable
vrrp vrid 10 virtual-ip 192.168.10.254
vrrp vrid 10 priority 120
4、配置R2各个端口的ip,且配置虚拟子接口的VLAN10.10要dot1q去标签,然后启用arp广播,使用vrid创建组, 组名为20,并且使用virtual-ip设置虚拟ip地址。双击R2
xxxxxxxxxx
sys
un in en
sys R2
int g0/0/0.10
ip add 192.168.10.252 24
dot1q termination vid 10
arp broadcast enable
vrrp vrid 10 virtual-ip 192.168.10.254
5、配置R1的虚拟子接口的VLAN20,20要dot1q去标签,然后启用arp广播,使用vrid创建组,组名为20, 并且使用virtual-ip设置虚拟ip地址。双击R1
xxxxxxxxxx
sys
un in en
int g0/0/0.20
ip add 192.168.20.253 24
dot1q termination vid 20
arp broadcast enable
vrrp vrid 20 virtual-ip 192.168.20.254
6、配置R2的虚拟子接口的VLAN20,20要dot1q去标签,然后启用arp广播,使用vrid创建组,组名为20, 并且使用virtual-ip设置虚拟ip地址。注意VLAN20是主设备,所以优先级要priority调高一点,默认 优先级是100。双击R2
xxxxxxxxxx
sys
un in en
int g0/0/0.20
ip add 192.168.20.252 24
dot1q termination vid 20
arp broadcast enable
vrrp vrid 20 virtual-ip 192.168.20.254
vrrp vrid 20 priority 120
7、配置R1的g0/0/1端口,双击R1
xxxxxxxxxx
sys
un in en
int g0/0/1
ip add 10.1.1.1 24
8、配置R2的g0/0/1端口,双击R2
xxxxxxxxxx
sys
un in en
int g0/0/1
ip add 10.2.2.2 24
9、配置R3的各个端口,双击R3
xxxxxxxxxx
sys
un in en
sys Net1
int g0/0/1
ip add 10.1.1.2 24
int g0/0/2
ip add 10.2.2.1 24
int LoopBack 0
ip add 1.1.1.1 32
10、要使PC1能够ping通R3,那么就需要在R1做静态路由。双击R1
xxxxxxxxxx
sys
un in en
ip route-static 0.0.0.0 0.0.0.0 10.1.1.2
11、要使PC2能够ping通R3,那么就需要在R2做静态路由。双击R2
xxxxxxxxxx
sys
un in en
ip route-static 0.0.0.0 0.0.0.0 10.2.2.1
12、要使R3的数据重新回到PC1有两条路,所以在R3做静态路由。双击R3
xxxxxxxxxx
sys
un in en
ip route-static 192.168.10.0 24 10.1.1.1
ip route-static 192.168.10.0 24 10.2.2.2
要使R3的数据重新回到PC2有两条路
xxxxxxxxxx
ip route-static 192.168.20.0 24 10.1.1.1
ip route-static 192.168.20.0 24 10.2.2.2
13、查看R3和PC1、R3和PC2之间的数据走的哪一条路。因为R3和PC1之间有两条可走的路,R3和PC2之间也是 双击R1
xxxxxxxxxx
dis vrrp bri
可以知道数据走的路是PC1 -> R1 -> R3 双击R2
xxxxxxxxxx
dis vrrp bri
可以知道数据走的路是PC2 -> R2 -> R3 另外双击PC1,在命令行输入直接tracert 1.1.1.1也可以知道数据在PC1和R3之间经过哪些路。同理双击PC2
14、当R1的g0/0/0端口所在的链路突然断开后,由于VRRP的功能,PC1到R3的数据流向就会变为PC1 -> R2 -> R3 同理当R2的g0/0/0端口所在的链路突然断开后,由于VRRP的功能,PC2到R3的数据流向就会变为PC1 -> R1 -> R3 但是,如果是R1的g0/0/1或R2的g0/0/1端口所在的链路断开,那么就真的废了 如何解决这种情况的发生呢 解决:在R1和R2分别启用track,监控各自的g0/0/1端口的功能,当R1或R2的g0/0/1端口故障之后,例如R1的g0/0/1 端口出现故障,就会把故障的端口的优先级降低,比如降低30,我们之前设了120,默认是100,在120的基础上减少30, 就低于默认优先级了,因此数据就会走另一边的R2。 做法如下 双击R1,R1的g0/0/0.10来监控R1的g0/0/1是否故障
xxxxxxxxxx
sys
un in en
int g0/0/0.10
vrrp vrid 10 track int g0/0/1 reduced 30
双击R2,R2的g0/0/0.20来监控R2的g0/0/1是否故障
xxxxxxxxxx
sys
un in en
int g0/0/0.20
vrrp vrid 20 track int g0/0/1 reduced 30
15、模拟故障,双击R1,断掉R1的g0/0/1端口,看数据是否能正常从PC1到达R3
xxxxxxxxxx
sys
un in en
int g0/0/1
shutdown
上面的模拟故障也可以双击R2,断掉R2的g0/0/1端口。注意,不可同时断掉R1和R2的g0/0/1端口,因为 我们只有这两个端口可以使数据从PC1到达R3,或使数据从PC2到达R3。都断掉就没有了哦。我们采用的 是双击R1,断掉R1的g0/0/1端口,使得PC1数据无法正常从R1到达R3,只能绕道R2,才能到达R3
16、查看R1的g0/0/0.10端口的优先级PriorityRun变化
xxxxxxxxxx
dis vrrp
完成第3步骤之后,就可以完成如下验证,双击PC1 ping 192.168.10.254(如果自己电脑没有添加Loopback环回网卡,那么是ping不通这个虚拟ip的) 如何添加Loopback换回网卡:https://blog.csdn.net/qq_39689711/article/details/103547347亲测有用
xxxxxxxxxx
ping 192.168.10.253
上面的253是R1的g0/0/0端口的实际ip地址,254是R1和R2备份的虚拟ip地址
完成第4步骤之后,就可以完成如下验证,双击PC1
xxxxxxxxxx
ping 192.168.10.252
上面的252是R2的g0/0/0端口的实际ip地址,254是R1和R2备份的虚拟ip地址
完成第6步骤之后,就可以完成如下验证,双击PC2 ping 192.168.20.254(如果自己电脑没有添加Loopback环回网卡,那么是ping不通这个虚拟ip的) 如何添加Loopback换回网卡:https://blog.csdn.net/qq_39689711/article/details/103547347亲测有用
xxxxxxxxxx
ping 192.168.20.253
ping 192.168.20.252
完成第12步骤之后,就可以完成如下验证 双击PC1
xxxxxxxxxx
ping 1.1.1.1
双击PC2
xxxxxxxxxx
ping 1.1.1.1
完成15步之后,就可以完成如下验证 双击PC1
xxxxxxxxxx
ping 1.1.1.1
并且我们可以通过下面这个命令看到数据的流向
xxxxxxxxxx
tracert 1.1.1.1