1.VRRP技术背景
为什么需要VRRP?因为一旦网络网关或关键节点出现故障,将对业务造成灾难性故障,业务稳定性受到威胁。有以下几种场景:
1.1 单网关缺陷
- 当网关路由器Router A出现故障时,本网段内以该设备为网关的主机都不能与Internet进行通信。
1.2 多网关存在的问题
- 通过部署多个网关设备实现网关的备份。
- 但多网关会出现一些问题:①网关间IP地址冲突 ②主机需频繁切换网关地址(例如一个网关地址设备为192.168.1.253,另一个网关设置为192.168.1.254,虽然实现了冗余,但主机只能设置一个默认网关,当一台网关失效后,需要手动配置切到另一台网关设备)
2.VRRP简介
-
VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议),VRRP能够在不改变组网的情况下,将多台路由器虚拟成一个虚拟路由器,通过配置虚拟路由器的IP地址为默认网关,实现网关的备份。由VRRP的选举机制决定哪台路由器承担转发任务,局域网内的主机只需将虚拟路由器配置为缺省网关。
-
VRRP协议的实现有VRRPv2和VRRPv3两个版本。其中,VRRPv2基于IPv4,VRRPv3基于IPv6。VRRPv2和VRRPv3在功能实现上并没有区别,只是应用的网络环境不同。
3.工作原理
- 利用VRRP,一组路由器协同工作,但只有一个处于Master状态。在一个VRRP组内的多个路由器共用一个虚拟IP地址,该地址被作为局域网内所有主机的默认网关地址。
- VRRP决定哪个路由器被激活,被激活的路由器负责接收发过来的数据包并进行路由,以及相应的PC对于其网关的ARP请求。
- Backup路由器侦听Master路由器的状态,并准备随时接替Master路由器的工作。(当Master路由器宕机后,backup路由器会接替其工作)
4.VRRP名词
- VRRP路由器(VRRP Router):运行VRRP协议的设备。
- 虚拟路由器(Virtual Router):又称VRRP备份组,由一个Master设备和多个Backup设备组成,被当做一个共享局域网内主机的默认网关。如RouterA和RouterB共同组成一个虚拟路由器。
- Master路由器(Virtual Router Master):承担转发报文任务的VRRP设备和ARP的回应。
- Backup路由器(Virtual Router Backup):一组没有承担转发任务的VRRP设备,当Master设备出现故障时,它们将通过竞选成为新的Master设备。
- VRID:虚拟路由器的标识ID号,需手工指定,范围为1-255。
- 虚拟IP地址(Virtual IP Address):虚拟路由器的IP地址,一个虚拟路由器可以有一个或多个IP地址,由用户配置。
- IP地址拥有者(IP Address Owner):如果一个VRRP设备将真实接口IP地址配置为虚拟路由器IP地址,则该设备就被称为IP地址拥有者,如果IP地址拥有者是可用的,则它将一直称为Master。
- 虚拟MAC地址(Virtual MAC Address):虚拟路由器根据VRID生成的MAC地址,一个虚拟路由器拥有一个MAC地址。当虚拟路由器回应ARP请求时,使用虚拟MAC地址,而不是接口的真实MAC地址。
5.选举规则
1.IP地址拥有者:如果虚拟IP地址与VRRP组中某天VRRP路由器的端口IP地址相同,则此路由器为IP地址拥有者,这台路由器将被选定为Master。
2. 优先级选举:Priority:VRRP设备默认优先级100,取值范围为0-255,可配置范围是1-254
- 0表示设备停止参与VRRP备份组,用来使备份设备尽快成为Master设备,而不必等计时器超时。(场景一般为Master路由器不再运行VRRP,它会进行广播它要退组,停止参与VRRP的竞选,让backup抓紧替代我,不用再等待超时)
- 255表示保留给IP Address Owner(IP地址拥有者),无法手工进行配置。
- 比较iP地址:在没有IP地址拥有者和优先级相同情况下,IP地址大的作为Master。
5.1 VRRP的保活
VRRP报文每1秒通告一次,如果Backup路由器超时时间为3秒未收到Master的VRRP通告报文,Backup路由器会认为Master路由器失效,BackuP路由器将接替Master路由器的工作。
6.VRRP状态
- Initialize状态:系统启动后进入Initialize,初始化状态,此状态下路由器不对VRRP报文做任何处理。
- Master状态:路由器会发送VRRP通告,发送ARP报文。
- Backup状态:接收VRRP通告。
三种状态之间的转换条件如下:
- Initialze -> Master : 收到Startup且优先级为255;
- Initialze -> Backup:收到Startup且优先级小于255;
- Master -> Initialze:设备关闭;
- Master -> Backup:收到比自己优先级更高的数据包;
- Backup -> Initialze:设备关闭;
- Backup -> Master:在超时时间内没有收到VRRP通告报文,或者收到通告报文原Master优先级为0,或者收到的通告报文中的原Master优先级比自己的优先级低。
7.VRRP报文
VRRP使用IP组播数据包进行封装,组播地址为224.0.0.18,Master负责发,Backup只能接收。
各字段解释如下:
- Version:协议版本号。VRRPv2对应的版本号为2;VRRPv3对应的版本号为3。
- Type:VRRP报文的类型。VRRPv2和VRRPv3报文只有一种类型,即VRRP通告报文(Advertisement),该字段取值为1。
- Virtual Rtr ID(VRID):虚拟路由器号(即备份组号),取值范围1~255。
- Priority:路由器在备份组中的优先级,取值范围0~255,默认为100,数值越大表明优先级越高。
- Addr Count/Count IPv6 Addrs:备份组虚拟IP地址的个数。1个备份组可对应多个虚拟IP地址。
- Auth Type:认证类型。该值为0表示无认证,为1表示简单字符认证,为2表示MD5认证。VRRPv3不支持MD5认证。
- Adver Int:发送通告报文的时间间隔。VRRPv2中单位为秒,缺省为1秒;VRRPv3中单位为厘秒,缺省为100厘秒。
- Checksum:16位校验和,用于检测VRRP报文中的数据破坏情况。
- IP Address/IPv6 Address:备份组虚拟IP地址表项。所包含的地址数定义在Count IP Addrs/Count IPv6 Addrs字段。
- Authentication Data:验证字,目前只用于简单字符认证,对于其它认证方式一律填0。
8.VRRP工作流程
- 路由器或交换机使用VRRP功能后,会根据优先级确定自己在组中的角色。优先级高的路由器成为Master路由器,优先级低的成为Backup路由器。Master路由器定期发送VRRP通告报文,通知备份组内的其他路由器自己工作正常;Backup路由器则启动定时器等待通告报文的到来。
- 在抢占方式下,当Backup路由器收到VRRP通告报文后,会将自己的优先级与通告报文中的优先级进行比较。如果大于通告报文中的优先级,则成为Master路由器;否则将保持Backup状态。
- 在非抢占方式下,只要Master路由器没有出现故障,备份组中的路由器始终保持Master或Backup状态,Backup路由器即使随后被配置了更高的优先级也不会成为Master路由器。
- 如果Backup路由器的定时器超时后仍未收到Master路由器发送来的VRRP通告报文,则认为Master路由器已经无法正常工作,此时Backup路由器会认为自己是Master路由器,并对外发送VRRP通告报文。组内的路由器根据优先级或IP地址大小选出Master路由器,承担报文的转发功能。
9.VRRP应用场景
9.1 主备模式
主备模式表示转发任务仅有Master路由器承担。当Master路由器出现故障时,Backup路由器会接替其工作。
初始状态下,SW1为Master并承担转发任务,SW2为Backup且处于监听状态。当SW1发生故障,则备份组的SW2将成为Master,为网络内的主机提供路由服务。
9.2 负载分担
负载分担是指多台路由器同时承担业务,因此负载分担方式需要两个或者两个以上的组,每个组都包括一个Master和一个Backup,每个组的Master路由器各不相同。
例如拓扑图中,共创建四个VRRP组,其中VLAN 8和VLAN 9的流量通过SW1转发,在SW1中,VLAN 8和VLAN 9的优先级为101;VLAN 10和VLAN 11的流量通过SW2转发,在SW2中,VLAN 10和VLAN 11的优先级为101。两个交换机进行负载分担,当某台交换机出现故障时,通过优先级选举,所有流量都会到另一台交换机上进行转发。