2 虚拟转发器
1. 虚拟转发器的创建
虚拟MAC地址的分配,实现了不同主机将流量发送给备份组中不同的路由器。为了使备份组中的路由器能够转发主机发送的流量,需要在路由器上创建虚拟转发器。每个虚拟转发器都对应备份组的一个虚拟MAC地址,负责转发目的MAC地址为该虚拟MAC地址的流量。
虚拟转发器的创建过程为:
(1) 备份组中的路由器获取到Master路由器为其分配的虚拟MAC地址后,创建该MAC地址对应的虚拟转发器,该路由器称为此虚拟MAC地址对应虚拟转发器的VF Owner(Virtual Forwarder Owner,虚拟转发器拥有者)。
(2) VF Owner将虚拟转发器的信息通告给备份组内其它的路由器。
(3) 备份组内的路由器接收到虚拟转发器信息后,在本地创建对应的虚拟转发器。
由此可见,备份组中的路由器上不仅需要创建Master路由器为其分配的虚拟MAC地址对应的虚拟转发器,还需要创建其它路由器通告的虚拟MAC地址对应的虚拟转发器。
2. 虚拟转发器的权重和优先级
虚拟转发器的权重标识了虚拟转发器的转发能力。权重值越高,虚拟转发器的转发能力越强。当权重低于一定的值——失效下限时,虚拟转发器无法再为主机转发流量。
虚拟转发器的优先级用来决定虚拟转发器的状态:不同路由器上同一个虚拟MAC地址对应的虚拟转发器中,优先级最高的虚拟转发器处于Active状态,称为AVF(Active Virtual Forwarder,动态虚拟转发器),负责转发流量;其它虚拟转发器处于Listening状态,称为LVF(Listening Virtual Forwarder,监听虚拟转发器),监听AVF的状态,不转发流量。虚拟转发器的优先级取值范围为0~255,其中,255保留给VF Owner使用。如果VF Owner的权重高于或等于失效下限,则VF Owner的优先级为最高值255。
设备根据虚拟转发器的权重计算虚拟转发器的优先级:
· 如果权重高于或等于失效下限,且设备为VF Owner,则虚拟转发器的优先级为最高值255;
· 如果权重高于或等于失效下限,且设备不是VF Owner,则虚拟转发器的优先级为权重/(本地AVF的数目+1);
· 如果权重低于失效下限,则虚拟转发器的优先级为0。
3. 虚拟转发器备份
备份组中不同路由器上同一个虚拟MAC地址对应的虚拟转发器之间形成备份关系。当为主机转发流量的虚拟转发器或其对应的路由器出现故障后,可以由其它路由器上备份的虚拟转发器接替其为主机转发流量。
Router A为VF 1的VF Owner,Router A上VF 1的虚拟转发器优先级为最高值255。因此,Router A上的VF 1作为AVF,负责转发目的MAC地址为虚拟MAC地址000f-e2ff-0011的流量。
Router B和Router C上VF 1的虚拟转发器优先级为:权重255/(本地AVF数目1+1)=127,低于Router A上VF 1的优先级。因此,Router B和Router C上的VF 1作为LVF,监视Router A上VF 1的状态。
当Router A上的VF 1出现故障时,将从Router B和Router C上的VF 1中选举出虚拟转发器优先级最高的LVF作为AVF,负责转发目的MAC地址为虚拟MAC地址000f-e2ff-0011的流量。如果LVF的优先级相同,则LVF所在设备接口MAC地址大的成为AVF。
虚拟转发器始终工作在抢占模式。对于不同路由器上互相备份的LVF和AVF,如果LVF接收到AVF发送的虚拟转发器信息中虚拟转发器优先级低于本地虚拟转发器假设变成AVF后的优先级,则LVF将会抢占成为AVF。
4. 虚拟转发器的定时器
虚拟转发器的AVF出现故障后,接替其工作的新的AVF将为该VF创建Redirect Timer和Timeout Timer两个定时器。
· Redirect Timer:VF重定向定时器。该定时器超时前,Master路由器还会采用该VF对应的虚拟MAC地址应答主机的ARP/ND请求;该定时器超时后,Master路由器不再采用该VF对应的虚拟MAC地址应答主机的ARP/ND请求。如果VF Owner在Redirect Timer超时前恢复,则VF Owner可以迅速参与流量的负载分担。
· Timeout Timer:VF生存定时器,即AVF接替VF Owner工作的期限。该定时器超时前,备份组中的路由器上都保留该VF,AVF负责转发目的MAC地址为该VF对应虚拟MAC地址的报文;该定时器超时后,备份组中的路由器上都删除该VF,不再转发目的MAC地址为该VF对应虚拟MAC地址的报文。
5. 虚拟转发器监视功能
AVF负责转发目的MAC地址为虚拟转发器MAC地址的流量,当AVF连接的上行链路出现故障时,如果不能及时通知LVF接替其工作,局域网中以此虚拟转发器MAC地址为网关MAC地址的主机将无法访问外部网络。
虚拟转发器的监视功能可以解决上述问题。利用NQA、BFD等监测AVF连接的上行链路的状态,并通过Track功能在虚拟转发器和NQA/BFD之间建立联动。当上行链路出现故障,Track项的状态变为Negative,虚拟转发器的权重将降低指定的数额,以便虚拟转发器优先级更高的路由器抢占成为AVF,接替其转发流量。