详解VRRP协议
1 VRRP概述
随着Internet的(de)发展,人们对网络可靠性的(de)要(yao)求越来越高。特别是(shi)对于终端用户来说,能(neng)够实时与网络其他部分保持联(lian)(lian)系(xi)是(shi)非常重(zhong)要(yao)的(de)。一(yi)般来说,主机通过设置默认网关来与外部网络联(lian)(lian)系(xi),如图(tu)1所示:
主机(ji)(ji)(ji)将发(fa)送给外(wai)(wai)部网(wang)(wang)络(luo)的(de)(de)(de)报文(wen)发(fa)送给网(wang)(wang)关(guan)(guan),由网(wang)(wang)关(guan)(guan)传递(di)给外(wai)(wai)部网(wang)(wang)络(luo),从而(er)实现主机(ji)(ji)(ji)与外(wai)(wai)部网(wang)(wang)络(luo)的(de)(de)(de)通(tong)信(xin)。正常的(de)(de)(de)情况下(xia),主机(ji)(ji)(ji)可(ke)以完全(quan)信(xin)赖网(wang)(wang)关(guan)(guan)的(de)(de)(de)工作(zuo),但是当网(wang)(wang)关(guan)(guan)坏掉(diao)时,主机(ji)(ji)(ji)与外(wai)(wai)部的(de)(de)(de)通(tong)信(xin)就会中(zhong)断(duan)。要(yao)解(jie)(jie)(jie)决(jue)网(wang)(wang)络(luo)中(zhong)断(duan)的(de)(de)(de)问(wen)(wen)题(ti),可(ke)以依靠再添加网(wang)(wang)关(guan)(guan)的(de)(de)(de)方式解(jie)(jie)(jie)决(jue),不(bu)过由于大多(duo)数主机(ji)(ji)(ji)只允许配置一个默认网(wang)(wang)关(guan)(guan),此时需(xu)要(yao)网(wang)(wang)络(luo)管理员进(jin)行(xing)手工干预网(wang)(wang)络(luo)配置,才(cai)能(neng)(neng)使得(de)主机(ji)(ji)(ji)使用新的(de)(de)(de)网(wang)(wang)关(guan)(guan)进(jin)行(xing)通(tong)信(xin);有时,人们运(yun)用动态路由协议的(de)(de)(de)方法(fa)来解(jie)(jie)(jie)决(jue)网(wang)(wang)络(luo)出(chu)现故障这(zhei)一问(wen)(wen)题(ti),如(ru)运(yun)行(xing)RIP、OSPF等,或(huo)者使用IRDP。然而(er),这(zhei)些协议由于配置过于复杂,或(huo)者安全(quan)性(xing)能(neng)(neng)不(bu)好等原因都不(bu)能(neng)(neng)满足用户的(de)(de)(de)需(xu)求。
1.2 技术(shu)优点
VRRP具有如下优点:
l 适应性强。VRRP报文封装在IP报文中,支持各种上(shang)层(ceng)协(xie)议。
2 VRRP协议介绍
l 虚(xu)拟路由(you)(you)(you)器(qi):由(you)(you)(you)一(yi)个Master路由(you)(you)(you)器(qi)和多个Backup路由(you)(you)(you)器(qi)组(zu)成。主机将(jiang)虚(xu)拟路由(you)(you)(you)器(qi)当(dang)作默认网关。
l Master路由器(qi):虚拟路由器(qi)中承担(dan)报文转发任务的路由器(qi)。
l 虚(xu)拟IP地址:虚(xu)拟路由器的IP地址。一(yi)个虚(xu)拟路由器可以拥有一(yi)个或(huo)多个IP地址。
l 虚(xu)拟(ni)(ni)MAC地址(zhi)(zhi)(zhi):一个虚(xu)拟(ni)(ni)路(lu)由(you)(you)器拥(yong)有一个虚(xu)拟(ni)(ni)MAC地址(zhi)(zhi)(zhi)。虚(xu)拟(ni)(ni)MAC地址(zhi)(zhi)(zhi)的格式为(wei)00-00-5E-00-01-{VRID}。通(tong)常情况下,虚(xu)拟(ni)(ni)路(lu)由(you)(you)器回应ARP请求使用的是虚(xu)拟(ni)(ni)MAC地址(zhi)(zhi)(zhi),只有虚(xu)拟(ni)(ni)路(lu)由(you)(you)器做特殊(shu)配置的时候,才回应接(jie)口的真(zhen)实MAC地址(zhi)(zhi)(zhi)。
l 非抢占方(fang)式:如(ru)果(guo)Backup路由(you)(you)器(qi)(qi)工作在非抢占方(fang)式下,则只要Master路由(you)(you)器(qi)(qi)没有(you)出现故障,Backup路由(you)(you)器(qi)(qi)即使随后(hou)被(bei)配(pei)置了更(geng)高的优先级也不会成为Master路由(you)(you)器(qi)(qi)。
2.2 虚拟路由器简介(jie)
虚(xu)拟(ni)路(lu)由器有自己的虚(xu)拟(ni)IP地(di)(di)址(zhi)和虚(xu)拟(ni)MAC地(di)(di)址(zhi),它的外(wai)在(zai)表现形(xing)式和实际的物理(li)路(lu)由器完全一样。局域网内的主(zhu)机将(jiang)虚(xu)拟(ni)路(lu)由器的IP地(di)(di)址(zhi)设置为(wei)默(mo)认(ren)网关,通(tong)过虚(xu)拟(ni)路(lu)由器与外(wai)部网络进行(xing)通(tong)信(xin)。
图2 虚拟路由器示意图
VRRP的工作过程为:
(2) Master路由器周期(qi)性发送VRRP报文,以公布其(qi)配置信息(优先级等)和工(gong)作状况;
(4) 虚拟(ni)路(lu)由(you)(you)(you)器状(zhuang)态(tai)切(qie)换(huan)(huan)时(shi),Master路(lu)由(you)(you)(you)器由(you)(you)(you)一(yi)台设(she)备切(qie)换(huan)(huan)为(wei)另(ling)外一(yi)台设(she)备,新(xin)的(de)(de)Master路(lu)由(you)(you)(you)器只是简单地发送一(yi)个(ge)携带虚拟(ni)路(lu)由(you)(you)(you)器的(de)(de)MAC地址和虚拟(ni)IP地址信(xin)息的(de)(de)免费(fei)ARP报文,这样就可以更新(xin)与它(ta)连接的(de)(de)主机或(huo)设(she)备中的(de)(de)ARP相关(guan)信(xin)息。网络中的(de)(de)主机感知(zhi)不(bu)到Master路(lu)由(you)(you)(you)器已经切(qie)换(huan)(huan)为(wei)另(ling)外一(yi)台设(she)备。
由此可见,为了保证Master路由器和Backup路由器能够协调工作,VRRP需要实现以下(xia)功能:
l Master路由器状态的(de)通告;
下面将从上述三个方面详细(xi)介绍VRRP的工(gong)作过程(cheng)。
VRRP根据优(you)先级来确定虚拟路(lu)由(you)(you)器(qi)中每(mei)台路(lu)由(you)(you)器(qi)的角(jiao)色(Master路(lu)由(you)(you)器(qi)或Backup路(lu)由(you)(you)器(qi))。优(you)先级越高(gao),则越有可(ke)能成为Master路(lu)由(you)(you)器(qi)。
l 如(ru)果VRRP报文中Master路由器(qi)的优(you)先级(ji)高(gao)于(yu)自己的优(you)先级(ji),则路由器(qi)保持在Backup状态;
l 如果在(zai)一(yi)定时间内没有收到VRRP报(bao)文,则路(lu)由器切换为Master状态(tai)。
2.3.2 Master路由器状态的通告
Master路(lu)由(you)(you)器(qi)(qi)(qi)主动放弃Master地位(wei)(如(ru)Master路(lu)由(you)(you)器(qi)(qi)(qi)退出虚拟路(lu)由(you)(you)器(qi)(qi)(qi))时,会发送优先级为0的(de)(de)(de)VRRP报文,致使Backup路(lu)由(you)(you)器(qi)(qi)(qi)快(kuai)速切(qie)换变(bian)成(cheng)Master路(lu)由(you)(you)器(qi)(qi)(qi)。这(zhei)个切(qie)换的(de)(de)(de)时间称为Skew time,计算方式为:(256-Backup路(lu)由(you)(you)器(qi)(qi)(qi)的(de)(de)(de)优先级)/256,单位(wei)为秒。
在(zai)(zai)(zai)性(xing)能(neng)不够(gou)稳(wen)定的(de)(de)网络中,Backup路(lu)(lu)由(you)器(qi)(qi)(qi)可(ke)能(neng)因为(wei)网络堵塞而(er)在(zai)(zai)(zai)Master_Down_Interval期(qi)间没(mei)有(you)收到Master路(lu)(lu)由(you)器(qi)(qi)(qi)的(de)(de)报文,而(er)主动抢(qiang)占为(wei)Master位(wei)置,如果此(ci)时(shi)原(yuan)Master路(lu)(lu)由(you)器(qi)(qi)(qi)的(de)(de)报文又(you)到达(da)了(le),就会(hui)(hui)出现虚拟路(lu)(lu)由(you)器(qi)(qi)(qi)的(de)(de)成员(yuan)频繁的(de)(de)进行Master抢(qiang)占现象(xiang)。为(wei)了(le)缓(huan)解这种现象(xiang)的(de)(de)发生(sheng),特制定了(le)延迟(chi)等待(dai)(dai)定时(shi)器(qi)(qi)(qi)。它可(ke)以使(shi)得Backup路(lu)(lu)由(you)器(qi)(qi)(qi)在(zai)(zai)(zai)等待(dai)(dai)了(le)Master_Down_Interval后,再等待(dai)(dai)延迟(chi)等待(dai)(dai)时(shi)间。如在(zai)(zai)(zai)此(ci)期(qi)间仍然没(mei)有(you)收到VRRP报文,则此(ci)Backup路(lu)(lu)由(you)器(qi)(qi)(qi)才会(hui)(hui)切换为(wei)Master路(lu)(lu)由(you)器(qi)(qi)(qi),对外(wai)发送(song)VRRP报文。
VRRP提供(gong)了三种(zhong)认证方式:
l 简(jian)单字符认(ren)证(zheng):在一(yi)个有可能受到(dao)(dao)安(an)全威(wei)胁的(de)(de)网络(luo)中(zhong)(zhong),可以将认(ren)证(zheng)方式设置为简(jian)单字符认(ren)证(zheng)。发送(song)VRRP报文的(de)(de)路由(you)器将认(ren)证(zheng)字填(tian)入(ru)到(dao)(dao)VRRP报文中(zhong)(zhong),而收(shou)到(dao)(dao)VRRP报文的(de)(de)路由(you)器会将收(shou)到(dao)(dao)的(de)(de)VRRP报文中(zhong)(zhong)的(de)(de)认(ren)证(zheng)字和本地配(pei)置的(de)(de)认(ren)证(zheng)字进行比较。如果(guo)认(ren)证(zheng)字相同,则(ze)认(ren)为接(jie)收(shou)到(dao)(dao)的(de)(de)报文是合法的(de)(de)VRRP报文;否则(ze)认(ren)为接(jie)收(shou)到(dao)(dao)的(de)(de)报文是一(yi)个非法报文。
3 Comware实现(xian)的(de)技术特色
VRRP网(wang)络(luo)(luo)传输功能有时需要额外(wai)的(de)(de)(de)技(ji)术来完善其工作。例如,Master路(lu)(lu)(lu)(lu)由(you)(you)器(qi)(qi)到(dao)达某(mou)网(wang)络(luo)(luo)的(de)(de)(de)链(lian)路(lu)(lu)(lu)(lu)突(tu)然断掉时,主机无法(fa)通过(guo)此Master路(lu)(lu)(lu)(lu)由(you)(you)器(qi)(qi)远程访问(wen)该网(wang)络(luo)(luo)。此时,可以通过(guo)监视指定(ding)接口上行链(lian)路(lu)(lu)(lu)(lu)功能,解决这(zhei)个问(wen)题(ti)。当Master路(lu)(lu)(lu)(lu)由(you)(you)器(qi)(qi)发现(xian)上行链(lian)路(lu)(lu)(lu)(lu)出现(xian)故障后,主动(dong)降低(di)自己的(de)(de)(de)优先级(ji)(使Master路(lu)(lu)(lu)(lu)由(you)(you)器(qi)(qi)的(de)(de)(de)优先级(ji)低(di)于(yu)Backup路(lu)(lu)(lu)(lu)由(you)(you)器(qi)(qi)),并立即发送VRRP报文。Backup路(lu)(lu)(lu)(lu)由(you)(you)器(qi)(qi)接收到(dao)优先级(ji)比(bi)自己低(di)的(de)(de)(de)VRRP报文后,等待Skew_Time切(qie)换(huan)为(wei)新(xin)(xin)的(de)(de)(de)Master路(lu)(lu)(lu)(lu)由(you)(you)器(qi)(qi)。从而(er),使得(de)能够到(dao)达此网(wang)络(luo)(luo)的(de)(de)(de)Backup路(lu)(lu)(lu)(lu)由(you)(you)器(qi)(qi)充(chong)当VRRP新(xin)(xin)的(de)(de)(de)Master路(lu)(lu)(lu)(lu)由(you)(you)器(qi)(qi),协助主机完成(cheng)网(wang)络(luo)(luo)通讯。
VRRP可以利(li)用NQA技术监视上行(xing)链路连接的(de)(de)远端主机或(huo)者网络(luo)状况。例如,Master设(she)备上启动(dong)NQA的(de)(de)ICMP-echo探(tan)测功(gong)能(neng),探(tan)测远端主机的(de)(de)可达性。当ICMP-echo探(tan)测失败时,它可以通(tong)知本设(she)备探(tan)测结果,达到(dao)降低VRRP优(you)先级(ji)的(de)(de)目(mu)的(de)(de)。
3.2 Backup监(jian)视Master工作状态
Backup路由器(qi)(qi)监视Master路由器(qi)(qi)采用的是(shi)具有(you)快速检(jian)测功能的BFD技(ji)术(shu)。在Backup设备上使(shi)用该技(ji)术(shu)监视Master路由器(qi)(qi)的状态,一旦Master路由器(qi)(qi)发(fa)生故障,Backup就可以(yi)自动切(qie)(qie)换成为新的Master路由器(qi)(qi),将切(qie)(qie)换时间缩短(duan)到毫秒级。
4.1 主(zhu)备(bei)备(bei)份
图3 主备(bei)备(bei)份VRRP
4.2 负载(zai)分担
负载分担方式是指(zhi)多台路(lu)(lu)由(you)(you)器(qi)同(tong)时承担业(ye)务,因此负载分担方式需要两个(ge)(ge)或者两个(ge)(ge)以上的虚(xu)拟(ni)路(lu)(lu)由(you)(you)器(qi),每个(ge)(ge)虚(xu)拟(ni)路(lu)(lu)由(you)(you)器(qi)都包括(kuo)一个(ge)(ge)Master路(lu)(lu)由(you)(you)器(qi)和若干(gan)个(ge)(ge)Backup路(lu)(lu)由(you)(you)器(qi),各(ge)虚(xu)拟(ni)路(lu)(lu)由(you)(you)器(qi)的Master路(lu)(lu)由(you)(you)器(qi)可以各(ge)不(bu)相同(tong),如图4中所示(shi)。
在图4中(zhong),有三个虚拟路由(you)器(qi)存在:
l 虚(xu)拟(ni)路(lu)由器2:Device B作(zuo)为Master路(lu)由器,Device A和Device C作(zuo)为Backup路(lu)由器。
为了实现业务流量(liang)在(zai)Device A、Device B和Device C之间进行负(fu)载分担(dan),需(xu)要将局域网(wang)内的主机(ji)的默(mo)认网(wang)关(guan)分别设置为虚拟路由(you)(you)器(qi)1、2和3。在(zai)配置优先级时(shi),需(xu)要确保三个虚拟路由(you)(you)器(qi)中各路由(you)(you)器(qi)的VRRP优先级形成一定的交叉,使得(de)一台路由(you)(you)器(qi)尽可能(neng)不(bu)同时(shi)充(chong)当2个Master路由(you)(you)器(qi)。
VRRP可以通过BFD或NQA等快速检测协议监视一些上(shang)行敏感链路(lu),使得Master路(lu)由器快速地发现网(wang)络故障,降(jiang)低自身的优先级,从而保证上(shang)行链路(lu)工(gong)作(zuo)正常的Backup路(lu)由器能(neng)够接替(ti)它的工(gong)作(zuo)。
如图(tu)5所示,初(chu)始情况下,Device A作为Master路(lu)由(you)器(qi),承(cheng)担转(zhuan)(zhuan)发任务;Device B为Backup路(lu)由(you)器(qi),处(chu)于(yu)就绪监听(ting)状态。Device A使用(yong)BFD监视上行(xing)到(dao)达Internet的链(lian)路(lu)状态。如果(guo)Device A的上行(xing)链(lian)路(lu)发生(sheng)故障,Device A可以在毫秒级感知(zhi)到(dao)网络(luo)变化,立即(ji)发送(song)低(di)优(you)先级的VRRP报文给Device B。如果(guo)此时(shi)Device B的优(you)先级高于(yu)报文中的优(you)先级,那么它(ta)将在Skew Time时(shi)间之后切换(huan)为新的Master路(lu)由(you)器(qi),之后由(you)这个新的Master路(lu)由(you)器(qi)为网络(luo)内的主机(ji)转(zhuan)(zhuan)发数据。
为(wei)了保证网络传输的(de)稳定性,可以在Backup设(she)(she)备(bei)上使用BFD技术监视Master的(de)状态(tai),使得Master设(she)(she)备(bei)发生故障时(shi),Backup设(she)(she)备(bei)能够立即切换为(wei)新的(de)Master设(she)(she)备(bei)。
如图6中所(suo)示,初始情况(kuang)下,DeviceA作(zuo)为(wei)Master路(lu)(lu)由(you)器(qi),承担转发(fa)任务;DeviceB是Backup路(lu)(lu)由(you)器(qi),处(chu)于就绪监(jian)听(ting)状态。DeviceB使用BFD监(jian)视DeviceA上IP地址(zhi)10.1.1.1的(de)(de)可达性。如果(guo)Device A发(fa)生故障,DeviceB可以(yi)立(li)即通过BFD感知到对(dui)端的(de)(de)变化(hua),主(zhu)动(dong)切换成为(wei)新(xin)的(de)(de)Master设备,之后这个新(xin)Master路(lu)(lu)由(you)器(qi)将(jiang)为(wei)网络内的(de)(de)主(zhu)机转发(fa)数据。
<p style="box-sizing:border-box;outline:0px;margin-top:0px;margin-bottom:16px;padding:0px;font-family:" font-size:16px;color:#4d4d4d;line-height:26px;overflow-x:auto;white-space:normal;background-color:#ffffff;"="">