CN111131539B - 报文转发方法及装置 - Google Patents
报文转发方法及装置 Download PDFInfo
- Publication number
- CN111131539B CN111131539B CN201911336375.4A CN201911336375A CN111131539B CN 111131539 B CN111131539 B CN 111131539B CN 201911336375 A CN201911336375 A CN 201911336375A CN 111131539 B CN111131539 B CN 111131539B
- Authority
- CN
- China
- Prior art keywords
- address
- information
- message
- interface
- destination
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/251—Translation of Internet protocol [IP] addresses between different IP versions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/741—Routing in networks with a plurality of addressing schemes, e.g. with both IPv4 and IPv6
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种报文转发方法及装置,可实现多链路负载分担。该方法包括:从第一报文中获取第一五元组信息,并检查当前是否存在包含第一报文的数据流对应的第一会话,如果否,则将第一五元组信息中的目的IP地址进行NAT64转换得到第一IP地址;依据第一IP地址与第一五元组信息确定匹配的关键词,并在路由表中查找该关键词对应的第一接口信息,路由表至少包含两个依据相同IP地址确定、但对应于不同接口信息的关键词;将第一五元组信息中的源IP地址进行NAT64转换得到第二IP地址,并将第一报文中的目的IP地址、源IP地址分别修改为第一IP地址、第二IP地址,得到第二报文;在确定第一接口信息对应的接口可用时,通过第一接口信息对应的接口转发第二报文。
Description
技术领域
本发明涉及通信技术领域,尤其涉及的是一种报文转发方法及装置。
背景技术
NAT64是一种有状态的网络地址与协议转换技术,通过IPv6(Internet ProtocolVersion 6,互联网协议第6版)地址与IPv4(Internet Protocol version 4,互联网协议第4版)地址之间的网络地址与协议转换,实现了IPv6网络与IPv4网络的互通。
通常的,一些网络设备中,将报文中的目的IP地址进行NAT处理得到转换后的目的IP地址后,在确定转发所需的出接口信息时,仅根据该转换后的目的IP地址查找该出接口信息。在此情况下,相同目的地址的报文所查得的出接口信息均相同,也就是说,相同目的地址的报文会通过同一出接口转发到同一链路中,容易导致该链路拥塞。
发明内容
有鉴于此,本发明提供一种报文转发方法及装置,可实现多链路负载分担。
本发明第一方面提供一种报文转发方法,应用于网络设备,该方法包括:
从接收的第一报文中获取第一五元组信息,并检查当前是否存在包含所述第一报文的数据流对应的第一会话,如果否,则:
将所述第一五元组信息中的目的IP地址进行NAT64转换得到第一IP地址;
依据所述第一IP地址与所述第一五元组信息确定匹配的关键词,并在已设置的路由表中查找该关键词对应的第一接口信息,所述路由表至少包含两个依据相同IP地址确定、但对应于不同接口信息的关键词;
将所述第一五元组信息中的源IP地址进行NAT64转换得到第二IP地址,并将所述第一报文中的目的IP地址、源IP地址分别修改为所述第一IP地址、第二IP地址,得到第二报文;
在确定所述第一接口信息对应的接口可用时,通过所述第一接口信息对应的接口转发所述第二报文。
根据本发明的一个实施例,在当前不存在所述第一会话时,该方法进一步包括:
建立所述第一会话;
依据所述第一接口信息生成状态被设置为无效的第一转发表项,所述第一转发表项至少包含所述第一接口信息;
获取所述第二报文的第二五元组信息,并将所述第一五元组信息、第二五元组信息与所述第一转发表项对应地记录在所述第一会话中;
在确定所述第一接口信息对应的接口可用时,该方法进一步包括:将所述第一转发表项的状态修改为有效。
根据本发明的一个实施例,得到第二报文之后,该方法还包括:
依据接收所述第一报文的接口的第二接口信息生成状态被设置为有效的第二转发表项,所述第二转发表项至少包含所述第二接口信息;
生成第三五元组信息和第四五元组信息,其中,所述第三五元组信息中的源IP地址、源port、目的IP地址、目的port分别为所述第一五元组信息中的目的IP地址、目的port、源IP地址、源port,所述第四五元组信息中的源IP地址、源port、目的IP地址、目的port分别为所述第二五元组信息中的目的IP地址、目的port、源IP地址、源port;
将所述第三五元组信息、第四五元组信息与所述第二转发表项对应地记录在所述第一会话中。
根据本发明的一个实施例,在当前存在所述第一会话时,该方法还包括:
依据所述第一五元组信息在所述第一会话中查找对应的目标转发表项,所述目标转发表项中至少包含第一报文所需的第一接口信息;
若所述目标转发表项的状态为无效,则:
确定所述第一五元组信息中目的IP地址、源IP地址分别经NAT64转换后所得的第一IP地址、第二IP地址;
将所述第一报文中的目的IP地址、源IP地址分别修改为所述第一IP地址、第二IP地址,得到第二报文;
在确定所述第一接口信息对应的接口可用时,通过所述第一接口信息对应的接口转发所述第二报文,并将所述目标转发表项的状态修改为有效。
根据本发明的一个实施例,在所述目标转发表项的状态为有效时,该方法进一步包括:
确定所述第一五元组信息中目的IP地址、源IP地址分别经NAT64转换后所得的第一IP地址、第二IP地址;
将所述第一报文中的目的IP地址、源IP地址分别修改为所述第一IP地址、第二IP地址,得到第二报文;
通过所述第一接口信息对应的接口转发所述第二报文。
根据本发明的一个实施例,确定所述第一五元组信息中目的IP地址、源IP地址分别经NAT64转换后所得的第一IP地址、第二IP地址,包括:
获取所述第一会话中与所述第一五元组信息对应的目标五元组信息;
将所述目标五元组信息中目的IP地址确定为所述第一IP地址、源IP地址确定为所述第二IP地址。
根据本发明的一个实施例,确定所述第一接口信息对应的接口可用,包括:
检查所述路由表中是否存在所述第一接口信息对应的路由信息;
如果是,则确定所述第一接口信息对应的接口可用。
根据本发明的一个实施例,依据所述第一IP地址与所述第一五元组信息确定匹配的关键词,包括:
依据所述第一五元组信息中除目的IP地址之外的其他信息构造分担标识,所述分担标识用于标识所述其他信息,所述其他信息至少包含源IP地址;
将所述第一IP地址与所述分担标识组成为关键词。
本发明第二方面提供一种报文转发装置,应用于网络设备,该装置包括:
会话检查模块,用于从接收的第一报文中获取第一五元组信息,并检查当前是否存在包含所述第一报文的数据流对应的第一会话,如果否,则:
第一转换模块,用于将所述第一五元组信息中的目的IP地址进行NAT64转换得到第一IP地址;
接口信息查找模块,用于依据所述第一IP地址与所述第一五元组信息确定匹配的关键词,并在已设置的路由表中查找该关键词对应的第一接口信息,所述路由表至少包含两个依据相同IP地址确定、但对应于不同接口信息的关键词;
报文地址修改模块,用于将所述第一五元组信息中的源IP地址进行NAT64转换得到第二IP地址,并将所述第一报文中的目的IP地址、源IP地址分别修改为所述第一IP地址、第二IP地址,得到第二报文;
第一转发模块,用于在确定所述第一接口信息对应的接口可用时,通过所述第一接口信息对应的接口转发所述第二报文。
根据本发明的一个实施例,在当前不存在所述第一会话时,该装置进一步包括:
会话建立模块,用于建立所述第一会话;
第一转发表项生成模块,用于依据所述第一接口信息生成状态被设置为无效的第一转发表项,所述第一转发表项至少包含所述第一接口信息;
第一信息记录模块,用于获取所述第二报文的第二五元组信息,并将所述第一五元组信息、第二五元组信息与所述第一转发表项对应地记录在所述第一会话中;
在确定所述第一接口信息对应的接口可用时,该装置进一步包括:第一状态修改模块,用于将所述第一转发表项的状态修改为有效。
根据本发明的一个实施例,该装置还包括:
第二转发表项生成模块,用于依据接收所述第一报文的接口的第二接口信息生成状态被设置为有效的第二转发表项,所述第二转发表项至少包含所述第二接口信息;
信息生成模块,用于生成第三五元组信息和第四五元组信息,其中,所述第三五元组信息中的源IP地址、源port、目的IP地址、目的port分别为所述第一五元组信息中的目的IP地址、目的port、源IP地址、源port,所述第四五元组信息中的源IP地址、源port、目的IP地址、目的port分别为所述第二五元组信息中的目的IP地址、目的port、源IP地址、源port;
第二信息记录模块,用于将所述第三五元组信息、第四五元组信息与所述第二转发表项对应地记录在所述第一会话中。
根据本发明的一个实施例,在当前存在所述第一会话时,该装置还包括:
转发表项查找模块,用于依据所述第一五元组信息在所述第一会话中查找对应的目标转发表项,所述目标转发表项中至少包含第一报文所需的第一接口信息;
第二转发模块,用于若所述目标转发表项的状态为无效,则:
确定所述第一五元组信息中目的IP地址、源IP地址分别经NAT64转换后所得的第一IP地址、第二IP地址;
将所述第一报文中的目的IP地址、源IP地址分别修改为所述第一IP地址、第二IP地址,得到第二报文;
在确定所述第一接口信息对应的接口可用时,通过所述第一接口信息对应的接口转发所述第二报文,并将所述目标转发表项的状态修改为有效。
根据本发明的一个实施例,在所述目标转发表项的状态为有效时,该装置进一步包括:
第三转发模块,用于确定所述第一五元组信息中目的IP地址、源IP地址分别经NAT64转换后所得的第一IP地址、第二IP地址;将所述第一报文中的目的IP地址、源IP地址分别修改为所述第一IP地址、第二IP地址,得到第二报文;通过所述第一接口信息对应的接口转发所述第二报文。
根据本发明的一个实施例,第二转发模块或第三转发模块确定所述第一五元组信息中目的IP地址、源IP地址分别经NAT64转换后所得的第一IP地址、第二IP地址时,具体用于:
获取所述第一会话中与所述第一五元组信息对应的目标五元组信息;
将所述目标五元组信息中目的IP地址确定为所述第一IP地址、源IP地址确定为所述第二IP地址。
根据本发明的一个实施例,第一转发模块或第二转发模块确定所述第一接口信息对应的接口可用时,具体用于:
检查所述路由表中是否存在所述第一接口信息对应的路由信息;
如果是,则确定所述第一接口信息对应的接口可用。
根据本发明的一个实施例,接口信息查找模块依据所述第一IP地址与所述第一五元组信息确定匹配的关键词时,具体用于:
依据所述第一五元组信息中除目的IP地址之外的其他信息构造分担标识,所述分担标识用于标识所述其他信息,所述其他信息至少包含源IP地址;
将所述第一IP地址与所述分担标识组成为关键词。
本发明实施例具有以下有益效果:
本发明实施例中,在网络设备中存在收到的报文所在数据流对应的第一会话时,可以根据报文的五元组信息、及五元组信息中目的IP地址经NAT64转换后的IP地址确定关键词,从路由表中查找该关键词对应的接口信息,路由表中至少包含两个依据相同IP地址确定、但对应于不同接口信息的关键词,如果两个报文的目的IP地址、但五元组信息不同,则关键词不同,通过这两个不同的关键词查找到的接口信息可以是不同的,所以,这两个目的IP地址相同的报文可以通过不同接口转发,也就是说,包含该报文的数据流可以通过不同链路传输至目的设备,避免所有目的IP地址相同的报文都通过同一链路传输导致该链路拥塞的问题,实现多链路负载分担,使得各链路的负载更为均衡。
附图说明
图1是本发明一实施例的报文转发方法的流程示意图;
图2是本发明一实施例的一种应用场景的示意图;
图3是本发明一实施例的报文转发装置的结构框图;
图4是本发明一实施例的电子设备的结构框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施例并不代表与本发明相一致的所有实施例。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
在本发明使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本发明可能采用术语第一、第二、第三等来描述各种端口,但这些信息不应限于这些术语。这些术语仅用来将同一类型的器件彼此区分开。例如,在不脱离本发明范围的情况下,第一端口也可以被称为第二端口,类似地,第二端口也可以被称为第一端口。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
下面对本发明实施例的数据包处理方法进行更具体的描述,但不应以此为限。
在一个实施例中,报文转发方法应用于网络设备,参看图1,该方法可以包括以下步骤:
S100:从接收的第一报文中获取第一五元组信息,并检查当前是否存在包含所述第一报文的数据流对应的第一会话,如果否,则:
S200:将所述第一五元组信息中的目的IP地址进行NAT64转换得到第一IP地址;
S300:依据所述第一IP地址与所述第一五元组信息确定匹配的关键词,并在已设置的路由表中查找该关键词对应的第一接口信息,所述路由表至少包含两个依据相同IP地址确定、但对应于不同接口信息的关键词;
S400:将所述第一五元组信息中的源IP地址进行NAT64转换得到第二IP地址,并将所述第一报文中的目的IP地址、源IP地址分别修改为所述第一IP地址、第二IP地址,得到第二报文;
S500:在确定所述第一接口信息对应的接口可用时,通过所述第一接口信息对应的接口转发所述第二报文。
本发明实施例中,报文转发方法的执行主体为网络设备,该网络设备比如可以包括防火墙设备、网关设备等,具体类型不限,只要是能够实现NAT64转换及报文转发的设备均可。
本发明实施例可以应用在如图2所示的场景中,G2是网络设备,SW1、SW2、SW3为三个不同的终端设备,B1和B2是网络设备G2两个不同接口对应的两条不同的链路。
通常来说,在终端设备SW1和SW2往同一目的设备发送数据流时,网络设备G1会通过同一出接口转发来自终端设备SW1和SW2的报文,也就通过同一链路比如链路B1将终端设备SW1和SW2的数据流传输给目的设备,导致链路B1很拥塞、而链路B2很空闲,负载不均衡。
本发明实施例中,在终端设备SW1和SW2往同一目的设备发送数据流时,网络设备G1可以通过不同出接口转发来自终端设备SW1和SW2的报文,也就可以通过不同链路比如分别通过链路B1和B2将终端设备SW1和SW2的数据流传输给目的设备,实现多链路负载分担,使得各链路的负载更为均衡。
步骤S100中,从接收的第一报文中获取第一五元组信息,并检查当前是否存在包含所述第一报文的数据流对应的第一会话。
网络设备通过其一个接口接收该第一报文,可选的,可以将该接口的接口信息可以复制到该第一报文中。
第一报文中携带了五元组信息(简称第一五元组信息),从第一报文中获取该第一五元组信息。五元组信息包括:源IP地址、源port(端口)、目的IP地址、目的port、传输层协议。第一五元组信息中的源IP地址和目的IP地址可以为IPv4地址。
网络设备在收到每个数据流的首报文时,可以为该数据流建立一个会话。可选的,网络设备可以同时为会话设置老化时间,在老化时间内没有报文匹配时,可以将会话删除。
可以根据该第一五元组信息检查当前是否存在包含第一报文的数据流对应的第一会话。比如,如果当前存在包含该第一五元组信息的会话,说明第一报文不是数据流的首报文,确定当前存在包含第一报文的数据流对应的第一会话,并将包含该第一五元组信息的会话确定为第一会话。如果当前不存在包含该第一五元组信息的会话,说明第一报文是数据流的首报文,确定当前不存在包含第一报文的数据流对应的第一会话。
本实施例中,在当前不存在包含第一报文的数据流对应的第一会话时,执行步骤S200-S500。
步骤S200中,将所述第一五元组信息中的目的IP地址进行NAT64转换得到第一IP地址。
第一五元组信息中的目的IP地址为IPv6地址的情况下,进行NAT64转换后得到的第一IP地址为IPv4地址。具体NAT64转换的方式不限,比如可以根据预设的前缀找出目的IP地址中匹配的部分,并去除该部分,得到所需的IPv4地址。
步骤S300中,依据所述第一IP地址与所述第一五元组信息确定匹配的关键词,并在已设置的路由表中查找该关键词对应的第一接口信息,所述路由表至少包含两个依据相同IP地址确定、但对应于不同接口信息的关键词。
第一IP地址即为目的IP地址经转换后的IP地址,结合该第一IP地址与第一五元组信息确定关键词,并在路由表中查找该关键词对应的第一接口信息。
由于路由表中至少包含两个依据相同IP地址确定、但对应于不同接口信息的关键词,所以,在为两个相同目的IP地址的报文查找接口信息时,如果两个报文的五元组信息不同,则可以确定不同的关键词,那么,通过这两个关键词查找到的接口信息可以是不同的,所以,这两个相同目的IP地址的报文可以通过不同接口转发,也就是说,包含该报文的数据流可以通过不同链路传输至目的设备。
举例来说,报文A1与报文A2的目的IP地址相同、但源IP地址不同,两者的关键词可以由目的IP地址转换后的IP地址与源IP地址组成,比如分别为关键词T1和T2,这两个关键词T1不同,且在路由表中对应的接口信息也不同,这样报文A1和报文A2可以通过网络设备的不同接口转发。
可选的,依据所述第一IP地址与所述第一五元组信息确定匹配的关键词,可以包括以下步骤:
依据所述第一五元组信息中除目的IP地址之外的其他信息构造分担标识,所述分担标识用于标识所述其他信息,所述其他信息至少包含源IP地址;
将所述第一IP地址与所述分担标识组成为关键词。
分担标识可以为源IP地址,如此,不同设备发来的报文可以通过不同接口转发。当然,也可以为源IP地址+源port,如此,不同设备、或者同一设备的不同端口发来的报文可以通过不同接口转发。
关键词可以为第一IP地址+分担标识。当然,分担标识的构造方式、关键词的组成方式均不作限定。
步骤S400中,将所述第一五元组信息中的源IP地址进行NAT64转换得到第二IP地址,并将所述第一报文中的目的IP地址、源IP地址分别修改为所述第一IP地址、第二IP地址,得到第二报文。
第一五元组中的源IP地址为IPv6地址的情况下,进行NAT64转换后得到的第二IP地址也为IPv4地址。具体NAT64转换的方式不限,比如,可以根据第一接口信息找到匹配的NAT转换策略,根据NAT转换策略对第一五元组中的源IP地址进行转换。
将第一报文中的目的IP地址、源IP地址分别修改为第一IP地址、第二IP地址,得到第二报文。当然,在对地址NAT64转换时,也可以同时对第一报文进行协议转换。
步骤S500中,在确定所述第一接口信息对应的接口可用时,通过所述第一接口信息对应的接口转发所述第二报文。
可选的,确定所述第一接口信息对应的接口可用,可以包括:
检查所述路由表中是否存在所述第一接口信息对应的路由信息;
如果是,则确定所述第一接口信息对应的接口可用。
路由表中存在第一接口信息对应的路由信息,说明该第一接口信息对应的接口出去的链路可用,所以确定第一接口信息对应的接口可用,通过所述第一接口信息对应的接口转发所述第二报文;否则,确定第一接口信息对应的接口不可用,可以丢包处理。
路由信息比如可以包括下一跳MAC地址等信息。在转发第二报文之前,还可以对第二报文进行转发所需的处理,比如可以将第二报文的目的MAC地址修改为路由信息中的下一跳MAC地址,具体处理不限。
本发明实施例中,在网络设备中存在收到的报文所在数据流对应的第一会话时,可以根据报文的五元组信息、及五元组信息中目的IP地址经NAT64转换后的IP地址确定关键词,从路由表中查找该关键词对应的接口信息,路由表中至少包含两个依据相同IP地址确定、但对应于不同接口信息的关键词,如果两个报文的目的IP地址、但五元组信息不同,则关键词不同,通过这两个不同的关键词查找到的接口信息可以是不同的,所以,这两个目的IP地址相同的报文可以通过不同接口转发,也就是说,包含该报文的数据流可以通过不同链路传输至目的设备,避免所有目的IP地址相同的报文都通过同一链路传输导致该链路拥塞的问题,实现多链路负载分担,使得各链路的负载更为均衡。
在一个实施例中,在当前不存在所述第一会话时,该方法进一步包括以下步骤:
S401:建立所述第一会话;
S402:依据所述第一接口信息生成状态被设置为无效的第一转发表项,所述第一转发表项至少包含所述第一接口信息;
S403:获取所述第二报文的第二五元组信息,并将所述第一五元组信息、第二五元组信息与所述第一转发表项对应地记录在所述第一会话中;
步骤S500中,在确定所述第一接口信息对应的接口可用时,该方法进一步包括:将所述第一转发表项的状态修改为有效。
步骤S401-S403可以在步骤S400之后执行。
网络设备中当前不存在第一会话,所以收到的第一报文为一个数据流的首报文,此时为该数据流建立第一会话。
同时,建立第一转发表项,只是此时这个第一转发表项被设置为无效。该第一转发表项中可以包含该第一接口信息,具体不限于此,当然还可以包含其他信息,比如可以包含第一接口信息对应的路由信息、第一报文的源MAC地址等。
将所述第一五元组信息、第二五元组信息与所述第一转发表项对应地记录在所述第一会话中。换言之,将第一报文的NAT64转换前的五元组信息和NAT64转换后的五元组信息都与该第一转发表项对应的记录在会话中,如此,后续收到第一报文所在数据流的其他报文时,根据该其他报文的五元组信息可以直接从会话中确定经NAT64转换后的五元组信息,不需要再执行NAT转换,也可以找到对应的转发表项。
在确定所述第一接口信息对应的接口可用时,将该第一转发表项的状态修改为有效。如此,在后续收到第一报文所在数据流的其他报文时,可以依据第一转发表项进行快速转发。
在确定所述第一接口信息对应的接口可用时,还可以将第一报文的入接口信息、VLAN tag(虚拟局域网,简称VLAN标签)、源MAC地址等记录在第一会话中。
第一会话中的第一五元组信息、第二五元组信息与第一转发表项,可以便于第一报文所在的数据流的传输方向(简称第一方向)上的报文的转发。
在一个实施例中,得到第二报文之后,该方法还包括:
依据接收所述第一报文的接口的第二接口信息生成状态被设置为有效的第二转发表项,所述第二转发表项至少包含所述第二接口信息;
生成第三五元组信息和第四五元组信息,其中,所述第三五元组信息中的源IP地址、源port、目的IP地址、目的port分别为所述第一五元组信息中的目的IP地址、目的port、源IP地址、源port,所述第四五元组信息中的源IP地址、源port、目的IP地址、目的port分别为所述第二五元组信息中的目的IP地址、目的port、源IP地址、源port;
将所述第三五元组信息、第四五元组信息与所述第二转发表项对应地记录在所述第一会话中。
第一会话中,除了第一五元组信息、第二五元组信息与第一转发表项,还记录第三五元组信息、第四五元组信息与第二转发表项。该第三五元组信息、第四五元组信息与第二转发表项,可以便于第一方向的反方向(简称第二方向)上的报文的转发。
比如,在网关设备收到第二方向的回应报文时,可以根据回应报文的五元组信息在会话中找到对应的五元组信息、及转发表项,该对应的五元组信息是该回应报文的五元组信息经NAT64转换后的五元组信息,所以不需要再进行NAT64转换,将该回应报文的五元组信息直接修改为该对应的五元组信息,并在对应的转发表项的状态为有效时,直接通过该对应的转发表项中的接口信息对应的接口转发修改后的回应报文,以实现反向回应报文的快转。
在一个实施例中,在当前存在所述第一会话时,该方法还包括以下步骤:
S600:依据所述第一五元组信息在所述第一会话中查找对应的目标转发表项,所述目标转发表项中至少包含第一报文所需的第一接口信息;
S700:若所述目标转发表项的状态为无效,则:
S701:确定所述第一五元组信息中目的IP地址、源IP地址分别经NAT64转换后所得的第一IP地址、第二IP地址;
S702:将所述第一报文中的目的IP地址、源IP地址分别修改为所述第一IP地址、第二IP地址,得到第二报文;
S703:在确定所述第一接口信息对应的接口可用时,通过所述第一接口信息对应的接口转发所述第二报文,并将所述目标转发表项的状态修改为有效。
网络设备当前存在第一会话,说明第一报文不是数据流的首报文,之前已经为该数据流建立过会话即第一会话,此时可以利用该第一会话来实现转发。
依据所述第一五元组信息在所述第一会话中查找对应的目标转发表项时,可以根据第一五元组信息中的源IP地址在所述第一会话中查找对应的目标转发表项。
目标转发表项中至少包含第一报文所需的第一接口信息。在目标转发表项的状态为无效时,确定所述第一五元组信息中目的IP地址、源IP地址分别经NAT64转换后所得的第一IP地址、第二IP地址,将所述第一报文中的目的IP地址、源IP地址分别修改为所述第一IP地址、第二IP地址得到第二报文,在确定所述第一接口信息对应的接口可用时,通过所述第一接口信息对应的接口转发所述第二报文,并将所述目标转发表项的状态修改为有效。
检查目标转发表项是否有效的方式比如可以为:检查目标转发表项中是否存在该第一接口信息对应的路由信息,如果存在,则确定目标转发表项有效;如果不存在,则确定目标转发表项无效。当然,也通过在会话中记录转发表项对应的标记信息,根据标记信息确定转发表项的状态。
可选的,确定所述第一五元组信息中目的IP地址、源IP地址分别经NAT64转换后所得的第一IP地址、第二IP地址,可以包括:
获取所述第一会话中与所述第一五元组信息对应的目标五元组信息;
将所述目标五元组信息中目的IP地址确定为所述第一IP地址、源IP地址确定为所述第二IP地址。
换言之,在当前存在第一会话时,可以直接从第一会话中获取第一五元组信息对应的目标五元组信息,这目标五元组信息就是经NAT64转换后的信息,将将所述目标五元组信息中目的IP地址直接确定为第一IP地址、源IP地址确定直接为第二IP地址,无需再次进行NAT64转换,节省时间。
可选的,确定所述第一接口信息对应的接口可用,可以包括:
检查所述路由表中是否存在所述第一接口信息对应的路由信息;
如果是,则确定所述第一接口信息对应的接口可用。
路由表中存在第一接口信息对应的路由信息,说明该第一接口信息对应的接口出去的链路可用,所以确定第一接口信息对应的接口可用,通过所述第一接口信息对应的接口转发所述第二报文;否则,确定第一接口信息对应的接口不可用,可以丢包处理。
路由信息比如可以包括下一跳MAC地址等信息。在转发第二报文之前,还可以对第二报文进行转发所需的处理,比如可以将第二报文的目的MAC地址修改为路由信息中的下一跳MAC地址,具体处理不限。
由于转发表项中记录了数据流之前的报文使用的接口信息,所以,本次可以直接使用该接口信息对应的接口转发该数据流的报文,保证使用接口的统一性。
在一个实施例中,在所述目标转发表项的状态为有效时,该方法进一步包括以下步骤:
S801:确定所述第一五元组信息中目的IP地址、源IP地址分别经NAT64转换后所得的第一IP地址、第二IP地址;
S802:将所述第一报文中的目的IP地址、源IP地址分别修改为所述第一IP地址、第二IP地址,得到第二报文;
S803:通过所述第一接口信息对应的接口转发所述第二报文。
可选的,确定所述第一五元组信息中目的IP地址、源IP地址分别经NAT64转换后所得的第一IP地址、第二IP地址,可以包括:
获取所述第一会话中与所述第一五元组信息对应的目标五元组信息;
将所述目标五元组信息中目的IP地址确定为所述第一IP地址、源IP地址确定为所述第二IP地址。
换言之,在当前存在第一会话时,可以直接从第一会话中获取第一五元组信息对应的目标五元组信息,这目标五元组信息就是经NAT64转换后的信息,将将所述目标五元组信息中目的IP地址直接确定为第一IP地址、源IP地址确定直接为第二IP地址,无需再次进行NAT64转换,节省时间。
而且,由于目标转发表项的状态为有效,所以,可以直接通过第一接口信息对应的接口转发第二报文,不用再去查找路由表,实现报文的快速转发。
本发明还提供一种报文转发装置,应用于网络设备,参看图3,该报文转发装置100包括:
会话检查模块101,用于从接收的第一报文中获取第一五元组信息,并检查当前是否存在包含所述第一报文的数据流对应的第一会话,如果否,则:
第一转换模块102,用于将所述第一五元组信息中的目的IP地址进行NAT64转换得到第一IP地址;
接口信息查找模块103,用于依据所述第一IP地址与所述第一五元组信息确定匹配的关键词,并在已设置的路由表中查找该关键词对应的第一接口信息,所述路由表至少包含两个依据相同IP地址确定、但对应于不同接口信息的关键词;
报文地址修改模块104,用于将所述第一五元组信息中的源IP地址进行NAT64转换得到第二IP地址,并将所述第一报文中的目的IP地址、源IP地址分别修改为所述第一IP地址、第二IP地址,得到第二报文;
第一转发模块105,用于在确定所述第一接口信息对应的接口可用时,通过所述第一接口信息对应的接口转发所述第二报文。
在一个实施例中,在当前不存在所述第一会话时,该装置进一步包括:
会话建立模块,用于建立所述第一会话;
第一转发表项生成模块,用于依据所述第一接口信息生成状态被设置为无效的第一转发表项,所述第一转发表项至少包含所述第一接口信息;
第一信息记录模块,用于获取所述第二报文的第二五元组信息,并将所述第一五元组信息、第二五元组信息与所述第一转发表项对应地记录在所述第一会话中;
在确定所述第一接口信息对应的接口可用时,该装置进一步包括:第一状态修改模块,用于将所述第一转发表项的状态修改为有效。
在一个实施例中,该装置还包括:
第二转发表项生成模块,用于依据接收所述第一报文的接口的第二接口信息生成状态被设置为有效的第二转发表项,所述第二转发表项至少包含所述第二接口信息;
信息生成模块,用于生成第三五元组信息和第四五元组信息,其中,所述第三五元组信息中的源IP地址、源port、目的IP地址、目的port分别为所述第一五元组信息中的目的IP地址、目的port、源IP地址、源port,所述第四五元组信息中的源IP地址、源port、目的IP地址、目的port分别为所述第二五元组信息中的目的IP地址、目的port、源IP地址、源port;
第二信息记录模块,用于将所述第三五元组信息、第四五元组信息与所述第二转发表项对应地记录在所述第一会话中。
在一个实施例中,在当前存在所述第一会话时,该装置还包括:
转发表项查找模块,用于依据所述第一五元组信息在所述第一会话中查找对应的目标转发表项,所述目标转发表项中至少包含第一报文所需的第一接口信息;
第二转发模块,用于若所述目标转发表项的状态为无效,则:
确定所述第一五元组信息中目的IP地址、源IP地址分别经NAT64转换后所得的第一IP地址、第二IP地址;
将所述第一报文中的目的IP地址、源IP地址分别修改为所述第一IP地址、第二IP地址,得到第二报文;
在确定所述第一接口信息对应的接口可用时,通过所述第一接口信息对应的接口转发所述第二报文,并将所述目标转发表项的状态修改为有效。
在一个实施例中,在所述目标转发表项的状态为有效时,该装置进一步包括:
第三转发模块,用于确定所述第一五元组信息中目的IP地址、源IP地址分别经NAT64转换后所得的第一IP地址、第二IP地址;将所述第一报文中的目的IP地址、源IP地址分别修改为所述第一IP地址、第二IP地址,得到第二报文;通过所述第一接口信息对应的接口转发所述第二报文。
根据本发明的一个实施例,第二转发模块或第三转发模块确定所述第一五元组信息中目的IP地址、源IP地址分别经NAT64转换后所得的第一IP地址、第二IP地址时,具体用于:
获取所述第一会话中与所述第一五元组信息对应的目标五元组信息;
将所述目标五元组信息中目的IP地址确定为所述第一IP地址、源IP地址确定为所述第二IP地址。
在一个实施例中,第一转发模块或第二转发模块确定所述第一接口信息对应的接口可用时,具体用于:
检查所述路由表中是否存在所述第一接口信息对应的路由信息;
如果是,则确定所述第一接口信息对应的接口可用。
在一个实施例中,接口信息查找模块依据所述第一IP地址与所述第一五元组信息确定匹配的关键词时,具体用于:
依据所述第一五元组信息中除目的IP地址之外的其他信息构造分担标识,所述分担标识用于标识所述其他信息,所述其他信息至少包含源IP地址;
将所述第一IP地址与所述分担标识组成为关键词。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元。
本发明还提供一种电子设备,包括处理器及存储器;所述存储器存储有可被处理器调用的程序;其中,所述处理器执行所述程序时,实现如前述实施例所述的报文转发方法。
本发明报文转发装置的实施例可以应用在电子设备上。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,图4是本发明根据一示例性实施例示出的报文转发装置100所在电子设备的一种硬件结构图,除了图4所示的处理器510、内存530、接口520、以及非易失性存储器540之外,实施例中装置100所在的电子设备通常根据该电子设备的实际功能,还可以包括其他硬件,对此不再赘述。
本发明还提供一种机器可读存储介质,其上存储有程序,该程序被处理器执行时,实现如前述实施例所述的报文转发方法。
本发明可采用在一个或多个其中包含有程序代码的存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。机器可读存储介质包括永久性和非永久性、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。机器可读存储介质的例子包括但不限于:相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (10)
1.一种报文转发方法,其特征在于,应用于网络设备,该方法包括:
从接收的第一报文中获取第一五元组信息,并检查当前是否存在包含所述第一报文的数据流对应的第一会话,如果否,则:
将所述第一五元组信息中的目的IP地址进行NAT64转换得到第一IP地址;
依据所述第一IP地址与所述第一五元组信息确定匹配的关键词,并在已设置的路由表中查找该关键词对应的第一接口信息,以使两个目的IP地址相同、但五元组信息不同的报文通过不同接口转发,所述路由表至少包含两个依据相同IP地址确定、但对应于不同接口信息的关键词;
将所述第一五元组信息中的源IP地址进行NAT64转换得到第二IP地址,并将所述第一报文中的目的IP地址、源IP地址分别修改为所述第一IP地址、第二IP地址,得到第二报文;
在确定所述第一接口信息对应的接口可用时,通过所述第一接口信息对应的接口转发所述第二报文。
2.如权利要求1所述的报文转发方法,其特征在于,在当前不存在所述第一会话时,该方法进一步包括:
建立所述第一会话;
依据所述第一接口信息生成状态被设置为无效的第一转发表项,所述第一转发表项至少包含所述第一接口信息;
获取所述第二报文的第二五元组信息,并将所述第一五元组信息、第二五元组信息与所述第一转发表项对应地记录在所述第一会话中;
在确定所述第一接口信息对应的接口可用时,该方法进一步包括:将所述第一转发表项的状态修改为有效。
3.如权利要求2所述的报文转发方法,其特征在于,得到第二报文之后,该方法还包括:
依据接收所述第一报文的接口的第二接口信息生成状态被设置为有效的第二转发表项,所述第二转发表项至少包含所述第二接口信息;
生成第三五元组信息和第四五元组信息,其中,所述第三五元组信息中的源IP地址、源port、目的IP地址、目的port分别为所述第一五元组信息中的目的IP地址、目的port、源IP地址、源port,所述第四五元组信息中的源IP地址、源port、目的IP地址、目的port分别为所述第二五元组信息中的目的IP地址、目的port、源IP地址、源port;
将所述第三五元组信息、第四五元组信息与所述第二转发表项对应地记录在所述第一会话中。
4.如权利要求1所述的报文转发方法,其特征在于,在当前存在所述第一会话时,该方法还包括:
依据所述第一五元组信息在所述第一会话中查找对应的目标转发表项,所述目标转发表项中至少包含第一报文所需的第一接口信息;
若所述目标转发表项的状态为无效,则:
确定所述第一五元组信息中目的IP地址、源IP地址分别经NAT64转换后所得的第一IP地址、第二IP地址;
将所述第一报文中的目的IP地址、源IP地址分别修改为所述第一IP地址、第二IP地址,得到第二报文;
在确定所述第一接口信息对应的接口可用时,通过所述第一接口信息对应的接口转发所述第二报文,并将所述目标转发表项的状态修改为有效。
5.如权利要求4所述的报文转发方法,其特征在于,在所述目标转发表项的状态为有效时,该方法进一步包括:
确定所述第一五元组信息中目的IP地址、源IP地址分别经NAT64转换后所得的第一IP地址、第二IP地址;
将所述第一报文中的目的IP地址、源IP地址分别修改为所述第一IP地址、第二IP地址,得到第二报文;
通过所述第一接口信息对应的接口转发所述第二报文。
6.如权利要求4或5所述的报文转发方法,其特征在于,确定所述第一五元组信息中目的IP地址、源IP地址分别经NAT64转换后所得的第一IP地址、第二IP地址,包括:
获取所述第一会话中与所述第一五元组信息对应的目标五元组信息;
将所述目标五元组信息中目的IP地址确定为所述第一IP地址、源IP地址确定为所述第二IP地址。
7.如权利要求1或4所述的报文转发方法,其特征在于,确定所述第一接口信息对应的接口可用,包括:
检查所述路由表中是否存在所述第一接口信息对应的路由信息;
如果是,则确定所述第一接口信息对应的接口可用。
8.如权利要求1所述的报文转发方法,其特征在于,依据所述第一IP地址与所述第一五元组信息确定匹配的关键词,包括:
依据所述第一五元组信息中除目的IP地址之外的其他信息构造分担标识,所述分担标识用于标识所述其他信息,所述其他信息至少包含源IP地址;
将所述第一IP地址与所述分担标识组成为关键词。
9.一种报文转发装置,其特征在于,应用于网络设备,该装置包括:
会话检查模块,用于从接收的第一报文中获取第一五元组信息,并检查当前是否存在包含所述第一报文的数据流对应的第一会话,如果否,则:
第一转换模块,用于将所述第一五元组信息中的目的IP地址进行NAT64转换得到第一IP地址;
接口信息查找模块,用于依据所述第一IP地址与所述第一五元组信息确定匹配的关键词,并在已设置的路由表中查找该关键词对应的第一接口信息,以使两个目的IP地址相同、但五元组信息不同的报文通过不同接口转发,所述路由表至少包含两个依据相同IP地址确定、但对应于不同接口信息的关键词;
报文地址修改模块,用于将所述第一五元组信息中的源IP地址进行NAT64转换得到第二IP地址,并将所述第一报文中的目的IP地址、源IP地址分别修改为所述第一IP地址、第二IP地址,得到第二报文;
第一转发模块,用于在确定所述第一接口信息对应的接口可用时,通过所述第一接口信息对应的接口转发所述第二报文。
10.如权利要求9所述的报文转发装置,其特征在于,在当前存在所述第一会话时,该装置还包括:
转发表项查找模块,用于依据所述第一五元组信息在所述第一会话中查找对应的目标转发表项,所述目标转发表项中至少包含第一报文所需的第一接口信息;
第二转发模块,用于若所述目标转发表项的状态为无效,则:
确定所述第一五元组信息中目的IP地址、源IP地址分别经NAT64转换后所得的第一IP地址、第二IP地址;
将所述第一报文中的目的IP地址、源IP地址分别修改为所述第一IP地址、第二IP地址,得到第二报文;
在确定所述第一接口信息对应的接口可用时,通过所述第一接口信息对应的接口转发所述第二报文,并将所述目标转发表项的状态修改为有效。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911336375.4A CN111131539B (zh) | 2019-12-23 | 2019-12-23 | 报文转发方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911336375.4A CN111131539B (zh) | 2019-12-23 | 2019-12-23 | 报文转发方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111131539A CN111131539A (zh) | 2020-05-08 |
CN111131539B true CN111131539B (zh) | 2022-06-28 |
Family
ID=70501147
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911336375.4A Active CN111131539B (zh) | 2019-12-23 | 2019-12-23 | 报文转发方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111131539B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114449621B (zh) * | 2020-10-30 | 2023-03-24 | 极米科技股份有限公司 | 节省多链路终端电量消耗的方法、装置及存储介质 |
CN114401222B (zh) * | 2021-12-28 | 2024-03-26 | 网络通信与安全紫金山实验室 | 一种基于策略路由的数据转发方法、装置及存储介质 |
CN114827044B (zh) * | 2022-04-27 | 2023-12-26 | 新华三信息安全技术有限公司 | 一种报文处理方法、装置及网络设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101616079A (zh) * | 2009-07-30 | 2009-12-30 | 杭州华三通信技术有限公司 | Dns请求报文的nat出口链路负载均衡方法及装置 |
CN102916898A (zh) * | 2012-11-02 | 2013-02-06 | 杭州迪普科技有限公司 | 一种多链路出口的应用保持方法及装置 |
CN103166870A (zh) * | 2011-12-13 | 2013-06-19 | 百度在线网络技术(北京)有限公司 | 负载均衡集群系统及采用其提供服务的方法 |
CN106789666A (zh) * | 2016-11-22 | 2017-05-31 | 东软集团股份有限公司 | 一种确定转换后端口的方法和装置 |
FR3044855A1 (fr) * | 2015-12-07 | 2017-06-09 | Commissariat Energie Atomique | Dispositif et procede de communication sans-fil dans un reseau ip |
-
2019
- 2019-12-23 CN CN201911336375.4A patent/CN111131539B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101616079A (zh) * | 2009-07-30 | 2009-12-30 | 杭州华三通信技术有限公司 | Dns请求报文的nat出口链路负载均衡方法及装置 |
CN103166870A (zh) * | 2011-12-13 | 2013-06-19 | 百度在线网络技术(北京)有限公司 | 负载均衡集群系统及采用其提供服务的方法 |
CN102916898A (zh) * | 2012-11-02 | 2013-02-06 | 杭州迪普科技有限公司 | 一种多链路出口的应用保持方法及装置 |
FR3044855A1 (fr) * | 2015-12-07 | 2017-06-09 | Commissariat Energie Atomique | Dispositif et procede de communication sans-fil dans un reseau ip |
CN106789666A (zh) * | 2016-11-22 | 2017-05-31 | 东软集团股份有限公司 | 一种确定转换后端口的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111131539A (zh) | 2020-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111131539B (zh) | 报文转发方法及装置 | |
US11303553B1 (en) | Return path trace | |
EP2206052B1 (en) | Methods and apparatus for managing addresses related to virtual partitions of a session exchange device | |
CN110417657B (zh) | 一种处理组播数据报文的方法及装置 | |
CN107948076B (zh) | 一种转发报文的方法及装置 | |
CN101729427B (zh) | 一种多链路负载分担和选路的方法和路由器 | |
US8874789B1 (en) | Application based routing arrangements and method thereof | |
US7107609B2 (en) | Stateful packet forwarding in a firewall cluster | |
US7594031B2 (en) | Network address selection | |
JP2014511089A (ja) | プライベートアドレスとパブリックアドレスのマッピング | |
JP4281949B2 (ja) | ルータとそのパケット伝送方法 | |
CN101707617A (zh) | 报文过滤方法、装置及网络设备 | |
WO2005109785A1 (ja) | 情報処理装置、バブルパケット送信方法およびプログラム | |
CN107580079B (zh) | 一种报文传输方法和装置 | |
CN108718278A (zh) | 一种报文传输方法和装置 | |
EP2869510B1 (en) | Express header for packets with hierarchically structured variable-length identifiers | |
US20030108055A1 (en) | Method and system for performing asymmetric address translation | |
CA2322976C (en) | Multicast routing cache | |
US20030236913A1 (en) | Network address translation for internet control message protocol packets | |
US9860157B2 (en) | Zero configuration approach for port forwarding cascaded routers | |
CN106878308B (zh) | 一种icmp报文匹配系统及方法 | |
CN111756636B (zh) | 数据包处理方法、装置及设备、存储介质 | |
CN115834472B (zh) | 一种报文处理方法、转发策略获取方法及装置 | |
CN114285907B (zh) | 数据传输方法、装置、电子设备及存储介质 | |
CN110166375A (zh) | 一种报文转发方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |