本发明涉及网络通信技术,尤其涉及一种实现虚拟路由冗余协议(VRRP,VirtualRouterRedundancyProtocol)负载均衡的方法和路由设备。
背景技术:
:在实现客户端与外部网络通信时,通常为同一网段内的所有客户端设置同一缺省网关,即配置以同一网关为下一跳的缺省路由,客户端发往其他网段的报文将通过该缺省路由发往下一跳的网关,再由网关进行转发,然而当网关出现故障时,本网段内所有以该网关为缺省路由的客户端将无法与外部网络进行通信。缺省路由虽然为用户的配置操作提供了方便,但是对网关提出了很高的稳定性要求,增加出口网关是提高系统可靠性的常见方法,此时,如何在多个出口之间进行选路就成为需要解决的问题。逐渐发展起来的VRRP是用于解决多个出口之间如何进行选路的容错协议,其在提高可靠性的同时,简化了客户端的配置。标准的VRRP是将多个具有网关功能的路由设备组成一台虚拟路由器,该虚拟路由器中的多个路由设备按照VRRP的选举机制选举出一个作为主用(master)路由设备负责流量转发,其他作为备用(backup)路由设备负责对master路由设备进行监听,在监听到master路由设备出现故障时,重新选举master路由设备。虽然这种方式提高了系统可靠性,但是,虚拟路由器中的多个路由设备只有主路由设备负责流量转发,显然在路由设备资源和网络带宽上都存在浪费。为了解决上述资源和带宽浪费的问题,现有技术提供了一种实现VRRP负载均衡的方法。该方法包括:虚拟路由器包含多个路由设备,同一网段各客户端的缺省网关IP地址配置为该虚拟路由器的虚IP地址;虚拟路由器中选举出的主用路由设备为自身分配虚MAC地址,并在接收到其他路由设备发送的虚MAC分配请求报文后,为所述其他路由设备分配不同的虚MAC地址,并通过地址应答报文发送给所述其他路由设备;所述主用路由设备接收到来自客户端的地址解析请求后,按照负载均衡策略,将分配给所述虚拟路由器中各路由设备的虚MAC地址携带在地址解析回应报文中回复给所述客户端,以供所述客户端利用接收到的虚MAC地址进行报文的发送。上述实现VRRP负载均衡的方法至少存在以下的缺点:由于master路由设备直接回应非本设备关联的客户端地址解析请求,可能会导致二层交换机的MAC表出接口映射错误。技术实现要素:本发明的实施例提供一种实现虚拟路由冗余协议(VRRP,VirtualRouterRedundancyProtocol)负载均衡的方法和路由设备,用以解决现有技术中由于master路由设备直接回应非本设备关联的客户端地址解析请求,从而导致的二层交换机的MAC表出接口映射错误的问题。为达到上述目的,本发明的实施例采用如下技术方案:第一方面,本发明实施例提供了一种实现虚拟路由冗余协议VRRP负载均衡的方法,应用于包含多个路由设备的虚拟路由器,所述虚拟路由器具有一个虚IP地址,同一网段各客户端的缺省网关IP地址配置为所述虚IP地址,该方法包括:在所述虚拟路由器中,选举出一个主用路由设备,其他路由设备为备用路由设备;所述主用路由设备为自身以及所述虚拟路由器中的至少一个备用路由设备分配不同的转发MAC地址,并将所述分配的结果通过通告报文进行广播;所述主用路由设备接收到来自客户端的地址解析请求报文后,按照负载均衡策略,为所述客户端关联具有转发MAC地址的路由设备,并将所述关联的结果通过通告报文进行广播;与所述客户端关联的路由设备经由交换机向所述客户端发送自身的转发MAC地址,以便所述客户端根据接收到的转发MAC地址发送上行数据。可选的,所述为所述客户端关联具有转发MAC地址的路由设备包括:所述主用路由设备在关联表中建立所述客户端的关联表项,所述客户端的关联表项包括:所述客户端的标识、与所述客户端关联的路由设备的转发MAC地址;所述将所述关联的结果通过通告报文进行广播包括:将所述关联表中的信息通过通告报文进行广播。可选的,所述按照负载均衡策略,为所述客户端关联具有转发MAC地址的路由设备包括:所述主用路由设备根据所述关联表,选取关联客户端数量最少的一个具有转发MAC地址的路由设备,以关联所述客户端;或者,若所述客户端属于静态关联策略中的客户端,所述静态关联策略用于为至少一个客户端静态指定路由设备,则所述主用路由设备按照所述静态关联策略为所述客户端静态关联路由设备;否则,所述主用路由设备根据所述关联表,选取关联动态客户端数量最少的一个具有转发MAC地址的路由设备,所述动态客户端为不属于所述静态关联策略中的客户端。可选的,该方法还包括:所述主用路由设备统计各个具有转发MAC地址的路由设备的负载流量;所述按照负载均衡策略,为所述客户端关联具有转发MAC地址的路由设备包括:所述主用路由设备选取负载流量最少的一个具有转发MAC地址的路由设备,以关联所述客户端。可选的,在所述主用路由设备接收到来自客户端的地址解析请求报文后,所述方法还包括:所述主用路由设备在客户端记录表中建立所述客户端的条目,所述客户端的条目用于记录所述客户端的标识,并为所述客户端设置超时时间;在所述超时时间内,若所述主用路由设备接收到所述客户端再次发送的地址解析请求报文,则对所述客户端的超时时间进行重置;若所述超时时间已到,所述主用路由设备未接收到所述客户端再次发送的地址解析请求报文,则删掉所述客户端的条目或将所述客户端的条目置为无效。可选的,所述方法还包括:当所述删掉所述客户端的条目或将所述客户端的条目置为无效后,所述主用路由设备按照负载均衡策略,重新建立所述客户端记录表中的各客户端与具有转发MAC地址的路由设备的关联。可选的,所述主用路由设备为至少一个备用路由设备分配不同的转发MAC地址包括:所述备用路由设备向所述主用路由设备发送协商请求,所述协商请求用于指示所述备用路由设备期望分配到的转发MAC地址,所述期望分配到的转发MAC地址包括:所述备用路由设备的实MAC地址、和/或至少一个虚MAC地址;所述主用路由设备在接收到所述备用路由设备发送的协商请求后,根据所述协商请求从预先设置的虚MAC地址范围内分配一个尚未分配、且满足所述协商请求的虚MAC地址给所述备用路由设备,或者,根据所述协商请求将所述备用路由设备的实MAC地址作为所述备用路由设备的转发MAC地址。可选的,所述与所述客户端关联的路由设备经由交换机向所述客户端发送自身的转发MAC地址包括:所述与所述客户端关联的路由设备在收到包含所述关联的结果的通告报文后,立即以单播方式经由交换机向所述客户端发送地址通告报文,所述地址通告报文中携带该路由设备自身的转发MAC地址;若所述与所述客户端关联的路由设备收到所述客户端再次发送的地址解析请求报文,则该路由设备经由交换机向所述客户端发送地址解析回应报文,所述地址解析回应报文中携带该路由设备自身的转发MAC地址。可选的,所述方法还包括:当与所述客户端关联的路由设备发生改变时,则该改变后的路由设备立即以单播方式经由交换机向所述客户端发送地址通告报文,所述地址通告报文中携带该路由设备自身的转发MAC地址。可选的,所述通告报文包括:描述信息和数据内容,所述描述信息包含序列号;所述方法还包括:在所述主用路由设备收到备用路由设备发送的包含第一序列号的描述信息后,判断所述第一序列号与所述主用路由设备本地存储的第二序列号是否一致,若不一致,则将包含本地存储的数据内容以及包含第三序列号的描述信息的通告报文发送至所述备用路由设备,所述第三序列号大于所述第一序列号;或者,在所述备用路由设备收到包含第四序列号的通告报文后,将所述第四序列号与所述备用路由设备本地存储的第五序列号进行比较,若第四序列号大于所述第五序列号,则存储所述第四序列号的通告报文。第二方面,本发明实施例提供了一种路由设备,多个所述路由设备用于构成一个虚拟路由器,所述虚拟路由器具有一个虚IP地址,同一网段各客户端的缺省网关IP地址配置为所述虚IP地址,该路由设备包括:角色选举单元、分配单元、接收单元、关联单元、发送单元;所述角色选举单元,用于在所述虚拟路由器中,选举出一个主用路由设备,其他路由设备为备用路由设备;所述分配单元,用于在角色选举单元选举出的主用路由设备为所述路由设备时,为自身以及所述虚拟路由器中的至少一个其他路由设备分配不同的转发MAC地址,并将所述分配的结果通过通告报文进行广播;所述接收单元,用于当角色选举单元选举出的备用路由设备为所述路由设备时,接收所述分配的结果,所述分配的结果用于在所述路由设备被分配了转发MAC地址后,配置所述转发MAC地址;所述接收单元,还用于接收来自客户端的地址解析请求报文;所述关联单元,用于在角色选举单元选举出的主用路由设备为所述路由设备时,所述接收单元接收到来自客户端的地址解析请求报文后,按照负载均衡策略,为所述客户端关联具有转发MAC地址的路由设备,并将所述关联的结果通过通告报文进行广播;所述接收单元,还用于当角色选举单元选举出的备用路由设备为所述路由设备时,接收所述关联的结果;所述发送单元,用于在与所述客户端关联的路由设备为所述路由设备时,经由交换机向所述客户端发送自身的转发MAC地址,以便所述客户端根据接收到的转发MAC地址发送上行数据。本发明实施例提供了一种实现虚拟路由冗余协议VRRP负载均衡的方法和一种路由设备。应用于包含多个路由设备的虚拟路由器,在虚拟路由器中,选举出一个master路由设备,其他路由设备为backup路由设备;master路由设备为自身以及虚拟路由器中的至少一个backup路由设备分配不同的转发MAC地址,并将分配的结果通过通告报文进行广播;master路由设备接收到来自客户端的地址解析请求报文后,按照负载均衡策略,为客户端关联具有转发MAC地址的路由设备,并将关联的结果通过通告报文进行广播。即虚拟路由器中的的多个路由器都具有转发MAC地址,都可以进行报文的转发。与客户端关联的路由设备向客户端发送自身的转发MAC地址,以便客户端根据接收到的转发MAC地址发送上行数据。master路由设备/backup路由设备独立回应其关联客户端的地址解析请求。现有技术中master路由设备将各路由设备的虚MAC地址携带在地址解析回应报文中回复给所属客户段,容易导致二层交换机的MAC表出接口映射错误的问题。与现有技术相比,本发明实施例中是与客户端关联的路由设备(master/backup)向客户端发送自身的转发MAC地址,从而可以解决上述问题。附图说明为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例提供的网络架构图;图2为本发明实施例提供的实现VRRP负载均衡方法的流程图;图3为本发明实施例提供的邻居与角色竞选的示意图;图4为本发明实施例提供的协商转发MAC地址的示意图;图5为本发明实施例提供的master建立客户端条目示意图;图6为本发明实施例提供的master发布路由设备与客户端的关联信息示意图;图7为本发明实施例提供的路由设备向关联客户端发送单播地址通告报文示意图;图8为本发明实施例提供的关联路由设备独立回应PC1地址解析回应报文示意图;图9为本发明实施例提供的关联路由设备独立回应PC2地址解析回应报文示意图;图10为本发明实施例提供的负载均衡的改进VRRP协议使用场景示意图之一;图11为本发明实施例提供的路由设备故障后切换关联路由设备示意图;图12为本发明实施例提供的负载均衡的改进VRRP协议使用场景示意图之二;图13为本发明实施例提供的路由设备的框图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明实施例中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本发明实施例中字符“/”,一般表示前后关联对象是一种“或”的关系。为了便于清楚描述本发明实施例的技术方案,在本发明的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分,本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定。在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。实施例一本发明实施例提供的实现VRRP负载均衡的方法应用于包含多个路由设备的虚拟路由器,在虚拟路由器中,选举出一个master路由设备,其他路由设备为backup路由设备;master路由设备为自身以及虚拟路由器中的至少一个backup路由设备分配不同的转发MAC地址,并将分配的结果通过通告报文进行广播;master路由设备接收到来自客户端的地址解析请求报文后,按照负载均衡策略,为客户端关联具有转发MAC地址的路由设备,并将关联的结果通过通告报文进行广播;与客户端关联的路由设备向客户端发送自身的转发MAC地址,以便客户端根据接收到的转发MAC地址发送上行数据。现有技术中master路由设备将各路由设备的虚MAC地址携带在地址解析回应报文中回复给所属客户段,容易导致二层交换机的MAC表出接口映射错误的问题。与现有技术相比,本发明实施例中是与客户端关联的路由设备(master/backup)向客户端发送自身的转发MAC地址,从而可以解决上述问题。首先对本发明实施例提到的几个名词进行说明:1、虚IP地址:虚拟路由器具有一个虚IP地址,同一网段各客户端的缺省网关IP地址配置为所述虚IP地址,虚IP地址需与接口的主辅地址使用相同网段,当路由设备处于有效转发状态后(Master为其分配了转发MAC地址)后,虚IP地址都应被加入辅地址中。2、地址解析请求报文、地址解析回应报文、地址通告报文:其中,在IPv4中地址解析请求报文可以是ARP请求报文,地址解析回应报文可以是ARP回应报文,地址通告报文可以是以单播方式发送的免费ARP报文,客户端利用接收到的转发MAC地址构建ARP表项后,利用该ARP表项进行报文的发送;在IPv6中,地址解析请求报文可以是邻居请求(NS,NeighborSolicaitations)报文,地址解析回应报文可以是邻居通告(NA,NeighborAdvertisements)报文,地址通告报文可以是以单播方式发送的邻居通告(NA,NeighborAdvertisements)报文;客户端利用接收到的转发MAC地址构建ND表项后,利用该ND表项进行报文的发送。在以下描述中以IPv4为例。3、hello报文和通告报文是任意两种格式不同、可以互相区分的报文,且是本发明实施例根据实际需要重新定义的新的协议报文。4、出接口映射表:交换机接收到会建立一个转发MAC地址的出接口映射表,用于虚拟局域网(VirtualLocalAreaNetwork,VLAN)内复制转发单播报文查该出接口映射表获得出接口,若出接口错误,报文传输将会中断。该出接口映射表的表项由发送到交换机的报文源MAC地址决定和维持。下面结合具体实施例对上述方法进行详细描述。以图1所示网络架构为例,客户端PC1和客户端PC2为同一网段的两个客户端,路由设备R1、路由设备R2和路由设备R3是作为网络出口的三个路由器,路由设备和客户端之间采用二层的交换机进行连通。在本发明实施例中,将路由设备R1、路由设备R2和路由设备R3仅构成一个虚拟路由器,为该虚拟路由器配置一个虚IP地址,并且,同一网段的所有客户端可以采用相同的配置即将该虚拟IP地址配置为所有客户端的缺省网关IP地址,也就是说,客户端PC1和客户端PC2都向同一个虚拟路由器发送ARP请求。需要说明的是,在实际网络中客户端可以有多个,虚拟路由器中包含的路由设备也可以有多个,在本发明实施例中,仅以包含两个客户端、一个交换机以及由三个路由设备构成的一个虚拟路由器组成的网络为例。参考图2所示,该方法的具体步骤包括:S101(可选的)、邻居建立与维护。在本发明实施例中Hello报文用于建立与维护该虚拟路由器中的各路由设备相互之间的邻居关系,如果一路由设备接收到邻接路由设备发送的Hello报文后会建立或更新邻居。具体为:建立邻居可以是当虚拟路由器刚构建时,其中的路由设备会互相发送Hello报文,建立相互之间的邻居关系,也可以是一路由设备第一次接收到某一邻接设备的Hello报文,则会建立与该邻接设备的邻居关系。当邻居关系建立之后,路由设备会启动活跃(Active)定时器对其邻居周期性发送的hello报文进行监听,当间隔设定时长(大于该邻居发送hello报文的周期)没有接收到该邻居发送的hello报文,则确定该邻居失效,删除该邻居。不同的路由设备启动的Active定时器的设定时长可以相同,也可以不同。S102、路由设备角色选举。在该虚拟路由器中需要选举一个master路由设备,则其他路由设备为backup路由设备。具体的,路由设备发送的Hello报文中携带其优先级属性和对master声明,这些可以用于角色竞选。其中路由设备的优先级属性是VRRP协议中已定义的该路由设备的VRRP优先级。master声明是当某一路由设备认为其可以是master路由设备时,会发送master声明。选举的优选原则为优先级属性大的作为master路由设备,若优先级属性相同则源地址(接口主地址)大的设备作为master路由设备,选举采用非抢占式的方式进行,即是如果某台路由设备已经声明自己为master路由设备,那么只要master路由设备没有出现故障,该虚拟路由器中的路由设备始终保持主用或备用状态,该虚拟路由器中的backup路由设备即使随后被配置了更高的优先级也不会成为master路由设备。也就是说,该选举发生的状况只有两种,一种是虚拟路由器刚构建时,另一种是master路由设备发生故障时,其他作为backup路由设备需要重新选举出一个运行正常的路由设备作为master路由设备,接管原有master路由设备的工作。被选举为master路由设备的设备会发送通告报文,通知该虚拟路由器内的其他路由设备自己工作正常。选举的具体步骤为:优先从声明自己为master路由设备的邻居中(包括选举执行者)竞选出最优者当选master路由设备。若未能竞选出master路由设备,再从未声明自己为master路由设备且优先级不为0的邻居中(包括选举执行者)竞选出最优者当选master路由设备。示例的,如图3所示,运行本协议的设备之间相互建立邻居关系之后,选举出master/backup路由设备。其中R1优先级为40,R2为20,R3为10,根据优先级的原则,R1成为master路由设备,R2、R3成为backup路由设备。S103、分配转发MAC地址。主用路由设备为自身以及虚拟路由器中的至少一个备用路由设备分配不同的转发MAC地址,并将分配的结果通过通告报文进行广播。具体的,各路由设备为了要实现对客户端报文的转发,其上需要配置转发MAC地址。转发MAC地址是虚拟网关的MAC地址,其与虚IP地址相对应。需要说明的是:在不考虑备份机制的前提下,每个虚拟路由器中的每台路由设备仅使用唯一的一个转发MAC地址。如果考虑备份机制(此时一般为虚MAC地址),那么每台路由设备可以配置多个转发MAC地址,包括主用MAC地址和备份MAC地址。在本发明实施例中以不考虑备份机制为例。转发MAC地址可以使用虚MAC地址也可以使用实MAC地址。实MAC地址是路由设备的真实MAC地址,只能分给拥有该实MAC地址的路由设备;虚MAC地址是动态分配的,可以分配给任一个可用该虚MAC地址的路由设备。在本发明实施例中虚MAC地址定义为00:01:7a:00:组ID:MID,其中组ID取值范围是1~255(0x01~0xff),MID取值范围是1~255(0x01~0xff,0无效)。不论何种场景,需要保证虚MAC地址段内不会与现有设备的实MAC地址产生冲突。若当路由设备被分配到MID为0的虚MAC地址或全0的实MAC地址,表明该路由设备不需承担转发任务。下面将介绍有关转发MAC地址的分配。先介绍分配转发MAC地址的规则为:1)由master路由设备执行转发MAC地址的分配;2)只为未分配转发MAC的设备分配;3)优先满足高优先级设备的协商请求;4)从低地址到高地址顺序处理请求地址区间;5)无法分配转发MAC地址的设备,不承担转发任务;6)不改变已分配的转发MAC地址的拥有者。其中,无法分配转发MAC地址是指没有分配到转发MAC地址,或该设备故障不能分配。不改变已分配的转发MAC地址的拥有者指的是master路由设备进行转发MAC地址的分配后,会记录分配的转发MAC地址和backup路由设备的对应关系,当多次接收到该backup路由设备的携带协商请求的hello报文时,会将同一个虚MAC地址分配给该backup路由设备,但若master路由设备探测到该backup路由设备故障,则会按照负载均衡策略及时将该转发MAC地址分配给其他路由设备,以使正在使用该转发MAC地址的客户端能够尽快正常转发报文。master路由设备负责分配该虚拟路由器中所有路由设备的转发MAC地址。路由设备一旦转换成为master路由设备,如果自身尚没有被分配转发MAC地址,则在预先设置的转发MAC地址范围内分配一个尚未使用的转发MAC地址给自身。另外,backup路由设备如果没有被分配转发MAC地址,backup路由设备向master路由设备发送协商请求,协商请求用于指示backup路由设备期望分配到的转发MAC地址,期望分配到的转发MAC地址包括:backup路由设备的实MAC地址、和/或至少一个虚MAC地址;master路由设备在接收到所述备用路由设备发送的协商请求后,根据协商请求从预先设置的虚MAC地址范围内分配一个尚未分配、且满足协商请求的虚MAC地址给备用路由设备,或者,根据协商请求将backup路由设备的实MAC地址作为该backup路由设备的转发MAC地址。master路由设备完成转发MAC地址的分配后,会将分配的结果通过通告报文进行广播。优选的master路由设备会建立一个转发MAC地址表,每次分配转发MAC地址结束后会更新该转发MAC地址表,并将其存储到通告报文中发送出去。其他backup路由器收到通告信息,进行转发MAC地址配置,承担起目的MAC地址为该转发MAC地址的报文的转发。示例的,如图4所示,backup路由设备(R2)向master路由设备(R1)发送协商请求,期望将00:01:7a:00:01:01或00:01:7a:00:01:02作为其转发MAC地址,backup(R3)路由设备向master路由设备(R1)发送协商请求,期望将00:01:7a:00:01:02或00:01:7a:00:01:03作为其转发MAC地址,R1本身期待使用00:01:7a:00:01:01作为其转发MAC地址。那么根据协商请求分配,并结合高优先级的设备先分配,低请求地址先处理的原则,最后协商后的转发MAC表如表1所示,R1将表一通过通告报文广播出去。表1转发MAC地址(forwardMAC)状态(state)拥有者(Owner)00:01:7a:00:01:01(已建立)Established路由设备R100:01:7a:00:01:02(已建立)Established路由设备R200:01:7a:00:01:03(已建立)Established路由设备R3需要说明的是,通告报文丢失或来不及处理该通告报文都可能使得某些backup路由设备获取不到master路由设备为其分配的转发MAC地址,为了保证backup路由设备能够获取到该转发MAC地址,在本发明实施例中,通过比较backup路由设备发送的hello报文携带的通告报文的描述信息和master路由设备发送的通告报文的描述信息来实现分配转发MAC地址结果的同步,从而可以保证各backup路由设备能够获取到master路由设备为其分配的转发MAC地址。具体同步过程可以参考步骤S106的描述。S104(可选的)、客户端条目的建立与维护。相比于现有技术中的轮询负载均衡策略,很多时候如若某正常工作的路由设备突然故障或客户端下线等情况都不能真正做到负载均衡。为了能改善现有技术存在的上述问题,本发明实施例提供了粒度更细的负载均衡策略,master路由设备通过记录客户端状态以及统计各路由设备的流量信息等来实现更好的负载均衡策略。在本发明实施例中,master路由设备建立与客户端的弱连接,弱连接即是当master路由设备接收到客户端的ARP请求报文之后,通过建立客户端的条目来记录客户端的状态,而且客户端的条目建立以后master路由设备还会对其进行维护。在本发明实施例中,弱连接不是真正使master路由设备和PC之间形成连接关系,而是只在master路由设备一端建立并维护客户端的状态信息。具体的,建立客户端的条目:master路由设备接收到来自客户端的地址解析请求报文后,在客户端记录表中建立客户端的条目,客户端的条目用于记录客户端的标识,并为客户端设置超时时间。其中客户端的标识可以是客户端的名称;也可以是客户端的地址信息,如IP地址、MAC地址、组ID(网关虚IP地址)等。超时时间用于指示客户端的请求是否过时。客户端的条目可以用于后续按照负载均衡策略执行转发MAC地址的分配。示例的,如图5所示,当客户端PC1,PC2需要有数据发送时,客户端的本地ARP表并未建立,将会发送广播的ARP请求报文,Master接收到此请求之后,在客户端记录表中建立客户端的条目,如表2所示,并设置超时时间:表2接口名(InterfaceName)状态(State)客户端(Host)超时时间(Timer)PortXValidPC1xx:xx:xxPortXValidPC2xx:xx:xx需要说明的是,客户端的条目的定时时间要大于客户端本地ARP表的老化时间。维护客户端记录表:表项建立后,需要根据客户端的ARP请求进行客户端的条目的保持时间的重置刷新。具体的在超时时间内,若master路由设备接收到客户端再次发送的ARP请求报文,则对客户端的超时时间进行重置,重置即将超时时间刷新为最大值。表项老化后,将根据负载均衡策略进行客户端关联负载的重新调整。具体的若超时时间已到,master路由设备未接收到客户端再次发送的ARP请求报文,则说明该条客户端的条目老化,删掉客户端的条目或将客户端的条目置为无效。master路由设备未接收到客户端再次发送的ARP请求报文,可能是因为客户端下线、故障等合理原因。当删掉所述客户端的条目或将客户端的条目置为无效后,master路由设备按照负载均衡策略,重新建立客户端记录表中的各客户端与具有转发MAC地址的路由设备的关联。当一客户端的条目老化后,可能会导致网络中的负载不再均衡,此时master路由设备会按照根据负载均衡策略对客户端记录表中记录的活跃的客户端与路由设备的关联关系进行调整。需要说明的是,此处的调整的原则是尽量少的改变已有的客户端与路由设备的关联关系。若master路由设备根据客户端的条目和客户端关联表项分析出负载不均衡,则将关联客户端数量最多的路由设备的一个关联客户端调整给关联客户端数量最少的路由设备,直到每个拥有有效转发MAC地址的路由设备尽量分配相同数量的客户端(客户端数量差值不能大于1)。示例的,假设现在master路由设备在户端记录表中建立了4条客户段的条目,分别是客户端A的条目、客户端B的条目、客户端C的条目和客户端D的条目,同时客户端A和客户端B关联路由设备A、客户端C关联路由设备B、客户端D关联路由设备C。但在客户端C的条目设定的超时时间内,master路由设备未收到客户端C发送的ARP请求,则客户端C的条目老化,master路由设备从户端记录表中删除该条目,同时客户端C与路由设备B的关联关系也不存在了。此时负载不均衡,则master路由设备将调整客户端关联关系,使客户端B重新关联路由设备B,其他关联关系不变。也即新的关联关系为客户端A关联路由设备A、客户端B关联路由设备B、客户端D关联路由设备C,达到负载均衡。S105、按照负载均衡策略,给客户端关联路由设备。master路由设备接收到来自客户端的地址解析请求报文后,按照负载均衡策略,为客户端关联具有转发MAC地址的路由设备,并将关联的结果通过通告报文进行广播。优选的,为了能够很好的记录客户端与路由设备的关联关系,master路由设备在关联表中建立客户端的关联表项,客户端的关联表项包括:客户端的标识、与客户端关联的路由设备的转发MAC地址,也可以包括其他信息,如状态信息等,此处不做限制。当master路由设备建好关联表项后,将关联表中的信息通过通告报文进行广播,已通知backup路由设备其关联客户端信息。示例的,R1根据简单均衡策略进行客户端关联,关联表如表3所示:表3如图6所示,R1将关联表中的关联信息通告在报文中发送给Backup设备,包括自己在内的所有设备应用该关联表中的关联表项。其中,负载均衡策略包括:可选的,可以是简单均衡负载策略,即master路由设备根据关联表,选取关联客户端数量最少的一个具有转发MAC地址的路由设备,以关联客户端。具体的,简单均衡负载策略的分配方式,即是为每个拥有转发MAC地址的网关设备关联相同数量的客户端。简单均衡负载策略的原则为:由master路由设备执行为客户端关联网关设备,使每个拥有有效转发MAC地址的路由设备尽量关联相同数量的客户端(客户端数量差值不能大于1)。客户端关联的路由设备的转发MAC地址必须处于有效状态,若客户端关联的路由设备的转发MAC地址处于无效状态,那么必须使客户端重新关联路由设备。例如若有4客户端,3个拥有有效转发MAC的设备,那么每个设备至少分配一个客户端,多出的客户端随机分配到任意设备。可选的,可以是混合均衡负载策略,即是静态关联策略和简单均衡负载策略的方式混合。若客户端属于静态关联策略中的客户端,静态关联策略用于为至少一个客户端静态指定路由设备,则主用路由设备按照静态关联策略为客户端静态关联路由设备;否则,主用路由设备根据关联表,选取关联动态客户端数量最少的一个具有转发MAC地址的路由设备,动态客户端为不属于所述静态关联策略中的客户端。具体的混合均衡负载策略的原则是:优先分配静态指定的关联关系;不计采用静态关联策略的客户端,为每个拥有有效转发MAC地址的设备分配相同数量的客户端(拥有客户端数量差值不能大于1);客户端关联设备的转发MAC须处于有效状态,否则依赖的客户端须进行重新分配。例如若有4客户端,分别为客户端A、客户端B、客户端C和客户端D,3个拥有有效转发MAC的设备,分别为master路由设备1、路由设备2和路由设备3,其中客户端A静态指定由路由设备2关联。那么此时要采取混合均衡负载策略,master路由设备1优先分配客户端A关联路由设备2;不计客户端A,还有3个客户端,然后master路由设备1按照简单均衡负载策略,将3个客户端平均分配给路由设备1、路由设备2和路由设备3。当又有新的非静态指定关系的客户端E需要关联路由设备时,可以将其分给3各路由设备中的任一个路由设备。可选的,可以是扩展的流量均衡负载策略。主用路由设备统计各个具有转发MAC地址的路由设备的负载流量,主用路由设备选取负载流量最少的一个具有转发MAC地址的路由设备,以关联客户端。具体的,流量均衡策略目的在于使得每台网关设备的负载流量保持均衡,属于粒度更细的负载控制。master路由设备完成分配客户端关联后,路由设备负责关联客户端的流量转发并进行流量统计,可获知每个客户端的通过流量对于带宽的消耗,将此统计信息将写入Hello报文中反馈给Master路由设备,master路由设备收到流量统计后,采用流量均衡的方式分配客户端,分配策略如下:以客户端为单位为拥有有效转发MAC地址的设备尽量分配的流量相同。即可以是当一个新的客户端需要关联路由设备时,master路由设备选取负载流量最少的一个具有转发MAC地址的路由设备,以关联该客户端;也可以是当master路由设备通过对各路由设备的流量统计和分析后得到负载流量不均衡,按照负载流量策略并计算后将客户端与路由设备的关联关系进行调整后,调整原则也是尽量少的改变已有的关联关系。在本发明实施例中,master路由设备按照负载均衡策略,将客户端关联路由设备主要有以下三种情况:第一种,master路由设备接收到新的客户端的ARP请求并建立该客户端的条目之后,具体的参照S105的上述描述;第二种,如步骤S104中master路由设备在对客户端的记录表的维护过程中,当删掉某一客户端的条目或将客户端的条目置为无效后,具体的参照S104的描述;第三种,当与客户端关联的路由设备故障时,具体的参照S106的描述。在实际网络中还可能有其他情况导致负载不均衡,也可以按照本发明实施例提供的方法,在此不再赘述。S106、与客户端关联的路由设备独立回应客户端所需的转发MAC地址。与客户端关联的路由设备经由交换机向客户端发送自身的转发MAC地址,以便客户端根据接收到的转发MAC地址发送上行数据。与所述客户端关联的路由设备在收到包含关联的结果的通告报文后,立即以单播方式经由交换机向客户端发送地址通告报文中携带该路由设备自身的转发MAC地址。若与客户端关联的路由设备收到客户端再次发送的地址解析请求报文,则该路由设备经由交换机向客户端发送地址解析回应报文,该地址解析回应报文中携带该路由设备自身的转发MAC地址。具体的,当步骤S105中master路由设备将存有关联表项的关联表通过通告报文广播之后,包括在内的所有路由设备应用该关联关系。一旦关联关系确定,master路由设备就向其关联的客户端发送携带其转发MAC地址的单播的ARP报文;backup路由设备就向其关联的客户端发送携带其转发MAC地址的单播的ARP报文。以便客户端能及时收到其关联路由设备的转发MAC地址,建立ARP表,并使用该转发MAC地址传送报文。但是如果客户端未收到或不接受该单播的ARP报文,又或者客户端建立的ARP表老化(超过设定时间),那么客户端将会重新发送ARP请求报文,当其关联路由设备(master路由设备或backup路由设备)收到该ARP请求报文之后,则会向该客户端发送转发MAC地址的ARP回应报文,以便该客户端能收到该ARP回应报文后,建立ARP表,并使用该转发MAC地址传送报文。在实际的网络通讯中,(master/backup)路由设备故障或客户端下线导致负载不均衡等情况下就需要改变客户端与路由设备的关联关系。当与客户端关联的路由设备发生改变时,则该改变后的路由设备立即以单播方式向客户端发送地址通告报文,地址通告报文中携带该路由设备自身的转发MAC地址。这样可以及时将客户端切换到新的转发网关,保证了客户端的转发业务能正常进行。具体的,客户端A关联的backup路由设备A故障,则master路由设备为了保证客户端A能正常传送报文,就需要将客户端A关联其他具有有效转发MAC地址的backup路由设备B。master路由设备发送携带该关联表项的通告报文,当backup路由设备B接收到该关联表项后会立刻向客户端A发送单播的ARP报文,以便于客户端A接收到该报文后,更新其ARP表,能正常进行报文的传送。示例的,如图7所示,R1和R2分别关联了PC1和PC2,其将向客户端单播方式发送免费ARP报文。如图8、图9所示,若客户端PC1,PC2未收到或不接受地址通告报文,那么其将重新发送地址解析请求报文,R1收到PC1的ARP请求报文后回应ARP回应报文,R2收到PC2的ARP请求报文后回应ARP回应报文。客户端PC1,PC2分别收到R1和R2的地址解析回应报文,建立ARP表,并分别通过R1和R2转发报文,如图10所示,正常的业务过程建立完成。若R2发生故障,R1探测到此故障,并重新进行了客户端负载的分配,将PC2关联了网关设备R3,分配表如表4所示:表4如图11所示,R3立刻发送单播免费ARP报文到PC2,刷新PC2的ARP表,PC2后续报文均通过R3进行转发,至此完成了一次负载客户端的切换操作,业务正常后如图12所示。在本发明实施例中,master路由设备和backup路由设备多次通过通告报文和hello报文进行信息交互,那么在这个过程中就可能会发生没能及时收到对方的报文的情况,从而导致不能完成对应的工作。为了解决这个问题,由于hello报文是周期性发送的,因此在backup路由设备发送的hello报文中增加了接收到的通告报文的描述信息,描述信息中包含序列号和校验和(Checksum)。从而比较该描述信息是否一致来实现master路由设备和backup路由设备之间交互信息的同步,进一步保证对应的工作能够及时完成。具体的,master路由设备若根据接收到的hello报文判断出backup路由设备没有同步其发送的通告报文,则重新发送通告报文;backup路由设备若根据接收到的master路由设备发送的通告报文判断出其没有同步,则同步通告报文中的信息。在master路由设备收到备用路由设备发送的包含第一序列号的描述信息的Hello报文后,判断第一序列号与所述master路由设备本地存储的通告报文中的第二序列号是否一致,若不一致,则将包含本地存储的数据内容以及包含第三序列号的描述信息的通告报文发送至backup路由设备,第三序列号大于所述第一序列号。具体的,若第一序列号小于第二序列号,则第三序列号为第二序列号,master路由设备发送本地存储的通告报文;若第一序列号大于第二序列号,则将本地通告报文中的第二序列号增大为第三序列号,master路由设备发送更新序列号的通告报文;若序列号相同则不做处理(证明该backup路由设备接收到了最新的通告报文)。在backup路由设备收到包含第四序列号的通告报文后,若该通告报文是master路由设备发送的,则将第四序列号与backup路由设备本地存储的第五序列号进行比较,具体的若第四序列号大于第五序列号,则存储第四序列号的通告报文,并按照通告报文中的相关指示工作(后续设计相关内容);否则不做处理。若该通告报文是backup路由设备发送的,则直接丢弃该报文。本发明实施例提供了一种实现VRRP负载均衡的方法,应用于包含多个路由设备的虚拟路由器,在虚拟路由器中,选举出一个master路由设备,master路由设备为自身以及虚拟路由器中的至少一个backup路由设备分配不同的转发MAC地址,master路由设备接收到来自客户端的地址解析请求报文后,按照负载均衡策略,为客户端关联具有转发MAC地址的路由设备,与客户端关联的路由设备向客户端发送自身的转发MAC地址,以便客户端根据接收到的转发MAC地址发送上行数据。与现有技术相比,本发明实施例提供可以避免二层交换机的MAC表出接口映射错误的问题。实施例二本发明实施例提供了一种路由设备,多个所述路由设备用于构成一个虚拟路由器,所述虚拟路由器具有一个虚IP地址,同一网段各客户端的缺省网关IP地址配置为所述虚IP地址,如图13所示,该路由设备包括:角色选举单元131、分配单元132、接收单元133、关联单元134、发送单元135;该路由设备中各个功能模块的实现可以参考上述实施例一,在此不再赘述。角色选举单元131,用于在所述虚拟路由器中,选举出一个主用路由设备,其他路由设备为备用路由设备;分配单元132,用于在角色选举单元选举出的主用路由设备为所述路由设备时,为自身以及所述虚拟路由器中的至少一个其他路由设备分配不同的转发MAC地址,并将所述分配的结果通过通告报文进行广播;接收单元133,用于当角色选举单元选举出的备用路由设备为所述路由设备时,接收所述分配的结果,所述分配的结果用于在所述路由设备被分配了转发MAC地址后,配置所述转发MAC地址;接收单元133,还用于接收来自客户端的地址解析请求报文;关联单元134,用于在角色选举单元选举出的主用路由设备为所述路由设备时,所述接收单元接收到来自客户端的地址解析请求报文后,按照负载均衡策略,为所述客户端关联具有转发MAC地址的路由设备,并将所述关联的结果通过通告报文进行广播;接收单元133,还用于当角色选举单元选举出的备用路由设备为所述路由设备时,接收所述关联的结果;发送单元135,用于在与所述客户端关联的路由设备为所述路由设备时,经由交换机向所述客户端发送自身的转发MAC地址,以便所述客户端根据接收到的转发MAC地址发送上行数据。可选的,关联单元134,具体用于在关联表中建立所述客户端的关联表项,所述客户端的关联表项包括:所述客户端的标识、与所述客户端关联的路由设备的转发MAC地址;所述将所述关联的结果通过通告报文进行广播包括:将所述关联表中的信息通过通告报文进行广播。可选的,关联单元134,具体用于根据所述关联表,选取关联客户端数量最少的一个具有转发MAC地址的路由设备,以关联所述客户端;或者,若所述客户端属于静态关联策略中的客户端,所述静态关联策略用于为至少一个客户端静态指定路由设备,则按照所述静态关联策略为所述客户端静态关联路由设备;否则,根据所述关联表,选取关联动态客户端数量最少的一个具有转发MAC地址的路由设备,所述动态客户端为不属于所述静态关联策略中的客户端。可选的,该路由设备还包括:统计单元136,用于在角色选举单元选举出的主用路由设备为所述路由设备时,统计各个具有转发MAC地址的路由设备的负载流量;关联单元134,具体用于选取负载流量最少的一个具有转发MAC地址的路由设备,以关联所述客户端。可选的,该路由设备还包括:建立单元137,用于在角色选举单元选举出的主用路由设备为所述路由设备时,在接收单元接收到客户端的地址解析请求报文后,在客户端记录表中建立所述客户端的条目,所述客户端的条目用于记录所述客户端的标识,并为所述客户端设置超时时间;在所述超时时间内,若所述主用路由设备接收到所述客户端再次发送的地址解析请求报文,则对所述客户端的超时时间进行重置;若所述超时时间已到,所述主用路由设备未接收到所述客户端再次发送的地址解析请求报文,则删掉所述客户端的条目或将所述客户端的条目置为无效。可选的,所述路由设备还包括:关联单元134还用于当所述建立单元137删掉所述客户端的条目或将所述客户端的条目置为无效后,按照负载均衡策略,重新建立所述客户端记录表中的各客户端与具有转发MAC地址的路由设备的关联。可选的,发送单元135还用于当角色选举单元选举出的备用路由设备为所述路由设备时,向所述主用路由设备发送协商请求,所述协商请求用于指示所述备用路由设备期望分配到的转发MAC地址,所述期望分配到的转发MAC地址包括:所述备用路由设备的实MAC地址、和/或至少一个虚MAC地址;分配单元132还用于在接收到所述备用路由设备发送的协商请求后,根据所述协商请求从预先设置的虚MAC地址范围内分配一个尚未分配、且满足所述协商请求的虚MAC地址给所述备用路由设备,或者,根据所述协商请求将所述备用路由设备的实MAC地址作为所述备用路由设备的转发MAC地址。可选的,发送单元135用于在收到包含所述关联的结果的通告报文后,立即以单播方式经由交换机向所述客户端发送地址通告报文,所述地址通告报文中携带该路由设备自身的转发MAC地址;若收到所述客户端再次发送的地址解析请求报文,则经由交换机向所述客户端发送地址解析回应报文,所述地址解析回应报文中携带该路由设备自身的转发MAC地址。可选的,所述路由设备还包括:所述发送单元135还用于当关联客户端发生改变时,则立即以单播方式经由交换机向所述客户端发送地址通告报文,所述地址通告报文中携带该路由设备自身的转发MAC地址。可选的,所述通告报文包括:描述信息和数据内容,所述描述信息包含序列号;该路由设备还包括同步单元138,用于当角色选举单元选举出的主用路由设备为所述路由设备时在收到备用路由设备发送的包含第一序列号的描述信息后,判断所述第一序列号与所述主用路由设备本地存储的第二序列号是否一致,若不一致,则将包含本地存储的数据内容以及包含第三序列号的描述信息的通告报文发送至所述备用路由设备,所述第三序列号大于所述第一序列号;或者,当角色选举单元选举出的备用路由设备为所述路由设备时,在收到包含第四序列号的通告报文后,将所述第四序列号与所述备用路由设备本地存储的第五序列号进行比较,若第四序列号大于所述第五序列号,则存储所述第四序列号的通告报文。需要说明的是,本实施例中的接收单元133可以为路由设备上具备接收功能或的接口电路,如接收机或信息接收接口;发送单元135可以为路由设备上具备发送功能的接口电路,如发送机或信息发送接口。其他单元可以为单独设立的处理器,也可以集成在路由设备的某一个处理器中实现,此外,也可以以程序代码的形式存储于路由设备的存储器中,由路由设备的某一个处理器调用并执行以上各个单元的功能。这里所述的处理器可以是一个中央处理器(英文全称:CentralProcessingUnit,英文简称:CPU),或者是特定集成电路(英文全称:ApplicationSpecificIntegratedCircuit,英文简称:ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路。本发明实施例提供了一种路由设备,在多个路由设备构成的一个虚拟路由器中,由选举出的master路由设备通过与各路由设备之间的报文交互为虚拟路由器中的各路由设备分配转发MAC地址,并按照负载均衡策略将客户端关联拥有转发MAC地址的路由设备,然后由各路由设备回应其关联客户端的地址解析请求报文,而不是由master路由设备回应全部的地址解析请求报文,从而可以避免二层交换机的MAC表出接口映射错误的问题。在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,简称ROM)、随机存取存储器(RandomAccessMemory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。当前第1页1 2 3