发明内容
本发明提供数据转发系统、方法以及网络转发设备,以降低组网设计成本,提高组网灵活性。
本发明的技术方案是这样实现的:
一种数据转发系统,包括:控制单元、转发处理单元和应用流量处理单元,其中:
控制单元,用于配置网络转发设备与各类以应用类型区分的服务器连接的应用端口,配置转发处理单元与应用流量处理模块之间的应用流量处理端口,将配置的端口信息发送给转发处理单元和应用流量处理单元;
转发处理单元,收到客户端发来报文,将该报文发送给应用流量处理单元,并根据应用流量处理单元返回的服务器标识,将报文从与该标识对应的自身的应用端口发送出去;
应用流量处理单元,用于在检测到自身未保存转发处理单元发来的来自客户端的报文对应的响应会话表时,根据该报文的应用特征信息确定该报文应发往的服务器标识,将该标识携带在该报文中发送给转发处理单元。
所述转发处理单元和应用流量处理单元位于网络转发设备之内,所述控制单元位于网络转发设备之内或独立于网络转发设备之外。
所述应用流量处理单元进一步用于,在确定该报文应发往的服务器标识后,保存包含该报文的源IP地址、源端口号、目的IP地址、目的端口号、发送该报文的客户端标识、该报文应发往的服务器标识、协议信息的响应会话表。
所述应用流量处理单元进一步用于,在检测到自身保存有转发处理单元发来的来自客户端的报文对应的响应会话表时,将该响应会话表中的服务器标识携带在该报文中发送给转发处理单元。
所述应用流量处理单元进一步用于,检测到转发处理单元发来的报文中的目的IP地址为虚IP地址,将该虚IP地址替换为实IP地址。
所述转发处理单元进一步用于,将服务器发来的报文发送给应用流量处理单元,根据应用流量处理单元返回的客户端标识,将该报文从与该标识对应的自身的客户端端口发送出去;
所述应用流量处理单元进一步用于,接收到转发处理单元发来的来自服务器的报文,根据自身保存的响应会话表确定该报文应发往的客户端的标识,将该标识携带在该报文中发送给转发处理单元。
所述应用流量处理单元进一步用于,检测到转发处理单元发来的报文中的源IP地址为实IP地址,将该实IP地址替换为虚IP地址。
所述应用流量处理单元包括:负载均衡处理单元和内容搜索单元,其中:
负载均衡处理单元,用于在检测到自身未保存与转发处理单元发来的来自客户端的报文对应的响应会话表时,将该报文发给内容搜索单元,并根据内容搜索单元返回的应用类型标识以及预设的负载分担原则,在与该应用类型标识对应的服务器中选择一个服务器,以该服务器的标识替换报文中的客户端标识,将该报文发送给转发处理单元;
内容搜索单元,用于接收负载均衡处理单元发来的报文,根据该报文的应用特征信息,确定该报文的应用类型标识,将该应用类型标识发送给负载均衡处理单元。
所述负载均衡处理单元与内容搜索单元间通过外设部件互联标准接口(PCI)-X或PCI-E总线相连。
所述控制单元与转发处理单元间通过PCI总线相连。
所述转发处理单元与应用流量处理单元间通过连接单元接口(XAUI)总线相连。
一种数据转发方法,应用在以应用类型区分服务器的网络中,网络转发设备上具有与不同应用类型的服务器连接的应用端口,包括:
网络转发设备收到客户端发来的报文,检测到自身未保存与该报文对应的响应会话表,根据该报文的应用特征信息,确定该报文的应用类型,在自身端口中选择一个与该应用类型对应的应用端口,将报文从该应用端口发送出去。
所述网络转发设备在自身端口中选择一个与该应用类型对应的应用端口包括:网络转发设备根据该报文的会话表以及预设的负载分担原则,在自身端口中选择一个与该应用类型对应的应用端口。
所述网络转发设备在自身端口中选择一个应用端口之后、将报文从该应用端口发送出去之前进一步包括:网络转发设备以该应用端口对应的服务器的标识替换该报文中的客户端标识。
所述网络转发设备在自身端口中选择一个应用端口之后、将报文从该应用端口发送出去之前进一步包括:网络转发设备检测到该报文的目的IP地址为虚IP地址,则以自身保存的该应用端口对应的服务器的实IP地址替换该报文的虚目的IP地址。
所述网络转发设备以该应用端口对应的应用服务器的标识替换该报文中的客户端标识之后进一步包括:网络转发设备建立包括该报文的源IP地址、源端口号、目的IP地址、目的端口号、客户端标识、服务器标识、协议信息的响应会话表。
所述方法进一步包括:网络转发设备收到客户端发来的报文,检测到自身保存有与该报文对应的响应会话表,则根据该响应会话表中的服务器标识,确定该报文的出应用端口,将报文从该应用端口发送出去。
所述方法进一步包括:网络转发设备收到服务器发来的报文,判断自身是否保存与该报文对应的响应会话表,若保存,则以响应会话表中的客户端标识替换报文中的服务器标识,根据该客户端标识将该报文从自身的客户端端口发送出去。
所述网络转发设备判定自身保存有与该报文对应的响应会话表之后、将该报文从客户端端口发送出去之前进一步包括:网络转发设备检测到该报文的源IP地址为实IP地址,则根据自身保存的实IP地址与虚IP地址的对应关系,将该报文的实源IP地址替换为虚IP地址。
所述网络转发设备保存有应用类型标识与应用特征标识的对应关系,并保存各应用特征标识的正则表达式包括:应用特征标识在报文中的位置信息以及该应用特征标识是否跨越报文保存的信息;
所述网络转发设备确定报文的应用类型包括:网络转发设备根据各应用特征ID的正则表达式,确定报文携带的应用特征标识,然后根据应用类型标识与应用特征标识的对应关系,确定报文对应的应用类型标识。
所述服务器标识为服务器的虚拟局域网(VLAN)标识,或为服务器的媒体接入控制(MAC)地址信息。
一种网络转发设备,具有与以应用类型区分的服务器连接的应用端口,包括:转发处理单元和应用流量处理单元,其中:
转发处理单元,收到客户端发来报文,将该报文发送给应用流量处理单元,并根据应用流量处理单元返回的报文中的服务器标识,将该报文从自身的应用端口发送出去;
应用流量处理单元,用于在检测到自身未保存转发处理单元发来的来自客户端的报文对应的响应会话表时,根据该报文的应用特征信息确定该报文应发往的服务器的标识,将该服务器标识携带在该报文中发送给转发处理单元。
与现有技术相比,本发明通过设计具有不同应用功能的服务器,并在网络转发设备上配置与各类服务器连接的应用端口,当网络转发设备收到客户端发来的报文后,若检测到自身未保存转发处理单元发来的来自客户端的报文对应的响应会话表,则根据该报文的应用特征信息将该报文从对应的应用端口发送出去,使得组网更加灵活,并可根据组网的实际应用功能需求,将不同应用类型的服务器与网络转发设备连接,降低了组网的设计成本;且,在网络中的某项应用功能的容量不能满足用户需求时,只需再增加具有该应用功能的服务器,并在网络转发设备上配置与该服务器相连的应用端口即可,降低了扩容的设备成本。
具体实施方式
本发明中,在设计服务器时,根据应用类型的不同,设计不同的服务器即:不同的服务器具有不同的应用功能,从而服务器可根据所具有的应用功能的不同划分为不同的应用类型,如:文件传输协议(FTP)服务器、因特网远程登录服务协议(Telnet)服务器、IP语音(VOIP)服务器等,不同应用类型的服务器可对应不同的应用虚拟局域网(VLAN),同一种应用虚拟局域网可包括多个虚拟局域网;同时,将网络转发设备与服务器相连的端口,根据服务器的应用类型的不同划分为不同的应用端口,例如:将端口1~3划分为与FTP服务器连接的端口,且,端口1和2同时与FTP服务器1相连,端口3与FTP服务器2相连,则可将端口1和2称为ftp VLAN1端口,将端口3称为ftp VLAN2端口;将端口4~7划分为与telnet服务器相连的端口,且,端口4和5同时与telnet服务器1相连,端口6和7同时与telnet服务器2相连,则将端口4和5称为telnet VLAN1端口,将端口6和7称为telnetVLAN2端口。
下面结合附图及具体实施例对本发明再作进一步详细的说明。
图1是本发明提供的数据转发系统的组成示意图,如图1所示,其主要包括:控制单元11、转发处理单元12和应用流量处理单元13。其中,转发处理单元12和应用流量处理单元13位于网络转发设备如:交换机中,控制单元11可位于网络转发设备中,也可独立于网络转发设备之外,各单元的具体功能如下:
控制单元11:用于将网络转发设备的物理端口划分为:用于与客户端连接的客户端端口和用于与各应用类型的服务器相连的应用端口,并对网络转发设备进行端口配置,将配置信息发送给转发处理单元12和应用流量处理单元13;同时在网络转发设备的转发处理单元12上配置与应用流量处理单元13相连的应用流量处理端口,将配置信息发送给转发处理单元12和应用流量处理单元13。
以交换机为例,对控制单元11对交换机的物理端口的划分进行说明,如图2所示,设交换机中进行报文转发处理的二层专用集成电路(ASIC)芯片具有物理端口Eth0~12,控制单元11将交换机的二层ASIC芯片的物理端口划分如下:Eth0~3为客户端VLAN端口,Eth4~7为应用流量处理VLAN端口,Eth8~12为应用VLAN端口;更具体地,Eth0~1为客户端VLAN1的端口,Eth2~3为客户端VLAN2的端口,Eth8~10为应用VLAN5的端口,Eth11~12为应用VLAN6的端口。其中,将应用流量处理VLAN端口配置为交换机的内部VLAN端口如:VLAN4093端口,且控制单元11将应用流量处理单元13的属性配置为中继(TRUNK)模式。
转发处理单元12:根据控制单元11发来的对自身所在网络转发设备的物理端口的配置信息,记录端口号与客户端VLAN标识、端口号与应用VLAN标识的对应关系;当从客户端VLAN端口收到报文后,将该报文携带上该客户端VLAN标识发送给应用流量处理单元13,并在收到应用流量处理单元13返回的报文后,根据该报文携带的服务器的应用VLAN标识,在自身查找到出接口信息,将该报文从该出接口信息指向的应用端口发送出去。
进一步地,转发处理单元12用于,当从应用端口收到报文后,将该报文发送给应用流量处理单元13,并根据应用流量处理单元13返回的报文中携带的客户端VLAN标识,确定报文的出接口信息,将该报文从该出接口信息指向的客户端端口发送出去。
应用流量处理单元13:用于在收到转发处理单元12转发来的来自客户端的报文后,判断自身是否保存与该报文的目的IP地址、目的端口号、源IP地址、源端口号及协议信息等对应的响应会话表,若是,以该响应会话表中的应用VLAN标识替换报文中的客户端VLAN标识,并将该报文发送给转发处理单元12;否则,根据该报文携带的应用特征标识,在自身保存的应用特征标识与应用类型标识的对应关系中,查找到对应的应用类型标识,然后根据该报文的会话表以及预先设定的负载分担原则,在自身保存的与该应用类型标识对应的服务器的应用VLAN中选择一个应用VLAN,以该应用VLAN标识替换报文中的客户端VLAN标识,并保存客户端VLAN标识与应用VLAN标识的对应关系,并建立包括该报文的源IP地址、源端口号、目的IP地址、目的端口号、客户端VLAN标识、服务器的应用VLAN标识、协议信息等的响应会话表,然后将该报文发送给转发处理单元12。
进一步地,应用流量处理单元13进一步用于,保存各服务器的虚IP地址和实IP地址的对应关系,在收到转发处理单元12转发来的来自客户端的报文后,若检测到该报文携带的目的IP地址为虚IP地址,则在自身查找该虚IP地址对应的实IP地址,以查找到的实IP地址替换报文的虚目的IP地址。
虚IP地址指的是应用服务器的域名地址,如:www.sohu.com。
网络转发设备可能与属于某个应用类型的一个以上的服务器相连,例如:网络转发设备可能同时与一个以上的Ftp服务器相连,此时,应用流量处理单元13保存有Ftp应用类型标识与各Ftp服务器的应用VLAN标识的对应关系,进一步可保存有各Ftp服务器的实IP地址与虚IP地址的对应关系。
应用流量处理单元13进一步用于,在收到转发处理单元12发来的来自服务器的报文后,在自身查找与该报文的目的IP地址、目的端口号、源IP地址、源端口号及协议信息等对应的响应会话表,若查找到,则根据该响应会话表中的服务器的应用VLAN标识与客户端VLAN标识的对应关系,将该报文中的应用VLAN标识替换为客户端VLAN标识,然后将该报文发送给转发处理单元12。
进一步地,应用流量处理单元13用于,保存应用服务器的虚IP地址和实IP地址的对应关系,在收到转发处理单元12转发来的来自服务器的报文后,若检测到该报文携带的源IP地址为实IP地址,则在自身查找该实IP地址对应的虚IP地址,以查找到的虚IP地址替换报文的实源IP地址。
进一步地,如图1所示,应用流量处理单元13包括:负载均衡处理单元131和内容搜索单元132,其中:
负载均衡处理单元131:用于接收转发处理单元12发来的来自客户端的报文,判断自身是否保存与该报文的目的IP地址、目的端口号、源IP地址、源端口号及协议信息等对应的响应会话表,若是,以该响应会话表中的服务器的应用VLAN标识替换报文中的客户端VLAN标识,并将该报文发送给转发处理单元12;否则,将该报文转发给内容搜索单元132,在收到内容搜索单元131发来的应用类型标识后,根据从转发处理单元12发来的报文的会话表以及自身保存的负载分担原则,在与该应用类型标识对应的应用VLAN中选择一个应用VLAN,以该应用VLAN标识替换该报文中的客户端VLAN标识,将该报文发送给转发处理单元12,同时建立包括:报文的源IP地址、源端口号、目的IP地址、目的端口号、客户端VLAN标识、服务器的应用VLAN标识、协议信息等的响应会话表。
进一步地,负载均衡处理单元131用于,保存服务器的虚IP地址和实IP地址的对应关系,在收到转发处理单元12转发来的来自客户端的报文后,若检测到该报文携带的目的IP地址为虚IP地址,则在自身查找该虚IP地址对应的实IP地址,以查找到的实IP地址替换报文的虚目的IP地址。
负载均衡处理单元131进一步用于,在收到转发处理单元12发来的来自服务器的报文后,在自身查找与该报文的目的IP地址、目的端口号、源IP地址、源端口号、服务器的应用VLAN标识、协议信息等对应的响应会话表,若查找到,则根据自身保存的响应会话表中的应用VLAN标识与客户端VLAN标识,将报文中的应用VLAN标识替换为客户端VLAN标识,然后将该报文发送给转发处理单元12。
进一步地,负载均衡处理单元131用于,保存服务器的虚IP地址和实IP地址的对应关系,在收到转发处理单元12转发来的来自服务器的报文后,若检测到该报文携带的源IP地址为实IP地址,则在自身查找该实IP地址对应的虚IP地址,以查找到的虚IP地址替换报文的实源IP地址。
内容搜索单元132:用于保存应用特征标识与应用类型标识的对应关系,在收到负载均衡处理单元131发来的报文后,在自身查找到该报文携带的应用特征标识对应的应用类型标识,将该应用类型标识发送给负载均衡处理单元131。
本发明中,控制单元11与转发处理单元12之间可通过外设部件互联标准接口(PCI)总线连接,负载均衡处理单元131与内容搜索单元132之间可通过PCI-X或PCI-E等局部总线连接,负载均衡处理单元131与转发处理单元12之间通过千兆连接单元接口(XAUI)总线连接。通常,一个以上的千兆XAUI总线端口就可形成一个应用流量处理VLAN。
可以看出:由于本发明中的服务器是以应用类型进行区分的,因此,可预先设计具有不同应用功能的服务器,在组网时,只需根据该网络所需具有的应用功能,在网络转发设备上配置各应用端口、与具有对应应用功能的服务器连接即可。在具有某应用功能的服务器的容量无法满足用户业务需求时,只需在网络转发设备上增加与该类服务器连接的应用端口,并对应增加具有该应用功能的服务器即可。
图3是在本发明提供的数据转发系统中,对客户端发来的报文进行处理的具体实施例的流程图,如图3所示,其具体步骤如下:
步骤301:网络转发设备从自身的客户端端口接收报文。
步骤302:网络转发设备判断该报文是否需要进行IP重组,若是,执行步骤303;否则,执行步骤304。
步骤303:网络转发设备对报文进行IP重组。
步骤304:网络转发设备判断报文是否存在传输控制协议(TCP)乱序现象,若是,执行步骤305;否则,执行步骤306。
步骤305:网络转发设备对该报文进行TCP乱序调整。
步骤306:网络转发设备的转发处理单元将携带接收该报文的端口的客户端VLAN标识的报文发送给负载均衡处理单元。
步骤307:负载均衡处理单元收到该报文后,判断自身是否保存与该报文的目的IP地址、目的端口号、源IP地址、源端口号及协议信息等对应的响应会话表,若是,执行步骤308;否则,执行步骤309。
步骤308:负载均衡处理单元以该响应会话表中的应用VLAN标识替换报文中的客户端VLAN标识,转至步骤317。
本步骤进一步包括,负载均衡处理单元检测到该报文携带的目的IP地址为虚IP地址,则根据自身保存的应用VLAN的虚IP地址与实IP地址的对应关系,以自身保存的该应用VLAN的实IP地址替换该报文的虚目的IP地址。
步骤309:负载均衡处理单元将该报文转发给内容搜索单元。
步骤310:内容搜索单元在自身保存的应用特征标识与应用类型标识的对应关系中,查找该报文携带的应用特征标识对应的应用类型标识。
应用特征标识表征的是报文的应用特征信息,应用特征信息指的是能够表征报文的应用特征的信息,例如:ftp信息、telnet信息、voip信息等,应用特征信息以应用特征标识的形式携带在报文中,不同的应用特征标识可能携带在报文的不同字段中,且用于表征同一种应用特征的应用特征标识可能分散在不同的报文中。因此,内容搜索单元必须保存应用类型标识与应用特征标识的对应关系,并保存各应用特征标识的正则表达式包括:应用特征标识在报文中的位置信息以及该应用特征标识是否跨越报文保存的信息。当内容搜索单元收到报文后,首先根据各应用特征标识的正则表达式,确定报文携带的应用特征标识,然后根据应用类型标识与应用特征标识的对应关系,确定报文对应的应用类型标识。
步骤311:内容搜索单元判断是否查找到应用类型标识,若是,执行步骤313;否则,执行步骤312。
步骤312:内容搜索单元向负载均衡处理单元返回查找失败指示,负载均衡处理单元收到该查找失败指示后,向转发处理单元返回丢弃报文指示,并记录日志信息,转发处理单元收到该指示后,丢弃该报文,本流程结束。
步骤313:内容搜索单元向负载均衡处理单元返回该报文对应的应用类型标识。
步骤314:负载均衡处理单元根据该报文携带的会话表包括:源IP地址、源端口号、目的端口号、目的IP地址和协议信息等以及预先设定的负载分担原则,在与应用类型标识对应的应用VLAN中选择一个应用VLAN。
步骤315:负载均衡处理单元以该选定的应用VLAN标识替换报文中的客户端VLAN标识。
本步骤进一步包括,若负载均衡处理单元检测到该报文携带的目的IP地址为虚IP地址,则根据自身保存的应用VLAN的虚IP地址与实IP地址的对应关系,以自身保存的该应用VLAN的实IP地址替换该报文的虚目的IP地址。
步骤316:负载均衡处理单元创建包含该报文的源IP地址、源端口号、目的IP地址、目的端口号、客户端VLAN标识、服务器的应用VLAN标识、协议信息等的响应会话表。
步骤317:负载均衡处理单元将报文发送给转发处理单元。
步骤318:转发处理单元收到报文后,根据该报文携带的应用VLAN标识查找到出接口信息,将该报文从该出接口信息指向的应用端口发送出去。
图4为在本发明提供的数据转发系统中,对服务器发来的报文进行处理的具体实施例的流程图,如图4所示,其具体步骤如下:
步骤401:网络转发设备从自身的应用VLAN端口接收来自服务器的报文。
步骤402:网络转发设备的转发处理单元将该携带应用VLAN标识的报文转发给负载均衡处理单元。
步骤403:负载均衡处理单元判断自身是否保存了与该报文携带的源IP地址、源端口号、目的IP地址、目的端口号、应用VLAN标识、协议信息等对应的响应会话表,若是,执行步骤405;否则,执行步骤404。
步骤404:负载均衡处理单元向转发处理单元返回丢弃报文指示,并记录日志信息,转发处理单元收到该指示后,丢弃该报文,本流程结束。
步骤405:负载均衡处理单元根据自身保存的响应会话表中的客户端VLAN标识与应用VLAN标识,将该报文携带的应用VLAN标识替换为对应的客户端VLAN标识。
本步骤进一步包括:负载均衡处理单元检测到该报文携带的源IP地址为实IP地址,则根据自身保存的虚IP地址与实IP地址的对应关系,将该报文的实源IP地址转换成虚源IP地址。
一个虚IP地址可对应一个实IP地址,也可对应一个以上实IP地址。
步骤406:负载均衡处理单元将该报文发送给转发处理单元。
步骤407:转发处理单元收到该报文后,根据该报文携带的客户端VLAN标识查找到出接口信息,将该报文从该出接口信息指向的客户端端口发送出去。
在以上实施例中,各服务器是以VLAN标识来区分的,在实际应用中,也可直接以服务器的MAC地址信息等来区分。
以上所述仅为本发明的过程及方法实施例,并不用以限制本发明,凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。