专利名称:一种互联网协议流转发方法,及设备的制作方法
技术领域:
本发明涉及通信技术领域,特别涉及一种互联网协议流转发方法,及设备。
背景技术:
路由转发一般包括两种形式,一种是逐包转发(即包转发),逐包转发的实现方式是每个数据报文都按照数据报文内容进行匹配,删除数据报文的互联网协议(InternetProtocol, IP)头之前的封装,依据数据报文的流转发关键字查路由转发表得到数据报文的出接ロ地址以及报文封装类型,获取出口信息;然后根据上述出口信息转发上述数据报文。 另ー种是流转发,流转发的实现方式是精确匹配的流转发,也就是我们常说的一次路由多次转发。流转发是收到数据流的第一个数据报文后,将该数据报文的出接ロ地址以及协议类型记录下来,之后如再收到该数据流的数据报文时,直接按照之前记录的转发行为处理。数据流是指具有相同流特征的数据报文的集合。通常,IP流转发包括(I)、接收数据报文,提取流转发关键字;提取流转发关键字具体是根据处理流程的需要在数据报文IP头提取相关的流转发关键字,如提取数据报文源互联网协议IP地址,数据报文目的IP地址,IP下ー层协议类型等。(2)、查找流转发表,若查找失败,进入(3),查找成功进入(7);在初始状态时流转发表为空,步骤(2)查找流转发表会失败。(3)、入口处理;入口处理具体为解析并删除IP头之前的的链路层报文封装。(4)、查找路由;具体是依据流转发关键字查找路由转发表。(5)、出口处理;具体为添加数据报文链路层封装。出)、添加流转发表,进入(8);添加流转发表具体为将(4)中查找到的信息加入到流转发表。(7)、执行流转发,进入⑶;(8)、发送数据报文。然而对于IP数据报文由通用路由封装(Generic Routing Extension, GRE)隧道封装的数据报文,具有内外两层IP头,外层IP头相同的数据报文可能由于内层IP数据差异,而做不同的转发行为。现有IP流转发是基于最外层IP头来建立流转发表,无法区分GRE内层数据报文的差异。如果使用现有方法,具有相同GRE隧道封装的多条不同的数据流仅会建立一条IP流转发表项,而导致一部分IP流转发错误。发明人在实现本发明实施例的过程中发现由通用路由封装(Generic RoutingExtension, 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数据报文进行流转发吋,出现转发错误,导致流转发成功率低的问题。
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图I为本发明实施例方法流程示意图;图2为本发明实施例流转发实例示意图;图3为本发明实施例另一方法流程示意图;图4为本发明实施例另一方法流程示意图;
图5A为本发明实施例GRE隧道封装的IP数据报文封装格式示意图;图5B为本发明实施例另ー GRE隧道封装的IP数据报文封装格式示意图;图6为本发明实施例互联网协议流转发设备结构示意图;图7为本发明实施例另ー互联网协议流转发设备结构示意图。
具体实施例方式为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。本发明实施例提供了一种互联网协议流转发方法,如图I所示,包括101 :接收数据报文;获取上述数据报文的第一流转发关键字,上述第一流转发关键字包含上述数据报文外层封装的源互联网协议IP地址和目的IP地址,以及协议类型;102 :根据上述第一流转发关键字查询流转发表,上述流转发表中包含关键字和出ロ信息的对应关系;103 :当上述流转发表中的第一流转发记录的关键字与上述第一流转发关键字相同时,根据上述第一流转发记录的出ロ信息转发上述数据报文;上述出ロ信息包含报文出接ロ地址以及报文封装头类型。可选的,出ロ信息还可以包括端口号、子网掩码字段等。104 :当上述流转发表中任何一条已有记录的关键字与上述第一流转发关键字均不相同时,若上述数据报文是经过通用路由封装GRE的互联网协议IP报文,获取上述数据报文的第二流转发关键字,上述第二流转发关键字包含上述数据报文内层封装的源IP地址和目的IP地址,根据上述第二流转发关键字查询上述流转发表;可选地,上述获取上述数据报文的第二流转发关键字包括对上述数据报文进行通用路由封装解封装得到上述数据报文的内层IP头,依据上述内层IP头提取上述数据报文的第二流转发关键字。在后续实施例中将就GRE隧道封装的报文转发及解封装作更详细说明。进ー步地,为了增强对数据报文的识别以及与流转发表的匹配度,流转发关键字包含的信息还可以进ー步扩充,包括源端口号,目的端口号,隧道索引以及虚拟专用网索引中的至少ー项。需要说明的是流转发关键字可扩充的信息还可以有很多,并不仅限于以上七种,只要可以用于唯一确定IP流的流转发关键字都是可以的,本发明实施例对此不予限定。105 :当上述流转发表中的第二流转发记录的关键字与上述第二流转发关键字相同时,根据上述第二流转发记录的出ロ信息转发上述数据报文。举例说明如图2所示,假设有两条数据流,目的IP地址分别为192. 168. I. I和192. 168. 2. 1,通过网络边界设备I (Provider Edge 1,PEl)进行GRE隧道封装并转发,两条数据流经过GRE封装后的源IP为I. I. I. 1,目的IP为2. 2. 2. 2,穿越网络到达PE2。如果在PE2上进行流转发,按照现有技术方案执行过程为PE2会根据GRE隧道封装的外层IP提取流转发关键字,源IP为I. I. I. 1,目的IP为2. 2. 2. 2,并建立流转发表,假设目的为192. 168. I. I的数据流先建立流转发表,流转发表中记录的转发行为——出接ロ为FE 0/0。这样当目的为192. 168. 2. I的数据流到达PE2时,由于GRE外层IP头是一祥,提取的流转发关键字相同,这样目的地为192. 168. 2. I的数据流也会命中之前建立的流转发表,导致数据报文错误的向FE0/0转发,而非期望的接ロ FE0/1。而使用本发明实施例方法,则在当目的为192. 168. 2. I的数据流到达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中PEI与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所示,用于实现本发明图I所示的互联网协议流转发方法。上述设备包括报文接收单元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数据报文进行流转发时,出现转发错误,导致流转发成功率低的问题,提升转发成功率。值得注意的是,上述互联网协议流转发设备,实施例中,所包括的各个单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能単元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。另外,本领域普通技术人员可以理解实现上述各方法实施例中的全部或部分步骤是可以通过程序来指令相关的硬件完成,相应的程序可以存储于ー种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。以上仅为本发明较佳的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明实施例揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利 要求的保护范围为准。
权利要求
1.ー种报文转发方法,其特征在于,包括 接收数据报文; 获取所述数据报文的第一流转发关键字,所述第一流转发关键字包含所述数据报文外层封装的源互联网协议IP地址和目的IP地址,以及协议类型; 根据所述第一流转发关键字查询流转发表,所述流转发表中包含关键字和出口信息的对应关系; 当所述流转发表中的第一流转发记录的关键字与所述第一流转发关键字相同时,根据所述第一流转发记录的出ロ信息转发所述数据报文; 当所述流转发表中任何一条已有记录的关键字与所述第一流转发关键字均不相同吋,若所述数据报文是经过通用路由封装GRE的互联网协议IP报文,获取所述数据报文的第二 流转发关键字,所述第二流转发关键字包含所述数据报文内层封装的源IP地址和目的IP地址; 根据所述第二流转发关键字查询所述流转发表; 当所述流转发表中的第二流转发记录的关键字与所述第二流转发关键字相同时,根据所述第二流转发记录的出ロ信息转发所述数据报文。
2.根据权利要求I所述方法,其特征在于,所述方法还包括 当所述流转发表中任何一条已有记录的关键字与所述第二流转发关键字均不相同时; 根据所述第二流转发关键字查询路由转发表,所述路由转发表中包含关键字和转发信息的对应关系; 当所述路由转发表中的第二路由转发记录的关键字与所述第二流转发关键字相同吋,根据所述第二路由转发记录,转发所述数据报文; 根据所述第二路由转发记录获取第二出ロ信息,并将所述第二流转发关键字和所述第ニ出ロ信息更新到所述流转发表中,以使后续具有相同流转发关键字的报文根据所述流转发表进行转发。
3.根据权利要求I或2所述方法,其特征在于,所述获取所述数据报文的第二流转发关键字具体包括 对所述数据报文进行通用路由封装GRE解封装,得到所述数据报文的内层IP头,依据所述内层IP头提取所述数据报文的第二流转发关键字。
4.根据权利要求I至3任一项所述方法,其特征在于,所述第二流转发关键字还包括 所述数据报文内层IP头封装的源端口号,目的端口号,隧道索引以及虚拟专用网索引中的至少ー项。
5.根据权利要求I所述方法,其特征在于,所述方法还包括 当所述流转发表中任何一条已有记录的关键字与所述第一流转发关键字均不相同吋,若所述数据报文不是经过通用路由封装GRE的互联网协议IP报文,根据所述第一流转发关键字查询路由转发表,所述路由转发表包含关键字和转发信息的对应关系; 当所述路由转发表中的第一路由转发记录的关键字与所述第一流转发关键字相同吋, 根据所述第一路由转发记录,转发所述数据报文; 根据所述第一路由转发记录获取第一出ロ信息,并将所述第一流转发关键字和所述第一出ロ信息更新到所述流转发表中,以使后续具有相同流转发关键字的报文根据所述流转发表进行转发。
6.ー种互联网协议流转发设备,其特征在于,所述设备包括 报文接收单元,用于接收数据报文; 第一特征提取単元,用于获取所述数据报文的第一流转发关键字,所述第一流转发关键字包含所述数据报文外层封装的源互联网协议IP地址和目的IP地址,以及协议类型;流表查找单元,用于根据所述第一流转发关键字查询流转发表,所述流转发表中包含关键字和出口信息的对应关系;根据所述第二流转发 关键字查询所述流转发表; 流转发控制単元,用于当所述流转发表中的第一流转发记录的关键字与所述第一流转发关键字相同时,根据所述第一流转发记录的出ロ信息转发所述数据报文; 第二特征提取単元,用于当所述流转发表中任何一条已有记录的关键字与所述第一流转发关键字均不相同时,若所述数据报文是经过通用路由封装GRE的互联网协议IP报文,获取所述数据报文的第二流转发关键字,所述第二流转发关键字包含所述数据报文内层封装的源IP地址和目的IP地址; 所述流表查找单元,还用于根据所述第二流转发关键字查询所述流转发表; 所述流转发控制単元,还用于当所述流转发表中的第二流转发记录的关键字与所述第二流转发关键字相同时,根据所述第二流转发记录的出ロ信息转发所述数据报文。
7.根据权利要求6所述设备,其特征在于,所述设备还包括 路由表查找单元,用于当所述流转发表中任何一条已有记录的关键字与所述第二流转发关键字均不相同吋;根据所述第二流转发关键字查询路由转发表,所述路由转发表中包含关键字和转发信息的对应关系; 获取单元,用于当所述路由转发表中的第二路由转发记录的关键字与所述第二流转发关键字相同时,根据所述第二路由转发记录获取第二出ロ信息; 路由转发控制単元,用于当所述路由转发表中的第二路由转发记录的关键字与所述第二流转发关键字相同时,根据所述第二路由转发记录,转发所述数据报文; 流表更新単元,用于将所述第二流转发关键字和所述第二出口信息更新到所述流转发表中,以使后续具有相同流转发关键字的报文根据所述流转发表进行转发。
8.根据权利要求7所述设备,其特征在干, 所述路由表查找单元,还用于当所述流转发表中任何一条已有记录的关键字与所述第一流转发关键字均不相同时,若所述数据报文不是经过通用路由封装GRE的互联网协议IP报文,根据所述第一流转发关键字查询路由转发表,所述路由转发表包含关键字和转发信息的对应关系; 所述获取単元,还用于当所述路由转发表中的第一路由转发记录的关键字与所述第一流转发关键字相同时,根据所述第一路由转发记录获取第一出ロ信息; 所述路由转发控制単元,还用于当所述路由转发表中的第一路由转发记录的关键字与所述第一流转发关键字相同时,根据所述第一路由转发记录,转发所述数据报文; 所述流表更新単元,还用于将所述第一流转发关键字和所述第一出口信息更新到所述流转发表中,以使后续具有相同流转发关键字的报文根据所述流转发表进行转发。
9.根据权利要求6至8任意ー项所述设备,其特征在干,所述第二特征提取単元,具体用于当所述流转发表中任何一条已有记录的关键字与所述第一流转发关键字均不相同时,若所述数据报文是经过通用路由封装GRE的互联网协议IP报文,对所述数据报文进行通用路由封装GRE解封装,得到所述数据报文的内层IP头,依 据所述内层IP头提取所述数据报文的第二流转发关键字。
全文摘要
本发明实施例公开了一种互联网协议流转发方法,及设备。方法的实现包括接收数据报文;获取数据报文的第一流转发关键字,根据第一流转发关键字查询流转发表;当流转发表中的第一流转发记录的关键字与第一流转发关键字相同时,根据第一流转发记录的出口信息转发数据报文;当流转发表中任何一条已有记录的关键字与第一流转发关键字均不相同时,若数据报文是经过GRE的IP报文,获取数据报文的第二流转发关键字,根据第二流转发关键字查询流转发表;当流转发表中的第二流转发记录的关键字与第二流转发关键字相同时,根据第二流转发记录的出口信息转发所述数据报文。可以解决GRE隧道封装的IP数据报文进行流转发时,流转发成功率低的问题。
文档编号H04L29/06GK102655476SQ201210116220
公开日2012年9月5日 申请日期2012年4月19日 优先权日2012年4月19日
发明者李文涛, 赵广 申请人:华为技术有限公司