一、VRRP定义
虚拟路由冗余协议(Virtual Router Redundancy Protocol,简称VRRP)是由IETF提出的解决局域网中配置静态网关出现单点失效现象的路由协议,1998年已推出正式的RFC2338协议标准。
VRRP广泛应用在边缘网络中,它的设计目标是支持特定情况下IP数据流量失败转移不会引起混乱,允许主机使用单路由器,以及即使在实际第一跳路由器使用失败的情形下仍能够维护路由器间的连通性。
二、VRRP作用
提供了局域网上的设备备份机制。VRRP是一种容错协议,它保证当主机的下一跳路由器坏掉时,可以及时由另一台路由器来代替,从而保证通讯的连续性和可靠性。
VRRP工作时会在网络中加入一个含有虚拟IP和虚拟MAC地址的虚拟路由器,该路由器充当网络用户的网关,使得网络上的主机与虚拟路由器通信无需了解这个网络上物理路由器的任何信息。
三、VRRP转发原理
1)VRRP组中选举Master。开启VRRP后,设备通过目的IP为224.0.0.18组播发送VRRP报文,交互VRRP信息,优先高的设备选为Master
2)Master设备通过发送ARP报文,将虚拟MAC地址通知给与它连接的设备或者主机,从而承担报文转发任务。
3)Master设备周期性向备份组内所有Backup设备发送VRRP通告报文。----如果Master出现故障,即设备在规定时间内都没有收到VRRP报文就会认为Maste故障,在经历抢占延迟后,切换为主设备
4) VRRP组状态切换时,Master设备由一台设备切换为另外一台设备,新的Master设备会立即发送携带虚拟路由器的虚拟MAC地址和虚拟IP地址信息的免费ARP报文刷新与它连接的主机或设备中的MAC表项,从而把用户流量引到新的Master设备上来,整个过程对用户完全透明。
5)原Master设备故障恢复时,若该设备为IP地址拥有者(则其优先级为255),将直接切换至Master状态。若该设备优先级小于255,将首先切换至Backup状态,且其优先级恢复为故障前配置的优先级。
四、VRRP专业术语
VRID:每个VRRP组都有一个VRID,作为唯一标识。
虚拟路由(Virtual Router):VRRP虚拟出的逻辑路由器,包括一个虚拟路由器标识符(VRID)和一个或多个IP地址,这些IP地址又称为虚拟IP地址。
虚拟IP地址:VRRP组中由MASTER设备承接的虚拟IP地址,并且是所有局域网主机的默认网关。
虚拟MAC地址:00-00-5E-00-01-{VRID}
虚拟主路由器(Virtual Router Master):实际用于接收用户发送的数据,负责数据包的转发,响应局域网主机的ARP请求,周期性的给BACKUP发送VRRP报文报告自己存活情况。
虚拟备份路由器(Virtual Router Backup):监听MASTER发送的VRRP报文,当在一定时间范围内没接收到VRRP报文,则会替代MASTER设备。
VRRP报文:封装在IP报文里,通过组播地址224.0.0.18发送,TTL为255,协议号为112。
MASTER与BACKUP选取依据:优先使用VRRP优先级来选取,值越大,优先级越高。
如果优先级一样,则通过接口的IP地址来选取,IP越大,优先级 越高。
五、实例演示
1.以AR4举例
<Huawei>sys
[Huawei]sys AR4
[AR4]int g0/0/0
[AR4-GigabitEthernet0/0/0]ip add 10.0.0.10 24
[AR4]int g0/0/1
[AR4-GigabitEthernet0/0/1]ip add 192.168.0.10 24
[AR4-GigabitEthernet0/0/1]vrrp vrid 1 virtual-ip 192.168.0.1
#创建VRRP虚拟路由器的标识vrid为1,并配置vrid 1的虚拟IP地址
[AR4-GigabitEthernet0/0/1]vrrp vrid 1 priority 120
#设置设备A的优先级为120(缺省值为100),数值越大越优先
[AR4-GigabitEthernet0/0/1]vrrp vrid 1 preempt-mode timer delay 5
#配置Master设备的抢占时延为6秒(缺省值为0,立即抢占),以防频繁地进行状态切换
[AR4-GigabitEthernet0/0/1]vrrp vrid 1 track interface g0/0/0 reduced 30
#跟踪上行接口G0/0/0的状态,如端口故障则Master优先级降低30(缺省值为10)
[AR4]ip route-static 192.168.50.0 24 10.0.0.1 #设置静态路由
2.以AR5举例
<Huawei>sys
[Huawei]sys AR5
[AR5]int g0/0/1
[AR5-GigabitEthernet0/0/1]ip add 30.0.0.10 24
[AR5-GigabitEthernet0/0/1]int g0/0/0
[AR5-GigabitEthernet0/0/0]ip add 192.168.0.20 24
[AR5-GigabitEthernet0/0/0]vrrp vrid 1 virtual-ip 192.168.0.1
#创建VRRP虚拟路由器的标识vrid为1,并配置vrid 1的虚拟IP地址。优先级默认为100.
[AR5]ip route-static 192.168.50.0 24 30.0.0.1
3.以AR6举例
<Huawei>sys
[Huawei]sys AR6
[AR6]int g0/0/0
[AR6-GigabitEthernet0/0/0]ip add 192.168.50.1 24
[AR6-GigabitEthernet0/0/0]int g0/0/1
[AR6-GigabitEthernet0/0/1]ip add 10.0.0.1 24
[AR6-GigabitEthernet0/0/1]int g0/0/2
[AR6-GigabitEthernet0/0/2]ip add 30.0.0.1 24
[AR6-GigabitEthernet0/0/2]q
[AR6]ip route-static 192.168.0.0 24 10.0.0.10
[AR6]ip route-static 192.168.0.0 24 30.0.0.10 preference 70 #设置浮动路由
将PC4,PC5,PC6配置IP地址。
连通性测试:
PC5 PING PC4 能连通。
将主虚拟路由器AR4关闭,看备份虚拟路由器是否起作用?
现在进行PC5与PC4连通测试
从中可以看到PC5发出数据从AR5到达PC4。