实现vrrp负载均衡的方法和路由设备的制作方法

文档序号:7928014阅读:271来源:国知局
专利名称:实现vrrp负载均衡的方法和路由设备的制作方法
技术领域
本发明涉及网络通信技术,特别涉及 一 种实现虚拟路由器冗余协议 (VRRP, Virtual Router Redundancy Protocol)负载均衡的方法和路由设备。
背景技术
在实现客户端与外部网络通信时,通常为同 一网段内的所有客户端设置 同一缺省网关,即配置以同一网关为下一跳的缺省路由,客户端发往其他网 ^:的才艮文将通过该缺省路由发往下一跳的网关,再由网关进行转发,然而当 网关出现故障时,本网段内所有以该网关为缺省路由的客户端将无法与外部 网络进行通信。缺省路由虽然为用户的配置操作提供了方便,但是对网关提 出了很高的稳定性要求,增加出口网关是提高系统可靠性的常见方法,此时, 如何在多个出口之间进行选路就成为需要解决的问题。逐渐发展起来的VRRP是用于解决多个出口之间如何进行选路的容错 协议,其在提高可靠性的同时,简化了客户端的配置。标准的VRRP是将多 个具有网关功能的路由设备组成一 台虛拟路由器,该虚拟路由器中的多个路 由设备按照VRRP的选举机制选举出 一个作为主用(master)路由设备负责 流量转发,其他作为备用(back叩)路由设备负责对master路由设备进行监 听,在监听到master路由设备出现故障时,重新选举master路由设备。虽 然这种方式提高了系统可靠性,但是,虚拟路由器中的多个路由设备只有主 路由设备负责流量转发,显然在路由设备资源和网络带宽上都存在浪费。为了解决上述资源和带宽浪费的问题,现有技术提供了 一种实现VRRP 负载均衡的方法,即利用多个路由设备创建多个虚拟路由器,每个虚拟路由 器中具有一个master路由设备和至少一个backup路由设备。其中, 一个路由设备可能在一个虚拟路由器中做master路由设备,也可能在另 一个虚拟路 由器中做backup路由设备。可以预先为各客户端按照负载均衡策略配置不 同的虚拟路由器的虚IP地址作为缺省网关IP地址,各客户端按照配置的虚 拟IP地址发送地址解析协议(ARP)请求,与该客户端对应的虚拟路由器 中的master路由设备将自身的MAC地址携带在ARP应答中回复给该客户 端,该客户端利用ARP应答中携带的MAC地址创建ARP表项,并利用该 ARP表项发送报文,即各客户端的报文通过配置给该客户端的虚拟路由器中 的master路由设备进行转发。如图l所示,假设存在路由设备A、路由设备B和路由设备C,利用该 三个路由设备构建三个虚拟路由器,即以路由设备A作为master路由设备、 路由设备B和路由设备C作为backup路由设备的虚拟路由器1,以路由设 备B作为master路由设备、路由设备A和路由设备C作为backup路由设备 的虚拟路由器2,以及以路由设备C作为master路由设备、路由设备A和 路由设备B作为backup路由设备的虚拟路由器3。预先配置客户端A、客 户端B和客户端C的缺省网关分别为虚拟路由器1、虚拟路由器2和虚拟路 由器3,客户端A按照虚拟路由器1的虚IP地址发送ARP请求,虚拟路由 器1中的master路由设备即路由设备A将自身的MAC地址回复给客户端A, 客户端A利用路由设备A的MAC地址创建ARP表项,客户端A的报文就 通过路由设备A进行转发;客户端B和客户端C通过类似的方式分别通过 路由设备B和路由设备C转发报文,这样就可以实现报文流量在路由设备A、 路由设备B和路由设备C之间的负载均衡。但是,现有技术中实现VRRP负载均衡的方式需要利用多个路由设备配 置不同的虚拟路由器并为各虚拟路由器配置不同的虚IP地址,并且为各客 户端配置不同的虛拟路由器作为缺省网关,显然在存在大量客户端的情况下 配置十分复杂。并且,由于上述负载均衡方式是基于预先的静态配置的,因 此,无法实现动态的负载均衡。发明内容有鉴于此,本发明提供了一种实现VRRP负载均衡的方法和路由设备, 以便于简化配置和实现动态的负载均衡。一种实现VRRP负载均衡的方法,该虚拟路由器包含多个路由设备,同 一网段各客户端的缺省网关IP地址配置为该虚拟^各由器的虚IP地址;该方 法包括虚拟路由器中选举出的主用路由设备为自身分配虚MAC地址,并在接 收到其他路由设备发送的虚MAC分配请求报文后,为所述其他路由设备分 配不同的虚MAC地址,并通过地址应答报文发送给所述其他路由设备;所述主用路由设备接收到来自客户端的地址解析请求后,按照负载均衡 策略,将分配给所述虚拟路由器中各路由设备的虚MAC地址携带在地址解 析应答中回复给所述客户端,以供所述客户端利用接收到的虚MAC地址进 行报文的发送。一种路由设备,多个该路由设备用于构成一个虚拟路由器,且该虚拟路由 器的虚IP地址配置为同一网段各客户端的缺省网关IP地址;该路由设备包括 角色选举单元、请求接收单元和应答发送单元以及地址分配单元或地址获取单元;所述角色选举单元,用于选举虚拟路由器中的主用路由设备; 所述地址分配单元,用于在所述角色选举单元选举出的主用路由设备为该路由设备时,为该路由设备分配虚MAC地址,并在接收到其他路由设备发送的虚MAC分配请求报文后,为所述其他路由设备分配不同的虚MAC地址,并通过地址应答报文发送给所述其他路由设备;所述地址获取单元,用于在所述角色选举单元选举出的主用路由设备不是该路由设备时,向主用路由设备发送虚MAC分配请求报文;接收主用路由设所述请求接收单元,用于在所述角色选举单元选举出的主用路由设备为该路由设备时,接收来自客户端的地址解析请求;所述应答发送单元,用于在所述请求接收单元接收到所述地址解析请求后,按照负载均衡策略,将分配给所述虚拟路由器中各路由设备的虚MAC 地址携带在地址解析应答中回复给所述客户端,以供所述客户端利用接收到 的虚MAC地址进行报文的发送。由以上技术方案可以看出,在本发明提供的方法和路由设备中,该虚拟 路由器包含多个路由设备,只需要在同一网段的各客户端配置同一虚IP地 址作为缺省网关IP地址,即为各客户端配置同一个虚拟路由器,而不需要 针对不同的客户端配置不同的虚拟路由器;并且,将多个路由设备配置为同 一个虚拟路由器即可,而不需要将多个路由设备配置为多个虚拟路由器且同 一个路由设备在不同虚拟路由器中的角色也不相同,显然简化了实现VRRP 负载均衡的配置工作。另外,本发明在多个路由设备构成的一个虚拟路由器 中,由选举出的主用路由设备通过与各路由设备之间的报文交互为虚拟路由 器中的各路由设备分配虚MAC地址,并按照负载均衡策略将分配给各路由 设备的虚MAC地址回复给客户端,而不是通过将客户端固定分配给不同的 虚拟路由器来实现负载均衡,显然,本发明能够根据各路由设备实际的负载 状况实现动态的负载均衡,且不会导致客户端数目变化所引起的路由设备负 载不均衡的问题。


图1为现有技术中实现VRRP负载均衡的示意图;图2为本发明实施例提供的实现VRRP负载均衡的网络架构图;图3为本发明实施例提供的虚MAC地址的接管使用示意图;图4为本发明实施例提供的VRRP标准协议报文格式;图5为本发明实施例提供的通告报文所使用的Option字段格式;图6为本发明实施例提供的路由设备的结构图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体 实施例对本发明进行详细描述。本发明提供的方法涉及的虚拟路由器包含多个路由设备,将该虚拟路由器的虚IP地址配置为所有客户端的缺省网关IP地址;该方法主要包括虛 拟路由器中选举出的master路由设备为自身分配虚MAC地址,并在接收到 其他路由设备发送的虚MAC分配请求报文后,为其他路由设备分配不同的 虚MAC地址,并通过地址应答报文发送给其他路由设备;接收到来自客户 端的地址解析请求后,按照负载均衡策略,将分配给该虚拟路由器中各路由 设备的虚MAC地址包含在地址解析应答中回复给该客户端,以供该客户端 利用接收到的虚MAC地址进行报文的发送。其中,在IPv4中地址解析请求可以是ARP请求,地址解析应答可以是 ARP应答,客户端利用接收到的虚MAC构建ARP表项后,利用该ARP表 项进行报文的发送;在IPv6中地址解析请求可以是邻居发现(ND, Neighbor Discovery)请求,地址解析应答可以是ND应答,客户端利用接收到的虚 MAC构建ND表项后,利用该ND表项进行报文的发送。在以下描述中以 IPv4为例。下面结合具体实施例对上述方法进行详细描述。以图2所示网络架构为 例,客户端A、客户端B和客户端C为同 一网段的三个客户端,路由设备A、 路由设备B和路由设备C是出口的三个路由器,本发明实施例中,将路由 设备A、路由设备B和路由设备C仅构成一个虚拟路由器,为该虚拟路由 器配置一个虚IP地址,并且,同一网段的所有客户端可以采用相同的配置 即将该虚拟IP地址配置为所有客户端的缺省网关IP地址,也就是说,客户 端A、客户端B和客户端C都向同一个虚拟路由器发送ARP请求。在该虚拟路由器中需要选举一个master路由设备,具体的选举方式可 以为选举任意一个运行正常的路由设备作为master路由设备,或者选举性能最高的作为master路由器,或者按照VRRP协议中已定义的路由设备的 VRRP优先级进行选举等。该选举发生的状况主要有两种, 一种是虚拟路由 器刚构建时,另一种是master路由设备发生故障时,其他作为backup的路 由设备需要重新选举出一 个运行正常的路由设备作为master路由设备。该master路由器负责处理各客户端发送来的ARP请求,按照负载均衡 策略将虛拟路由器中其中 一个路由设备的虚MAC地址携带在ARP应答中回 复给相应的客户端。也就是说,该虚拟路由器中的各路由设备都进行报文转 发工作,分担来自不同客户端的报文流量。各路由设备为了要实现对客户端 报文的转发,其上需要配置MAC地址,这里虚拟路由器中路由设备的MAC 地址为虛MAC地址。下面将介绍有关虚MAC地址的分配。各路由设备的虚MAC地址是动态分配的,master路由设备负责分配该 虛拟路由器中所有路由设备的虚MAC地址。路由设备一旦转换成为master 设备,如果自身尚没有被分配虚MAC地址,则在预先设置的虚MAC地址 范围内分配一个尚未使用的虚MAC地址给自身;另外,backup路由设备如 果没有被分配虚MAC地址,则会向master路由设备发送地址请求(request) 报文,master路由设备接收到该request报文后,从预先设置的虚MAC地址 范围内分配一个尚未^f吏用的虚MAC地址给该backup路由i殳备,该分配的虚 MAC地址通过携带在地址应答(Reply)报文发送中发送给backup路由设 备。其中,r叫uest报文丢失或者master路由设备没有及时处理request报文 都有可能使得某些backup ^各由设备获取不到虚MAC地址,为了保证backup 路由设备能够获取到虚MAC地址,backup路由设备在发送request报文后, 会启动申请定时器(Request Timer)用于循环发送request才艮文直至收到分 配的虛MAC i也址。另外,master路由设备在为各路由设备分配了虛MAC地址后,可以启 动分配状态;险查定时器(Offer Timer),如果Offer Timer达到设定时长仍 没有接收到携带该虚MAC地址的通告报文,则将该虚MAC地址标识为未分配,可以继续用于分配给其他路由设备。关于通告报文在下文中将会有进 一步的描述。master路由设备在对各路由设备分配虛MAC地址时,可以为每个路由 设备仅分配一个虚MAC地址,这种情况下,master路由i殳备进行虚MAC 地址的分配后,会记录分配的虚MAC地址和3各由设备的对应关系,当多次 接收到该^各由设备的request报文时,会将同一个虚MAC地址分配给该 backup路由设备。master路由设备也可以根据各路由设备的报文转发能力,为各路由设备 分配一个或多个虚MAC地址。该报文转发能力可以根据该路由设备的权重 值来表征,简单地,可以根据每个路由设备的实际情况给它配置一个权重值, 当然权重值还可能根据网络的情况动态进行调整。处于不同范围内的权重值 对应不同数量的虚MAC地址,从而实现报文转发能力强的分配数目较多的 虚MAC地址,报文转发能力弱的分配数据较少的虚MAC地址。Master路由设备所依据的负载均衡策略可以采用多种方式,在此举以下 几种例子1 )采用轮询负载均衡策略,即按照固定的顺序依次将各路由设 备的虚MAC地址携带在ARP响应中进行回复。尤其是上述按照权重值给不 同的路由设备分配不同个数的虚MAC地址后,只要简单的顺序将这些分配 出去的MAC地址依次回复给发送地址请求的客户端即可。这样很方4更的就 实现了负载均衡。2)采用加权负载均衡策略,即将各设备的报文转发能力 和/或当前负载状况作为加权因素,来选择虚MAC地址携带在ARP响应中 进行回复。3)采用基于客户端的负载均衡策略,即在以上两种方式的基础 上,尽量保证为同一客户端回复同一虚MAC地址,即记录为客户端回复的 虚MAC地址,如果接收到某客户端的ARP请求后,查找是否保存了该客户 端对应的虚MAC地址的记录,如果是,则将记录的虚MAC地址携带在ARP 响应中进行回复;否则,可以采用1)或2)的方式选择一个虚MAC地址 携带在ARP响应中进行回复。以上仅是本发明所举的几个例子,并不限于 以上三种策略。假设图2所示架构中,选举路由设备B为master路由设备,路由设备B 为自身分配虚拟MAC地址为MAC 2,作为backup的路由设备A和路由设 备C向路由设备B发送request报文,路由设备B分别为路由设备A和路由 设备C分配尚未使用的虚MAC地址MAC 1和MAC3。对于客户端A、客 户端B和客户端C发送来的ARP请求,作为master路由设备的路由设备B 按照负载均衡策略分别向客户端A、客户端B和客户端C回复携带MAC 1、 MAC 2和MAC 3的ARP响应(如图2中虚线箭头所示)。客户端A利用 MAC 1建立ARP表项,客户端B利用MAC 2建立ARP表项,客户端C利 用MAC 3建立ARP表项,就实现了客户端A的报文由路由设备A进行转 发,客户端B的报文由路由设备B进行转发,客户端C的报文由路由设备 C进行转发(如图2中实线箭头所示),从而实现了虚拟路由器中报文流量 的分担。在被分配了虚拟MAC地址之后,各路由^L备就开始使用该虚MAC地 址承担起目的MAC地址为该虚MAC地址的报文的转发。为了保证该虚 MAC地址的使用和防止路由设备故障后,利用该虚MAC地址发送报文的 客户端无法与外部网络通信,各路由设备可以在正常状态时,在该虚拟路由 器中周期性地发送包含其所分配到的虚MAC地址的通告报文,以说明其转 发性能正常。其它路由设备在接收到该通告报文后,启动活跃(Active)定 时器对该路由设备周期性发送的通告报文进行监听,当间隔设定时长没有接 收到该通告报文,则确定该虚MAC地址原来分配给的路由设备出现故障。 由于其他各个路由设备的间隔设定时长不一定一致,所以先到达设定时长的 路由设备将会接管使用该虚MAC地址,即接管该虚MAC地址的转发工作, 并周期性地发送包含其所接管使用的虚MAC地址的通告报文。这里Active定时器的设定时长(Active_Time )可以#>据通告才艮文的发 送周期(Hello_Time)、虚MAC地址的接管延迟时长(Delay—Time )以及 修正时长(Skew_Time )来确定。例如,可以设定Active_Time = 3 x Hello_Time + Delay_Time + Skew_Time , 或者,Active—Time = Delay—Time+ Skew—Time 等。其中的 Skew_Time 可以为Skew—Time -((P-X—P)xHello—Time )。其中,P为该路由设备的竟争优先级,P^为竟Pmax争优先级最大值。竟争优先级的含义将在以下做具体描述。这里,接管延迟 时长是预先配置的一个延迟时间,以便在接管该虚MAC之前路由设备能够 进行诸如路由学习等的其他处理操作,其设置时间可以根据具体应用需求确 定。从上面的公式我们可以看出,各个路由设备的Active Time不一定一致, 所以可能会出现一个路由设备来接管使用该虛MAC地址。除了上面描述的情况,也有可能会出现多个路由设备都接管使用该虚 MAC地址的情况,此时,接管该虚MAC地址的多个路由设备都会发送包 含该虛MAC地址的通告报文,这就需要在多个路由设备中竟争出一个路由 设备来接管使用该虚MAC地址的转发工作。可以为各路由设备配置竟争优 先级,在发送通告报文时,该通告报文中还可以包含自身的竟争优先级,当 监听到其他路由设备也发送了包含该虚MAC地址的通告报文时,如果自身 的竟争优先级比通告报文中包含的竟争优先级低,则退出该虚MAC地址的 接管使用;如果自身的竟争优先级比通告报文中包含的竟争优先级高,则保 持该虚MAC地址的接管使用。最终便可以竟争出竟争优先级最高的路由设 备来接管该虚MAC地址的报文转发工作。路由设备的竟争优先级可以根据该路由设备的报文转发能力和当前使 用的虚MAC地址数目来确定。报文转发能力越强竟争优先级越高,当前使 用的虚MAC地址越多,竟争优先级越低。可以具体采用以下方式确定竟争 优先级如果该路由设备是被master路由设备所分配的该虚MAC地址的使 用者,则在该路由设备的报文转发能力大于设定的转发能力阈值的情况下, 将该路由设备的竟争优先级设置为最大值,在该路由设备的报文转发能力小 于设定的转发能力阈值的情况下,将该路由设备的竟争优先级设置为最小 值;如果该路由设备不是被master路由设备所分配的该虛MAC地址的使用 者,而是该虚MAC地址的接管使用者,则可以设置该路由设备的竟争优先级P为P = Wmax/(C+l),其中,W,为该路由设备的转发能力量化值,C 为当前所使用的虚MAC地址数量。由于将被master路由设备所分配的该虚MAC地址的使用者设置为竟争 优先级最高,因此,当故障恢复后,该路由设备能够将原来所使用的虚MAC 地址抢占回来。原因为该路由设备故障恢复后,会发送包含其使用的虚 MAC地址的通告报文,而接管使用该虚MAC地址的路由设备也会发送包 含该虛MAC地址的通告报文,由于该虛MAC地址的原有使用者竟争优先 级最高,因此会将该虚MAC地址抢占回来,而接管使用该虚MAC地址的 路由设备会退出该虚MAC地址的接管使用。假设图2所示架构中路由设备A发生故障,则路由设备B和路由设备 C间隔设定时间没有接收到路由设备A的通告报文,则路由设备B和路由 设备C会接管使用MAC 1,并发送包含MAC 1和自身竟争优先级的通告报 文,假设路由设备C的竟争优先级较大,则路由设备C保留接管使用该MAC 1,而路由设备B则退出该MAC 1的接管使用,最终的报文转发如图3所示。 由路由设备C负责客户端1和客户端3的报文转发工作,即接替了路由设备 A的报文转发工作。另外,所有路由设备都会对接收到的通告报文中的虚MAC地址和使用 该虚MAC地址的路由设备进行记录,使得master路由设备发生故障后,按 照现有技术选举出的新master路由设备中具有已分配的虚MAC地址和使用 该虛MAC地址的路由设备的记录,能够继续承担虚MAC地址的分配工作 和ARP请求的应答工作。当竟争优先级最高的路由设备成功接管了虚MAC地址后,可以启动重 定向(Redirect)定时器和生存(Time-out)定时器。当Redirect定时器超时 后,接管虚MAC地址的该路由设备通知master路由设备该接管的虚MAC 地址不再作为ARP响应才良文的携带内容,这是为了防止该虛MAC地址的原 使用者长时间不能恢复正常而将原使用者所有的客户端都转移到接管的路由设备,造成长时间无法及时负载均衡。当Time-out定时器超时后,接管 该虚MAC地址的路由设备在该虚拟路由器中发送包含接管的虚MAC地址 的释放报文以通告该虚MAC地址不再使用,其他路由设备接收到该释放报 文后,停止对该虚MAC地址的通告报文进行监听。且master路由设备接收 到包含该虚MAC地址的释放报文后,可以将该虚MAC地址标识为未分配, 继续按照负载均衡策略分配给其他路由设备。其中,为了保证学习到该虛 MAC地址的客户端后续的报文能够正常转发,需要设置Time-out的定时时 长大于Redirect定时器,且Time-out的定时时长大于或等于ARP表项的老 化时间。仍以上述例子进4亍说明,路由设备C在接管使用了 MAC 1后,启动 Redirect定时器和Time-out定时器。当Redirect定时器超时后,通知master 路由器该MAC 1不再作为ARP响应报文的携带内容。当Time-out定时器超 时后,路由设备C在该虚拟路由器中发送包含MAC 1的释放报文以通告 MAC1不再使用,其他路由设备接收到该释放报文后,停止对MACl的通 告报文进行监听。且master路由设备接收到包含MAC 1的释放报文后,可 以将该MAC 1标识为未分配,继续按照负载均tf策略分配给其他路由设备。上述方法中所涉及的通告报文、Request报文、Reply报文和释放报文可 以采用扩展VRRP标准协议报文的形式,增加选项(Option )字段以实现功 能扩充;也可以通过重新定义新的协议报文的方式来实现,例如在用户数据 报协议(UDP)之上封装成上述报文。下面以扩展VRRP标准协议报文为例进行简单描述,VRRP标准协议报 文可以如图4所示,其中的固定报文头中,报文类型可以用来标识该报文具 体是通告报文、Request报文、Reply报文或者释放报文;且该虚拟路由器中 的各虛IP地址都相同,即该虚拟路由器采用同 一个虚IP地址。根据具体报 文的不同,该报文中的选项字段内容不同,例如,当该报文是通告报文时, 其中需要包含路由设备自身所使用的虚MAC地址和自身的竟争优先级信 息,其采用的扩展Option字段格式可以如图5所示。如果该路由设备使用多个虚MAC地址,则可以包含多个图5所示的Option字段,如果该路由设 备是该虚MAC地址的接管使用者,则该Option字段中的重定向定时器时长 字段可以携带接管使用该虚MAC地址时启动的Redirect定时器时长,生存 定时器时长字段可以携带接管使用该虚MAC地址时启动的Time-out定时器时长。以上是对本发明所提供的方法进行的详细描述,下面对本发明所提供的路 由设备进行详细描述。图6为本发明实施例提供的路由设备的结构图,多个该 路由设备可以用于构成一个虛拟路由器,且该虚拟路由器的虚IP地址配置为同 一网段各客户端的缺省网关IP地址。如图6所示,该路由设备可以包括角色 选举单元601、请求接收单元602和应答发送单元603,还包括地址分配单元 604或地址获取单元605。角色选举单元601 ,用于选举虚拟路由器中的master路由设备。 具体的选举方式可以为选举任意一个运行正常的路由设备作为master路 由设备,或者选举性能最高的作为master路由器,或者按照VRRP协议中已定 义的路由设备的VRRP优先级进行选举等。该选举发生的状况主要有两种,一 种是虚拟路由器刚构建时,另一种是master路由设备发生故障时,其他作为 backup的路由设备需要重新选举出一个运行正常的路由设备作为master路由设 备。地址分配单元604,用于在角色选举单元601选举出的主用路由设备为该 路由设备时,为该路由设备分配虚MAC地址,并在接收到其他路由设备发送 的虛MAC分配请求报文后,为所述其他路由设备分配不同的虚MAC地址,并 通过地址应斜艮文发送给所述其他路由设备。地址获取单元605,用于在角色选举单元601选举出的主用路由设备不是 该路由设备时,向主用路由设备发送虚MAC分配请求报文;接收主用路由设 备发送的包含分配给该路由设备的虚MAC分配应斜艮文。请求接收单元602,用于在角色选举单元601选举出的master路由设备为 该路由设备时,接收来自客户端的地址解析请求。由于本发明是将虚拟路由器的虚IP地址配置为各客户端的缺省网关IP地址,因此,各客户端在进行报文转发之前,需要进行缺省网关MAC地址的学 习,即向虚拟路由器发送地址解析请求,虛拟路由器中的master路由设备负责 所有地址解析请求的代答。应答发送单元603,用于在请求接收单元602接收到地址解析请求后,按 照负载均衡策略,将分配给虚拟路由器中各路由设备的虛MAC地址携带在地 址解析应答中回复给客户端,以供客户端利用接收到的虚MAC地址进行报文 的发送。上述地址解析请求可以为IPv4中的ARP请求,相应地,地址解析应答为 ARP应答;也可以是IPv6中的ND请求,相应地,地址解析应答为ND应答。为各路由设备分配的虚MAC地址可以是由该虚拟^各由器中的master路由 设备动态分配的,具体为地址分配单元604在角色选举单元601选举出的 master路由设备为该路由设备时,如果该路由设备尚没有虚MAC地址,则从 预先设置的虚MAC地址范围内分配一个尚未分配的虚MAC地址给该路由设 备,在接收到其他路由设备发送的虚MAC分配请求报文后,从虚MAC地址范 围内分配一个尚未分配的虚MAC地址给其他路由设备;或者如果该路由设备 尚没有虚MAC地址,则按照预设的报文转发能力与虚MAC地址数目的对应关 系,从尚未分配的虚MAC地址中分配与该路由设备的报文转发能力对应数目 的虚MAC地址给该路由设备,在接收到其他路由设备发送的虚MAC分配请求 报文后,按照预设的报文转发能力与虚MAC地址数目的对应关系,从尚未分力对应数目的虚MAC地址,并将分配的虚MAC地址携带在虚MAC分配应答 报文中回复给发送虚MAC分配请求报文的路由设备。另外,为了保证路由设备能够被分配虚MAC地址,地址获取单元605,还 可以用于在该路由设备尚没有虚MAC地址时,循环发送虚MAC分配请求报文, 直至接收到虚MAC分配应^艮文。相应地,地址分配单元604,还可以用于分配虚MAC地址给其他路由设备后,记录分配的虚MAC地址和该其他路由设备的对应关系,当多次接收到该其他路由设备的虚MAC分配请求报文时,仍将该发送虛MAC分配请求报文的 路由设备对应的虚MAC地址分配给该发送虚MAC分配请求报文的路由设备。 另外,该路由设备还可以包括地址使用单元606和地址监听单元607。 地址使用单元606,用于在该路由设备被分配了虚MAC地址后,开始使用 该虛MAC地址;接收到地址监听单元607发送的接管通知后,使用该接管通 知中包含的虚MAC地址。其中,使用虚MAC地址具体为承担目的MAC地址为该虛MAC地址的 报文转发,且在该路由设备处于正常状态时,在虚拟路由器中周期性地发送包 含该路由设备所使用虚MAC地址的通告报文。地址监听单元607,用于接收到其他路由设备发送的携带虚MAC地址的通 告报文后,对包含该虚MAC地址的通告报文进行监听,如杲间隔设定时长没 有接收到包含该虚MAC地址的通告报文,则向地址使用单元606发送包含该 虚MAC的接管通知。地址监听单元607如果间隔设定时长没有接收到包含该虚MAC地址的通 告报文,则确定该虚MAC地址被分配的原使用者发生故障,则最先确定该虚 MAC地址被分配的原使用者发生故障的路由设备接管使用该虚MAC地址。 为了防止多个路由设备同时对同 一虛MAC地址进行接管使用,更优地,-该路由i;还用于在通告报文中携带该路由设备使用该虚MAC地址的竟争优先级。此时,该路由设备还可以包括优先级比较单元608,用于在地址监听单 元607接收到的通告报文中所包含的虚MAC地址与地址使用单元606所使用 的虚MAC地址相同时,判断该路由设备使用该虚MAC地址的竟争优先级是否 大于通告报文中包含的竟争优先级,如果是,则控制地址使用单元606保持对 该虛MAC地址的使用,否则,控制地址使用单元606退出该虚MAC地址的使 用。更进一步地,为了防止发生故障的路由设备长时间不能恢复正常,而将故障的路由设备对应地所有客户端都转移到接管的路由设备上,并且将新分配了 故障路由设备所使用的虚MAC地址的客户端定向到该路由设备上,从而造成接管该虛MAC的路由设备长时间负担过重,因此,可以在该路由设备中设置 重定向定时器609、生存定时器610和到时通知单元611。重定向定时器609和生存定时器610,用于在地址使用单元606接收到接 管通知后启动。到时通知单元611,用于在重定向定时器609超时后,通知master路由设 备的应答发送单元不再将该虚MAC地址携带在地址解析响应中;在生存定时 器610超时后,在虚拟路由器中发送包含该虛MAC地址的释放报文以通告该 虚MAC地址不再使用。地址监听单元607,还用于接收其他路由设备发送的包含虛MAC地址的释 放报文,并停止对包含该虛MAC地址的通告报文进行监听。另外,master路由设备接收到包含该虚MAC地址的释放报文后,可以将 该MAC地址标识为未分配,该虚MAC地址可以继续参与按照负载均衡策略进 行的地址解析应答的回复。更优地,该路由设备还可以包括分配状态纟企查定时器612,用于在地址 分配单元604将分配的虚MAC地址携带在虚MAC分配应答报文中回复给发送 虛MAC分配请求报文的路由设备之后开始计时;地址监听单元607还可以用于在该路由设备为主用路由设备时,如果分配 状态检查定时器612达到设定时长仍没有监听到包含该分配的虚MAC地址的 通告才艮文,则通知地址分配单元604将该虛MAC地址标识为未分配。由以上描述可以看出,在本发明提供的方法和路由设备中,该虚拟路由 器包含多个路由设备,只需要在同一网段的各客户端配置同一虚IP地址作 为缺省网关IP地址,即为各客户端配置同一个虛拟路由器,而不需要针对 不同的客户端配置不同的虚拟路由器;并且,将多个路由设备配置为同一个 虛拟路由器即可,而不需要将多个路由设备配置为多个虚拟路由器且同一个 路由设备在不同虚拟路由器中的角色也不相同,显然简化了实现VRRP负载均衡的配置工作。另外,本发明在多个路由设备构成的一个虚拟路由器中,由选举出的master路由设备通过与各路由设备之间的报文交互为虚拟路由 器中的各路由设备分配虚MAC地址,并按照负载均衡策略将分配给各路由 设备的虚MAC地址回复给客户端,而不是通过将客户端固定分配给不同的 虚拟路由器来实现负载均衡,显然,本发明能够根据各路由设备实际的负载 状况实现动态的负载均衡,且不会导致客户端数目变化所引起的路由设备负 载不均衡的问题。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本 发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在 本发明保护的范围之内。
权利要求
1、一种实现虚拟路由器负载均衡的方法,其特征在于,该虚拟路由器包含多个路由设备,同一网段各客户端的缺省网关IP地址配置为该虚拟路由器的虚IP地址;该方法包括虚拟路由器中选举出的主用路由设备为自身分配虚MAC地址,并在接收到其他路由设备发送的虚MAC分配请求报文后,为所述其他路由设备分配不同的虚MAC地址,并通过地址应答报文发送给所述其他路由设备;所述主用路由设备接收到来自客户端的地址解析请求后,按照负载均衡策略,将分配给所述虚拟路由器中各路由设备的虚MAC地址携带在地址解析应答中回复给所述客户端,以供所述客户端利用接收到的虚MAC地址进行报文的发送。
2、 根据权利要求1所述的方法,其特征在于,该方法还包括当所述主用 路由设备发生故障时,其他各路由设备重新选举出一个主用路由设备。
3、 根据权利要求1所述的方法,其特征在于,所述选举出的主用路由设备 为自身分配虚MAC地址,并在接收到其他路由设备发送的虛MAC分配请求报 文后,为所述其他路由设备分配不同的虚MAC地址具体为所述选举出的主用路由设备在自身尚没有虚MAC地址时,从预先设置的 虛MAC地址范围内分配一个尚未分配的虚MAC地址给自身,在接收到其他路 由设备发送的虚MAC分配请求报文后,从所述虛MAC地址范围内分配一个尚 未分配的虚MAC地址给所述其他路由设备;或者,所述选举出的主用路由设备在自身尚没有虚MAC地址时,按照预设的报 文转发能力与虚MAC地址数目的对应关系,从尚未分配的虚MAC地址中分配 与自身的报文转发能力对应数目的虚MAC地址给自身,在接收到其他路由设 备发送的虚MAC分配请求报文后,按照预设的报文转发能力与虚MAC地址数 目的对应关系,从尚未分配的虚MAC地址中分配与发送虚MAC分配请求报文 的路由设备的报文转发能力对应数目的虚MAC地址给发送所述虚MAC分配请求报文的路由设备。
4、 根据权利要求1或3所述的方法,其特征在于,所述其他路由设备在尚没有虚MAC地址时循环发送所述虚MAC分配请求报文,直至接收到所述虚 MAC分配应^艮文;所述主用路由设备分配虛MAC地址给路由设备后,记录分配的虚MAC地 址和路由设备的对应关系,当多次接收到其他路由设备的虚MAC分配请求报 文时,仍将该发送虚MAC分配请求报文的^各由设备所对应的虚MAC地址分配 给该路由设备。
5、 根据权利要求1所述的方法,其特征在于,所述虚拟路由器中的路由设 备4皮分配了虚MAC地址后,开始^f吏用该虚MAC地址;其中,所述^f吏用该虚 MAC地址具体为承担目的MAC地址为该虛MAC地址的报文转发,且在该 路由设备处于正常状态时,在所述虛拟路由器中周期性地发送包含该路由设备 所使用虚MAC地址的通告报文。
6、 根据权利要求5所述的方法,其特征在于,所述主用路由设备分配虚 MAC地址给路由设备后,启动分配状态检查定时器,如果该分配状态检查定时 器达到设定时长仍没有接收到包含该虚MAC地址的通告报文,则所述主用路 由设备将该虚MAC地址标识为未分配。
7、 根据权利要求5所述的方法,其特征在于,所述虚拟路由器中的路由设 备接收到包含虚MAC地址的通告报文后,对包含该虚MAC地址的通告报文进 行监听,如果间隔设定时长没有接收到包含该虚MAC地址的通告报文,则接 管使用该虚MAC地址。
8、 根据权利要求7所述的方法,其特征在于,所述通告报文除了包含虛 MAC地址之外还包括发送该通告报文的路由设备使用该虚MAC地址的竟争 优先级;如果路由设备接收到的通告报文所包含的虚MAC地址与自身所使用的虛 MAC地址相同,则判断该路由设备自身使用该虚MAC地址的竟争优先级是否 大于通告报文中包含的竟争优先级,如果是,则保持该虚MAC地址的使用,否则,退出该虚MAC地址的使用。
9、 根据权利要求8所述的方法,其特征在于,路由设备使用虚MAC地址 的竟争优先级根据该路由设备的报文转发能力和当前使用的虚MAC地址数目确定。
10、 根据权利要求8或9所述的方法,其特征在于,确定所述路由设备使 用虚MAC地址的竟争优先级具体包括如果所述路由设备是主用路由设备所分配的该虚MAC地址的使用者,则 在该路由设备的报文转发能力大于设定的转发能力阈值的情况下,设置该路由 设备使用该虚MAC地址的竟争优先级为竟争优先级最大值,在该路由设备的 报文转发能力小于设定的转发能力阈值的情况下,设置该路由设备使用该虚 MAC地址的竟争优先级为竟争优先级最小值;如果该路由设备是该虚MAC地址的接管使用者,则设置该路由设备使用 该虚MAC地址的竟争优先级P为P = W/(C+1),其中,W为该路由设备的报文转发能力量化值,C为该路由设备当前所使用的虚MAC地址数量。
11、 根据权利要求7至IO任一权项所述的方法,其特征在于,该方法还包 括路由设备接管使用虚MAC地址后,启动重定向定时器,当重定向定时器 超时后,通知主用路由设备不再将该虚MAC地址携带在地址解析响应中。
12、 根据权利要求11所述的方法,其特征在于,该方法还包括路由设备 接管使用虚MAC地址后,启动生存定时器,当生存定时器超时后,在所述虚 拟路由器中发送包含该虚MAC地址的释放报文以通告该虚MAC地址不再使用;其他路由设备接收到包含该虚MAC地址的释放报文后,停止对包含该虚 MAC地址的通告报文进行监听;主用路由设备接收到包含该虚MAC地址的释 放报文后,将该虚MAC地址标识为未分配;其中,所述生存定时器的定时时长大于所述重定向定时器的定时时长
13、 根据权利要求1所述的方法,其特征在于,所述按照负载均衡策略,将分配给所述虚拟路由器中各路由设备的虚MAC地址携带在地址解析应答中具体包括所述主用路由设备按照固定的顺序依次选择已分S己给路由设备的虚 MAC地址携带在地址解析应答中;或者,所述主用路由设备将各路由设备的报文转发能力和/或当前负载状况作为 加权因素,选择已分配给路由设备的虚MAC地址携带在地址解析应答中。
14、 一种路由设备,其特征在于,多个该路由设备用于构成一个虚拟路由 器,且该虚拟路由器的虚IP地址配置为同 一网段各客户端的缺省网关IP地址; 该路由设备包括角色选举单元、请求接收单元和应答发送单元以及地址分配 单元或地址获取单元;所述角色选举单元,用于选举虚拟路由器中的主用路由设备; 所述地址分配单元,用于在所述角色选举单元选举出的主用路由设备为该路由设备时,为该路由设备分配虚MAC地址,并在接收到其他路由设备发送的虚MAC分配请求报文后,为所述其他路由设备分配不同的虚MAC地址,并通过地址应答报文发送给所述其他路由设备;所述地址获取单元,用于在所述角色选举单元选举出的主用路由设备不是该路由设备时,向主用路由设备发送虚MAC分配请求报文;接收主用路由设所述请求接收单元,用于在所述角色选举单元选举出的主用路由设备为该 路由设备时,接收来自客户端的地址解析请求;所述应答发送单元,用于在所述请求接收单元接收到所述地址解析请求后, 按照负载均衡策略,将分配给所述虚拟路由器中各路由设备的虚MAC地址携 带在地址解析应答中回复给所述客户端,以供所述客户端利用接收到的虚MAC 地址进行报文的发送。
15、 根据权利要求14所述的路由设备,其特征在于,所述地址分配单元在 所述角色选举单元选举出的主用路由设备为该路由设备时,如果该路由设备尚 没有虚MAC地址,则从预先设置的虚MAC地址范围内分配一个尚未分配的虚 MAC地址给该路由设备;在接收到其他路由设备发送的虚MAC分配请求报文后,从所述虛MAC地址范围内分配一个尚未分配的虛MAC地址给所述其他路 由设备;或者如果该路由设备尚没有虚MAC地址,则按照预设的报文转发能 力与虚MAC地址数目的对应关系,从尚未分配的虚MAC地址中分配与该路由 设备的报文转发能力对应数目的虚MAC地址给该路由设备,在接收到其他路 由设备发送的虚MAC分配请求报文后,按照预设的报文转发能力与虛MAC地 址数目的对应关系,从尚未分配的虚MAC地址中分配与发送虚MAC分配请求 报文的路由设备的报文转发能力对应数目的虚MAC地址> 并将分配的虚MAC 地址携带在虛MAC分配应答报文中回复给发送虚MAC分配请求报文的路由设 备。
16、 根据权利要求14所述的路由设备,其特征在于,所述地址获取单元, 还用于在该路由设备尚没有虚MAC地址时,循环发送所述虚MAC分配请求报 文,直至接收到所述虚MAC分配应答报文;所述地址分配单元,还用于分配虚MAC地址给其他路由设备后,记录分 配的虚MAC地址和该其他路由设备的对应关系,当多次接收到该其他路由设 备的虛MAC分配请求报文时,仍将该发送虚MAC分配请求报文的路由设备对 应的虛MAC地址分配给该发送虚MAC分配请求报文的路由设备。
17、 根据权利要求14至16任一权项所述的路由设备,其特征在于,该路 由设备还包括地址使用单元,用于在该路由设备被分配了虚MAC地址后, 开始使用该虚MAC地址;接收到所述地址监听单元发送的接管通知后,使用 该接管通知中包含的虚MAC地址;其中,使用虛MAC地址具体为承担目的MAC地址为该虚MAC地址的 报文转发,且在该路由设备处于正常状态时,在所述虚拟路由器中周期性地发 送包含该路由设备所使用虚MAC地址的通告报文。
18、 根椐权利要求17所述的路由设备,其特征在于,该路由设备还包括 地址监听单元,用于接收到其他路由设备发送的携带虚MAC地址的通告报文 后,对包含该虚MAC地址的通告报文进行监听,如果间隔设定时长没有接收 到包含该虚MAC地址的通告报文,则向所述地址使用单元发送包含该虛MAC的接管通知。
19、 根据权利要求17所述的路由设备,其特征在于,所述地址使用单元, 除了在所述通告报文中包含该路由设备所使用虚MAC地址之外,还用于在所 述通告报文中携带该路由设备使用该虚MAC地址的竟争优先级;该路由设备还包括优先级比较单元,用于在所述地址监听单元接收到的同时,判断该路由设备使用该虚MAC地址的竟争优先级是否大于通告报文中 包含的竟争优先级,如果是,则控制所述地址使用单元保持对该虚MAC地址 的使用,否则,控制所述地址使用单元退出该虚MAC地址的使用。
20、 根据权利要求17所述的路由设备,其特征在于,该路由设备还包括 重定向定时器和到时通知单元;所述重定向定时器,用于在所述地址使用单元接收到所述接管通知后启动; 所述到时通知单元,用于在所述重定向定时器超时后,通知主用路由设备 的应答发送单元不再将该虚MAC地址携带在地址解析响应中。
21、 根据权利要求20所述的路由设备,其特征在于,该路由设备还包括、 生存定时器,用于在所述地址使用单元接收到所述接管通知后启动;所述到时通知单元,还用于在所述生存定时器超时后,在所述虚拟路由器,滋所述地址监听单元,还用于接收其他路由设备发送的包含虚MAC地址的 释放报文,并停止对包含该虚MAC地址的通告报文进行监听
22、 根据权利要求17所述的路由设备,其特征在于,该路由设备还包括 分配状态检查定时器,用于在所述地址分配单元将分配的虚MAC地址携带在 虚MAC分配应答报文中回复给发送虚MAC分配请求报文的路由设备之后开始计时;所述地址监听单元,还用于在该路由设备为主用路由设备时,如果所述分配状态检查定时器达到设定时长仍没有监听到包含所述分配的虚MAC地址的 通告才艮文,则通知所述地址分配单元将该虚MAC地址标识为未分配。
全文摘要
本发明提供了一种实现虚拟路由器冗余协议(VRRP)负载均衡的方法和路由设备,其中,该虚拟路由器包含多个路由设备,同一网段各客户端的缺省网关IP地址配置为该虚拟路由器的虚IP地址,方法包括虚拟路由器中选举出的主用路由设备为自身分配虚MAC地址,并在接收到其他路由设备发送的虚MAC分配请求报文后,为其他路由设备分配不同的虚MAC地址,并通过地址应答报文发送给其他路由设备;接收到来自客户端的地址解析请求后,按照负载均衡策略,将分配给该虚拟路由器中各路由设备的虚MAC地址携带在地址解析应答中回复给该客户端。从而简化VRRP的配置和实现动态的VRRP负载均衡。
文档编号H04L12/56GK101404621SQ200810227138
公开日2009年4月8日 申请日期2008年11月24日 优先权日2008年11月24日
发明者甘长华, 邱元香, 郑艳涛 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1