VRRP的产生
如图1所示,局域网中只有一个路由器RTA,所有PC使用RTA做为网关,此时如果RTA故障,所有PC将不能和外网通信。
图1 单网关场景
通过部署多网关的方式实现网关的备份,但多网关可能会出现一些问题:网关间IP地址冲突;主机会频繁切换网络出口。
图2 多网关场景
VRRP的出现很好的解决了这个问题,它在不改变组网的情况下,将多台路由设备组成一个虚拟路由器,通过配置虚拟路由器的IP地址为默认网关,实现默认网关的备份。
图3 VRRP多网关场景逻辑图
VRRP基本概念
如图4所示,HostA双归到RouterA和RouterB。在RouterA和RouterB上配置VRRP备份组,对外体现为一台虚拟路由器,实现冗余备份。
图4 VRRP备份组示意图
在图4所示的网络中部署VRRP协议,下面结合该图介绍VRRP协议的基本概念:
-
VRRP路由器(VRRP Router):运行VRRP协议的设备,如RouterA和RouterB。
-
虚拟路由器(Virtual Router):又称VRRP备份组,由一个Master设备和多个Backup设备组成,被当作一个共享局域网内主机的缺省网关。如RouterA和RouterB共同组成了一个虚拟路由器。
-
Master路由器(Virtual Router Master):承担转发报文任务的VRRP设备,如RouterA。
-
Backup路由器(Virtual Router Backup):一组没有承担转发任务的VRRP设备,当Master设备出现故障时,它们将通过竞选成为新的Master设备,如RouterB。
-
vrid:虚拟路由器的标识,如图中RouterA和RouterB组成的虚拟路由器的vrid为1,需手工指定,范围1-255。
-
虚拟IP地址(Virtual IP Address):虚拟路由器的IP地址,一个虚拟路由器可以有一个或多个IP地址,由用户配置。如RouterA和RouterB组成的虚拟路由器的虚拟IP地址为10.1.1.254/24。
-
IP地址拥有者(IP Address Owner):如果一个VRRP设备将真实的接口IP地址配置为虚拟路由器IP地址,则该设备被称为IP地址拥有者。如果IP地址拥有者是可用的,则它将一直成为Master。
-
虚拟MAC地址(Virtual MAC Address):虚拟路由器根据vrid生成的MAC地址。一个虚拟路由器拥有一个虚拟MAC地址,格式为:00-00-5E-00-01-{vrid}。当虚拟路由器回应ARP请求时,使用虚拟MAC地址,而不是接口的真实MAC地址。如RouterA和RouterB组成的虚拟路由器的vrid为1,因此这个VRRP备份组的MAC地址为00-00-5E-00-01-01。
VRRP协议报文
VRRP协议只有一种报文类型-VRRP通告(ADVERTISEMENT),只有Master才能发送VRRP通告。VRRP协议报文封装在IP报文中,在IP报文头中,源地址为发送报文接口的主IP地址(不是虚拟IP地址),目的地址是224.0.0.18,TTL是255,协议号是112。
目前,VRRP协议包括两个版本:VRRPv2和VRRPv3。VRRPv2仅适用于IPv4网络,VRRPv3适用于IPv4和IPv6两种网络。
VRRPv2的报文结构分别如图5所示。
图5 VRRPv2报文结构
各字段的含义如表1所示:
表1 VRRP报文字段含义
报文字段 |
含义 |
Version |
VRRP协议版本号,取值为2。 |
Type |
VRRP通告报文的类型,取值为1,表示Advertisement。 |
Virtual Rtr ID |
虚拟路由器ID,取值范围是1~255。 |
Priority |
Master设备在备份组中的优先级,取值范围是0~255。0表示设备停止参与VRRP备份组,用来使Backup设备尽快成为Master设备,而不必等到计时器超时;255则保留给IP地址拥有者。缺省值是100。 |
Count IP Addrs |
备份组中虚拟IPv4地址的个数。 |
Auth Type |
VRRP报文的认证类型。协议中指定了3种类型:
|
Adver Int |
VRRP通告报文的发送时间间隔,单位是秒,缺省值为1秒。 |
Checksum |
16位校验和,用于检测VRRP报文中的数据破坏情况。 |
IP Address |
VRRP备份组的虚拟IPv4地址,所包含的地址数定义在Count IP Addrs字段。 |
Authentication Data |
VRRP报文的认证字。目前只有明文认证和MD5认证才用到该部分,对于其它认证方式,一律填0。 |
状态机
如图6 所示,VRRP协议状态机有三种状态:Initialize(初始状态)、Master(活动状态)、Backup(备状态)。
图6 VRRP状态的转换