[go: up one dir, main page]

CN105207904B - 报文的处理方法、装置和路由器 - Google Patents

报文的处理方法、装置和路由器 Download PDF

Info

Publication number
CN105207904B
CN105207904B CN201410293381.7A CN201410293381A CN105207904B CN 105207904 B CN105207904 B CN 105207904B CN 201410293381 A CN201410293381 A CN 201410293381A CN 105207904 B CN105207904 B CN 105207904B
Authority
CN
China
Prior art keywords
gateway
message
forwarding
module
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410293381.7A
Other languages
English (en)
Other versions
CN105207904A (zh
Inventor
梁捷
李剑
陈树雄
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba China Co Ltd
Original Assignee
Guangzhou Dongjing Computer Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangzhou Dongjing Computer Technology Co Ltd filed Critical Guangzhou Dongjing Computer Technology Co Ltd
Priority to CN201410293381.7A priority Critical patent/CN105207904B/zh
Publication of CN105207904A publication Critical patent/CN105207904A/zh
Application granted granted Critical
Publication of CN105207904B publication Critical patent/CN105207904B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种报文的处理方法、装置和路由器。其中,该方法包括:获取与第一报文对应的第一网关,其中,第一报文包括源地址,第一网关为第一报文转发的下一跳网关;按照第一报文的源地址、报文参数和第一网关查找符合预设条件的第二网关;将第一报文转发至第二网关。采用本发明实施例,解决了现有技术中无法为不同的源地址设置不同的路由出口的问题,实现可以根据报文的源地址为其确定网关的效果。

Description

报文的处理方法、装置和路由器
技术领域
本发明涉及数据处理领域,具体而言,涉及一种报文的处理方法、装置和路由器。
背景技术
出口网关路由器具有对内部网络访问外网服务器的流量进行NAT(NetworkAddress Translation,网络地址转换)、Firewall(即防火墙)过滤等业务功能。对于多条上行链路的组网,需要配置静态路由或策略路由来实现正确的选路,即根据目的地址所属运营商(电信、移动、联通等)来选择相应的链路。
然而不同内部网络用户有不同的出口选路需求,例如:
1)来自内网192.168.1.0/24出口请求,如果目的地址属于电信,选择电信链路。
2)来自内网192.168.2.0/24的所有出口请求,都选择联通链路。
3)来自内网192.168.3.0/24出口请求,如果目的地址属于电信,选择联通链路。
现有技术中提供了如下的出口选路方法:
(1)静态路由查找出口,通过静态路由虽然查找性能很高,但是只能根据目的地址来选路,不同的业务要求不同的出口策略,而上述方法无法为不同源地址设置不同的出口策略。
(2)策略路由选路。策略路由虽然比较灵活,可以根据源地址、目的地址来选路,但是策略路由使用线性查找算法,性能很低。如果要实现复杂的选路策略,由于运营商的网络地址太多,需要添加大量的路由规则,导致转发性能低下。
例如,内网192.168.3.0/24出口请求目的地址属于电信的时候,选择联通链路。电信网络地址有2000个,需要增加2000条策略路由,如下:
from192.168.3.0/24to ip1/16lookup unicom
from192.168.3.0/24to ip2/11lookup unicom
from192.168.3.0/24to ip2000/24lookup unicom
如果有n个内网网络地址实现上述策略,就要增加n*2000条策略路由,维护成本高,性能根本无法满足需求。
针对现有技术中无法为不同的源地址设置不同的路由出口的问题,目前尚未提出有效的解决方案。
发明内容
针对相关技术中无法为不同的源地址设置不同的路由出口的问题,目前尚未提出有效的解决方案,为此,本发明的主要目的在于提供一种报文的处理方法、装置和路由器,以解决上述问题。
为了实现上述目的,根据本发明的一个方面,提供了一种报文的处理方法,该方法包括:获取与第一报文对应的第一网关,其中,第一报文包括源地址,第一网关为第一报文转发的下一跳网关;按照第一报文的源地址、报文参数和第一网关查找符合预设条件的第二网关;将第一报文转发至第二网关。
进一步地,获取与第一报文对应的第一网关包括:接收第一报文,其中,第一报文中带有目的地址;从预设路由表中查询得到与目的地址对应的第一网关。
进一步地,按照第一报文的源地址、报文参数和第一网关查找符合预设条件的第二网关包括:在预设网关表中查找到与报文参数、源地址和第一网关一致的路由数据,其中,报文参数包括:目的地址、入口网卡和出口网卡;将路由数据指向的网关作为第二网关;在预设网关表中查找不到与报文参数、源地址和第一网关一致的路由数据的情况下,将第一网关作为第二网关。
进一步地,将第一报文转发至第二网关包括:对第一报文进行网络地址转换得到转换后的第一报文;将转换后的第一报文转发至第二网关。
进一步地,在将转换后的第一报文转发至第二网关的同时,处理方法还包括:记录对第一报文进行网络地址转换前后的源地址、源端口、目的地址、目的端口和下一跳网关,生成转发连接表,其中,下一跳网关为第一网关或第二网关。
进一步地,在生成转发连接表之后,处理方法还包括:接收新的报文;从转发连接表中查询是否存在与新的报文相同的报文记录;在转发连接表中存在与新的报文相同的报文记录的情况下,从转发连接表中读取与新的报文对应的下一跳网关。
为了实现上述目的,根据本发明的另一方面,提供了一种报文的处理装置,该装置包括:获取模块,用于获取与第一报文对应的第一网关,其中,第一报文包括源地址,第一网关为第一报文转发的下一跳网关;查找模块,用于按照第一报文的源地址、报文参数和第一网关查找符合预设条件的第二网关;转发模块,用于将第一报文转发至第二网关。
进一步地,获取模块包括:第一接收模块,用于接收第一报文,其中,第一报文中带有目的地址;网关查找模块,用于从预设路由表中查询得到与目的地址对应的第一网关。
进一步地,查找模块包括:第一查找子模块,用于在预设网关表中查找到与报文参数、源地址和第一网关一致的路由数据,其中,报文参数包括:目的地址、入口网卡和出口网卡;第一确定模块,用于将路由数据指向的网关作为第二网关;第二确定模块,用于在预设网关表中查找不到与报文参数、源地址和第一网关一致的路由数据的情况下,将第一网关作为第二网关。
进一步地,转发模块包括:地址转换模块,用于对第一报文进行网络地址转换得到转换后的第一报文;转发子模块,用于将转换后的第一报文转发至第二网关。
进一步地,处理装置还包括:记录模块,用于在将转换后的第一报文转发至第二网关的同时,记录对第一报文进行网络地址转换前后的源地址、源端口、目的地址、目的端口和下一跳网关,生成转发连接表,其中,下一跳网关为第一网关或第二网关。
进一步地,网关查找模块包括:第二接收模块,用于接收新的报文;第二查找子模块,用于从转发连接表中查询是否存在与新的报文相同的报文记录;读取模块,用于在转发连接表中存在与新的报文相同的报文记录的情况下,从转发连接表中读取与新的报文对应的下一跳网关。
为了实现上述目的,根据本发明的另一方面,提供了一种路由器,该路由器包括:报文的处理装置。
采用本发明实施例,在获取到第一报文的第一网关之后,按照第一报文的源地址、报文参数和第一网关查找符合预设条件的第二网关,并将第一报文发送至第二网关,实现了对第一报文的出口的灵活选择,并且上述的处理方法,成本低廉,在一般的linux服务器上就能部署,维护简单,仅需要少量规则(即上述实施例中的预设条件)就能满足内部网络用户复杂出口选路需求,且具有较高的转发性能,解决了现有技术中无法为不同的源地址设置不同的路由出口的问题,实现可以根据报文的源地址为其确定网关的效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的报文的处理装置的结构示意图;
图2是根据本发明实施例的路由器的结构示意图;
图3是根据本发明实施例的报文的处理方法的流程图;以及
图4是根据本发明实施例的一种可选的报文的处理方法的流程图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
图1是根据本发明实施例的报文的处理装置的结构示意图。如图1所示,该装置可以包括:获取模块10、查找模块20和转发模块30。
其中,获取模块,用于获取与第一报文对应的第一网关,其中,第一报文包括源地址,第一网关为第一报文转发的下一跳网关。
查找模块,用于按照第一报文的源地址、报文参数和第一网关查找符合预设条件的第二网关。
转发模块,用于将第一报文转发至第二网关。
采用本发明实施例,在获取到第一报文的第一网关之后,按照第一报文的源地址、报文参数和第一网关查找符合预设条件的第二网关,并将第一报文发送至第二网关,实现了对第一报文的出口的灵活选择,并且上述的处理方法,成本低廉,在一般的linux服务器上就能部署,维护简单,仅需要少量规则(即上述实施例中的预设条件)就能满足内部网络用户复杂出口选路需求,且具有较高的转发性能,解决了现有技术中无法为不同的源地址设置不同的路由出口的问题,实现可以根据源地址为其确定网关的效果。
上述实施例中的第一报文可以为内网网络用户发送的转发报文请求,该转发报文请求中携带有第一报文,上述实施例中的方法可以应用于网关路由器上。
在本发明的上述实施例中,获取模块可以包括:第一接收模块,用于接收第一报文,其中,第一报文中带有目的地址;网关查找模块,用于从预设路由表中查询得到与目的地址对应的第一网关。
具体地,在网关路由器通过第一接收模块接收到第一报文之后,通过网关查找模块查找与目的地址对应的第一网关。其中,以第一报文的目的地址查询静态路由表(即上述实施例中的预设路由表)中的网关,得到第一报文的下一跳网关(在该实施例中的第一报文的下一条网关为第一网关)。
其中,下一跳网关是一个关键的条件,由于网关路由器的下一跳网关的数量很少,因此仅需要少量规则(即上述实施例中的预设条件)就能实现复杂的选路需求。
需要进一步说明的是,下一跳网关是通过查询静态路由表(即上述实施例中的预设路由表)得到的。在初始化网关路由器的时候,可以在网关路由器上为每个运营商配置静态路由。例如,如果报文的目的地址属于电信,报文的下一跳网关就是电信网关。
在本发明的上述实施例中,查找模块可以包括:第一查找子模块,用于在预设网关表中查找到与报文参数、源地址和第一网关一致的路由数据,其中,报文参数包括:目的地址、入口网卡和出口网卡;第一确定模块,用于将路由数据指向的网关作为第二网关;第二确定模块,用于在预设网关表中查找不到与报文参数、源地址和第一网关一致的路由数据的情况下,将第一网关作为所述第二网关。在上述实施例中确定了第一报文下一跳的网关为第一网关或第二网关。
具体地,在预设网关表中查找到与第一报文的源地址、报文参数、和第一网关均一致的路由数据,该路由数据对应的网关即为第一报文的第二网关。
上述的预设条件可以为自定义规则。其中,自定义规则使用源地址、目的地址、入口网卡、出口网卡和下一跳网关作为选路的预设条件,具体如表1所示。当第一报文的上述数据满足自定义规则中的条件时,修改第一报文的下一跳网关(即上述实施例中的第一网关)为指定网关(即上述实施例中的第二网关),以实现链路的选择。
表1:
具体地,如果第一报文的源地址符合192.168.1.0/24,具体地,源地址为192.168.1.0/X,X为0到32的自然数,因为ipv4地址长度是4个字节,即32位,且目的地址不做限制(表中的目的地址为空,表示对目的地址不做限制),入口网卡为eth0,出口网卡不做限制,第一网关(即上述的原来的下一跳网关)为115.238.228.193,则确定第一报文的源地址、报文参数和第一网关符合第一条的路由数据,即第一报文的源地址、报文参数和第一网关与第一条的路由数据一致,则第一条的路由数据指向的新的下一跳网关(即上述实施例中的路由数据指向的网关)为第二网关;如果在预设网关表中查找到的网关的数据为空,则将初始的第一网关作为第二网关,转发第一报文时将其转发至第一网关。
其中,上述实施例中的预设网关表以哈希表的方式实现,可以提高查询路由数据和第二网关速度。
在本发明的上述实施例中,转发模块可以包括:地址转换模块,用于对第一报文进行网络地址转换得到转换后的第一报文;转发子模块,用于将转换后的第一报文转发至第二网关。
具体地,对第一报文作网络地址转换,即把第一报文的源地址和源端口转换为网关路由器的公网地址和公网端口,然后,网关路由器将地址转换后的第一报文发送到网卡队列,将该转换后的第一报文发送至第二网关。
需要进一步说明的是,处理装置还可以包括:记录模块,用于在将转换后的第一报文转发至第二网关的同时,记录对第一报文进行网络地址转换前后的源地址、源端口、目的地址、目的端口和下一跳网关,生成转发连接表。其中,在该实施例中下一跳网关为第一网关或第二网关。该实施例中的下一跳网关也为表1中的新的下一跳网关。
具体地,在转发第一报文的同时,建立转发连接表,以加速对第一报文的处理速度。
在转发第一报文时建立转发连接表,记录网络地址转换前后的源地址和源端口,用于对回复报文做网络地址转换,即把回复报文公网目的地址和端口转换为内网用户的地址和端口。转发连接表内容如表2所示。
表2:
如表2所示,该表除了记录源地址、源端口、目的地址、目的端口,还记录了每条链接(对应每个第一报文)的下一跳网关(该下一跳网关可以为上述实施例中的第一网关或第二网关)。
其中,该表以哈希表实现,以提高查询速度。对于同一条链接,只有第一个第一报文需要查询静态路由表和匹配选路规则,后续的第一报文直接使用该表记录的下一跳网关,提高转发速度。
具体地,转发连接表中记录的下一跳网关可能是第一网关也可能是第二网关。如果第一报文之前在自定义规则表中有匹配到第二网关,则转发连接表中记录的是第二网关,如果之前没有匹配到,则这里记录的就是第一报文的第一网关。也就是说,只要转发连接表已经查到记录,说明已经去匹配过了,可能符合自定义规则表中的规则,也可能不符合规则,不管原来是否符合规则,都不需要再匹配了,因为再去匹配结果也一样,所以只要查到连接表有记录,就直接用表中记录的下一跳网关。
在本发明的上述实施例中,网关查找模块可以包括:第二接收模块,用于接收新的报文;第二查找子模块,用于从转发连接表中查询是否存在与新的报文相同的报文记录;读取模块,用于在转发连接表中存在与新的报文相同的报文记录的情况下,从转发连接表中读取与新的报文对应的下一跳网关。其中,新的报文为路由器之前未接收过的第一报文。
在本发明实施例中的相同的报文记录指的是,源地址、源端口、目的地址、目的端口相同。
通过上述实施例,在网关路由器中保存有转发连接表,每转发一个第一报文将该第一报文的相关信息记录下来生成转发连接表,从而可以在下次接收到与第一报文相同的报文时,直接转发该第一报文至第二网关,而无需重复进行上述的查找、转换的处理,大大地节省了处理时间,提高了用户体验。
本发明还提供了一种路由器,该路由器可以包括上述实施例中的任意一种的报文的处理装置。
采用本发明实施例,在获取到第一报文的第一网关之后,按照第一报文的源地址、报文参数和第一网关查找符合预设条件的第二网关,并将第一报文发送至第二网关,实现了对第一报文的出口的灵活选择,并且上述的处理方法,成本低廉,在一般的linux服务器上就能部署,维护简单,仅需要少量规则(即上述实施例中的预设条件)就能满足内部网络用户复杂出口选路需求,且具有较高的转发性能,解决了现有技术中无法为不同的源地址设置不同的路由出口的问题,实现可以根据源地址为其确定网关的效果。
如图2所示,该路由器可以包括:报文输入模块40、路由判断模块50、路由策略模块60、报文输出模块70、本机输入模块80、响应模块90以及本机输出模块100。
其中,获取模块的第一接收模块可以设置在报文输入模块内,查找模块可以设置在路由策略模块60内,转发模块设置于报文输出模块70内。
具体地,上述路由器可以设置于linux系统的内核中。
PRE_ROUTING即报文输入模块40,输入路由前检查点。也即接收到的第一报文经过的第一个模块,该模块查询转发链接,如果表中存在与第一报文一致的报文记录,直接读取第一报文的下一跳网关(即第二网关),并将第一报文的路由状态标志位置1。在经过路由判断模块时,如果发现第一报文的路由标志位已经标记为1,则无需对其进行路由判断。
Routing Decision即路由判断模块50,该模块用于判断第一报文的目的地址是否为本机,如果为本机则将其发送至本机输入模块,如果第一报文的目的地址不指向本机,则将其发送至路由策略模块。
具体地,在Route Decision(路由判断)的流程中,可以通过查询预设路由表,包括静态路由和策略路由,确定第一报文的目的地址是否指向本机。
INPUT即本机输入模块,经过Route Decision(路由判断),如果报文的目的地址是本机,则第一报文进入该模块。
Local Process即上述的响应模块,该模块可以为系统的应用程序,用于对第一报文做出响应,生成响应报文。
OUTPUT即上述实施例中的本机输出模块100,通过本机输出模块将响应报文输出。
FORWARD即上述的路由策略模块60,判断第一报文的路由状态标志位,如果置为1,就不处理,直接就其发送至报文输出模块。否则判断源地址、入口网卡、下一跳网关是否符合条件,如果符合预设条件,获取第二网关,并更新转发连接表。
POST_ROUTING即本机输出模块100,用于输出地址转换后的第一报文。
下面以网络路由器有三条上行链路,分别是电信、移动、联通为例介绍本发明。
可以为网关路由器配置静态路由,假如电信网络地址有2000个,移动网络地址有500个,联通网络地址有500个,则为网关路由器配置3000条静态路由,也即预设路由表里有3000个数据。
通过本发明的上述实施例,如果内网出口的第一报文请求的目的地址属于某个运营商,网关路由器就会选择该运营商对应的链路,将第一报文发送到该运营商对应的网关。
例如,如果要实现“来自内网192.168.3.0/24出口请求,如果入口网卡是eth0,目的地址属于电信,选择联通链路”这个需求,只需要添加一条自定义规则如下:
LBG_CHROUTE-s192.168.3.0/24-i eth0--old-gw电信网关--new-gw联通网关
如果n个内网网络地址需要实现类似需求,只需要增加n条规则(即上述的预设条件)。而如果使用策略路由来实现,需要增加2000*n条规则。由于规则的数量比传统方法的规则数量少很多,所以转发效率提高。
在查找性能方面,linux系统的静态路由的哈希算法要比策略路由的线性查找算法好得多。通过网关路由器转发HTTP GET请求,HTTP应答数据长度是65字节。
3000条静态路由,转发性能数据:新建连接数6.3W/s,流量500Mbps。
3000条策略路由,转发性能数据:新建连接数4600/s,流量140Mbps。
通过本发明的上述实施例,基于报文的下一跳网关进行路由选择,用少量的规则实现复杂的选路,转发性能高,成本低廉。
图3是根据本发明实施例的一种报文的处理方法的流程图。如图3所示,该方法可以包括如下步骤:
步骤S302:获取与第一报文对应的第一网关,其中,第一报文包括源地址,第一网关为第一报文转发的下一跳网关。
步骤S304:按照第一报文的源地址、报文参数和第一网关查找符合预设条件的第二网关。
步骤S306:将第一报文转发至第二网关。
采用本发明实施例,在获取到第一报文的第一网关之后,按照第一报文的源地址、报文参数和第一网关查找符合预设条件的第二网关,并将第一报文发送至第二网关,实现了对第一报文的出口的灵活选择,并且上述的处理方法,成本低廉,在一般的linux服务器上就能部署,维护简单,仅需要少量规则(即上述实施例中的预设条件)就能满足内部网络用户复杂出口选路需求,且具有较高的转发性能,解决了现有技术中无法为不同的源地址设置不同的路由出口的问题,实现可以根据源地址为其确定网关的效果。
上述实施例中的第一报文可以为内网网络用户发送的转发报文请求,该转发报文请求中携带有第一报文,上述实施例中的方法可以应用于网关路由器上。
根据本发明的上述实施例,获取与第一报文对应的第一网关可以包括:接收第一报文,其中,第一报文中带有目的地址;从预设路由表中查询得到与目的地址对应的第一网关。
具体地,从预设路由表中查询得到与目的地址对应的第一网关包括:从转发连接表中查询是否存在与第一报文相同的报文记录;在转发连接表中存在与第一报文相同的报文记录的情况下,从转发连接表中读取第一网关;在转发连接表中不存在与第一报文相同的报文记录的情况下,从预设路由表中查询得到与目的地址对应的第一网关。
其中,下一跳网关是一个关键的条件,由于网关路由器的下一跳网关的数量很少,因此仅需要少量规则(即上述实施例中的预设条件)就能实现复杂的选路需求。
需要进一步说明的是,下一跳网关是通过查询静态路由表(即上述实施例中的预设路由表)得到的。在初始化网关路由器的时候,可以在网关路由器上为每个运营商配置静态路由。例如,如果报文的目的地址属于电信,报文的下一跳网关就是电信网关。
根据本发明上述实施例,按照第一报文的源地址、报文参数和第一网关查找到符合预设条件的第二网关可以包括:在预设网关表中查找与报文参数、源地址和第一网关一致的路由数据,其中,报文参数包括:目的地址、入口网卡和出口网卡;将路由数据指向的网关作为第二网关;在预设网关表中查找不到与报文参数、源地址和第一网关一致的路由数据的情况下,将第一网关作为所述第二网关。在上述实施例中确定了第一报文下一跳的网关为第一网关或第二网关。
具体地,在预设网关表中查找到与第一报文的源地址、报文参数、和第一网关均一致的路由数据,该路由数据对应的网关即为第一报文的第二网关。
上述的预设条件可以为自定义规则。其中,自定义规则使用源地址、目的地址、入口网卡、出口网卡和下一跳网关作为选路的预设条件,具体如表1所示。当第一报文的上述数据满足自定义规则中的条件时,修改第一报文的下一跳网关(即上述实施例中的第一网关)为指定网关(即上述实施例中的第二网关),以实现链路的选择。
在本发明的上述实施例中,将第一报文转发至第二网关可以包括:对第一报文进行网络地址转换得到转换后的第一报文;将转换后的第一报文转发至第二网关。
具体地,在将转换后的第一报文转发至第二网关的同时,处理方法还可以包括:记录模块,用于在将转换后的第一报文转发至第二网关的同时,记录对第一报文进行网络地址转换前后的源地址、源端口、目的地址、目的端口和下一跳网关,生成转发连接表。其中,在该实施例中下一跳网关为第一网关或第二网关。该实施例中的下一跳网关也为表1中的新的下一跳网关。
具体地,在转发第一报文的同时,建立转发连接表,以加速对第一报文的处理速度。
在转发内网出口请求报文时建立转发连接表,记录网络地址转换前后的源地址和源端口,用于对回复报文做网络地址转换,即把回复报文公网目的地址和端口转换为内网用户的地址和端口。
下面结合图4详细介绍本发明。如图4所示,本发明可以通过如下步骤实现:
步骤S401:接收第一报文。
具体地,通过网关路由器接收到第一报文。
步骤S402:获取与第一报文对应的第一网关。
具体地,以第一报文的目的地址查询静态路由,得到第一报文的下一跳网关(即第一网关)。
其中下一跳网关是一个关键的条件,由于网关路由器的下一跳网关数量很少,因此仅需要少量规则就能实现复杂的选路需求。
下一跳网关是通过查询静态路由表得到的。在初始化网关路由器的时候,需要在网关路由器上为每个运营商配置静态路由。例如,如果报文的目的地址属于电信,报文的下一跳网关就是电信网关。
步骤S403:检测第一报文的源地址、第一网关和报文参数是否符合预设条件。
其中,在第一报文的源地址、第一网关和报文参数符合预设条件的情况下,执行步骤S404;在第一报文的源地址、第一网关和报文参数不符合预设条件的情况下,执行步骤S405。
在上述实施例中,如果是,则确定新的下一跳网关;如果否,则新的下一跳网关为第一网关。
步骤S404:确定第二网关。
具体地,修改下一跳网关为预设条件指定的网关。
步骤S405:对第一报文进行网络地址转换得到转换后的第一报文。
具体地,对报文做网络地址转换,即把报文的源地址和源端口转换为网关路由器的公网地址和公网端口。
步骤S406:发送转换后的第一报文。
具体地,网关路由器将报文发送到网卡队列。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
从以上的描述中,可以看出,本发明实现了如下技术效果:
采用本发明实施例,在获取到第一报文的第一网关之后,按照第一报文的源地址、报文参数和第一网关查找符合预设条件的第二网关,并将第一报文发送至第二网关,实现了对第一报文的出口的灵活选择,并且上述的处理方法,成本低廉,在一般的linux服务器上就能部署,维护简单,仅需要少量规则(即上述实施例中的预设条件)就能满足内部网络用户复杂出口选路需求,且具有较高的转发性能,解决了现有技术中无法为不同的源地址设置不同的路由出口的问题,实现可以根据源地址为其确定网关的效果。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (11)

1.一种用于出口网关的报文处理方法,其特征在于,包括:
获取与第一报文对应的第一网关,其中,所述第一报文包括源地址,所述第一网关为所述第一报文转发的下一跳网关;
按照所述第一报文的源地址、报文参数和所述第一网关查找符合预设条件的第二网关;
将所述第一报文转发至所述第二网关,
其中,获取与第一报文对应的第一网关包括:
接收所述第一报文,其中,所述第一报文中带有目的地址;
从预设路由表中查询得到与所述目的地址对应的所述第一网关。
2.根据权利要求1所述的处理方法,其特征在于,按照所述第一报文的源地址、报文参数和所述第一网关查找符合预设条件的第二网关包括:
在预设网关表中查找到与所述报文参数、所述源地址和所述第一网关一致的路由数据,其中,所述报文参数包括:所述目的地址、入口网卡和出口网卡;
将所述路由数据指向的网关作为所述第二网关;
在预设网关表中查找不到与所述报文参数、所述源地址和所述第一网关一致的路由数据的情况下,将所述第一网关作为所述第二网关。
3.根据权利要求1或2所述的处理方法,其特征在于,将所述第一报文转发至所述第二网关包括:
对所述第一报文进行网络地址转换得到转换后的第一报文;
将所述转换后的第一报文转发至所述第二网关。
4.根据权利要求3所述的处理方法,其特征在于,在将所述转换后的第一报文转发至所述第二网关的同时,所述处理方法还包括:
记录对所述第一报文进行网络地址转换前后的源地址、源端口、目的地址、目的端口和下一跳网关,生成转发连接表,其中,所述下一跳网关为所述第一网关或所述第二网关。
5.根据权利要求4所述的处理方法,其特征在于,在生成转发连接表之后,所述处理方法还包括:
接收新的报文;
从所述转发连接表中查询是否存在与所述新的报文相同的报文记录;
在所述转发连接表中存在与所述新的报文相同的报文记录的情况下,从所述转发连接表中读取与所述新的报文对应的下一跳网关。
6.一种用于出口网关的报文处理装置,其特征在于,包括:
获取模块,用于获取与第一报文对应的第一网关,其中,所述第一报文包括源地址,所述第一网关为所述第一报文转发的下一跳网关;
查找模块,用于按照所述第一报文的源地址、报文参数和所述第一网关查找符合预设条件的第二网关;
转发模块,用于将所述第一报文转发至所述第二网关,
其中,所述获取模块包括:
第一接收模块,用于接收所述第一报文,其中,所述第一报文中带有目的地址;
网关查找模块,用于从预设路由表中查询得到与所述目的地址对应的所述第一网关。
7.根据权利要求6所述的处理装置,其特征在于,所述查找模块包括:
第一查找子模块,用于在预设网关表中查找到与所述报文参数、所述源地址和所述第一网关一致的路由数据,其中,所述报文参数包括:所述目的地址、入口网卡和出口网卡;
第一确定模块,用于将所述路由数据指向的网关作为所述第二网关;
第二确定模块,用于在预设网关表中查找不到与所述报文参数、所述源地址和所述第一网关一致的路由数据的情况下,将所述第一网关作为所述第二网关。
8.根据权利要求6或7所述的处理装置,其特征在于,所述转发模块包括:
地址转换模块,用于对所述第一报文进行网络地址转换得到转换后的第一报文;
转发子模块,用于将所述转换后的第一报文转发至所述第二网关。
9.根据权利要求8所述的处理装置,其特征在于,所述处理装置还包括:
记录模块,用于在将所述转换后的第一报文转发至所述第二网关的同时,记录对所述第一报文进行网络地址转换前后的源地址、源端口、目的地址、目的端口和下一跳网关,生成转发连接表,其中,所述下一跳网关为所述第一网关或所述第二网关。
10.根据权利要求9所述的处理装置,其特征在于,所述网关查找模块包括:
第二接收模块,用于接收新的报文;
第二查找子模块,用于从所述转发连接表中查询是否存在与所述新的报文相同的报文记录;
读取模块,用于在所述转发连接表中存在与所述新的报文相同的报文记录的情况下,从所述转发连接表中读取与所述新的报文对应的下一跳网关。
11.一种路由器,其特征在于,包括权利要求6至10中任意一项所述的报文的处理装置。
CN201410293381.7A 2014-06-25 2014-06-25 报文的处理方法、装置和路由器 Active CN105207904B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410293381.7A CN105207904B (zh) 2014-06-25 2014-06-25 报文的处理方法、装置和路由器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410293381.7A CN105207904B (zh) 2014-06-25 2014-06-25 报文的处理方法、装置和路由器

Publications (2)

Publication Number Publication Date
CN105207904A CN105207904A (zh) 2015-12-30
CN105207904B true CN105207904B (zh) 2018-07-17

Family

ID=54955348

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410293381.7A Active CN105207904B (zh) 2014-06-25 2014-06-25 报文的处理方法、装置和路由器

Country Status (1)

Country Link
CN (1) CN105207904B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107707478A (zh) * 2017-09-30 2018-02-16 迈普通信技术股份有限公司 数据转发方法及设备
CN109495461B (zh) * 2018-11-01 2021-07-23 北京车和家信息技术有限公司 数据访问请求处理方法、装置及车载中控系统
CN114697186B (zh) * 2022-03-03 2023-08-15 中国电子科技集团公司第二十八研究所 一种基于对偶路由的即插式网络管理系统
CN114826987B (zh) * 2022-04-01 2024-07-09 阿里云计算有限公司 网关转发异常检测方法、设备、介质及产品

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101217465A (zh) * 2007-12-28 2008-07-09 北京锐安科技有限公司 一种多出口服务器的路由选择方法及路由器
CN101383778A (zh) * 2008-10-27 2009-03-11 杭州华三通信技术有限公司 基于网络双出口的报文传输方法和出口路由器
CN101668010A (zh) * 2009-09-22 2010-03-10 中兴通讯股份有限公司 WiMAX系统中多接口数据流负荷分担的方法及装置
CN101938399A (zh) * 2009-06-30 2011-01-05 华为技术有限公司 一种路由方法、装置
CN102186221A (zh) * 2011-04-25 2011-09-14 北京星网锐捷网络技术有限公司 一种路由表项的更新方法以及装置
CN102664804A (zh) * 2012-04-24 2012-09-12 汉柏科技有限公司 网络设备实现网桥功能的方法及系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101160825B (zh) * 2005-02-01 2011-04-27 香港应用科技研究院有限公司 有效处理通信流量的系统和方法
CN101141372A (zh) * 2006-09-07 2008-03-12 上海贝尔阿尔卡特股份有限公司 接入设备中用于管理路由信息和数据转发的方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101217465A (zh) * 2007-12-28 2008-07-09 北京锐安科技有限公司 一种多出口服务器的路由选择方法及路由器
CN101383778A (zh) * 2008-10-27 2009-03-11 杭州华三通信技术有限公司 基于网络双出口的报文传输方法和出口路由器
CN101938399A (zh) * 2009-06-30 2011-01-05 华为技术有限公司 一种路由方法、装置
CN101668010A (zh) * 2009-09-22 2010-03-10 中兴通讯股份有限公司 WiMAX系统中多接口数据流负荷分担的方法及装置
CN102186221A (zh) * 2011-04-25 2011-09-14 北京星网锐捷网络技术有限公司 一种路由表项的更新方法以及装置
CN102664804A (zh) * 2012-04-24 2012-09-12 汉柏科技有限公司 网络设备实现网桥功能的方法及系统

Also Published As

Publication number Publication date
CN105207904A (zh) 2015-12-30

Similar Documents

Publication Publication Date Title
KR102586898B1 (ko) 패킷 처리 방법 및 장치, 및 관련 디바이스들
US8630294B1 (en) Dynamic bypass mechanism to alleviate bloom filter bank contention
US9762490B2 (en) Content filtering for information centric networks
US10397066B2 (en) Content filtering for information centric networks
CN107786437B (zh) 报文转发方法及装置
CN105591978B (zh) 基于网络的服务功能链接
CN102571613B (zh) 一种转发报文的方法及网络设备
US10530692B2 (en) Software FIB ARP FEC encoding
CN107241186A (zh) 应用签名生成和分发
WO2017128656A1 (zh) 虚拟专用网络vpn业务优化方法和设备
CN107046506B (zh) 一种报文处理方法、流分类器和业务功能实例
CN104488235B (zh) 报文转发方法和网络设备
CN105830406A (zh) 用于支持软件定义网络中的灵活查找关键字的方法、设备和系统
CN103650436A (zh) 业务路径分配方法、路由器和业务执行实体
CN109714274B (zh) 一种获取对应关系的方法和路由设备
WO2017107814A1 (zh) 一种传播QoS策略的方法、装置及系统
US20180123828A1 (en) Packet forwarding
WO2017198131A1 (zh) 用于重定向数据流的方法和系统、网络设备和控制设备
EP2869510B1 (en) Express header for packets with hierarchically structured variable-length identifiers
WO2014139157A1 (zh) 一种报文处理的方法、报文设备和系统
CN105207904B (zh) 报文的处理方法、装置和路由器
CN110022263B (zh) 一种数据传输的方法及相关装置
CN108777654B (zh) 报文转发方法及路由设备
CN115865802B (zh) 虚拟实例的流量镜像方法、装置、虚拟机平台及存储介质
CN114258103B (zh) 用于应用识别和路径选择的方法、无线接入点及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20200713

Address after: 310052 room 508, floor 5, building 4, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province

Patentee after: Alibaba (China) Co.,Ltd.

Address before: 510627 Guangdong city of Guangzhou province Whampoa Tianhe District Road No. 163 Xiping Yun Lu Yun Ping B radio 14 floor tower square

Patentee before: Guangzhou Dongjing Computer Technology Co.,Ltd.

TR01 Transfer of patent right