CN102655476A - 一种互联网协议流转发方法,及设备 - Google Patents
一种互联网协议流转发方法,及设备 Download PDFInfo
- Publication number
- CN102655476A CN102655476A CN2012101162201A CN201210116220A CN102655476A CN 102655476 A CN102655476 A CN 102655476A CN 2012101162201 A CN2012101162201 A CN 2012101162201A CN 201210116220 A CN201210116220 A CN 201210116220A CN 102655476 A CN102655476 A CN 102655476A
- Authority
- CN
- China
- Prior art keywords
- keyword
- forwarding
- circulation
- data message
- stream
- 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.)
- Granted
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例公开了一种互联网协议流转发方法,及设备。方法的实现包括:接收数据报文;获取数据报文的第一流转发关键字,根据第一流转发关键字查询流转发表;当流转发表中的第一流转发记录的关键字与第一流转发关键字相同时,根据第一流转发记录的出口信息转发数据报文;当流转发表中任何一条已有记录的关键字与第一流转发关键字均不相同时,若数据报文是经过GRE的IP报文,获取数据报文的第二流转发关键字,根据第二流转发关键字查询流转发表;当流转发表中的第二流转发记录的关键字与第二流转发关键字相同时,根据第二流转发记录的出口信息转发所述数据报文。可以解决GRE隧道封装的IP数据报文进行流转发时,流转发成功率低的问题。
Description
技术领域
本发明涉及通信技术领域,特别涉及一种互联网协议流转发方法,及设备。
背景技术
路由转发一般包括两种形式,一种是逐包转发(即:包转发),逐包转发的实现方式是:每个数据报文都按照数据报文内容进行匹配,删除数据报文的互联网协议(Internet Protocol,IP)头之前的封装,依据数据报文的流转发关键字查路由转发表得到数据报文的出接口地址以及报文封装类型,获取出口信息;然后根据上述出口信息转发上述数据报文。另一种是流转发,流转发的实现方式是:精确匹配的流转发,也就是我们常说的一次路由多次转发。流转发是收到数据流的第一个数据报文后,将该数据报文的出接口地址以及协议类型记录下来,之后如再收到该数据流的数据报文时,直接按照之前记录的转发行为处理。数据流是指具有相同流特征的数据报文的集合。
通常,IP流转发包括:
(1)、接收数据报文,提取流转发关键字;
提取流转发关键字具体是:根据处理流程的需要在数据报文IP头提取相关的流转发关键字,如:提取数据报文源互联网协议IP地址,数据报文目的IP地址,IP下一层协议类型等。
(2)、查找流转发表,若查找失败,进入(3),查找成功进入(7);
在初始状态时流转发表为空,步骤(2)查找流转发表会失败。
(3)、入口处理;入口处理具体为:解析并删除IP头之前的的链路层报文封装。
(4)、查找路由;具体是依据流转发关键字查找路由转发表。
(5)、出口处理;具体为:添加数据报文链路层封装。
(6)、添加流转发表,进入(8);添加流转发表具体为:将(4)中查找到的信息加入到流转发表。
(7)、执行流转发,进入(8);
(8)、发送数据报文。
然而对于IP数据报文由通用路由封装(Generic Routing Extension,GRE)隧道封装的数据报文,具有内外两层IP头,外层IP头相同的数据报文可能由于内层IP数据差异,而做不同的转发行为。现有IP流转发是基于最外层IP头来建立流转发表,无法区分GRE内层数据报文的差异。如果使用现有方法,具有相同GRE隧道封装的多条不同的数据流仅会建立一条IP流转发表项,而导致一部分IP流转发错误。
发明人在实现本发明实施例的过程中发现:由通用路由封装(GenericRouting Extension,GRE)隧道封装的IP数据报文,根据现有IP流转发技术进行转发的过程中经常出现转发错误的状况。
发明内容
本发明实施例提供了一种互联网协议流转发方法,及设备,用于解决GRE隧道封装的IP数据报文进行流转发时,出现转发错误,导致流转发成功率低的问题。
一种报文转发方法,包括:
接收数据报文;
获取所述数据报文的第一流转发关键字,所述第一流转发关键字包含所述数据报文外层封装的源互联网协议IP地址和目的IP地址,以及协议类型;
根据所述第一流转发关键字查询流转发表,所述流转发表中包含关键字和出口信息的对应关系;当所述流转发表中的第一流转发记录的关键字与所述第一流转发关键字相同时,根据所述第一流转发记录的出口信息转发所述数据报文;
当所述流转发表中任何一条已有记录的关键字与所述第一流转发关键字均不相同时,若所述数据报文是经过通用路由封装GRE的互联网协议IP报文,获取所述数据报文的第二流转发关键字,所述第二流转发关键字包含所述数据报文内层封装的源IP地址和目的IP地址,根据所述第二流转发关键字查询所述流转发表;
当所述流转发表中的第二流转发记录的关键字与所述第二流转发关键字相同时,根据所述第二流转发记录的出口信息转发所述数据报文。
一种互联网协议流转发设备,包括:
报文接收单元,用于接收数据报文;
第一特征提取单元,用于获取所述数据报文的第一流转发关键字,所述第一流转发关键字包含所述数据报文外层封装的源互联网协议IP地址和目的IP地址,以及协议类型;
流表查找单元,用于根据所述第一流转发关键字查询流转发表,所述流转发表中包含关键字和出口信息的对应关系;根据所述第二流转发关键字查询所述流转发表;
流转发控制单元,用于当所述流转发表中的第一流转发记录的关键字与所述第一流转发关键字相同时,根据所述第一流转发记录的出口信息转发所述数据报文;
第二特征提取单元,用于当所述流转发表中任何一条已有记录的关键字与所述第一流转发关键字均不相同时,若所述数据报文是经过通用路由封装GRE的互联网协议IP报文,获取所述数据报文的第二流转发关键字,所述第二流转发关键字包含所述数据报文内层封装的源IP地址和目的IP地址;
所述流表查找单元,还用于根据所述第二流转发关键字查询所述流转发表;
所述流转发控制单元,还用于当所述流转发表中的第二流转发记录的关键字与所述第二流转发关键字相同时,根据所述第二流转发记录的出口信息转发所述数据报文。
从以上技术方案可以看出,本发明实施例具有以下优点:通过GRE隧道封装的IP数据报文的内层IP头来区分一个GRE隧道中的不同IP数据流,并根据内层IP头获取的流转发关键字来建立和查找流转发表,实现了GRE隧道封装的IP数据报文的流转发,可以解决GRE隧道封装的IP数据报文进行流转发时,出现转发错误,导致流转发成功率低的问题。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例方法流程示意图;
图2为本发明实施例流转发实例示意图;
图3为本发明实施例另一方法流程示意图;
图4为本发明实施例另一方法流程示意图;
图5A为本发明实施例GRE隧道封装的IP数据报文封装格式示意图;
图5B为本发明实施例另一GRE隧道封装的IP数据报文封装格式示意图;
图6为本发明实施例互联网协议流转发设备结构示意图;
图7为本发明实施例另一互联网协议流转发设备结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明实施例提供了一种互联网协议流转发方法,如图1所示,包括:
101:接收数据报文;获取上述数据报文的第一流转发关键字,上述第一流转发关键字包含上述数据报文外层封装的源互联网协议IP地址和目的IP地址,以及协议类型;
102:根据上述第一流转发关键字查询流转发表,上述流转发表中包含关键字和出口信息的对应关系;
103:当上述流转发表中的第一流转发记录的关键字与上述第一流转发关键字相同时,根据上述第一流转发记录的出口信息转发上述数据报文;
上述出口信息包含报文出接口地址以及报文封装头类型。可选的,出口信息还可以包括:端口号、子网掩码字段等。
104:当上述流转发表中任何一条已有记录的关键字与上述第一流转发关键字均不相同时,若上述数据报文是经过通用路由封装GRE的互联网协议IP报文,获取上述数据报文的第二流转发关键字,上述第二流转发关键字包含上述数据报文内层封装的源IP地址和目的IP地址,根据上述第二流转发关键字查询上述流转发表;
可选地,上述获取上述数据报文的第二流转发关键字包括:对上述数据报文进行通用路由封装解封装得到上述数据报文的内层IP头,依据上述内层IP头提取上述数据报文的第二流转发关键字。在后续实施例中将就GRE隧道封装的报文转发及解封装作更详细说明。
进一步地,为了增强对数据报文的识别以及与流转发表的匹配度,流转发关键字包含的信息还可以进一步扩充,包括:源端口号,目的端口号,隧道索引以及虚拟专用网索引中的至少一项。需要说明的是流转发关键字可扩充的信息还可以有很多,并不仅限于以上七种,只要可以用于唯一确定IP流的流转发关键字都是可以的,本发明实施例对此不予限定。
105:当上述流转发表中的第二流转发记录的关键字与上述第二流转发关键字相同时,根据上述第二流转发记录的出口信息转发上述数据报文。
举例说明:如图2所示,假设有两条数据流,目的IP地址分别为192.168.1.1和192.168.2.1,通过网络边界设备1(Provider Edge 1,PE1)进行GRE隧道封装并转发,两条数据流经过GRE封装后的源IP为1.1.1.1,目的IP为2.2.2.2,穿越网络到达PE2。如果在PE2上进行流转发,按照现有技术方案执行过程为:PE2会根据GRE隧道封装的外层IP提取流转发关键字,源IP为1.1.1.1,目的IP为2.2.2.2,并建立流转发表,假设目的为192.168.1.1的数据流先建立流转发表,流转发表中记录的转发行为——出接口为FE 0/0。这样当目的为192.168.2.1的数据流到达PE2时,由于GRE外层IP头是一样,提取的流转发关键字相同,这样目的地为192.168.2.1的数据流也会命中之前建立的流转发表,导致数据报文错误的向FE0/0转发,而非期望的接口FE0/1。而使用本发明实施例方法,则在当目的为192.168.2.1的数据流到达PE2时,使用内层的IP头提取流转发关键字,不会命中之前建立的流转发表,会新建立另外一条流转发表的表项,从而能够将该数据流正确地发送至192.168.2.1,提升转发成功率。
因此采用以上方法,通过GRE隧道封装数据报文的内层IP头来区分一个GRE隧道的不同IP流,并使用内层IP头获取的流转发关键字来查找流转发表,实现了GRE隧道封装数据报文的流转发,可以解决GRE隧道封装的数据报文进行IP流转发时,出现转发错误,导致流转发成功率低的问题。
可选地,上述流转发关键字是为了唯一区分数据报文所属的IP流,流转发关键字可以是多个属性组合成的,例如:原IP地址+目的IP地址,也可以是对多个属性进行哈希(HASH),例如HASH(源IP地址+目的IP地址),得到的一个值。
如图3所示,本发明实施例提供了另一种互联网协议流转发的方法,包括:
301:接收数据报文;获取上述数据报文的第一流转发关键字,上述第一流转发关键字包含上述数据报文外层封装的源互联网协议IP地址和目的IP地址,以及协议类型;
302:根据上述第一流转发关键字查询流转发表,上述流转发表中包含关键字和出口信息的对应关系;
303:当上述流转发表中的第一流转发记录的关键字与上述第一流转发关键字相同时,根据上述第一流转发记录的出口信息转发上述数据报文;
上述出口信息包含报文出接口地址以及报文封装头类型。可选的,出口信息还可以包括:端口号、子网掩码字段等。
304:当上述流转发表中任何一条已有记录的关键字与上述第一流转发关键字均不相同时,若上述数据报文是经过通用路由封装GRE的互联网协议IP报文,获取上述数据报文的第二流转发关键字,上述第二流转发关键字包含上述数据报文内层封装的源IP地址和目的IP地址,根据上述第二流转发关键字查询上述流转发表;
305:当上述流转发表中的第二流转发记录的关键字与上述第二流转发关键字相同时,根据上述第二流转发记录的出口信息转发上述数据报文。
可选地,上述获取上述数据报文的第二流转发关键字包括:对上述数据报文进行通用路由封装解封装得到上述数据报文的内层IP头,依据上述内层IP头提取上述数据报文的第二流转发关键字。在后续实施例中将就GRE隧道封装的报文转发及解封装作更详细说明。
进一步地,为了增强对数据报文的识别以及与流转发表的匹配度,流转发关键字包含的信息还可以进一步扩充,包括:源端口号,目的端口号,隧道索引以及虚拟专用网索引中的至少一项。需要说明的是流转发关键字可扩充的信息还可以有很多,并不仅限于以上七种,只要可以用于唯一确定IP流的流转发关键字都是可以的,本发明实施例对此不予限定。
306:当上述流转发表中任何一条已有记录的关键字与上述第二流转发关键字均不相同时,根据上述第二流转发关键字查询路由转发表,上述路由转发表中包含关键字和转发信息的对应关系;当上述路由转发表中的第二路由转发记录的关键字与上述第二流转发关键字相同时,根据上述第二路由转发记录转发上述数据报文;并根据上述第二路由转发记录获取第二出口信息,并将上述第二流转发关键字和上述第二出口信息更新到上述流转发表中,以使后续具有相同流转发关键字的报文根据上述流转发表进行转发。
需要说明的是,上述根据上述第二路由转发记录,转发上述数据报文,与上述根据上述第二路由转发记录获取第二出口信息,并将上述第二流转发关键字和上述第二出口信息更新到上述流转发表,也可以同时进行;或者,先根据上述第二路由转发记录,转发上述数据报文,再根据上述第二路由转发记录获取第二出口信息,并将上述第二流转发关键字和上述第二出口信息更新到上述流转发表。对此,本发明不做限定。
306:当上述流转发表中任何一条已有记录的关键字与上述第一流转发关键字均不相同时,若上述数据报文不是经过通用路由封装GRE的互联网协议IP报文,根据上述第一流转发关键字查询路由转发表,上述路由转发表包含关键字和转发信息的对应关系;当上述路由转发表中的第一路由转发记录的关键字与上述第一流转发关键字相同时,根据上述第一路由转发记录,转发上述数据报文;并根据上述第一路由转发记录获取第一出口信息,并将上述第一流转发关键字和上述第一出口信息更新到上述流转发表中,以使后续具有相同流转发关键字的报文根据上述流转发表进行转发。
需要说明的是,上述根据上述第一路由转发记录转发上述数据报文,与上述根据上述第一路由转发记录获取第一出口信息,并将上述第一流转发关键字和上述第一出口信息更新到上述流转发表,也可以同时进行;或者,先根据上述第一路由转发记录转发上述数据报文,再根据上述第一路由转发记录获取第一出口信息,并将上述第一流转发关键字和上述第一出口信息更新到上述流转发表。对此,本发明不做限定。
本发明实施例可以在不大量增加流转发表的流转发关键字的情况下,实现对GRE隧道中不同IP流的识别,从而在IP流转发中区别不同IP流的转发行为。实现了GRE隧道封装数据报文的流转发,可以解决GRE隧道封装的数据报文进行IP流转发时,出现转发错误,导致流转发成功率低的问题。
举例来说,如图4所示,以GRE隧道封装及GRE隧道封装以外的其他封装方式的报文转发进行详细说明。如图4所示包括:
401:接收数据报文。
上述数据报文可以是如图5A左侧的封装格式,从外至内包含:外层IP头、GRE、内层IP头以及数据载荷,也可以是如图5B最右侧的封装格式,从外至内包含:内层IP头以及IP数据。
402:从上述数据报文的最外层IP头提取上述数据报文的第一流转发关键字。第一流转发关键字包括:源IP地址和目的IP地址,以及协议类型。
403:使用上述第一流转发关键字查找流转发表。若查找成功,即:流转发表内具有与上述第一流转发关键字相同的表项,进入407,若查找失败,即:流转发表内没有与上述第一流转发关键字相同的表项,进入404。
由于流转发表存储了关键字与出口信息的对应关系,所以在查找成功后可以得到与第一流转发关键字对应的出口信息。
上述出口信息包含报文出接口地址以及报文封装头类型。可选的,出口信息还可以包括:端口号、子网掩码字段等。
404:判断上述数据报文是否为GRE隧道封装的数据报文。若是,进入405,若否,进入408。
405:根据上述数据报文的内层IP头提取第二流转发关键字。在本步骤中解析GRE时,可以去掉外层IP头和GRE,如图5B中间所示的协议头和IP数据,剩下如图5B最右边所示的内层IP头和IP数据,然后从内层IP头提取第二流转发关键字。
406:依据第二流转发关键字查找流转发表。若查找成功,进入407,若查找失败,进入408。
由于流转发表存储了关键字与出口信息的对应关系,所以在查找成功后可以得到与第二流转发关键字对应的出口信息。
407:进行流转发,具体为:依据流转发关键字对应的出口信息转发上述数据报文。
需要说明的是,若从403进入本步骤,在本步骤中的流转发关键字是第一流转发关键字;若从406进入本步骤,在本步骤中的流转发关键字是第二流转发关键字。
408:进行包转发,具体为:根据流转发关键字查询路由转发表,并根据查询到路由转发记录转发上述数据报文。
上述路由转发表中包含关键字和转发信息的对应关系。
需要说明的是,若从404进入本步骤,本步骤中的流转发关键字是第一流转发关键字。相应地,包转发具体为:
根据上述第一流转发关键字查询路由转发表,并根据查找到的路由转发记录,转发上述数据报文。
若从406进入本步骤,本步骤中的流转发关键字是第二流转发关键字。相应地,包转发具体为:
根据上述第二流转发关键字查询路由转发表,并根据查找到的路由转发记录,转发上述数据报文。
409:更新流转发表。
具体来说,若从404进入408,本步骤中的流转发关键字是第一流转发关键字。相应地,更新流转发表具体为:
根据408中查找到的路由转发记录获取第一出口信息,并将上述第一流转发关键字和上述第一出口信息更新到上述流转发表中。
若从406进入408,本步骤中的流转发关键字是第二流转发关键字。相应地,更新流转发表具体为:
根据408中查找到的路由转发记录获取第二出口信息,并将上述第二流转发关键字和上述第二出口信息更新到上述流转发表中。以上实施例通过GRE隧道封装的IP数据报文的内层IP头来区分一个GRE隧道中的不同IP数据流,并根据内层IP头获取的流转发关键字来建立和查找流转发表,实现了GRE隧道封装的IP数据报文的流转发,可以解决GRE隧道封装的IP数据报文进行流转发时,出现转发错误,导致流转发成功率低的问题,提升转发成功率。
依据图3所示的流程,流转发表建立过程如下:
实现本发明的流转发方法,建立流转发表的流转发关键字字段可以包含三个:源IP地址,目的IP地址以及协议类型。在流转发表未建立时,通过一次包转发流程来收集流转发表特征字段。当网络设备分别作为GRE隧道终结设备和隧道透传设备时,包转发执行如下基础转发行为:对于GRE隧道封装设备,如图2中的PE1,会将IP数据报文加上GRE头;对于GRE隧道透传设备,如图2中PE1与PE2之间网络中的路由器,会将GRE封装的数据报文当成普通IP数据报文,不识别是否为GRE数据报文,如图5A所示,查找路由后协议以及IP数据无变化。对于GRE隧道终结设备,如图2中的PE2,并请参阅图5B,PE2能够识别是否GRE数据报文,PE2执行查找路由前需要解析GRE,PE2解析GRE时会将GRE数据报文中的GRE头删除,即:会去掉外层IP头和GRE,得到如图5B右侧仅包含内层IP头和IP数据,然后从内层的IP头中提取关键字,从而完成对解析GRE。
本发明实施例还提供了一种互联网协议流转发设备,如图6所示,用于实现本发明图1所示的互联网协议流转发方法。上述设备包括报文接收单元501、第一特征提取单元502、流表查找单元503、流转发控制单元504以及第二特征提取单元505。其中:
上述报文接收单元501,用于接收数据报文;
上述第一特征提取单元502,用于获取上述数据报文的第一流转发关键字,上述第一流转发关键字包含上述数据报文外层封装的源互联网协议IP地址和目的IP地址,以及协议类型;
上述流表查找单元503,用于根据上述第一流转发关键字查询流转发表,上述流转发表中包含关键字和出口信息的对应关系;
上述流转发控制单元504,用于当上述流转发表中的第一流转发记录的关键字与上述第一流转发关键字相同时,根据上述第一流转发记录的出口信息转发上述数据报文;
上述第二特征提取单元505,用于当上述流转发表中任何一条已有记录的关键字与上述第一流转发关键字均不相同时,若上述数据报文是经过通用路由封装GRE的互联网协议IP报文,获取上述数据报文的第二流转发关键字,上述第二流转发关键字包含上述数据报文内层封装的源IP地址和目的IP地址;
上述流表查找单元503,还用于根据上述第二流转发关键字查询上述流转发表;
上述流转发控制单元504,还用于当上述流转发表中的第二流转发记录的关键字与上述第二流转发关键字相同时,根据上述第二流转发记录的出口信息转发上述数据报文。
更具体地,上述第二特征提取单元505,具体用于当上述流转发表中任何一条已有记录的关键字与上述第一流转发关键字均不相同时,若上述数据报文是经过通用路由封装GRE的互联网协议IP报文,对上述数据报文进行通用路由封装GRE解封装,得到上述数据报文的内层IP头,依据上述内层IP头提取上述数据报文的第二流转发关键字。
采用本发明实施例的方案,通过GRE隧道封装数据报文的内层IP头来区分一个GRE隧道的不同IP流,并使用内层IP头获取的流转发关键字来查找流转发表,实现了GRE隧道封装数据报文的流转发,可以解决GRE隧道封装的数据报文进行IP流转发成功率低的问题,提升转发成功率。
进一步地,如图7所示,上述设备还包括路由表查找单元601、流表更新单元602、路由转发控制单元603以及获取单元604,用于实现本发明图3和图4所示的互联网协议流转发方法。
上述路由表查找单元601,用于当上述流转发表中任何一条已有记录的关键字与上述第二流转发关键字均不相同时;根据上述第二流转发关键字查询路由转发表,上述路由转发表中包含关键字和转发信息的对应关系;
上述获取单元604,用于当上述路由转发表中的第二路由转发记录的关键字与上述第二流转发关键字相同时,根据上述第二路由转发记录获取第二出口信息;上述出口信息包含报文出接口地址以及报文封装头类型;
上述路由转发控制单元603,用于当上述路由转发表中的第二路由转发记录的关键字与上述第二流转发关键字相同时,根据上述第二路由转发记录,转发上述数据报文;
上述流表更新单元602,用于将上述第二流转发关键字和上述第二出口信息更新到上述流转发表中,以使后续具有相同流转发关键字的报文根据上述流转发表进行转发。
进一步地,上述路由表查找单元601,还用于当上述流转发表中任何一条已有记录的关键字与上述第一流转发关键字均不相同时,若上述数据报文不是经过通用路由封装GRE的互联网协议IP报文,根据上述第一流转发关键字查询路由转发表,上述路由转发表包含关键字和转发信息的对应关系;
上述获取单元604,还用于当上述路由转发表中的第一路由转发记录的关键字与上述第一流转发关键字相同时,根据上述第一路由转发记录获取第一出口信息;
上述路由转发控制单元603,还用于当上述路由转发表中的第一路由转发记录的关键字与上述第一流转发关键字相同时,根据上述第一路由转发记录,转发上述数据报文;
上述流表更新单元602,还用于将上述第一流转发关键字和上述第一出口信息更新到上述流转发表中,以使后续具有相同流转发关键字的报文根据上述流转发表进行转发。
本发明实施例,通过GRE隧道封装的IP数据报文的内层IP头来区分一个GRE隧道中的不同IP数据流,并根据内层IP头获取的流转发关键字来建立和查找流转发表,实现了GRE隧道封装的IP数据报文的流转发,可以解决GRE隧道封装的IP数据报文进行流转发时,出现转发错误,导致流转发成功率低的问题,提升转发成功率。
值得注意的是,上述互联网协议流转发设备,实施例中,所包括的各个单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
另外,本领域普通技术人员可以理解实现上述各方法实施例中的全部或部分步骤是可以通过程序来指令相关的硬件完成,相应的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明实施例揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (9)
1.一种报文转发方法,其特征在于,包括:
接收数据报文;
获取所述数据报文的第一流转发关键字,所述第一流转发关键字包含所述数据报文外层封装的源互联网协议IP地址和目的IP地址,以及协议类型;
根据所述第一流转发关键字查询流转发表,所述流转发表中包含关键字和出口信息的对应关系;
当所述流转发表中的第一流转发记录的关键字与所述第一流转发关键字相同时,根据所述第一流转发记录的出口信息转发所述数据报文;
当所述流转发表中任何一条已有记录的关键字与所述第一流转发关键字均不相同时,若所述数据报文是经过通用路由封装GRE的互联网协议IP报文,获取所述数据报文的第二流转发关键字,所述第二流转发关键字包含所述数据报文内层封装的源IP地址和目的IP地址;
根据所述第二流转发关键字查询所述流转发表;
当所述流转发表中的第二流转发记录的关键字与所述第二流转发关键字相同时,根据所述第二流转发记录的出口信息转发所述数据报文。
2.根据权利要求1所述方法,其特征在于,所述方法还包括:
当所述流转发表中任何一条已有记录的关键字与所述第二流转发关键字均不相同时;
根据所述第二流转发关键字查询路由转发表,所述路由转发表中包含关键字和转发信息的对应关系;
当所述路由转发表中的第二路由转发记录的关键字与所述第二流转发关键字相同时,根据所述第二路由转发记录,转发所述数据报文;
根据所述第二路由转发记录获取第二出口信息,并将所述第二流转发关键字和所述第二出口信息更新到所述流转发表中,以使后续具有相同流转发关键字的报文根据所述流转发表进行转发。
3.根据权利要求1或2所述方法,其特征在于,所述获取所述数据报文的第二流转发关键字具体包括:
对所述数据报文进行通用路由封装GRE解封装,得到所述数据报文的内层IP头,依据所述内层IP头提取所述数据报文的第二流转发关键字。
4.根据权利要求1至3任一项所述方法,其特征在于,所述第二流转发关键字还包括:
所述数据报文内层IP头封装的源端口号,目的端口号,隧道索引以及虚拟专用网索引中的至少一项。
5.根据权利要求1所述方法,其特征在于,所述方法还包括:
当所述流转发表中任何一条已有记录的关键字与所述第一流转发关键字均不相同时,若所述数据报文不是经过通用路由封装GRE的互联网协议IP报文,根据所述第一流转发关键字查询路由转发表,所述路由转发表包含关键字和转发信息的对应关系;
当所述路由转发表中的第一路由转发记录的关键字与所述第一流转发关键字相同时,
根据所述第一路由转发记录,转发所述数据报文;
根据所述第一路由转发记录获取第一出口信息,并将所述第一流转发关键字和所述第一出口信息更新到所述流转发表中,以使后续具有相同流转发关键字的报文根据所述流转发表进行转发。
6.一种互联网协议流转发设备,其特征在于,所述设备包括:
报文接收单元,用于接收数据报文;
第一特征提取单元,用于获取所述数据报文的第一流转发关键字,所述第一流转发关键字包含所述数据报文外层封装的源互联网协议IP地址和目的IP地址,以及协议类型;
流表查找单元,用于根据所述第一流转发关键字查询流转发表,所述流转发表中包含关键字和出口信息的对应关系;根据所述第二流转发关键字查询所述流转发表;
流转发控制单元,用于当所述流转发表中的第一流转发记录的关键字与所述第一流转发关键字相同时,根据所述第一流转发记录的出口信息转发所述数据报文;
第二特征提取单元,用于当所述流转发表中任何一条已有记录的关键字与所述第一流转发关键字均不相同时,若所述数据报文是经过通用路由封装GRE的互联网协议IP报文,获取所述数据报文的第二流转发关键字,所述第二流转发关键字包含所述数据报文内层封装的源IP地址和目的IP地址;
所述流表查找单元,还用于根据所述第二流转发关键字查询所述流转发表;
所述流转发控制单元,还用于当所述流转发表中的第二流转发记录的关键字与所述第二流转发关键字相同时,根据所述第二流转发记录的出口信息转发所述数据报文。
7.根据权利要求6所述设备,其特征在于,所述设备还包括:
路由表查找单元,用于当所述流转发表中任何一条已有记录的关键字与所述第二流转发关键字均不相同时;根据所述第二流转发关键字查询路由转发表,所述路由转发表中包含关键字和转发信息的对应关系;
获取单元,用于当所述路由转发表中的第二路由转发记录的关键字与所述第二流转发关键字相同时,根据所述第二路由转发记录获取第二出口信息;
路由转发控制单元,用于当所述路由转发表中的第二路由转发记录的关键字与所述第二流转发关键字相同时,根据所述第二路由转发记录,转发所述数据报文;
流表更新单元,用于将所述第二流转发关键字和所述第二出口信息更新到所述流转发表中,以使后续具有相同流转发关键字的报文根据所述流转发表进行转发。
8.根据权利要求7所述设备,其特征在于,
所述路由表查找单元,还用于当所述流转发表中任何一条已有记录的关键字与所述第一流转发关键字均不相同时,若所述数据报文不是经过通用路由封装GRE的互联网协议IP报文,根据所述第一流转发关键字查询路由转发表,所述路由转发表包含关键字和转发信息的对应关系;
所述获取单元,还用于当所述路由转发表中的第一路由转发记录的关键字与所述第一流转发关键字相同时,根据所述第一路由转发记录获取第一出口信息;
所述路由转发控制单元,还用于当所述路由转发表中的第一路由转发记录的关键字与所述第一流转发关键字相同时,根据所述第一路由转发记录,转发所述数据报文;
所述流表更新单元,还用于将所述第一流转发关键字和所述第一出口信息更新到所述流转发表中,以使后续具有相同流转发关键字的报文根据所述流转发表进行转发。
9.根据权利要求6至8任意一项所述设备,其特征在于,
所述第二特征提取单元,具体用于当所述流转发表中任何一条已有记录的关键字与所述第一流转发关键字均不相同时,若所述数据报文是经过通用路由封装GRE的互联网协议IP报文,对所述数据报文进行通用路由封装GRE解封装,得到所述数据报文的内层IP头,依据所述内层IP头提取所述数据报文的第二流转发关键字。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210116220.1A CN102655476B (zh) | 2012-04-19 | 2012-04-19 | 一种互联网协议流转发方法,及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210116220.1A CN102655476B (zh) | 2012-04-19 | 2012-04-19 | 一种互联网协议流转发方法,及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102655476A true CN102655476A (zh) | 2012-09-05 |
CN102655476B CN102655476B (zh) | 2014-11-05 |
Family
ID=46731003
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210116220.1A Active CN102655476B (zh) | 2012-04-19 | 2012-04-19 | 一种互联网协议流转发方法,及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102655476B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102882789A (zh) * | 2012-09-17 | 2013-01-16 | 华为技术有限公司 | 一种数据报文处理方法、系统及设备 |
CN103825831A (zh) * | 2014-02-28 | 2014-05-28 | 神州数码网络(北京)有限公司 | 报文转发方法以及交换机 |
CN104618211A (zh) * | 2014-12-31 | 2015-05-13 | 杭州华三通信技术有限公司 | 一种基于隧道的报文处理方法和总部网关设备 |
WO2017124693A1 (zh) * | 2016-01-21 | 2017-07-27 | 中兴通讯股份有限公司 | 一种报文解封装处理、数据写入方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060050696A1 (en) * | 2004-09-08 | 2006-03-09 | Ericsson Inc. | Generic routing encapsulation over point-to-point protocol |
CN101009661A (zh) * | 2007-01-25 | 2007-08-01 | 华为技术有限公司 | 基于流转发的更新流转发表项内容的方法及设备 |
CN101051986A (zh) * | 2006-05-15 | 2007-10-10 | 华为技术有限公司 | 一种实现快速切换的方法及装置 |
CN101938415A (zh) * | 2010-08-30 | 2011-01-05 | 北京傲天动联技术有限公司 | 网络转发设备的快速转发方法 |
-
2012
- 2012-04-19 CN CN201210116220.1A patent/CN102655476B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060050696A1 (en) * | 2004-09-08 | 2006-03-09 | Ericsson Inc. | Generic routing encapsulation over point-to-point protocol |
CN101051986A (zh) * | 2006-05-15 | 2007-10-10 | 华为技术有限公司 | 一种实现快速切换的方法及装置 |
CN101009661A (zh) * | 2007-01-25 | 2007-08-01 | 华为技术有限公司 | 基于流转发的更新流转发表项内容的方法及设备 |
CN101938415A (zh) * | 2010-08-30 | 2011-01-05 | 北京傲天动联技术有限公司 | 网络转发设备的快速转发方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102882789A (zh) * | 2012-09-17 | 2013-01-16 | 华为技术有限公司 | 一种数据报文处理方法、系统及设备 |
WO2014040411A1 (zh) * | 2012-09-17 | 2014-03-20 | 华为技术有限公司 | 一种数据报文处理方法、系统及设备 |
CN102882789B (zh) * | 2012-09-17 | 2016-03-30 | 华为技术有限公司 | 一种数据报文处理方法、系统及设备 |
CN103825831A (zh) * | 2014-02-28 | 2014-05-28 | 神州数码网络(北京)有限公司 | 报文转发方法以及交换机 |
CN104618211A (zh) * | 2014-12-31 | 2015-05-13 | 杭州华三通信技术有限公司 | 一种基于隧道的报文处理方法和总部网关设备 |
WO2017124693A1 (zh) * | 2016-01-21 | 2017-07-27 | 中兴通讯股份有限公司 | 一种报文解封装处理、数据写入方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN102655476B (zh) | 2014-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102946356B (zh) | 一种基于cb-pe网络的组播报文传输方法和设备 | |
CN103023792B (zh) | 用于在最短路径桥接网络中进行分组交换的方法和系统 | |
US6665713B1 (en) | Topology information automatic configuration method and its topology information automatic configuration system | |
CN105827495B (zh) | Vxlan网关的报文转发方法和设备 | |
CN101938421B (zh) | 多协议标签交换网络中实现路由汇聚的方法及路由设备 | |
CN103685010A (zh) | 一种报文转发方法和边缘设备 | |
CN101616094B (zh) | 报文转发路径的获取方法和设备 | |
CN104144156A (zh) | 报文处理方法和装置 | |
CN107306220A (zh) | 报文转发方法及装置 | |
CN105939297A (zh) | 一种tcp报文重组方法和装置 | |
EP3534577B1 (en) | Forwarding multicast packets through an extended bridge | |
CN102655476A (zh) | 一种互联网协议流转发方法,及设备 | |
CN105591872B (zh) | 一种实现多数据中心互联的方法和装置 | |
CN104486229A (zh) | 一种实现vpn网络报文转发的方法及设备 | |
US7394810B2 (en) | Layer 2 switch and method of processing expansion VLAN tag of layer 2 frame | |
CN106453091A (zh) | 路由器转发平面的等价路由管理方法和装置 | |
CN102340446B (zh) | VPLS网络中E-tree业务的实现方法及PE设备 | |
CN102970239B (zh) | 流处理方法、流处理装置、路由器及流处理系统 | |
CN102938711B (zh) | 网口信息配置方法及网络设备 | |
CN105812221A (zh) | 虚拟可扩展本地区域网络中数据传输的设备和方法 | |
CN109218176B (zh) | 一种报文处理的方法及装置 | |
CN105721312A (zh) | 一种网络堆叠设备中实现路由分离的芯片实现方法及装置 | |
CN106209554A (zh) | 跨虚拟可扩展局域网的报文转发方法和设备 | |
CN101572668A (zh) | 一种删除mac地址的方法及装置 | |
CN109962846A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |