背景技术
在互连网应用技术里,负载均衡一直是热门话题。一个应用或服务由数个物理服务器提供,并且每个物理服务器运行的应用或服务是相同的,我们可以让用户的访问通过某种控制策略,把负载分摊到不同的物理服务器,从而保持每个物理服务器有比较合理的负载。当整个系统的负载趋于饱和时,通过增加物理服务器和扩充物理带宽来解决这个麻烦。增加物理服务器以后,系统的负载情况将重新在所有集群的物理服务器之间按照指定的算法重新达到新的均衡。
虚拟服务器是负载均衡体系的基本架构,它分两层结构:负载均衡器和服务器。参见图1,图1为虚拟服务器的结构示意图。用户端通过虚拟服务的IP(VirtualIP,VIP)地址访问网络服务时,请求报文到达负载均衡器,负载均衡器根据负载均衡算法从一组服务器中选出一台服务器,把报文转发给真实的服务器进行处理,这样可以实现业务负载在服务器集群上均匀分担。
直接路由(Directroute,DR)方式是Linux虚拟服务器(LinuxVirtualServer,LVS)中一种比较常用的负载均衡方案。在DR方式中,负载均衡器和服务器组都必须在物理上通过局域网连通,如通过交换机相连。服务器启动之后,和负载均衡器建立TCP连接,从而让负载均衡器能够获取到每一个服务器的MAC地址。
VIP地址为负载均衡器和服务器组共享,负载均衡器配置的VIP地址是对外可见的,通过DNS机制发布给互联网用户,用于接收虚拟服务的请求报文;所有的服务器把VIP地址配置在各自的网卡接口上,它对外面是不可见的,不能响应ARP报文,只是用于处理目标地址为VIP的网络请求。
在LVS的DR方式中,负载均衡器根据各个服务器的负载情况,动态地选择一台服务器,不修改也不封装IP报文,而是将数据帧的MAC地址改为选出服务器的MAC地址,再将修改后的数据帧在与服务器组的局域网上发送。因为数据帧的MAC地址是选出的服务器,所以服务器肯定可以收到这个数据帧,从中可以获得该IP报文。当服务器发现报文的目标地址VIP是在本地的网络设备上,服务器处理这个报文,然后根据路由表将响应报文直接返回给客户。
依然以图1为例,用户通过用户端向目标VIP地址发出业务请求报文,负载均衡器首先接收到这个报文,此时IP包头的目的IP是VIP地址。
负载均衡器根据负载均衡算法选择一台正常工作的服务器,将将数据帧的MAC地址改为选出的服务器的MAC地址,发送到局域网里。
服务器在局域网中收到这个数据帧,拆开后发现数据帧的MAC地址是自己的MAC地址,且目的IP地址,即VIP地址在本地匹配,于是处理这个报文。随后重新封装报文,源IP地址是VIP地址,目的IP是用户IP地址,并发送。由于返回的报文的目的IP地址是用户IP地址,报文通过网关设备经由Internet返回给用户,不再需要经过负载均衡器进行负载均衡。
DR方式的好处在于负载均衡器也只是分发请求,应答包通过单独的路由方法返回给客户端,负载均衡器上仅仅是简单的修改一下报文的DMAC,负载均衡器上的压力较小。
DR方式下要求负载均衡器的网卡与物理服务器的网卡在一个局域网内。但是在大型数据中心中,网络层次非常复杂,网络需求多变,负载均衡器与物理服务器的网卡在一个局域网内,限制了DR方式在大型数据中心的应用。
处于容灾备份的考虑,大型数据中心都在异地建立了分支数据中心,这样就更没有办法保证负载均衡器与物理服务器在同一个局域网内。
当然可以通过L2VPN的机制来实现虚拟局域网的功能。但是问题在于,这样仍然要求负载均衡器和物理服务器的VLAN和IP网段一样。在大型数据中心,尤其是物理服务器数量较大的情况下,会导致广播域太太无法控制,IP地址网段和VLAN由于太大而不好划分。
因此现有实现中还未提出一种可以在保持DR方式下,通过修改数据帧的MAC地址,来完成分配服务器的方法,同时又对VLAN、IP网段和广播域没有要求,可以跨网段和站点实现LVS系统的功能。
发明内容
有鉴于此,本申请提供一种直接路由方式下的报文转发方法和网络设备,能够保持DR方式下减少负载均衡器压力的优点下,跨网段和站点实现LVS系统的功能。
为解决上述技术问题,本发明的技术方案是这样实现的:
一种DR方式下的报文转发方法,应用于LVS系统中,在该LVS系统中增加与负载均衡器在同一局域网的入口网络设备,以及与各服务器在同一局域网的出口网络设备,包括:
所述入口网络设备接收到负载均衡器发送的报文,若确定该报文的DMAC地址是各所述服务器的MAC地址中的任一MAC地址,将该报文封装为GRE报文转发,使所述出口网络设备解封装该GRE报文,并在所述出口网络设备所在的局域网中转发;其中,该GRE报文的GRE协议类型为LVS协议类型,源IP地址为本入口网络设备的IP地址,目的IP地址是为该接收报文的DMAC地址配置的IP地址。
一种DR方式下的报文转发方法,应用于LVS系统中,在该LVS系统中增加与负载均衡器在同一局域网的入口网络设备,以及与各服务器在同一局域网的出口网络设备,包括:
所述出口网络设备,接收到所述入口网络设备发送的,且GRE协议类型为LVS协议类型的GRE报文时,若确定该GRE报文的目的IP地址属于本地配置的IP网段,剥离GRE头,并在本出口网络设备所在的局域网中转发。
一种网络设备,该网络设备可应用于LVS系统中的入口网络设备;在该LVS系统中增加与负载均衡器在同一局域网的入口网络设备,以及与各服务器在同一局域网的出口网络设备,该网络设备包括:接收单元、确定单元和处理单元;
所述接收单元,用于接收负载均衡器发送的报文;
所述确定单元,用于当所述接收单元接收到负载均衡器发送的报文,确定接收的报文的DMAC地址是否为各所述服务器的MAC地址中的任一MAC地址;
所述处理单元,用于当所述确定单元确定接收的报文的DMAC地址是各所述服务器的MAC地址中的任一MAC地址,将该报文封装为GRE报文转发,且该GRE报文的GRE协议类型为LVS协议类型,使所述出口网络设备解封装该GRE报文,并在所述出口网络设备所在的局域网中转发;其中,该GRE报文的GRE协议类型为LVS协议类型,且源IP地址为本入口网络设备的IP地址,目的IP地址是为该接收到的报文的DMAC地址配置的IP地址。
一种网络设备,该网络设备可应用于LVS系统中的出口网络设备;在该LVS系统中增加与负载均衡器在同一局域网的入口网络设备,以及与各服务器在同一局域网的出口网络设备,该网络设备包括:接收单元和处理单元;
所述接收单元,用于接收所述入口网络设备发送的GRE报文;
所述处理单元,用于当所述接收单元接收到所述入口网络设备发送的GRE报文,且确定该GRE报文的GRE协议类型为LVS协议类型时,若确定该GRE报文的目的IP地址属于本地配置的IP网段,剥离GRE头,并在本出口网络设备所在的局域网中转发。
综上所述,本申请通过在该LVS系统中增加与负载均衡器在同一局域网的入口网络设备,以及与各服务器在同一局域网的出口网络设备,通过增加的入口网络设备将以太报文封装为GRE报文发送给出口网络设备,再由出口网络设备解封装该GRE报文,在本地局域网中转发给各服务器,能够保持DR方式下减少负载均衡器压力的优点下,跨网段和站点实现LVS系统的功能。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明所述方案作进一步地详细说明。
本发明实施例中提出一种DR方式下的报文转发方法,应用于LVS系统中,在该LVS系统中增加与负载均衡器在同一局域网的入口网络设备,以及与各服务器在同一局域网的出口网络设备,通过增加的入口网络设备将以太报文封装为通用路由封装(GenericRoutingEncapsulation,GRE)报文发送给出口网络设备,再由出口网络设备解封装该GRE报文,在本地局域网中转发给各服务器,能够保持DR方式下减少负载均衡器压力的优点下,跨网段和站点实现LVS系统的功能。
参见图2,图2为本发明具体实施例中DR方式下LVS系统结构示意图。同现有实现相比,本发明具体实现时,在LVS系统中增加两个网络设备,与负载均衡器相连的网络设备称为入口网络设备,同服务器相连的网络设备称为出口网络设备,并且入口网络设备和负载均衡器在同一局域网中,出口网络设备和各服务器在同一局域网中。
在本发明LVS系统中负载均衡器接收到用户端发送的报文时,根据负载均衡算法,选择一个服务器的MAC地址,并通过选择的MAC地址修改报文的DMAC地址后进行转发。以及各服务器接收到报文进行处理后,如何返回给用户端,均同现有实现,本发明具体实施例中不做任何修改。
下面结合附图,详细说明本发明具体实施例中在DR方式下如何实现报文的转发。参见图3,图3为本发明具体实施例中入口网络设备转发报文流程示意图。具体步骤为:
步骤301,入口网络设备接收到负载均衡器发送的报文。
入口网络设备可能配置用来处理负载均衡器之外的设备发送的报文,因此对于本发明具体实现LVS功能时,就需要对报文进行区分,具体做法如下:
在入口网络设备上新增一种LVS入口模式,在同负载均衡器相连的接口上使能。如果某一个接口使能了LVS端口模式,表明端口对端是负载均衡器,从这个端口接收到的报文,需通过本发明具体实施例中的处理方式进行处理。
步骤302,该入口网络设备若确定该报文的DMAC地址是各所述服务器的MAC地址中任一MAC地址,将该报文封装为GRE报文转发,使所述出口网络设备解封装该GRE报文,并在所述出口网络设备所在的局域网中转发。
本步骤中将接收的报文封装为GRE报文时,增加一种GRE隧道的协议号,表明是LVS隧道封装的报文,进而使出口网络设备能够判断要处理的报文。因此封装后的GRE报文的GRE协议类型为LVS协议类型,源IP地址为本入口网络设备的IP地址,目的IP地址是为该接收报文的DMAC地址配置的IP地址。
在入口网络设备接收到负载均衡器发送的报文时,还需确定该报文的DMAC地址是否为各服务器中的任一服务器的MAC地址,如果是,进行步骤302的处理;如果不是,将该报文丢弃。
在将报文封装为GRE报文时,目的IP地址为,为该接收的报文的DMAC地址配置的MAC地址,而该DMAC地址是各服务器的MAC地址中的一个MAC地址,因此如何为各服务器的MAC地址配置IP地址,本发明实施例中提出如下几种方式:
第一种:该入口网络设备将各服务器的IP地址对应配置给各服务器的MAC地址。
通过人工配置的方法,在入口网络设备上静态下发各服务器的MAC地址和IP地址的对应关系,进而建立MAC地址和GRE隧道的绑定关系,即该MAC地址对应的报文封装为GRE报文时,GRE隧道的目的IP地址为与该MAC地址绑定配置的IP地址。
第二种:该入口网络设备在各服务器的IP地址所属的各IP网段中,分别选择一个IP地址,配置给属于该IP网段的服务器的IP地址所对应的服务器的MAC地址。
本方式中也是通过静态配置的方式实现,由于可将各服务器的IP地址分别分配到不同的IP网段中,因此不直接将服务器的IP地址分配给服务器的MAC地址,而是在同一网段中选择同一IP地址分配给属于该IP网段的IP地址对应的MAC地址,这样大大减少了为MAC地址分配的IP地址的数量,进而减少了不同目的IP地址的GRE隧道的数量。
第三种:该入口网络设备接收负载均衡器发送的其地址池中各服务器的MAC地址和IP地址,并在接收的各服务器的IP地址所属的IP网段中分别选择一个IP地址,配置给属于该IP网段的服务器的IP地址对应的服务器的MAC地址。
本方式中通过动态的方式配置MAC地址和IP地址的关系。该入口网络设备接收负载均衡器发送的其地址池中各服务器的MAC地址和IP地址,具体实现时可以通过增加LLDP协议的方法来实现。
在负载均衡器和入口网络设备中使能LLDP协议,并在LLDP协议中新增一种TLV格式,用于负载均衡器将其地址池中的服务器的MAC地址和IP地址传送给入口网络设备。
参见图4,图4为使用LLDP协议交互各服务器的MAC地址和IP地址的示意图。在图4中LLDP字段中新增一种TLV,该TLV的类型为LVS,Value为各服务器的MAC地址和IP地址。
该入口网络设备在获得各服务器的MAC地址和IP地址后,为各MAC地址配置IP地址的方式可以同一种方式中的配置方法,也可以同第二种配置方式中的配置方法。
该入口网络设备发送的GRE报文,在网络中根据目的IP地址,经过普通IP转发,将报文转发到出口网络设备上。
参见图5,图5为本发明具体实施例中出口网络设备转发报文的流程示意图。具体步骤为:
步骤501,出口网络设备接收到所述入口网络设备发送的,且GRE协议类型为LVS协议类型的GRE报文。
步骤502,该出口网络设备若确定该GRE报文的目的IP地址属于本地配置的IP网段,剥离GRE头,并在本出口网络设备所在的局域网中转发。
出口网络设备接收到报文如何处理,可通过如下具体方式实现:在出口网络设备上使能LVS出口模式,在这种模式下,LVS系统根据此接口的IP网段,下发终结表项,表项的内容包括匹配规则和具体动作。
匹配规则:MACTOME报文+DIP为接口IP网段+GRE报文+GRE报文的协议类型为LVS协议类型。可以通过不同将不同的接口分配给不同的IP网段。
具体动作:剥离隧道头,将用户报文在此接口上对应的网段内进行二层转发。
出口网络设备接收到报文时,首先根据匹配规则进行匹配,如果均匹配,说明是本发明具体实施例中LVS系统中需要处理的报文。具体处理方式为:
该出口网络设备根据剥离GRE头的报文的目的MAC地址,在该GRE报文的目的IP地址属于的本地配置的IP网段对应的MAC地址表项中,查找到本网络设备与该DMAC地址对应的服务器相连的端口,并通过查找到的端口将剥离GRE头的报文转发。
由于该出口网络设备与各服务器在同一局域网中,因此可以获得各服务器的MAC地址以及与该服务器相连的端口,为了实现方便将各IP网段分别对应不同的MAC地址表项。在具体实现时,也可以为各IP网段分配不同的VLANID,在不同的VLAN内的MAC地址表项中查找对应的端口进行报文转发。
本发明具体实施例中基于同样的发明构思,还提出一种网络设备,该网络设备可应用于LVS系统中的入口网络设备;在该LVS系统中增加与负载均衡器在同一局域网的入口网络设备,以及与各服务器在同一局域网的出口网络设备。参见图6,图6为本发明具体实施中用于入口网络设备的网络设备的接口示意图。该网络设备包括:接收单元601、确定单元602和处理单元603。
接收单元601,用于接收负载均衡器发送的报文。
确定单元602,用于当接收单元601接收到负载均衡器发送的报文,确定接收的报文的DMAC地址是否为各所述服务器的MAC地址中的任一MAC地址;
处理单元603,用于当确定单元602确定接收的报文的DMAC地址是各所述服务器的MAC地址中的任一MAC地址,将该报文封装为GRE报文转发,且该GRE报文的GRE协议类型为LVS协议类型,使所述出口网络设备解封装该GRE报文,并在所述出口网络设备所在的局域网中转发;其中,该GRE报文的GRE协议类型为LVS协议类型,且源IP地址为本入口网络设备的IP地址,目的IP地址是为该接收到的报文的DMAC地址配置的IP地址。
较佳地,该网络设备进一步包括:配置单元604。
配置单元604,用于在各服务器的IP地址所属的各IP网段中,分别选择一个IP地址,配置给属于该IP网段的服务器的IP地址所对应的服务器的MAC地址。
较佳地,该网络设备进一步包括:配置单元604。
配置单元604,用于将各服务器的IP地址对应配置给各服务器的MAC地址。
较佳地,该网络设备进一步包括:配置单元604。
接收单元601,进一步用于接收负载均衡器发送的其地址池中各服务器的MAC地址和IP地址;
配置单元604,用于在接收单元601接收的各服务器的IP地址所属的IP网段中分别选择一个IP地址,配置给属于该IP网段的服务器的IP地址对应的服务器的MAC地址。
本发明具体实施例中还提出一种网络设备,该网络设备可应用于LVS系统中的出口网络设备;在该LVS系统中增加与负载均衡器在同一局域网的入口网络设备,以及与各服务器在同一局域网的出口网络设备。参见图7,图7为本发明具体实施例中用于出口网络设备的网络设备的结构示意图。该网络设备包括:接收单元701和处理单元702。
接收单元702,用于接收所述入口网络设备发送的GRE报文。
处理单元702,用于当接收单元702接收到所述入口网络设备发送的GRE报文,且确定该GRE报文的GRE协议类型为LVS协议类型时,若确定该GRE报文的目的IP地址属于本地配置的IP网段,剥离GRE头,并在本出口网络设备所在的局域网中转发。
较佳地,
处理单元702,用于根据剥离GRE头的报文的目的MAC地址,在该GRE报文的目的IP地址属于的本地配置的IP网段对应的MAC地址表项中,查找到本网络设备与该DMAC地址对应的服务器相连的端口,并通过查找到的端口将剥离GRE头的报文转发。
上述实施例的单元可以集成于一体,也可以分离部署;可以合并为一个单元,也可以进一步拆分成多个子单元。
综上所述,本发明具体实施例中在该LVS系统中增加与负载均衡器在同一局域网的入口网络设备,以及与各服务器在同一局域网的出口网络设备,通过增加的入口网络设备将以太报文封装为GRE报文发送给出口网络设备,再由出口网络设备解封装该GRE报文,在本地局域网中转发给各服务器,能够保持DR方式下减少负载均衡器压力的优点下,跨网段和站点实现LVS系统的功能。
本发明具体实施例中对LVS系统中的负载均衡器和服务器均未进行任何修改,易于系统的兼容性。同其他跨网段的DR方式下实现LVS系统功能相比,对用户网络的VLAN、IP网段和广播域均无任何要求。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。