CN109547316A - Vxlan报文穿越nat设备的方法、系统、存储介质 - Google Patents
Vxlan报文穿越nat设备的方法、系统、存储介质 Download PDFInfo
- Publication number
- CN109547316A CN109547316A CN201811641307.4A CN201811641307A CN109547316A CN 109547316 A CN109547316 A CN 109547316A CN 201811641307 A CN201811641307 A CN 201811641307A CN 109547316 A CN109547316 A CN 109547316A
- Authority
- CN
- China
- Prior art keywords
- nat
- address
- source
- port
- vxlan
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4633—Interconnection of networks using encapsulation techniques, e.g. tunneling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- 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/2592—Translation of Internet protocol [IP] addresses using tunnelling or encapsulation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明公开了一种VXLAN报文穿越NAT设备的方法、系统,所述方法包括:接收来自位于私网侧的源VTEP向位于公网侧的目的VTEP发送的第一VXLAN报文;如果存在与第一VXLAN报文相匹配的NAT规则,对第一VXLAN报文的源IP地址和源端口号公网转换后发送给目的VTEP;接收来自目的VTEP向源VTEP发送的第二VXLAN报文;确定第二VXLAN报文与NAT规则相匹配后,对第二VXLAN报文的目的IP地址和目的端口号进行私网转换后,发送回源VTEP。本发明能够避免出现公网侧设备发过来的VXLAN报文无法穿越NAT设备的问题。
Description
技术领域
本发明涉及NAT设备对XLAN报文转发技术,尤指一种VXLAN报文穿越NAT设备的方法、系统、存储介质。
背景技术
VXLAN(Virtual eXtensible LAN,可扩展虚拟局域网络)是一种采用“MAC inUDP”的封装形式,将二层报文封装到三层网络中的技术,其为分散的用户提供了一种二层互联的方法,并能够为不同的租户提供业务隔离。随着虚拟化技术的迅速发展,VXLAN技术得到了广泛的应用。
VTEP(VXLAN Tunnel End Point,VXLAN隧道终端)作为VXLAN隧道的终结点,用于对数据进行VXLAN的封装与解封装操作,如图1所示;终端A将报文发送给VTEPA,VTEPA将报文进行VXLAN封装后,通过无NAT转换的网络,VTEPB收到报文后进行VXLAN解封装操作,并将其发送到终端B。
但是,在实际应用网络架构中,通常会存在VXLAN隧道两端的VTEP分别设置在私网和公网两侧的情形,此时如果网络部署有NAT(Network Address Translation,网络地址转换)设备,如图2所示,将会产生VXLAN报文无法穿越NAT设备的问题。私网侧的VTEPA将终端A发往终端B的原始二层报文进行VXLAN封装,得到VXLAN报文,包括:添加VXLAN头;添加源端口号为VTEPA SPORT和目的端口号为4789的UDP头;以及,添加源IP地址为VTEPA IP地址和目的IP地址为VTEPB IP地址的IP头,如表1所示,发送给NAT设备;
表1 VXLAN封装后报文头部信息
NAT设备收到报文后将报文中VTEPA IP地址转换为NATIP地址,VTEPA SPORT转换为NAT PORT,如表2所示,并生成NAT地址转换表,如表3所示;
表2穿越NAT设备后VXLAN报文头部信息
NAT转换前 | VTEPA IP | VTEPA SPORT |
NAT转换后 | NATIP | NAT PORT |
表3 NAT地址转换表
VTEPB收到报文头部如表2所示的报文后,使用报文头部的源IP地址和内部的源MAC地址创建FDB(Forwarding DataBase,转发数据库)表项,如表4所示,并将VXLAN报文内层解封装处理得到所述原始二层报文发送给终端B;
REMOTE IP | DESTINATION MAC |
NATIP | 终端A MAC |
表4 FDB转发表
VTEPB收到终端B发送给终端A的原始二层报文后,查询其FDB表,对该报文进行VXLAN封装,封装后报文中UDP头的源端口号为随机端口号,目的端口号为4789,外层IP头的源IP地址为VTEPB IP地址,目的IP地址为查询到FDB表中的NATIP地址;NAT设备收到VTEPB发送的报文后,查询NAT地址转换表,由于报文中目的端口号为4789,无法匹配上地址转换表中的表项,导致报文被发送到NAT设备本身处理,无法发送到VTEPA。
发明内容
为了解决上述技术问题,本发明提供了一种VXLAN报文穿越NAT设备的方法、系统、存储介质,能够避免出现公网侧设备发过来的VXLAN报文无法穿越NAT设备的问题。
为了达到本发明目的,本发明提供了一种可扩展虚拟局域网络VXLAN报文穿越网络地址转换NAT设备的方法,包括:
接收来自位于私网侧的源VXLAN隧道终端VTEP向位于公网侧的目的VTEP发送的第一VXLAN报文;
如果存在与第一VXLAN报文相匹配的NAT规则,按照所述NAT规则对所述第一VXLAN报文的源互联网协议IP地址和源端口号进行公网转换后,发送给目的VTEP;所述NAT规则描述了:用于报文匹配的参数信息,至少包括源IP地址、源端口、目的IP地址以及目的端口号;以及用于公私网间转换的转换关系:参数信息中源IP地址和源端口为私网IP地址和端口时,到公网NATIP地址和NAT端口的转换;参数信息中目的IP地址和目的端口为公网NATIP地址和NAT端口时,到私网IP地址和端口的转换;
接收来自目的VTEP向所述源VTEP发送的第二VXLAN报文,所述第二VXLAN报文的目的IP地址和目的端口号分别为所述目的VTEP收到的公网转换后的第一VXLAN报文中的源IP地址以及源端口号;
确定所述第二VXLAN报文与所述NAT规则相匹配后,按照所述NAT规则对所述第二VXLAN报文的目的IP地址和目的端口号进行私网转换后,发送回所述源VTEP。
作为一种实现方式,所述NAT规则的格式包括:
源(IP地址1:端口1)->目的(IP地址2:端口2)<——>源(IP地址2:端口2)->目的(NATIP:NAT端口);
其中,源(IP地址1:端口1)->目的(IP地址2:端口2),用于源VTEP发送的第一VXLAN报文的匹配;源(IP地址2:端口2)->目的(NATIP:NAT端口)用于目的VTEP发送的第二VXLAN报文的匹配。
作为一种实现方式,如果存在与第一VXLAN报文相匹配的NAT规则,按照所述NAT规则对所述第一VXLAN报文的源互联网协议IP地址和源端口号进行公网转换,包括:
如果第一VXLAN报文的参数信息符合NAT规则中对应描述的参数信息,则匹配NAT规则成功,并将第一VXLAN报文中的源IP地址替换为匹配成功的NAT规则中具有对应转换关系的NATIP地址,源端口号替换为匹配成功的NAT规则中具有对应转换关系的NAT端口号。
作为一种实现方式,所述方法还包括:
如果不存在NAT规则或者匹配NAT规则失败,则新建NAT规则,该新规则中IP地址1、端口1、IP地址2和端口2分别为第一VXLAN报文中的源IP地址、源端口号、目的IP地址和目的端口。
作为一种实现方式,所述方法还包括:
若判断第一VXLAN报文中的目的端口号为4789且通过所述第一VXLAN报文获知所述源VTEP不确定目的VTEP的VXLAN端口实际绑定的源端口号而默认其为公知的端口号4789时,将所述新建NAT规则作为主规则,创建与所述主规则关联的NAT子规则,所述子规则为:
源(IP地址2:X)→目的(NATIP:NAT端口)
其中,所述X用于标识对来自所述目的VTEP的任意VXLAN报文中的源端口值不进行匹配。
作为一种实现方式,所述方法还包括:
若判断第一VXLAN报文中的目的端口号为4789且通过所述第一VXLAN报文获知所述源VTEP不确定目的VTEP的VXLAN端口实际绑定的源端口号而默认其为公知的端口号4789时,提取第一VXLAN报文头内携带的端口校验信息,若判断出所述端口校验信息正确,则将所述新建NAT规则作为主规则,创建与所述主规则关联的NAT子规则,所述子规则为:
源(IP地址2:X)→目的(NATIP:NAT端口)
其中,所述X用于标识对来自所述目的VTEP的任意VXLAN报文中的源端口值不进行匹配。
作为一种实现方式,所述通过所述第一VXLAN报文获知所述源VTEP不确定目的VTEP的VXLAN端口实际绑定的源端口号,包括:
读取所述第一VXLAN报文头部预留字段的指定标志位,若所述指定标志位为约定数值,则说明所述源VTEP不确定目的VTEP的VXLAN端口实际绑定的源端口号。
作为一种实现方式,所述确定所述第二VXLAN报文与所述NAT规则相匹配后,按照所述NAT规则对所述第二VXLAN报文的目的互联网协议IP地址和目的端口号进行私网转换,包括:
如果第二VXLAN报文的参数信息符合所述NAT规则中对应描述的参数信息,则匹配NAT规则成功,并将第二VXLAN报文中的目的IP地址替换为匹配成功的NAT规则中具体对应转换关系的私网IP地址,目的端口号替换为匹配成功的NAT规则中具有对应转换关系的私网端口号。
作为一种实现方式,所述方法还包括:
若对所述第二VXLAN报文匹配NAT规则失败,且该NAT规则作为主规则关联有NAT子规则,则继续匹配该NAT子规则,若匹配所述NAT子规则成功,则更改所述NAT子规则关联的主规则,将所述主规则中的端口2的值更改为所述第二VXLAN报文中的源端口号,将第二VXLAN报文中的目的IP地址替换为更改后的主规则中具体对应转换关系的私网IP地址,目的端口号替换为更改后的主规则中具体对应转换关系的私网端口号。
作为一种实现方式,所述方法还包括:
删除匹配成功的NAT子规则。
本发明实施例还提供了一种可扩展虚拟局域网络VXLAN报文穿越网络地址转换NAT设备的系统,包括:
接收模块,用于接收来自位于私网侧的源VXLAN隧道终端VTEP向位于公网侧的目的VTEP发送的第一VXLAN报文;以及接收来自目的VTEP向所述源VTEP发送的第二VXLAN报文,所述第二VXLAN报文的目的IP地址和目的端口号分别为所述目的VTEP收到的公网转换后的第一VXLAN报文中的源IP地址以及源端口号;
报文处理模块,用于如果存在与第一VXLAN报文相匹配的NAT规则,按照所述NAT规则对所述第一VXLAN报文的源互联网协议IP地址和源端口号进行公网转换;以及确定所述第二VXLAN报文与所述NAT规则相匹配后,按照所述NAT规则对所述第二VXLAN报文的目的IP地址和目的端口号进行私网转换;所述NAT规则描述了:用于报文匹配的参数信息,至少包括源IP地址、源端口、目的IP地址以及目的端口号;以及用于公私网间转换的转换关系:参数信息中源IP地址和源端口为私网IP地址和端口时,到公网NATIP地址和NAT端口的转换;参数信息中目的IP地址和目的端口为公网NATIP地址和NAT端口时,到私网IP地址和端口的转换;
发送模块,用于将经过处理的第一VXLAN报文发送给目的VTEP;以及将经过处理的第二VXLAN报文发送给所述源VTEP。
作为一种实现方式,所述NAT规则的格式包括:
源(IP地址1:端口1)->目的(IP地址2:端口2)<——>源(IP地址2:端口2)->目的(NATIP:NAT端口);
其中,源(IP地址1:端口1)->目的(IP地址2:端口2),用于源VTEP发送的第一VXLAN报文的匹配;源(IP地址2:端口2)->目的(NATIP:NAT端口)用于目的VTEP发送的第二VXLAN报文的匹配。
作为一种实现方式,报文处理模块,用于如果存在与第一VXLAN报文相匹配的NAT规则,按照所述NAT规则对所述第一VXLAN报文的源互联网协议IP地址和源端口号进行公网转换,包括:
如果第一VXLAN报文的参数信息符合NAT规则中对应描述的参数信息,则匹配NAT规则成功,并将第一VXLAN报文中的源IP地址替换为匹配成功的NAT规则中具有对应转换关系的NATIP地址,源端口号替换为匹配成功的NAT规则中具有对应转换关系的NAT端口号。
作为一种实现方式,报文处理模块,还用于如果不存在NAT规则或者匹配NAT规则失败,则新建NAT规则,该新规则中IP地址1、端口1、IP地址2和端口2分别为第一VXLAN报文中的源IP地址、源端口号、目的IP地址和目的端口。
作为一种实现方式,报文处理模块,还用于若判断第一VXLAN报文中的目的端口号为4789且通过所述第一VXLAN报文获知所述源VTEP不确定目的VTEP的VXLAN端口实际绑定的源端口号而默认其为公知的端口号4789时,将所述新建NAT规则作为主规则,创建与所述主规则关联的NAT子规则,所述子规则为:
源(IP地址2:X)→目的(NATIP:NAT端口)
其中,所述X用于标识对来自所述目的VTEP的任意VXLAN报文中的源端口值不进行匹配。
作为一种实现方式,报文处理模块,还用于若判断第一VXLAN报文中的目的端口号为4789且通过所述第一VXLAN报文获知所述源VTEP不确定目的VTEP的VXLAN端口实际绑定的源端口号而默认其为公知的端口号4789时,提取第一VXLAN报文头内携带的端口校验信息,若判断出所述端口校验信息正确,则将所述新建NAT规则作为主规则,创建与所述主规则关联的NAT子规则,所述子规则为:
源(IP地址2:X)→目的(NATIP:NAT端口)
其中,所述X用于标识对来自所述目的VTEP的任意VXLAN报文中的源端口值不进行匹配。
作为一种实现方式,报文处理模块,用于通过所述第一VXLAN报文获知所述源VTEP不确定目的VTEP的VXLAN端口实际绑定的源端口号,包括:
读取所述第一VXLAN报文头部预留字段的指定标志位,若所述指定标志位为约定数值,则说明所述源VTEP不确定目的VTEP的VXLAN端口实际绑定的源端口号。
作为一种实现方式,所述报文处理模块,用于确定所述第二VXLAN报文与所述NAT规则相匹配后,按照所述NAT规则对所述第二VXLAN报文的目的互联网协议IP地址和目的端口号进行私网转换,包括:
如果第二VXLAN报文的参数信息符合所述NAT规则中对应描述的参数信息,则匹配NAT规则成功,并将第二VXLAN报文中的目的IP地址替换为匹配成功的NAT规则中具体对应转换关系的私网IP地址,目的端口号替换为匹配成功的NAT规则中具有对应转换关系的私网端口号。
作为一种实现方式,所述报文处理模块,还用于若对所述第二VXLAN报文匹配NAT规则失败,且该NAT规则作为主规则关联有NAT子规则,则继续匹配该NAT子规则,若匹配所述NAT子规则成功,则更改所述NAT子规则关联的主规则,将所述主规则中的端口2的值更改为所述第二VXLAN报文中的源端口号,将第二VXLAN报文中的目的IP地址替换为更改后的主规则中具体对应转换关系的私网IP地址,目的端口号替换为更改后的主规则中具体对应转换关系的私网端口号。
作为一种实现方式,所述报文处理模块,还用于删除匹配成功的NAT子规则。
本发明实施例还提供了一种计算机可读存储介质,所述介质存储有计算机可执行指令,所述计算机可执行指令被处理器执行时实现如前所述的可扩展虚拟局域网络VXLAN报文穿越网络地址转换NAT设备的方法的步骤。
本发明实施例还提供了一种实现可扩展虚拟局域网络VXLAN报文穿越的网络地址转换NAT设备,包括:
存储器,用于存储计算机可执行指令;
处理器,用于执行所述计算机可执行指令,以实现如前所述的可扩展虚拟局域网络VXLAN报文穿越网络地址转换NAT设备的方法的步骤。
与现有技术相比,本发明包括:接收来自位于私网侧的源VXLAN隧道终端VTEP向位于公网侧的目的VTEP发送的第一VXLAN报文;如果存在与第一VXLAN报文相匹配的NAT规则,按照所述NAT规则对所述第一VXLAN报文的源互联网协议IP地址和源端口号进行公网转换后,发送给目的VTEP;所述NAT规则描述了:用于报文匹配的参数信息,至少包括源IP地址、源端口、目的IP地址以及目的端口号;以及用于公私网间转换的转换关系:参数信息中源IP地址和源端口为私网IP地址和端口时,到公网NATIP地址和NAT端口的转换;参数信息中目的IP地址和目的端口为公网NATIP地址和NAT端口时,到私网IP地址和端口的转换;接收来自目的VTEP向所述源VTEP发送的第二VXLAN报文,所述第二VXLAN报文的目的IP地址和目的端口号分别为所述目的VTEP收到的公网转换后的第一VXLAN报文中的源IP地址以及源端口号;确定所述第二VXLAN报文与所述NAT规则相匹配后,按照所述NAT规则对所述第二VXLAN报文的目的IP地址和目的端口号进行私网转换后,发送回所述源VTEP。本发明实施例能够避免出现公网侧设备发过来的VXLAN报文无法穿越NAT设备的问题。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
图1为VXLAN报文不穿NAT场景的示意图;
图2为VXLAN报文穿越NAT场景的示意图;
图3为本发明实施例提供的VXLAN报文穿越NAT设备的方法流程图;
图4为本发明实施例提供的VXLAN头格式示意图;
图5为本发明应用示例提供的对VTEP进行接口配置流程图;
图6为本发明本应用示例提供的VXLAN报文传输交互示意图;
图7为本发明实施例提供的一种VXLAN报文穿越NAT设备的系统示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本发明实施例提供了一种VXLAN报文穿越NAT设备的方法,如图3所示,所述方法包括:
S301接收来自位于私网侧的源VXLAN隧道终端VTEP向位于公网侧的目的VTEP发送的第一VXLAN报文;
所述第一VXLAN报文包括:VXLAN头、UDP头以及外层IP头;所述VXLAN头格式可如图4所示,其中,VNI(VXLAN Network Identifier,VXLAN网络标识符)用于对不同VXLAN隧道之间进行隔离。UDP头中的源端口号为源VTEP的端口号,UDP头中的目的端口号为隧道对端目的VTEP的端口号;若源VTEP不确定隧道对端目的VTEP的端口号,UDP头中的目的端口号可以为默认配置的目的端口号4789;外层IP头内的源IP地址为源VTEP的IP地址,外层IP头内的目的IP地址为隧道对端目的VTEP的IP地址。
S302如果存在与第一VXLAN报文相匹配的NAT规则,按照所述NAT规则对所述第一VXLAN报文的源互联网协议IP地址和源端口号进行公网转换后,发送给目的VTEP;
在发明实施例中,NAT规则描述了:用于报文匹配的参数信息,至少包括源IP地址、源端口、目的IP地址以及目的端口号;以及用于公私网间转换的转换关系:参数信息中源IP地址和源端口为私网IP地址和端口时,到公网NATIP地址和NAT端口的转换;参数信息中目的IP地址和目的端口为公网NATIP地址和NAT端口时,到私网IP地址和端口的转换。说明一点,如果网络中仅传输的是UDP协议报文,则NAT规则中用于报文匹配的参数信息为如下四元组信息即可:源IP地址、源端口、目的IP地址以及目的端口号;如果网络中还传输有其他协议类型的报文(例如TCP报文)时,则NAT规则中用于报文匹配的参数信息则可以是由所述四元组信息加传输层协议号组成的五元组信息。
作为一种实现方式,所述NAT规则的格式包括:
源(IP地址1:端口1)->目的(IP地址2:端口2)<——>源(IP地址2:端口2)->目的(NATIP:NAT端口);
其中,源(IP地址1:端口1)->目的(IP地址2:端口2),用于源VTEP发送的第一VXLAN报文的匹配,例如若第一VXLAN报文中的源IP地址、源端口号、目的IP地址以及目的端口号与该部分内容相同,则NAT规则匹配成功,否则NAT规则匹配失败;源(IP地址2:端口2)->目的(NATIP:NAT端口)用于目的VTEP发送的第二VXLAN报文的匹配,例如若第二VXLAN报文中的源IP地址、源端口号、目的IP地址以及目的端口号与该部分内容相同,则NAT规则匹配成功,否则NAT规则匹配失败。
如果第一VXLAN报文的参数信息符合NAT规则中对应描述的参数信息,则匹配NAT规则成功,并将第一VXLAN报文中的源IP地址替换为匹配成功的NAT规则中具有对应转换关系的NATIP地址,源端口号替换为匹配成功的NAT规则中具有对应转换关系的NAT端口号。其中,参数信息为四元组信息或者五元组信息。
如果不存在NAT规则或者匹配NAT规则失败,则根据所述第一报文的源IP地址、源端口号、目的IP地址以及目的端口号新建NAT规则。该新NAT规则中IP地址1和端口1分别为第一VXLAN报文的源IP地址和源端口号,IP地址2和端口2分别为第一VXLAN报文的目的IP地址和目的端口号,也即:
(源VTEP IP:源VTEP PORT)->(目的VTEP IP:第一VXLAN报文的目的端口)<——>(目的VTEP IP:第一VXLAN报文的目的端口)->(NAT IP:NAT PORT);
然后,将第一VXLAN报文中的源IP地址替换为新NAT规则中的NAT IP地址,源端口号替换为新NAT规则中的NAT PORT;需要说明的是,对于不同的NAT规则,NATIP作为公网IP地址,可以是同一IP地址,具体为NAT设备的IP地址;但是,NAT PORT作为公网端口号,可以随NAT规则的不同而不同,NAT PORT与收到的私网侧设备(源VTEP)发送的VXLAN报文的源端口号这一私网端口号唯一对应。
作为一种实现方式,所述方法还包括:
若判断第一VXLAN报文中的目的端口号为4789且通过所述第一VXLAN报文获知所述源VTEP不确定目的VTEP的VXLAN端口实际绑定的源端口号而默认其为公知的端口号4789时,将所述新建NAT规则作为主规则,创建与所述主规则关联的NAT子规则,所述子规则为:
源(IP地址2:X)→目的(NATIP:NAT端口)
其中,所述X用于标识来自所述目的VTEP的任意VXLAN报文中的源端口值不进行匹配,所述X不能是网络中公网侧设备(目的VTEP)所采用的VXLAN接口绑定的源端口值,需采用特殊取值,典型的取值可以为0。
作为另一种实现方式,所述方法还包括:
若判断第一VXLAN报文中的目的端口号为4789且通过所述第一VXLAN报文获知所述源VTEP不确定目的VTEP的VXLAN端口实际绑定的源端口号而默认其为公知的端口号4789时,提取第一VXLAN报文头内携带的端口校验信息,若判断出所述端口校验信息正确,则将所述新建NAT规则作为主规则,创建与所述主规则关联的NAT子规则,所述子规则为:
源(IP地址2:X)→目的(NATIP:NAT端口)
其中,所述X用于标识来自所述目的VTEP的任意VXLAN报文中的源端口值不进行匹配。
所述通过所述第一VXLAN报文获知所述源VTEP不确定目的VTEP的VXLAN端口实际绑定的源端口号,包括:
读取所述第一VXLAN报文头部预留字段的指定标志位,若所述指定标志位为约定数值,则说明所述源VTEP不确定目的VTEP的VXLAN端口实际绑定的源端口号,如,所述第一VXLAN报文头部最后预留字段的最后一位为1,说明所述源VTEP不确定目的VTEP的VXLAN端口实际绑定的源端口号;所述第一VXLAN报文头部最后预留字段的最后一位为0,说明所述源VTEP确定目的VTEP的VXLAN端口实际绑定的源端口号。当然,也可采用VXLAN头部最后的预留字段的其它比特位来标识源VTEP是否获知隧道对端目的VTEP的端口号,例如预留字段的最高位,对此不作具体限定。或者,还可采用第一VXLAN报文头部其他位置的预留字段(如VNI前面的预留字段)来标识源VTEP是否获知隧道对端目的VTEP所采用的VXLAN接口绑定的源端口号。本发明实施例优选采用最后预留字段的实现方式。对于VNI前面的预留字段,虽然目前其中部分比特位尚未被赋予相应的物理意义,但是该预留字段的一个已知作用是被用来校验设备能否互通,如果源VTEP占用其中1个比特位来标识源VTEP是否获知隧道对端目的VTEP的端口号,而不对对端设备作出相应改进,则很可能产生校验失败而造成设备间无法通信的问题。
为了更好地防御第三方恶意攻击,提高报文传输的安全性,本发明实施例还可在第一VXLAN报文头部最后的预留字段的剩余比特位位置填充端口校验信息。所述端口校验信息可以由第一VXLAN报文中UDP头的源端口号和/或VXLAN头的VNI基于预先设定的映射方法计算生成。其中,映射方法用于将比特位大的源端口号和/或VNI转换为比特位小的端口校验信息。在具体实现中,端口号为16比特,VNI为24比特,而VXLAN头部最后的预留字段为8比特,采用小于或等于7比特来填充端口校验信息。作为一种实现方式,采用4比特来表示端口校验信息,由UDP头的源端口号生成,映射方法可以是:
假设16位的源端口号SPORT=0xacb8;
(1)将SPORT高8位0xac与低8位相加,得到一个16位的值U16PORT:0x164;
(2)将U16PORT按照上述(1)相加方式进行计算,得到8位的值U8PORT1:0x65;
(3)将8位U8PORT1高4位0x6与U8PORT1低4位0x5进行相加,得到8位值U8PORT2:0xB;
(4)将(3)中U8PORT2按照(3)中相加方式计算得到4比特的U4PORT:0xB;
(5)上述(4)中得到的U4PORT即为端口校验信息。
收到源VTEP发送的第一VXLAN报文后:提取第一VXLAN报文头内携带的端口校验信息;基于预先设定的映射方法,对第一VXLAN报文中UDP头的源端口号和/或VXLAN头的VNI计算生成校验基准信息;比较提取的端口校验信息与计算得到的校验基准信息是否一致,若一致则判断端口校验信息正确,否则判断端口校验信息错误。可选的,端口校验信息错误时,不创建子规则。
S303接收来自目的VTEP向所述源VTEP发送的第二VXLAN报文,所述第二VXLAN报文的目的IP地址和目的端口号分别为所述目的VTEP收到的公网转换后的第一VXLAN报文中的源IP地址以及源端口号;
S304确定所述第二VXLAN报文与所述NAT规则相匹配后,按照所述NAT规则对所述第二VXLAN报文的目的IP地址和目的端口号进行私网转换后,发送回所述源VTEP。
作为一种实现方式,确定所述第二VXLAN报文与所述NAT规则相匹配后,按照所述NAT规则对所述第二VXLAN报文的目的互联网协议IP地址和目的端口号进行私网转换,包括:
如果第二VXLAN报文的参数信息符合所述NAT规则中对应描述的参数信息,则匹配NAT规则成功,并将第二VXLAN报文中的目的IP地址替换为匹配成功的NAT规则中具体对应转换关系的私网IP地址,目的端口号替换为匹配成功的NAT规则中具有对应转换关系的私网端口号。其中,若匹配第一VXLAN报文采用的参数信息为四元组信息,此处的参数信息也即为四元组信息;若匹配第一VXLAN报文采用的参数信息为五元组信息,此处的参数信息也即为五元组信息。
若对所述第二VXLAN报文匹配NAT规则失败,且该NAT规则作为主规则关联有NAT子规则,则继续匹配该NAT子规则,若匹配所述NAT子规则成功,则更改所述NAT子规则关联的主规则,将所述主规则中的端口2的值更改为所述第二VXLAN报文中的源端口号。
然后,按照更改后的主规则进行目的地址和目的端口号的转换,该转换操作包括:将第二VXLAN报文中的目的IP地址替换为更改后的主规则中具体对应转换关系的私网IP地址,目的端口号替换为更改后的主规则中具体对应转换关系的私网端口号。
作为一种实现方式,删除匹配成功的子规则,或者,若子规则匹配成功时,则NAT设备新建一NAT规则,其内容为上述更改后的主NAT规则,删除子规则及其关联的主规则。
现有技术中,NAT设备接收到来自目的VTEP发过来的第二VXLAN报文源端口号为随机端口号,目的端口号为默认的4789,且现有的NAT规则仅是源VTEP和NAT设备的IP地址和端口号进行匹配,当NAT设备的实际端口号不为4789时,由于第二VXLAN报文中目的端口号为4789,无法匹配现有的NAT规则,进而导致目的VTEP发过来的第二VXLAN报文无法穿越NAT设备。本发明实施例中,NAT设备接收到的目的VTEP发过来的第二VXLAN报文中目的端口号不再为默认4789或者随机产生,而是根据公网转换后的第一VXLAN报文的源端口号确定,更进一步的能够对可能造成第二VXLAN报文中源端口匹配失败的情况加以识别并相应创建子规则,从而能够成功从NAT规则或子规则中找到第二VXLAN报文的目的地址和端口号的替换对象,进而顺利转发回源VTEP。
下面以一个具体的应用示例,对本发明上述实施例进行说明。
应用于如图2所示的VXLAN网络,该网络包括:VTEPA、VTEPB和NAT设备。其中,VTEPA处于私网中,VTEPB处于公网中,NAT设备用于私网与公网之间IP地址和端口号的转换,终端A为VTEPA所在局域网内的设备或服务器,终端B为VTEPB所在局域网内的设备或服务器。
首先,对VTEPA、VTEPB进行VXLAN接口配置,如图5所示。
步骤S701设备VTEP启动过程中,加载VXLAN模块时默认创建用户数据报协议UDP套接字,绑定端口号为4789(用作UDP的目的端口号),对绑定的端口号进行监听;
步骤S702设定VXLAN隧道源端口号;
VXLAN隧道源端口号用于封装UDP头,其设定方式可以是随机方式或用户指定方式。当VXLAN隧道源端口由用户指定时,由于指定的端口号有可能会被使用,所以需要将指定的源端口号下发内核进行校验,以判断是否被使用,如果指定端口号未被使用,则使用该端口号,作为VXLAN隧道的源端口号;如果被使用则返回错误,重新指定端口号。如果VXLAN隧道源端口号为随机获取方式,则从内核自动获取未被使用的端口号。
步骤S703设定VXLAN隧道对端的IP地址;
VXLAN隧道对端的IP地址用于封装外层IP头。在本应用示例中,VXLAN隧道两端设备VTEPA和VTEPB可均指定有VXLAN隧道对端IP地址,该IP地址的指定可通过读取预先创建的VXLAN接口配置文件获得,或者通过人机交互方式实时获取。对于VTEPA设备而言,指定的VXLAN隧道对端IP地址为VTEPB的IP地址(简称VTEPB IP);对于VTEPB设备而言,无需指定VXLAN隧道对端IP地址。
步骤S704设定VNI(VXLAN Network Identifier,VXLAN网络标识符)。
以上步骤S702-S704为创建VXLAN接口所需参数的获取过程,其中各步骤的先后执行顺序可以是任意的,甚至可以以并行的方式同时被执行,本应用示例并不局限于上述示例给出的方式,例如也可是先执行步骤S703,再依次执行步骤S702和S704。
步骤S705根据上述设定创建VXLAN接口,VXLAN接口包含的配置:对端VTEP的IP地址、源端口号和目的端口号、VNI以及FDB表。
其中,VXLAN接口中配置的目的端口号统一默认为公知的4789。
FDB表格式如表5所示,用于记录隧道对端VTEP的相关参数,包括:IP地址、源端口号PORT、VNI以及所连终端的MAC,以作后续VXLAN报文封装转发用。初始时FDB表的表项可为空,后续根据收到的来自隧道对端VTEP的VXLAN报文添加表项,表项中各参数值为:VXLAN报文的外层IP头部中的源IP地址、UDP头部中的源端口号、VXLAN头部中的VNI和内层MAC头中的源MAC地址。当然,若VXLAN隧道对端VTEP所采用的VXLAN接口绑定的源端口号(简称:隧道对端端口号)以及隧道对端所连接终端的MAC地址被确定,则还可依据该确定结果以及上述设定结果,在FDB表中添加表项,表项中各参数值为:隧道对端IP地址、隧道对端端口号、VNI和隧道对端所连接终端的MAC地址。
表5 FDB表格式
步骤S706使VXLAN接口UP;当VXLAN接口被UP时,在内核生成新的UDP套接字,该套接字绑定配置的源端口号,并将所述套接字置为封装套接字,该封装套接字收包回调函数设置为VXLAN报文解封装的处理函数;该套接字的建立是为了监听配置的源端口号的VXLAN报文。作为一种实现方式,当所述VXLAN接口被DOWN时,删除所述套接字;
步骤S707根据VXLAN接口上配置的VXLAN隧道对端的IP地址,查找VXLAN隧道的路由信息,将查找到的路由信息设置为上述套接字的路由缓存,用于VXLAN接口加速路由查询。
基于以上配置,本应用示例提供的VXLAN报文传输方法如下。
步骤一、VTEPA的VXLAN接口接收来自终端A发往终端B的报文。
步骤二、VTEPA对终端A发往终端B的报文进行VXLAN头、UDP头以及外层IP头的VXLAN封装,得到第一VXLAN报文。
其中,VXLAN封装实现过程,包括:
查找该VXLAN接口的FDB转发表中是否存在终端A发往终端B的报文中目的MAC地址所对应的表项;
若是,则按如下方式进行VXLAN封装:将VXLAN头部最后的预留字段的最后一位置0;将查找到的FDB表项中隧道对端的端口号,作为报文中UDP头中的目的端口号;将查找到的FDB表项中隧道对端的IP地址,作为报文中外层IP头内的目的IP地址;将VXLAN接口中预先配置的VXLAN VNI和源端口号,分别作为报文中VXLAN头内的VNI和UDP头内的源端口号;
若否,则按如下方式进行VXLAN封装:将VXLAN头部最后的预留字段的最后一位置为1;将UDP头中的目的端口号封装为预先为VXLAN接口配置的默认目的端口号4789;外层IP头内的目的IP地址为预先为VXLAN接口配置的隧道对端IP地址VTEPB IP;将VXLAN接口中预先配置的VXLAN VNI和源端口号VTEPA PORTA,分别作为报文中VXLAN头内的VNI和UDP头内的源端口号。
步骤三、VTEPA更新第一VXLAN报文的外层IP头的源IP地址为VTEPA IP,通过预先为绑定源端口的UDP套接字所设置的路由缓存信息,将更新后的第一VXLAN报文发送给NAT设备。
步骤四、NAT设备收到VTEPA发送的第一VXLAN报文,对该报文进行源IP地址和源端口号的转换,发送给VTEPB。
具体的,所述源地址和端口号转换过程,包括:
对收到的第一VXLAN报文匹配已经存在的NAT规则;NAT规则格式可以是:源(IP地址1:端口1)->目的(IP地址2:端口2)<——>源(IP地址2:端口2)->目的(NATIP:NAT PORT);
若匹配成功,则根据匹配成功的NAT规则,将第一VXLAN报文中的源IP地址替换为匹配成功的NAT规则中的NATIP地址,源端口号替换为匹配成功的NAT规则中的NAT PORT;
若匹配失败,则:
①根据第一VXLAN报文,新建一条NAT规则,该新NAT规则中IP地址1和端口1分别为第一VXLAN报文的源IP地址和源端口号,IP地址2和端口2分别为第一VXLAN报文的目的IP地址和目的端口号,也即:(VTEPA IP:VTEPA PORTA)->(VTEPB IP:第一VXLAN报文的目的端口号)<——>(VTEPB IP:第一VXLAN报文的目的端口号)->(NATIP:NAT PORT);
②将第一VXLAN报文中的源IP地址替换为新NAT规则中的NATIP地址,源端口号替换为新NAT规则中的NAT PORT;
③若判断第一VXLAN报文中UDP头的目的端口为4789且VXLAN头的预留字段的最后一位为1时,则将所述新NAT规则作为主规则,创建与之关联的NAT子规则:
源(VTEPB IP:0)→目的(NATIP:NAT PORT)
NAT设备收到VTEPA发送的VXLAN报文中目的端口号为4789且VXLAN头预留字段的最后一位为1,表明私网侧设备VTEPA并不确定公网侧设备VTEPB的VXLAN端口实际绑定的源端口号而默认其为公知的端口号4789,该情况下若不创建子规则,很有可能会造成VTEPB返回的VXLAN报文穿越NAT失败的情况发生。例如,VTEPB的VXLAN端口实际绑定的源端口号并不是4789,也即VTEPB返回的VXLAN报文的源端口号非4789,此时若仅匹配已有的NAT规则,会匹配失败。
若目的端口号为4789,但是VXLAN头中最后一位为0时,则说明VTEPA已获知VTEPB采用的VXLAN接口实际绑定的源端口号是公知的4789,之后VTEPB发过来的VXLAN报文的源端口号即为4789,不会出现规则匹配失败的情况,故无需进行子规则的创建。
另外,若目的端口号不是4789,也可以不进行子规则的创建。
可选的,NAT设备在匹配NAT规则失败后,判断本次收到的VTEPA发送的第一VXLAN报文中UDP头的目的端口号为4789且VXLAN头的预留字段的最后一位为1时,还要提取VXLAN头内携带的端口校验信息,判断该信息是否为该第一VXLAN报文中的源端口号和/或VNI映射得到的;若是,则才创建关联的NAT子规则,否则不创建NAT子规则。
步骤五、VTEPB收到NAT设备发送的第一VXLAN报文后,根据报文中VNI查找对应的VXLAN接口;如果查找不到对应的VXLAN接口,则丢弃该报文。
步骤六、VTEPB查找到VXLAN接口后,判断所述VXLAN接口的FDB表中是否存在如表6所示的表项:第一VXLAN报文外层IP头中的源IP地址(NATIP)、UDP头中的源端口号(NATPORT)、VNI以及内层MAC头中的源MAC地址(终端A MAC)。若无,则创建该表项。
IP | PORT | VNI | MAC |
NATIP | NAT PORT | VNI | 终端A MAC |
表6 VTEPB FDB表
步骤七、VTEPB对第一VXLAN报文进行VXLAN解封装后发送给终端B;终端B收到终端A的报文后,对其进行回复。
步骤八、VTEPB收到终端B发往终端A的报文后,根据该报文中目的MAC地址(终端AMAC地址)查找VXLAN接口的FDB表项。
步骤九、VTEPB查找到FDB表项后,使用表项中的信息对终端B发往终端A的报文进行VXLAN封装,以得到第二VXLAN报文。
封装过程中,使用VNI作为VXLAN头中的网络标识符;使用NAT PORT和VXLAN接口绑定的源端口号VTEPB PORTB作为UDP头中的目的端口号和源端口号;使用NATIP地址作为封装外层IP头的目的IP地址。注意,对于VTEPB而言,查找FDB表项成功,第二VXLAN报文的VXLAN头内的预留字段最后一位被置为0。
步骤十、VTEPB更新第二VXLAN报文的外层IP头的源IP地址为VTEPB IP地址,将更新后的第二VXLAN报文发送给NAT设备。
步骤十一、NAT设备收到VTEPB发送的第二VXLAN报文,对该报文进行目的IP地址和目的端口号的转换,发送给VTEPA。
具体的,所述目的地址和端口号转换过程,包括:
对收到的第二VXLAN报文匹配已存在的NAT规则;
若NAT规则匹配成功,则NAT设备按照该NAT规则进行目的地址和目的端口号转换,该转换操作包括:将第二VXLAN报文中外层IP头部中目的IP地址转换成NAT规则中的IP地址1(VTEPA IP),UDP头部中目的端口号转换为NAT规则中的端口1(VTEPA PORTA);
若NAT规则匹配失败,且该NAT规则作为主规则关联有子规则,则继续匹配该子规则;若子规则匹配成功,则NAT设备更改所关联的主规则将该主规则中的“端口2”相应内容更改为:本次收到的第二VXLAN报文中的源端口号;此时,更改后的NAT规则即为:
(VTEPA IP:VTEPA PORTA)->(VTEPB IP:VTEPB PORTB)<——>(VTEPB IP:VTEPBPORTB)->(NATIP:NAT PORT)
进而,按照更改后的主规则进行目的地址和端口号的转换,该转换操作包括:将第二VXLAN报文中外层IP头部中目的IP地址转换成更改后的主规则中的IP地址1(VTEPA IP),UDP头部中目的端口号转换为更改后的主规则中的端口1(VTEPA PORTA);删除匹配成功的子规则。
步骤十二、VTEPA收到NAT设备发送的第二VXLAN报文,根据报文中VNI查找对应的VXLAN接口;如果查找不到对应的VXLAN接口,则丢弃该报文。
步骤十三、VTEPA查找到VXLAN接口后,判断所述VXLAN接口的FDB表中是否存在如下表项:第二VXLAN报文外层IP头的源IP地址(VTEPB IP)、UDP头中源端口号(VTEPBPORTB)、VNI以及内层MAC头的源MAC地址(终端B MAC)。若无,则创建该表项。
步骤十四、VTEPA对第二VXLAN报文进行VXLAN解封装后发送给终端A:VTEPA通过读取收到报文的目的端口号是本设备上的VXLAN接口绑定的源端口号时,确定该报文为VXLAN报文,通过创建的监听套接字将该报文送入对应的VXLAN接口中进行解封装处理。
下面以图6为例,详细说明VXLAN报文的流向及相关信息。
VTEPA设备启动后,创建FDB表1(此时表项为空),收到终端A发往终端B的二层报文后,对该二层报文进行VXLAN封装得到VXLAN报文(1),发往NAT设备,其中VXLAN报文(1)中:源MAC地址为终端A MAC,目的MAC地址为终端B MAC;VXLAN头部最后的预留字段的最后一位置为1;UDP头中的源端口为VTEPA PORTA,目的端口为默认端口号4789;外层IP头内的源IP地址为VTEPA IP,目的IP地址为VTEPB IP。
NAT设备收到VXLAN报文(1)后,因不存在与该报文相匹配的NAT规则,故根据VXLAN报文(1)创建如下新NAT规则:
(VTEPA IP:VTEPA PORTA)->(VTEPB IP:4789)<——>(VTEPB IP:4789)->(NATIP:NAT PORT)
并且,将所述新NAT规则作为主规则,创建与之关联的子规则:
(VTEPB IP:0)->(NATIP:NAT PORT)
将VXLAN报文(1)中的源IP地址(VTEPA IP)替换为新NAT规则中的NATIP,源端口号(VTEPA PORTA)替换为新NAT规则中的NAT PORT,得到VXLAN报文(2),发往VTEPB设备。
VTEPB设备收到VXLAN报文(2)之后,根据该报文在FDB表2中添加如下表项:
VXLAN报文(2)的外层IP头中的源IP地址(NATIP)、UDP头中的源端口(NAT PORT)、VNI以及内层MAC头中的源MAC地址(终端A MAC)。
VTEPB设备对VXLAN报文(2)进行VXLAN解封装后发送给终端B;终端B收到终端A的报文后,对其进行回复。
VTEPB设备收到终端B发往终端A的二层回复报文后,查找FDB表2,找到该回复报文中目的MAC地址(终端A MAC)对应的表项,进而据此表项对该回复报文进行VXLAN封装,得到VXLAN报文(3)。其中,VXLAN报文(3)中:源MAC地址为终端B MAC,目的MAC地址为终端A MAC;VXLAN头内的预留字段最后一位被置为0;外层IP头的源IP地址和目的IP地址分别为VTEPBIP和NATIP;UDP头中的源端口号和目的端口号分别为VXLAN接口绑定的源端口号VTEPBPORTB和NAT PORT。
NAT设备收到VXLAN报文(3)后,匹配已存在的NAT规则失败,但匹配如下属于主规则的NAT规则所关联的子规则成功:(VTEPB IP:0)->(NAT IP:NAT PORT)。之后,NAT设备删除该子规则,并将其关联的主规则(VTEPA IP:VTEPA PORTA)->(VTEPB IP:4789)<——>(VTEPB IP:4789)->(NAT IP:NAT PORT)修改为:(VTEPA IP:VTEPA PORTA)->(VTEPB IP:VTEPB PORTB)<——>(VTEPB IP:VTEPB PORTB)->(NATIP:NAT PORT),将VXLAN报文(3)中的目的IP地址替换为修改后的主规则中的私网IP:VTEPA IP,目的端口替换为修改后的主规则中的私网端口VTEPA PORTA,得到VXLAN报文(4),进而被发往VTEPA设备。
VTEPA设备收到VXLAN报文(4)后,据此在FDB表1中添加如下表项:VXLAN报文(4)的外层IP头的源IP地址(VTEPB IP)、UDP头中源端口号(VTEPB PORTB)、VNI以及内层MAC头的源MAC地址(终端B MAC),对VXLAN报文(4)进行VXLAN解封装后发送给终端A。
之后,VTEPA设备收到终端A发往终端B的其它二层报文后,查找FDB表1,找到报文中目的MAC地址(终端B MAC)对应的表项,进而据此表项对该报文进行VXLAN封装,得到VXLAN报文(5)。其中VXLAN报文(5)中:源MAC地址为终端A MAC,目的MAC地址为终端B MAC;VXLAN头部最后的预留字段的最后一位置为0;UDP头中的源端口为VTEPA PORTA,目的端口为VTEPB PORTB;外层IP头内的源IP地址为VTEPA IP,目的IP地址为VTEPB IP。
NAT设备收到VXLAN报文(5)后,匹配已存在的NAT规则:(VTEPA IP:VTEPA PORTA)->(VTEPB IP:VTEPB PORTB)<——>(VTEPB IP:VTEPB PORTB)->(NATIP:NAT PORT),匹配成功,将VXLAN报文(5)中的源IP地址(VTEPA IP)替换为匹配成功的NAT规则中的NATIP,源端口号(VTEPA PORTA)替换为匹配成功的NAT规则中的NAT PORT,得到VXLAN报文(6),发往VTEPB设备。
VTEPB设备收到VXLAN报文(6)后,查找FDB表2发现已存在该报文中源MAC地址(终端A MAC)对应的表项,对VXLAN报文(6)进行VXLAN解封装后发送给终端B;终端B收到终端A的报文后,对其进行回复。
在本应用示例中,VTEPA和VTEPB两侧都是不仅要提取收到VXLAN报文中的源MAC地址、源IP地址,还提取源端口号,作为FDB表表项内容。相应的,在对收到的来自终端的原始二层报文进行VXLAN报文封装时,其UDP头部的目的端口号不再采用预设的固定端口号4789,而是FDB表中实际记录的端口号,只有表项为空时才默认为4789。此外,在NAT设备侧,NAT转换时所采用的NAT规则匹配方式,不再单纯的只是源信息或者目的信息的匹配,而是源和目的信息均要同时匹配,也即接收到的VXLAN报文中的源IP、源端口号、目的IP以及目的端口号要与NAT规则中的相应内容匹配为此,为避免该匹配方式下出现VXLAN报文无法穿越NAT设备的现象发生,NAT设备还对可能会造成NAT穿越失败的特定情形加以识别并自动设置子规则并关联对应主规则。
本发明实施例还提供了一种可扩展虚拟局域网络VXLAN报文穿越网络地址转换NAT设备的系统,如图7所示,所述系统包括:
接收模块701,用于接收来自位于私网侧的源VXLAN隧道终端VTEP向位于公网侧的目的VTEP发送的第一VXLAN报文;以及接收来自目的VTEP向所述源VTEP发送的第二VXLAN报文,所述第二VXLAN报文的目的IP地址和目的端口号分别为所述目的VTEP收到的公网转换后的第一VXLAN报文中的源IP地址以及源端口号;
所述第一VXLAN报文包括:VXLAN头、UDP头以及外层IP头;所述VXLAN头格式可如图4所示,其中,VNI(VXLAN Network Identifier,VXLAN网络标识符)用于对不同VXLAN隧道之间进行隔离。UDP头中的源端口号为源VTEP的端口号,UDP头中的目的端口号为隧道对端目的VTEP的端口号;若源VTEP不确定隧道对端目的VTEP的端口号,UDP头中的目的端口号可以为默认配置的目的端口号4789;外层IP头内的源IP地址为源VTEP的IP地址,外层IP头内的目的IP地址为隧道对端目的VTEP的IP地址。
报文处理模块702,用于如果存在与第一VXLAN报文相匹配的NAT规则,按照所述NAT规则对所述第一VXLAN报文的源互联网协议IP地址和源端口号进行公网转换;以及确定所述第二VXLAN报文与所述NAT规则相匹配后,按照所述NAT规则对所述第二VXLAN报文的目的IP地址和目的端口号进行私网转换;
所述NAT规则描述了:用于报文匹配的参数信息,至少包括源IP地址、源端口、目的IP地址以及目的端口号;以及用于公私网间转换的转换关系:参数信息中源IP地址和源端口为私网IP地址和端口时,到公网NATIP地址和NAT端口的转换;参数信息中目的IP地址和目的端口为公网NATIP地址和NAT端口时,到私网IP地址和端口的转换;说明一点,如果网络中仅传输的是UDP协议报文,则NAT规则中用于报文匹配的参数信息为如下四元组信息即可:源IP地址、源端口、目的IP地址以及目的端口号;如果网络中还传输有其他协议类型的报文(例如TCP报文)时,则NAT规则中用于报文匹配的参数信息则可以是由所述四元组信息加传输层协议号组成的五元组信息;
发送模块703,用于将经过处理的第一VXLAN报文发送给目的VTEP;以及将经过处理的第二VXLAN报文发送给所述源VTEP。
作为一种实现方式,上述NAT规则的格式包括:
源(IP地址1:端口1)->目的(IP地址2:端口2)<——>源(IP地址2:端口2)->目的(NATIP:NAT端口);
其中,源(IP地址1:端口1)->目的(IP地址2:端口2),用于源VTEP发送的第一VXLAN报文的匹配,例如若第一VXLAN报文中的源IP地址、源端口号、目的IP地址以及目的端口号与该部分内容相同,则NAT规则匹配成功,否则NAT规则匹配失败;源(IP地址2:端口2)->目的(NATIP:NAT端口)用于目的VTEP发送的第二VXLAN报文的匹配,例如若第二VXLAN报文中的源IP地址、源端口号、目的IP地址以及目的端口号与该部分内容相同,则NAT规则匹配成功,否则NAT规则匹配失败。
作为一种实现方式,报文处理模块702,用于如果存在与第一VXLAN报文相匹配的NAT规则,按照所述NAT规则对所述第一VXLAN报文的源互联网协议IP地址和源端口号进行公网转换,包括:
如果第一VXLAN报文的参数信息符合NAT规则中对应描述的参数信息,则匹配NAT规则成功,并将第一VXLAN报文中的源IP地址替换为匹配成功的NAT规则中具有对应转换关系的NATIP地址,源端口号替换为匹配成功的NAT规则中具有对应转换关系的NAT端口号。其中,参数信息为四元组信息或者五元组信息。
作为一种实现方式,报文处理模块702,还用于如果不存在NAT规则或者匹配NAT规则失败,则根据所述第一报文的源IP地址、源端口号、目的IP地址以及目的端口号新建NAT规则。该新NAT规则中IP地址1和端口1分别为第一VXLAN报文的源IP地址和源端口号,IP地址2和端口2分别为第一VXLAN报文的目的IP地址和目的端口号,也即:
(源VTEP IP:源VTEP PORT)->(目的VTEP IP:第一VXLAN报文的目的端口)<——>(目的VTEP IP:第一VXLAN报文的目的端口)->(NATIP:NAT PORT);
然后,将第一VXLAN报文中的源IP地址替换为新NAT规则中的NATIP地址,源端口号替换为新NAT规则中的NAT PORT;需要说明的是,对于不同的NAT规则,NATIP作为公网IP地址,可以是同一IP地址,具体为NAT设备的IP地址;但是,NAT PORT作为公网端口号,可以随NAT规则的不同而不同,NAT PORT与收到的私网侧设备(源VTEP)发送的VXLAN报文的源端口号这一私网端口号唯一对应。
作为一种实现方式,所述报文处理模块702,还用于若判断第一VXLAN报文中的目的端口号为4789且通过所述第一VXLAN报文获知所述源VTEP不确定目的VTEP的VXLAN端口实际绑定的源端口号而默认其为公知的端口号4789时,将所述新建NAT规则作为主规则,创建与所述主规则关联的NAT子规则,所述子规则为:
源(IP地址2:X)→目的(NATIP:NAT端口)
其中,所述X用于标识来自所述目的VTEP的任意VXLAN报文中的源端口值不进行匹配,所述X不能是网络中公网侧设备(目的VTEP)所采用的VXLAN接口绑定的源端口值,需采用特殊取值,典型的取值可以为0。
作为一种实现方式,所述报文处理模块702,还用于若判断第一VXLAN报文中的目的端口号为4789且通过所述第一VXLAN报文获知所述源VTEP不确定目的VTEP的VXLAN端口实际绑定的源端口号而默认其为公知的端口号4789时,提取第一VXLAN报文头内携带的端口校验信息,若判断出所述端口校验信息正确,则将所述新建NAT规则作为主规则,创建与所述主规则关联的NAT子规则,所述子规则为:
源(IP地址2:X)→目的(NATIP:NAT端口)
其中,所述X用于标识来自所述目的VTEP的任意VXLAN报文中的源端口值不进行匹配。
作为一种实现方式,所述报文处理模块702,用于通过所述第一VXLAN报文获知所述源VTEP不确定目的VTEP的VXLAN端口实际绑定的源端口号,包括:
读取所述第一VXLAN报文头部预留字段的指定标志位,若所述指定标志位为约定数值,则说明所述源VTEP不确定目的VTEP的VXLAN端口实际绑定的源端口号,如,所述第一VXLAN报文头部最后预留字段的最后一位为1,说明所述源VTEP不确定目的VTEP的VXLAN端口实际绑定的源端口号;所述第一VXLAN报文头部最后预留字段的最后一位为0,说明所述源VTEP确定目的VTEP的VXLAN端口实际绑定的源端口号。当然,也可采用VXLAN头部最后的预留字段的其它比特位来标识源VTEP是否获知隧道对端目的VTEP的端口号,例如预留字段的最高位,对此不作具体限定。或者,还可采用第一VXLAN报文头部其他位置的预留字段(如VNI前面的预留字段)来标识源VTEP是否获知隧道对端目的VTEP所采用的VXLAN接口绑定的源端口号。本发明实施例优选采用最后预留字段的实现方式。对于VNI前面的预留字段,虽然目前其中部分比特位尚未被赋予相应的物理意义,但是该预留字段的一个已知作用是被用来校验设备能否互通,如果源VTEP占用其中1个比特位来标识源VTEP是否获知隧道对端目的VTEP的端口号,而不对对端设备作出相应改进,则很可能产生校验失败而造成设备间无法通信的问题。
为了更好地防御第三方恶意攻击,提高报文传输的安全性,本发明实施例还可在第一VXLAN报文头部最后的预留字段的剩余比特位位置填充端口校验信息。所述端口校验信息可以由第一VXLAN报文中UDP头的源端口号和/或VXLAN头的VNI基于预先设定的映射方法计算生成。其中,映射方法用于将比特位大的源端口号和/或VNI转换为比特位小的端口校验信息。在具体实现中,端口号为16比特,VNI为24比特,而VXLAN头部最后的预留字段为8比特,采用小于或等于7比特来填充端口校验信息。作为一种实现方式,采用4比特来表示端口校验信息,由UDP头的源端口号生成,映射方法可以是:
假设16位的源端口号SPORT=0xacb8;
(1)将SPORT高8位0xac与低8位相加,得到一个16位的值U16PORT:0x164;
(2)将U16PORT按照上述(1)相加方式进行计算,得到8位的值U8PORT1:0x65;
(3)将8位U8PORT1高4位0x6与U8PORT1低4位0x5进行相加,得到8位值U8PORT2:0xB;
(4)将(3)中U8PORT2按照(3)中相加方式计算得到4比特的U4PORT:0xB;
(5)上述(4)中得到的U4PORT即为端口校验信息。
所述报文处理模块702,收到源VTEP发送的第一VXLAN报文后:提取第一VXLAN报文头内携带的端口校验信息;基于预先设定的映射方法,对第一VXLAN报文中UDP头的源端口号和/或VXLAN头的VNI计算生成校验基准信息;比较提取的端口校验信息与计算得到的校验基准信息是否一致,若一致则判断端口校验信息正确,否则判断端口校验信息错误。可选的,端口校验信息错误时,不创建子规则。
作为一种实现方式,所述报文处理模块702,用于确定所述第二VXLAN报文与所述NAT规则相匹配后,按照所述NAT规则对所述第二VXLAN报文的目的互联网协议IP地址和目的端口号进行私网转换,包括:
如果第二VXLAN报文的参数信息符合所述NAT规则中对应描述的参数信息,则匹配NAT规则成功,并将第二VXLAN报文中的目的IP地址替换为匹配成功的NAT规则中具体对应转换关系的私网IP地址,目的端口号替换为匹配成功的NAT规则中具有对应转换关系的私网端口号。其中,若匹配第一VXLAN报文采用的参数信息为四元组信息,此处的参数信息也即为四元组信息;若匹配第一VXLAN报文采用的参数信息为五元组信息,此处的参数信息也即为五元组信息。
所述报文处理模块,还用于若对所述第二VXLAN报文匹配NAT规则失败,且该NAT规则作为主规则关联有NAT子规则,则继续匹配该NAT子规则,若匹配所述NAT子规则成功,则更改所述NAT子规则关联的主规则,将所述主规则中的端口2的值更改为所述第二VXLAN报文中的源端口号;然后,按照更改后的主规则进行目的地址和目的端口号的转换,该转换操作包括:将第二VXLAN报文中的目的IP地址替换为更改后的主规则中具体对应转换关系的私网IP地址,目的端口号替换为更改后的主规则中具体对应转换关系的私网端口号。
作为一种实现方式,所述报文处理模块702,还用于删除匹配成功的NAT子规则,或者,若子规则匹配成功时,则NAT设备新建一NAT规则,其内容为上述更改后的主NAT规则,删除子规则及其关联的主规则。
现有技术中,NAT设备接收到来自目的VTEP发过来的第二VXLAN报文源端口号为随机端口号,目的端口号为默认的4789,且现有的NAT规则仅是源VTEP和NAT设备的IP地址和端口号进行匹配,当NAT设备的实际端口号不为4789时,由于第二VXLAN报文中目的端口号为4789,无法匹配现有的NAT规则,进而导致目的VTEP发过来的第二VXLAN报文无法穿越NAT设备;本发明实施例中,NAT设备接收到的目的VTEP发过来的第二VXLAN报文中目的端口号不再为默认4789或者随机产生,而是根据公网转换后的第一VXLAN报文的源端口号确定,更进一步的能够对可能造成第二VXLAN报文中源端口匹配失败的情况加以识别并相应创建子规则,从而能够成功从NAT规则或子规则中找到第二VXLAN报文的目的地址和端口号的替换对象,进而顺利转发回源VTEP。
本发明实施例还提供了一种计算机可读存储介质,所述介质存储有计算机可执行指令,所述计算机可执行指令被处理器执行时实现如前实施例所述的可扩展虚拟局域网络VXLAN报文穿越网络地址转换NAT设备的方法的步骤。
本发明实施例还提供了一种实现可扩展虚拟局域网络VXLAN报文穿越的网络地址转换NAT设备,包括:
存储器,用于存储计算机可执行指令;
处理器,用于执行所述计算机可执行指令,以实现如前实施例所述的可扩展虚拟局域网络VXLAN报文穿越网络地址转换NAT设备的方法的步骤。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
Claims (22)
1.一种可扩展虚拟局域网络VXLAN报文穿越网络地址转换NAT设备的方法,其特征在于,包括:
接收来自位于私网侧的源VXLAN隧道终端VTEP向位于公网侧的目的VTEP发送的第一VXLAN报文;
如果存在与第一VXLAN报文相匹配的NAT规则,按照所述NAT规则对所述第一VXLAN报文的源互联网协议IP地址和源端口号进行公网转换后,发送给目的VTEP;所述NAT规则描述了:用于报文匹配的参数信息,至少包括:源IP地址、源端口、目的IP地址以及目的端口号;以及用于公私网间转换的转换关系:参数信息中源IP地址和源端口为私网IP地址和端口时,到公网NATIP地址和NAT端口的转换;参数信息中目的IP地址和目的端口为公网NATIP地址和NAT端口时,到私网IP地址和端口的转换;
接收来自目的VTEP向所述源VTEP发送的第二VXLAN报文,所述第二VXLAN报文的目的IP地址和目的端口号分别为所述目的VTEP收到的公网转换后的第一VXLAN报文中的源IP地址以及源端口号;
确定所述第二VXLAN报文与所述NAT规则相匹配后,按照所述NAT规则对所述第二VXLAN报文的目的IP地址和目的端口号进行私网转换后,发送回所述源VTEP。
2.根据权利要求1所述的VXLAN报文穿越NAT设备的方法,其特征在于,所述NAT规则的格式包括:
源(IP地址1:端口1)->目的(IP地址2:端口2)<——>源(IP地址2:端口2)->目的(NATIP:NAT端口);
其中,源(IP地址1:端口1)->目的(IP地址2:端口2),用于源VTEP发送的第一VXLAN报文的匹配;源(IP地址2:端口2)->目的(NATIP:NAT端口)用于目的VTEP发送的第二VXLAN报文的匹配。
3.根据权利要求1或2所述的VXLAN报文穿越NAT设备的方法,其特征在于,如果存在与第一VXLAN报文相匹配的NAT规则,按照所述NAT规则对所述第一VXLAN报文的源互联网协议IP地址和源端口号进行公网转换,包括:
如果第一VXLAN报文的参数信息符合NAT规则中对应描述的参数信息,则匹配NAT规则成功,并将第一VXLAN报文中的源IP地址替换为匹配成功的NAT规则中具有对应转换关系的NATIP地址,源端口号替换为匹配成功的NAT规则中具有对应转换关系的NAT端口号。
4.根据权利要求2所述的VXLAN报文穿越NAT设备的方法,其特征在于,所述方法还包括:
如果不存在NAT规则或者匹配NAT规则失败,则新建NAT规则,该新规则中IP地址1、端口1、IP地址2和端口2分别为第一VXLAN报文中的源IP地址、源端口号、目的IP地址和目的端口。
5.根据权利要求4所述的VXLAN报文穿越NAT设备的方法,其特征在于,所述方法还包括:
若判断第一VXLAN报文中的目的端口号为4789且通过所述第一VXLAN报文获知所述源VTEP不确定目的VTEP的VXLAN端口实际绑定的源端口号而默认其为公知的端口号4789时,将所述新建NAT规则作为主规则,创建与所述主规则关联的NAT子规则,所述子规则为:
源(IP地址2:X)→目的(NATIP:NAT端口)
其中,所述X用于标识对来自所述目的VTEP的任意VXLAN报文中的源端口值不进行匹配。
6.根据权利要求4所述的VXLAN报文穿越NAT设备的方法,其特征在于,所述方法还包括:
若判断第一VXLAN报文中的目的端口号为4789且通过所述第一VXLAN报文获知所述源VTEP不确定目的VTEP的VXLAN端口实际绑定的源端口号而默认其为公知的端口号4789时,提取第一VXLAN报文头内携带的端口校验信息,若判断出所述端口校验信息正确,则将所述新建NAT规则作为主规则,创建与所述主规则关联的NAT子规则,所述子规则为:
源(IP地址2:X)→目的(NATIP:NAT端口)
其中,所述X用于标识对来自所述目的VTEP的任意VXLAN报文中的源端口值不进行匹配。
7.根据权利要求5或6所述的VXLAN报文穿越NAT设备的方法,其特征在于,所述通过所述第一VXLAN报文获知所述源VTEP不确定目的VTEP的VXLAN端口实际绑定的源端口号,包括:
读取所述第一VXLAN报文头部预留字段的指定标志位,若所述指定标志位为约定数值,则说明所述源VTEP不确定目的VTEP的VXLAN端口实际绑定的源端口号。
8.根据权利要求5或6所述的VXLAN报文穿越NAT设备的方法,其特征在于,
所述确定所述第二VXLAN报文与所述NAT规则相匹配后,按照所述NAT规则对所述第二VXLAN报文的目的互联网协议IP地址和目的端口号进行私网转换,包括:
如果第二VXLAN报文的参数信息符合所述NAT规则中对应描述的参数信息,则匹配NAT规则成功,并将第二VXLAN报文中的目的IP地址替换为匹配成功的NAT规则中具体对应转换关系的私网IP地址,目的端口号替换为匹配成功的NAT规则中具有对应转换关系的私网端口号。
9.根据权利要求5或6所述的VXLAN报文穿越NAT设备的方法,其特征在于,还包括:
若对所述第二VXLAN报文匹配NAT规则失败,且该NAT规则作为主规则关联有NAT子规则,则继续匹配该NAT子规则,若匹配所述NAT子规则成功,则更改所述NAT子规则关联的主规则,将所述主规则中的端口2的值更改为所述第二VXLAN报文中的源端口号,将第二VXLAN报文中的目的IP地址替换为更改后的主规则中具体对应转换关系的私网IP地址,目的端口号替换为更改后的主规则中具体对应转换关系的私网端口号。
10.根据权利要求9所述所述的VXLAN报文穿越NAT设备的方法,其特征在于,还包括:
删除匹配成功的NAT子规则。
11.一种可扩展虚拟局域网络VXLAN报文穿越网络地址转换NAT设备的系统,其特征在于,包括:
接收模块,用于接收来自位于私网侧的源VXLAN隧道终端VTEP向位于公网侧的目的VTEP发送的第一VXLAN报文;以及接收来自目的VTEP向所述源VTEP发送的第二VXLAN报文,所述第二VXLAN报文的目的IP地址和目的端口号分别为所述目的VTEP收到的公网转换后的第一VXLAN报文中的源IP地址以及源端口号;
报文处理模块,用于如果存在与第一VXLAN报文相匹配的NAT规则,按照所述NAT规则对所述第一VXLAN报文的源互联网协议IP地址和源端口号进行公网转换;以及确定所述第二VXLAN报文与所述NAT规则相匹配后,按照所述NAT规则对所述第二VXLAN报文的目的IP地址和目的端口号进行私网转换;所述NAT规则描述了:用于报文匹配的参数信息,至少包括:源IP地址、源端口、目的IP地址以及目的端口号;以及用于公私网间转换的转换关系:参数信息中源IP地址和源端口为私网IP地址和端口时,到公网NATIP地址和NAT端口的转换;参数信息中目的IP地址和目的端口为公网NATIP地址和NAT端口时,到私网IP地址和端口的转换;
发送模块,用于将经过处理的第一VXLAN报文发送给目的VTEP;以及将经过处理的第二VXLAN报文发送给所述源VTEP。
12.根据权利要求11所述的VXLAN报文穿越NAT设备的系统,其特征在于,所述NAT规则的格式包括:
源(IP地址1:端口1)->目的(IP地址2:端口2)<——>源(IP地址2:端口2)->目的(NATIP:NAT端口);
其中,源(IP地址1:端口1)->目的(IP地址2:端口2),用于源VTEP发送的第一VXLAN报文的匹配;源(IP地址2:端口2)->目的(NATIP:NAT端口)用于目的VTEP发送的第二VXLAN报文的匹配。
13.根据权利要求11或12所述的VXLAN报文穿越NAT设备的系统,其特征在于,
报文处理模块,用于如果存在与第一VXLAN报文相匹配的NAT规则,按照所述NAT规则对所述第一VXLAN报文的源互联网协议IP地址和源端口号进行公网转换,包括:
如果第一VXLAN报文的参数信息符合NAT规则中对应描述的参数信息,则匹配NAT规则成功,并将第一VXLAN报文中的源IP地址替换为匹配成功的NAT规则中具有对应转换关系的NATIP地址,源端口号替换为匹配成功的NAT规则中具有对应转换关系的NAT端口号。
14.根据权利要求12所述的VXLAN报文穿越NAT设备的系统,其特征在于,
报文处理模块,还用于如果不存在NAT规则或者匹配NAT规则失败,则新建NAT规则,该新规则中IP地址1、端口1、IP地址2和端口2分别为第一VXLAN报文中的源IP地址、源端口号、目的IP地址和目的端口。
15.根据权利要求14所述的VXLAN报文穿越NAT设备的系统,其特征在于,
报文处理模块,还用于若判断第一VXLAN报文中的目的端口号为4789且通过所述第一VXLAN报文获知所述源VTEP不确定目的VTEP的VXLAN端口实际绑定的源端口号而默认其为公知的端口号4789时,将所述新建NAT规则作为主规则,创建与所述主规则关联的NAT子规则,所述子规则为:
源(IP地址2:X)→目的(NATIP:NAT端口)
其中,所述X用于标识对来自所述目的VTEP的任意VXLAN报文中的源端口值不进行匹配。
16.根据权利要求14所述的VXLAN报文穿越NAT设备的系统,其特征在于,
报文处理模块,还用于若判断第一VXLAN报文中的目的端口号为4789且通过所述第一VXLAN报文获知所述源VTEP不确定目的VTEP的VXLAN端口实际绑定的源端口号而默认其为公知的端口号4789时,提取第一VXLAN报文头内携带的端口校验信息,若判断出所述端口校验信息正确,则将所述新建NAT规则作为主规则,创建与所述主规则关联的NAT子规则,所述子规则为:
源(IP地址2:X)→目的(NATIP:NAT端口)
其中,所述X用于标识对来自所述目的VTEP的任意VXLAN报文中的源端口值不进行匹配。
17.根据权利要求15或16所述的VXLAN报文穿越NAT设备的系统,其特征在于,
报文处理模块,用于通过所述第一VXLAN报文获知所述源VTEP不确定目的VTEP的VXLAN端口实际绑定的源端口号,包括:
读取所述第一VXLAN报文头部预留字段的指定标志位,若所述指定标志位为约定数值,则说明所述源VTEP不确定目的VTEP的VXLAN端口实际绑定的源端口号。
18.根据权利要求15或16所述的VXLAN报文穿越NAT设备的系统,其特征在于,
所述报文处理模块,用于确定所述第二VXLAN报文与所述NAT规则相匹配后,按照所述NAT规则对所述第二VXLAN报文的目的互联网协议IP地址和目的端口号进行私网转换,包括:
如果第二VXLAN报文的参数信息符合所述NAT规则中对应描述的参数信息,则匹配NAT规则成功,并将第二VXLAN报文中的目的IP地址替换为匹配成功的NAT规则中具体对应转换关系的私网IP地址,目的端口号替换为匹配成功的NAT规则中具有对应转换关系的私网端口号。
19.根据权利要求15或16所述的VXLAN报文穿越NAT设备的系统,其特征在于,
所述报文处理模块,还用于若对所述第二VXLAN报文匹配NAT规则失败,且该NAT规则作为主规则关联有NAT子规则,则继续匹配该NAT子规则,若匹配所述NAT子规则成功,则更改所述NAT子规则关联的主规则,将所述主规则中的端口2的值更改为所述第二VXLAN报文中的源端口号,将第二VXLAN报文中的目的IP地址替换为更改后的主规则中具体对应转换关系的私网IP地址,目的端口号替换为更改后的主规则中具体对应转换关系的私网端口号。
20.根据权利要求19所述的VXLAN报文穿越NAT设备的系统,其特征在于,
所述报文处理模块,还用于删除匹配成功的NAT子规则。
21.一种计算机可读存储介质,其特征在于,所述介质存储有计算机可执行指令,所述计算机可执行指令被处理器执行时实现如权利要求1至10中任一项所述的可扩展虚拟局域网络VXLAN报文穿越网络地址转换NAT设备的方法的步骤。
22.一种实现可扩展虚拟局域网络VXLAN报文穿越的网络地址转换NAT设备,其特征在于,包括:
存储器,用于存储计算机可执行指令;
处理器,用于执行所述计算机可执行指令,以实现权利要求1至10中任一项所述的可扩展虚拟局域网络VXLAN报文穿越网络地址转换NAT设备的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811641307.4A CN109547316A (zh) | 2018-12-29 | 2018-12-29 | Vxlan报文穿越nat设备的方法、系统、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811641307.4A CN109547316A (zh) | 2018-12-29 | 2018-12-29 | Vxlan报文穿越nat设备的方法、系统、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109547316A true CN109547316A (zh) | 2019-03-29 |
Family
ID=65831459
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811641307.4A Pending CN109547316A (zh) | 2018-12-29 | 2018-12-29 | Vxlan报文穿越nat设备的方法、系统、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109547316A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111147520A (zh) * | 2019-12-31 | 2020-05-12 | 奇安信科技集团股份有限公司 | 由防火墙执行的信息处理方法和装置 |
CN111865806A (zh) * | 2019-04-29 | 2020-10-30 | 瞻博网络公司 | 基于前缀的胖流 |
CN112040030A (zh) * | 2020-11-04 | 2020-12-04 | 武汉绿色网络信息服务有限责任公司 | 报文传输方法、装置、计算机设备及存储介质 |
CN112242943A (zh) * | 2020-11-26 | 2021-01-19 | 迈普通信技术股份有限公司 | IPSec隧道建立方法及装置、分支设备、中心端设备 |
CN112383425A (zh) * | 2020-11-11 | 2021-02-19 | 迈普通信技术股份有限公司 | 一种基于vxlan网络的终端发现系统及方法 |
CN112887188A (zh) * | 2021-02-23 | 2021-06-01 | 新华三信息安全技术有限公司 | 一种报文转发方法及设备 |
CN113067911A (zh) * | 2020-01-02 | 2021-07-02 | 中国移动通信有限公司研究院 | 一种nat穿越方法、装置、电子设备和存储介质 |
CN114374666A (zh) * | 2021-12-30 | 2022-04-19 | 中国电信股份有限公司 | 一种报文转发方法、装置、电子设备及存储介质 |
CN115348207A (zh) * | 2022-07-21 | 2022-11-15 | 佛山职业技术学院 | 一种基于udp的主备nat设备流表同步方法及系统 |
CN114567616B (zh) * | 2022-02-28 | 2023-10-31 | 天翼安全科技有限公司 | 一种VxLAN NAT穿越的方法、系统和设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015006135A1 (en) * | 2013-07-10 | 2015-01-15 | Cisco Technology, Inc. | Support for virtual extensible local area network segments across multiple data center sites |
CN106330649A (zh) * | 2015-06-18 | 2017-01-11 | 杭州华三通信技术有限公司 | 一种跨软件定义网络的数据报文转发方法和装置 |
CN108667945A (zh) * | 2017-03-30 | 2018-10-16 | 华为技术有限公司 | 一种报文传输方法及装置 |
CN109962989A (zh) * | 2017-12-25 | 2019-07-02 | 中国电信股份有限公司 | 穿越网络地址网关的方法、装置和系统 |
-
2018
- 2018-12-29 CN CN201811641307.4A patent/CN109547316A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015006135A1 (en) * | 2013-07-10 | 2015-01-15 | Cisco Technology, Inc. | Support for virtual extensible local area network segments across multiple data center sites |
EP3020164B1 (en) * | 2013-07-10 | 2017-09-06 | Cisco Technology, Inc. | Support for virtual extensible local area network segments across multiple data center sites |
CN106330649A (zh) * | 2015-06-18 | 2017-01-11 | 杭州华三通信技术有限公司 | 一种跨软件定义网络的数据报文转发方法和装置 |
EP3313025A2 (en) * | 2015-06-18 | 2018-04-25 | New H3C Technologies Co., Ltd. | Data packet forwarding |
CN108667945A (zh) * | 2017-03-30 | 2018-10-16 | 华为技术有限公司 | 一种报文传输方法及装置 |
CN109962989A (zh) * | 2017-12-25 | 2019-07-02 | 中国电信股份有限公司 | 穿越网络地址网关的方法、装置和系统 |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111865806A (zh) * | 2019-04-29 | 2020-10-30 | 瞻博网络公司 | 基于前缀的胖流 |
CN111147520B (zh) * | 2019-12-31 | 2022-02-25 | 奇安信科技集团股份有限公司 | 由防火墙执行的信息处理方法和装置 |
CN111147520A (zh) * | 2019-12-31 | 2020-05-12 | 奇安信科技集团股份有限公司 | 由防火墙执行的信息处理方法和装置 |
CN113067911A (zh) * | 2020-01-02 | 2021-07-02 | 中国移动通信有限公司研究院 | 一种nat穿越方法、装置、电子设备和存储介质 |
CN113067911B (zh) * | 2020-01-02 | 2023-06-30 | 中国移动通信有限公司研究院 | 一种nat穿越方法、装置、电子设备和存储介质 |
CN112040030B (zh) * | 2020-11-04 | 2021-02-02 | 武汉绿色网络信息服务有限责任公司 | 报文传输方法、装置、计算机设备及存储介质 |
CN112040030A (zh) * | 2020-11-04 | 2020-12-04 | 武汉绿色网络信息服务有限责任公司 | 报文传输方法、装置、计算机设备及存储介质 |
CN112383425A (zh) * | 2020-11-11 | 2021-02-19 | 迈普通信技术股份有限公司 | 一种基于vxlan网络的终端发现系统及方法 |
CN112383425B (zh) * | 2020-11-11 | 2022-07-08 | 迈普通信技术股份有限公司 | 一种基于vxlan网络的终端发现系统及方法 |
CN112242943A (zh) * | 2020-11-26 | 2021-01-19 | 迈普通信技术股份有限公司 | IPSec隧道建立方法及装置、分支设备、中心端设备 |
CN112242943B (zh) * | 2020-11-26 | 2022-08-16 | 迈普通信技术股份有限公司 | IPSec隧道建立方法及装置、分支设备、中心端设备 |
CN112887188A (zh) * | 2021-02-23 | 2021-06-01 | 新华三信息安全技术有限公司 | 一种报文转发方法及设备 |
CN112887188B (zh) * | 2021-02-23 | 2022-04-01 | 新华三信息安全技术有限公司 | 一种报文转发方法及设备 |
CN114374666A (zh) * | 2021-12-30 | 2022-04-19 | 中国电信股份有限公司 | 一种报文转发方法、装置、电子设备及存储介质 |
CN114567616B (zh) * | 2022-02-28 | 2023-10-31 | 天翼安全科技有限公司 | 一种VxLAN NAT穿越的方法、系统和设备 |
CN115348207A (zh) * | 2022-07-21 | 2022-11-15 | 佛山职业技术学院 | 一种基于udp的主备nat设备流表同步方法及系统 |
CN115348207B (zh) * | 2022-07-21 | 2023-08-15 | 佛山职业技术学院 | 一种基于udp的主备nat设备流表同步方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109547316A (zh) | Vxlan报文穿越nat设备的方法、系统、存储介质 | |
CN108259291B (zh) | Vxlan报文处理方法、设备及系统 | |
CN112787931B (zh) | 报文传输方法、代理节点及存储介质 | |
CN112787921B (zh) | 报文传输方法、代理节点及存储介质 | |
CN110999265B (zh) | 管理云计算服务端点和虚拟机之间的网络连接性 | |
CN105827495B (zh) | Vxlan网关的报文转发方法和设备 | |
CN108111523A (zh) | 数据传输方法和装置 | |
CN104144156A (zh) | 报文处理方法和装置 | |
CN105337881A (zh) | 一种数据报文的处理方法、业务节点以及引流点 | |
US20160352852A1 (en) | Communication system, communication method, and relay device | |
CN107005470A (zh) | 用于创建数据分组的子流的方法 | |
CN105634977A (zh) | 发现路径最大传输单元的方法和装置 | |
WO2021088629A1 (zh) | DetNet数据包处理方法及装置 | |
CN115314319B (zh) | 一种网络资产识别方法、装置、电子设备及存储介质 | |
CN105812221B (zh) | 虚拟可扩展本地区域网络中数据传输的设备和方法 | |
CN105939216B (zh) | 报文传输的方法及装置 | |
US20160080532A1 (en) | Method for generating input parameter and device | |
CN112187584B (zh) | 路径故障探测方法、系统、服务器及存储介质 | |
US20240338448A1 (en) | Apparatus and method for processing data units | |
CN115955517A (zh) | 一种报文处理方法、系统 | |
CN112565044B (zh) | 报文处理方法及装置 | |
CN109347734A (zh) | 一种报文发送方法、装置、网络设备和计算机可读介质 | |
CN105471839A (zh) | 一种判断路由器数据是否被窜改的方法 | |
CN114448881A (zh) | 一种跨sr mpls与srv6域互操作通信的方法和系统 | |
CN105721313B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190329 |