单点故障:是指系统中一个设备失效,就会导致整个系统无法运作。
如下图,当路由器出现问题时,将导致整个网段的下行主机都无法通信。为了解决路由器这一问题,我们可以使用 HSRB(热备份路由选择协议)和 VRRP(虚拟路由冗余协议)。本篇博客使用VRRP技术。Linux的高可用机制也会用到该技术。
VRRP(Virtual Router Redundancy Protocol)虚拟路由器冗余协议。
作用:提供了局域网上的设备备份机制。VRRP是一种容错协议,它保证当主机的下一跳路由器坏掉时,可以及时由另一台路由器来代替,从而保证通讯的连续性和可靠性,避免单点故障的发生。
VRRP工作时会在网络中加入一个含有 虚拟IP 和 虚拟MAC地址 的虚拟路由器,该路由器充当网络用户的网关,使得网络上的主机与虚拟路由器通信无需了解这个网络上物理路由器的任何信息。
VRRP通告报文被封装在IP报文里,通过组播地址 224.0.0.18 发送,TTL为255,协议号为112。
将VRRP理解成一个组,组里面有一个Master、多个Backup,一个组的VRRP路由器使用相同的VRID。哪一个VRRP路由器的优先级最高(一直在进行心跳检查),哪一个就是Master。
VRRP组有虚拟路由器、Master路由器,Backup路由器组成。
VRRP术语:
运行VRRP的路由器。一台VRRP路由器(的接口)可以同时参与到多个VRRP组中,在不同的组中,一台VRRP路由器可以充当不同的角色。
一个VRRP组由多个VRRP路由器组成,使用相同的VRID (Virtual Router ID)进行标识,属于同一VRRP组的VRRP路由器互相交换信息,每一个VRRP组中只能有一个Master。
虚拟IP地址就是虚拟路由器的IP地址,该地址实际上就是用户的网关地址。
虚拟MAC地址是虚拟路由器根据VRID生成的MAC地址。一个虚拟路由器拥有一个虚拟MAC地址,格式为:00-00-5E-00-01-{VRID}。
对于每一个VRRP组,抽象出来的一个逻辑路由器,用该路由器的虚拟IP充当网络用户的网关,该路由器并非真实存在,事实上对于用户而言,只需知道虚拟路由器的IP,至于具体的虚拟路由器的角色由谁来承担、数据转发任务由谁来承担、Master故障后谁来接替,这是VRRP的工作。
Master路由器:在VRRP组中实际转发数据包的路由器,在每一个VRRP组中,仅有Master路由器会响应用户对虚拟IP地址的ARP请求。Master路由器同时以一定的时间间隔发送VRRP消息,以便通知Backup路由器自己的存活情况。
Backup路由器:处于监听状态的路由器,一旦Master路由器出现故障,Backup路由器就开始接替工作。
选举依据:先比较接口VRRP优先级(比大),如果相等,则比较接口IP地址(比大)。
–
Master报文的发送:当Master正常工作时,它会每隔一段时间(缺省为1秒〉向组内Backup设备发送 VRRP通告报文,通告自己工作正常(只有Master会发送VRRP报文)。
VRRP协议的状态共有三种,分别是 Initialize(初始状态),Master(主状态),Backup(备份状态),初始状态都是Initialize,通过 比较优先级 产生Master 和 Backup,在规定时间内,Backup若没有收到Master发来的心跳报文,将切换为Master。
设置优先级时,Master 的优先级值 和 优先级降低值 要和 其它的 Backup 的优先级值要商量好。
VRRP常用命令如下:
【R1】
【进入—下行接口—配置 或 三层交换机虚拟接口】
int g0/0/0
int vlanif 10
#创建VRRP虚拟路由标识vrid为1,并配置vrid 的虚拟IP地址
vrrp vrid 1 virtual-ip 192.168.100.1
#设置设备A的优先级别为120(默认值100),数值越大越优先
vrrp vrid 1 priority 120
#配置Master设备的抢占时延为6秒(缺省值为0),防止频繁进行切换
#每台路由器都会去抢占
vrrp vrid 1 preempt-mode timer delay 6
##跟踪【上行接口】gO/0/1 的状态,如端口故障则Master优先级降低30(缺省值为10)
#减掉之后如果低于Backup的优先级,Backup就成了Master;如果优先级相同就看谁的IP大
vrrp vrid 1 track interface g0/0/1 reduce 30
dis this
【R2】
vrrp vrid 1 virtual-ip 192.168.10.10 24
vrrp vrid 1 priority 115 #默认优先级100
vrrp vrid 1 timer advertise 3 #重新选举master配置
dis vrrp
实验:根据下图参数实现VRRP的功能。
【R1】
[R1]int g0/0/1
[R1-GigabitEthernet0/0/1]ip add 13.0.0.1 24
[R1-GigabitEthernet0/0/1]un sh
[R1-GigabitEthernet0/0/1]int g0/0/0
[R1-GigabitEthernet0/0/0]ip add 192.168.100.100 24
[R1-GigabitEthernet0/0/0]un sh
[R1-GigabitEthernet0/0/0]q
[R1]dis current-configuration
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]vrrp vrid 1 virtual-ip 192.168.100.1
[R1-GigabitEthernet0/0/0]vrrp vrid 1 priority 120
[R1-GigabitEthernet0/0/0]vrrp vrid 1 preempt-mode timer delay 6
[R1-GigabitEthernet0/0/0]vrrp vrid 1 track interface g0/0/1 reduced 30
[R1-GigabitEthernet0/0/0]dis th
[R1-GigabitEthernet0/0/0]q
[R1]dis vrrp
[R1]ip route-static 0.0.0.0 0.0.0.0 13.0.0.3
【R2】
[R2]int g0/0/0
[R2-GigabitEthernet0/0/0]un sh
[R2-GigabitEthernet0/0/0]ip add 192.168.100.200 24
[R2-GigabitEthernet0/0/0]int g0/0/1
[R2-GigabitEthernet0/0/1]ip add 23.0.0.2 24
[R2-GigabitEthernet0/0/1]un sh
q
[R2]int g0/0/0
#vrrp组的IP应该一致
[R2-GigabitEthernet0/0/0]vrrp vrid 1 virtual-ip 192.168.100.1
#vrrp优先级默认是100
[R2-GigabitEthernet0/0/0]q
[R2]dis vrrp
[R2]ip route-static 0.0.0.0 0.0.0.0 23.0.0.3
【R3】
[R3]int g0/0/0
[R3-GigabitEthernet0/0/0]ip add 13.0.0.3 24
[R3-GigabitEthernet0/0/0]int g0/0/1
[R3-GigabitEthernet0/0/1]ip add 23.0.0.3 24
[R3-GigabitEthernet0/0/1]int g0/0/2
[R3-GigabitEthernet0/0/2]ip add 34.0.0.3 24
[R3-GigabitEthernet0/0/2]q
[R3]ip route-static 192.168.200.0 24 34.0.0.4
[R3]ip route-static 192.168.100.0 24 13.0.0.1
[R3]ip route-static 192.168.100.0 24 23.0.0.2 preference 70
【R4】
[R4]int g0/0/0
[R4-GigabitEthernet0/0/0]ip add 192.168.200.1 24
[R4-GigabitEthernet0/0/0]int g0/0/2
[R4-GigabitEthernet0/0/2]ip add 34.0.0.4 24
[R4-GigabitEthernet0/0/2]un sh
[R4-GigabitEthernet0/0/2]q
[R4]ip route-static 0.0.0.0 0.0.0.0 34.0.0.3
注意:PC1 PC2 配置的网关时虚拟路由VRRP路由的IP地址。
PC1 192.168.100.10 192.168.100.1
PC2 192.168.100.20 192.168.100.1
PC3 192.168.200.200 192.168.200.1
P1 ping P3
tracert 192.168.200.200 查看路径,此时走的是 R1 Master(R1的优先级大):
R1 执行 dis vrrp
R2 执行 dis vrrp
此时走的是 R1 Master(R1的优先级大),R2是 Backup。
#验证VRRP
【R1】
[R1]int g0/0/1
#将R1的上层接口关闭后 查看R1 和 R2 的vrrp情况
[R1-GigabitEthernet0/0/1]shutdown
R1 执行 dis vrrp 命令,发现因为路由器R1出现了故障不工作了,会执行优先级 Reduce -30 的操作,优先级从120标成了90,小于R2(Backup)的100,所以R1变成了Backup,R2从Backup 变成了 Master。
R2 执行 dis vrrp
这时候如果【R1】执行 un sh 命令,等上6秒后,
R1 又成为了 Master, R2 因为优先级100<120 变成Backup