CN113259497A - 传输报文的方法、装置、存储介质和系统 - Google Patents

传输报文的方法、装置、存储介质和系统 Download PDF

Info

Publication number
CN113259497A
CN113259497A CN202010082180.8A CN202010082180A CN113259497A CN 113259497 A CN113259497 A CN 113259497A CN 202010082180 A CN202010082180 A CN 202010082180A CN 113259497 A CN113259497 A CN 113259497A
Authority
CN
China
Prior art keywords
tunnel
network device
message
port number
packet
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
Application number
CN202010082180.8A
Other languages
English (en)
Inventor
陆达
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202010082180.8A priority Critical patent/CN113259497A/zh
Publication of CN113259497A publication Critical patent/CN113259497A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2592Translation of Internet protocol [IP] addresses using tunnelling or encapsulation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2517Translation of Internet protocol [IP] addresses using port numbers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Abstract

本申请提供了一种传输报文的方法、装置、存储介质和系统,第一网络设备通过获得隧道身份指示标识,并根据该隧道身份指示标识与第二网络设备建立通信隧道,在建立的通信隧道上向第二网络设备发送第一报文,其中第一报文包括隧道身份指示标识。第一网络设备根据隧道身份指示信息在对应的隧道上传输报文,从而可以实现多种隧道点到多点的NAT穿越。

Description

传输报文的方法、装置、存储介质和系统
技术领域
本申请涉及通信领域,具体涉及一种传输报文的方法、装置、存储介质和系统。
背景技术
当部署在网络地址转换(network address translation,NAT)网关设备两侧的网络设备之间需要通过因特网协议(internet protocol,IP)隧道通信时,NAT网关常常会对通过其的报文进行地址转换,改变报文的源IP地址。如,网络设备1和网络设备2间存在多个隧道进行通信,或网络设备1和网络设备2分别通过不同的IP隧道与网络设备3通信时,NAT网关会将经过其的报文的源IP地址转换成相同的IP地址,导致网络设备3看到的隧道地址信息相同,无法区分不同的IP隧道,因此这种点到多点的NAT穿越是无法实现的。
发明内容
本申请提供一种传输报文的方法、装置、存储介质和系统,能够使网络设备实现多种隧道的点到多点的NAT穿越。
第一方面,提供了一种传输报文的方法,包括:第一网络设备获得隧道身份指示标识,隧道身份指示标识包括第二网络设备对应的端口号;第一网络设备根据隧道身份指示标识与第二网络设备建立通信隧道;第一网络设备通过通信隧道向第二网络设备发送第一报文,第一报文包括隧道身份指示标识。
上述技术方案中,第一网络设备通过获取隧道身份指示信息确定需要在哪条隧道上与第二网络设备建立通信隧道,在建立通信隧道后在对应的隧道上向第二网络设备传输报文,从而可以实现多种隧道点到多点的NAT穿越。
具体的,如果第一网络设备在发送给第二网络设备第一报文时,第一报文中只封装IP头,由于第一报文中封装的IP头的目的地址并不是第二网络设备的IP地址,而是中间设备NAT网关的IP地址,第一网络设备如果需要向多个第二终端设备发送报文,那么NAT网关在收到第一网络设备的多个第一报文时,并不知道应该在哪些隧道上发送多个第一报文,而本申请上述技术方案的第一网络设备在报文中增加隧道身份指示标识,可以使NAT网关在发送第一报文的时候根据隧道身份指示信息确定在相应的隧道上向多个第二网络设备发送报文,实现多种隧道的NAT穿越。
结合第一方面,在第一方面的某些实现方式中,第二网络设备对应的端口号为第二网络设备经网络地址转换NAT网关转换后的端口号。
上述技术方案中,第二网络设备经网络地址转换NAT网关转换后的端口号与隧道一一对应,根据转换后的端口号就可以唯一确定一条的隧道,第一网络设备通过获取第二网络设备经网络地址转换NAT网关转换后的端口号,就可以确定需要在哪条隧道上与第二网络设备建立通信隧道,在建立通信隧道后在对应的隧道上向第二网络设备传输报文,从而可以实现多种隧道点到多点的NAT穿越。
结合第一方面,在第一方面的某些实现方式中,第一报文包括第一用户数据报协议UDP报文头,隧道身份指示标识为第一UDP报文头中的目的端口号。
上述技术方案中,在现有隧道封装格式的基础上引入UDP头,将隧道身份指示信息封装在UDP头中,从而可以实现多种隧道点到多点的NAT穿越。
结合第一方面,在第一方面的某些实现方式中,第一UDP报文头中目的端口号经NAT网关转换后的端口号用于指示通信隧道的类型。
结合第一方面,在第一方面的某些实现方式中,第一报文还包括通信隧道的类型指示标识。
上述技术方案中,在第一报文中增加通信隧道的类型指示标识,当第二网络设备接收到第一报文时,可以根据报文中的隧道的类型指示标识确定传输第一报文的隧道类型。
结合第一方面,在第一方面的某些实现方式中,通信隧道标识携带在报文的安全参数索引SPI中。
上述技术方案中,在UDP头后面再封装一个SPI,使用SPI中未定义的值来指示传输第一报文的隧道的类型。
结合第一方面,在第一方面的某些实现方式中,通信隧道为IP通信隧道。
第二方面,提供了一种传输报文的方法,包括:第二网络设备根据通信隧道的类型,确定隧道类型指示信息,隧道类型指示信息用于指示通信隧道的类型;第二网络设备通过通信隧道向NAT网关发送第二报文,第二报文携带隧道类型指示信息。
上述技术方案中,第二网络设备根据不同的通信隧道类型确定隧道类型指示信息,并将该隧道类型指示信息封装在第二报文中发送NAT网关,第一网络设备可以根据收到报文确定传输该报文的隧道的类型。
具体的,如果第二网络设备在发送给第一网络设备第二报文时,第二报文中只封装IP头,那么NAT网关在收到多个第二网络设备的多个第二报文时,会将多个第二报文中的源IP地址转换为相同的NAT网关的IP地址。例如网络设备1(第二网络设备一例)先向网络设备3(第一网络设备)发起通信,网络设备1封装的报文源IP地址在经过NAT设备后被转换成了网关NAT设备的IP地址,并建立NAT会话流表,反向的流量(即网络设备3给网络设备1发送报文)经过NAT网关转换后,再发给网络设备1;当网络设备2(第二网络设备另一例)再向网络设备3发起通信时,NAT网关建立会话时,由于转换后的IP地址信息一样,导致NAT建立反向会话冲突失败,因而网络设备2这条流无法进行NAT转换,报文发给网络设备3后,会因为反向地址是私网地址,查询不到路由被丢弃。即IP隧道穿越NAT无法支持多个私网设备地址经转换后IP地址相同的NAT穿越,即无法实现点到多点的NAT穿越。,在而本申请上述技术方案的第二网络设备在第二报文中增加隧道类型指示信息,可以使NAT网关在发送第二报文的时候根据隧道类型指示信息确定在相应的隧道上向第二网络设备发送报文,实现多种隧道的NAT穿越。
结合第二方面,在第二方面的某些实现方式中,第二报文包括第二UDP报文头,UDP报文头包括源端口号和目的端口,隧道类型指示信息为第二UDP报文头中的目的端口号。
上述技术方案中,在现有隧道封装格式的基础上引入UDP头,将隧道类型指示信息封装在UDP头中,该通信隧道的类型指示标识用来指示传输第二报文的隧道的类型。
结合第二方面,在第二方面的某些实现方式中,第二报文包括通信隧道的类型指示标识。
上述技术方案中,在第二报文中增加通信隧道的类型指示标识,该通信隧道的类型指示标识用来指示传输第二报文的隧道的类型。
结合第二方面,在第二方面的某些实现方式中,通信隧道标识携带在报文的安全参数索引中。
上述技术方案中,在UDP头后面再封装一个SPI,使用SPI中未定义的值来指示传输第二报文的隧道的类型。
结合第二方面,在第二方面的某些实现方式中,通信隧道为IP通信隧道。
第三方面,本申请提供一种通信装置,通信装置具有实现第一方面以及第一方面中任一种可能的实现方式中的方法的功能。功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的单元。
第四方面,本申请提供一种通信装置,通信装置具有实现第二方面以及第二方面中任一种可能实现方式中的方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的单元。
第五方面,本申请提供一种通信装置,包括至少一个处理器和通信接口。该至少一个处理器,用于执行计算机程序或指令,以使得该通信装置可以实现上述第一方面以及第一方面中任一种可能实现方式中的通信方法。
可选地,该通信装置还包括至少一个存储器,该至少一个存储器与该至少一个处理器耦合,该计算机程序或指令存储在该至少一个存储器中。
在一种实现方式中,该通信装置为第一网络设备。当该通信装置为第一网络设备时,通信接口可以是收发器,或,输入/输出接口。
在另一种实现方式中,该通信装置为芯片或芯片系统。当该通信装置为芯片或芯片系统时,通信接口可以是该芯片或芯片系统上的输入/输出接口、接口电路、输出电路、输入电路、管脚或相关电路等。处理器也可以体现为处理电路或逻辑电路。
在另一种实现方式中,该通信装置为配置于第一网络设备中的芯片或芯片系统。
可选地,收发器可以为收发电路。可选地,输入/输出接口可以为输入/输出电路。
第六方面,本申请提供一种通信装置,包括至少一个处理器和通信接口。该至少一个处理器,用于执行计算机程序或指令,以使得该通信装置可以实现上述第二方面以及第二方面中任一种可能实现方式中的通信方法。
可选地,该通信装置还包括至少一个存储器,该至少一个存储器与该至少一个处理器耦合,计算机程序或指令存储在该至少一个存储器中。
在一种实现方式中,该通信装置为第二网络设备。当该通信装置为第二网络设备时,所述通信接口可以是收发器,或,输入/输出接口。
在另一种实现方式中,该通信装置为芯片或芯片系统。当该通信装置为芯片或芯片系统时,所述通信接口可以是该芯片或芯片系统上的输入/输出接口、接口电路、输出电路、输入电路、管脚或相关电路等。所述处理器也可以体现为处理电路或逻辑电路。
在另一种实现方式中,该通信装置为配置于第二网络设备中的芯片或芯片系统。
可选地,所述收发器可以为收发电路。可选地,所述输入/输出接口可以为输入/输出电路。
第七方面,提供了一种计算机程序产品,该计算机程序产品包括:计算机程序(也可以称为代码,或指令),当该计算机程序被运行时,使得计算机执行上述第一方面以及第一方面中任一种可能实现方式中的方法。
第八方面,提供了一种计算机程序产品,该计算机程序产品包括:计算机程序(也可以称为代码,或指令),当该计算机程序被运行时,使得计算机执行上述第二方面以及第二方面中任一种可能实现方式中的方法。
第九方面,提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序(也可以称为代码,或指令)当其在计算机上运行时,使得计算机执行上述第一方面以及第一方面中任一种可能实现方式中的方法。
第十方面,提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序(也可以称为代码,或指令)当其在计算机上运行时,使得计算机执行上述第二方面以及第二方面中任一种可能实现方式中的方法。
第十一方面,提供了一种通信系统,包括如第三方面或第五方面所述的通信装置和第四方面或第六方面所述的通信装置以及网络地址转换NAT网关。
附图说明
图1是本申请实施例提供的一种网络架构的示意图。
图2为常见IP隧道协议报文封装示意图。
图3为IP隧道的点到点穿越NAT的场景的示意图。
图4为IP隧道的点到点穿越NAT的场景的示意图。
图5是本申请实施例提供的一种传输报文的方法的示意性交互图。
图6是本申请实施例提供的一种隧道点到多点穿越NAT实现的示意图。
图7是本申请实施例提供的多种隧道点到多点穿越NAT实现的示意图。
图8是基于不同端口实现多种隧道类型NAT穿越报文封装的示意性。
图9本申请实施例提供的另一种传输报文的方法的示意性交互图。
图10是本申请实施例提供的又一种传输报文的方法示意图。
图11为标准IPSEC NAT穿越封装格式的示意图。
图12为标准IPSEC NAT穿越封装中ESP报文头结构的示意性框图。
图13为基于SPI值实现的多隧道类型NAT穿越报文封装的示意图。
图14是本申请实施例提供的又一种传输报文的方法的示意性交互图。
图15为本申请提供的通信装置1000的示意性框图。
图16为本申请提供的通信装置10的示意性结构图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
图1是本申请实施例提供的一种网络架构的示意图。如图1所示,本申请实施例的通信系统可以包括多个网络设备,例如网络设备110、网络设备120、网络设备130等,网络设备110经过网络设备130与网络设备120通信。其中,网络设备110和120可以为可以是防火墙、路由器,以及具有三层处理能力的交换机,以及对应的软件实现的具有类似功能的网络设备。网络设备130可以为NAT网关,以及对应的软件实现的具有类似功能的网络设备。
本申请实施例在图1所示的网络架构下使用隧道技术进行通信。隧道技术是一种通过使用互联网络的基础设施在网络之间传递数据的技术。使用隧道传递的数据(或负载)可以是不同协议的数据帧或包。隧道协议将这些其他协议的数据帧或包重新封装在新的包中发送。新的包头提供了路由信息,从而使封装的负载数据能够通过互联网络传递。被封装的数据包在隧道的两个端点之间通过公共互联网络进行路由。被封装的数据包在公共互联网络上传递时所经过的逻辑路径称为隧道。一旦到达网络终点,数据将被解封装并转发到最终目的地。隧道技术是指包括数据封装、传输和解封装在内的全过程。
常见网际互连协议(internet protocol,IP)隧道协议有第二层隧道协议(layer2tunneling protocol,L2TP),互联网安全协议(internet protocol security,IPSEC),通用路由封装(generic routing encapsulation,GRE)协议,6over4(IPv6 over IPv4)协议等,各协议对应的封装格式如图2所示。这些隧道协议,如果想穿越NAT,需要依赖IPSEC,如L2TP需要依赖IPSEC实现穿越NAT。否则,穿越的时候由于只能通过IP地址信息转换,中间NAT设备必须配置静态NAT(NAT static)或NAT服务器(NAT server)的一对一的地址映射,不支持启动端口地址转换(port address translation,PAT)功能的NAT穿越,需要的IP地址数量较多,配置复杂,因而使用局限性较大。
图3为IP隧道的点到点穿越NAT的场景的示意图。
下面以IP隧道为GRE隧道为例进行说明,用户侧设备(customer premiseequipment,CPE)1位于私网中,CPE2位于公网中,CPE1和CPE2建立隧道和通信,私网出口部署NAT网关实现公私网址的转换。由于GRE隧道只封装源IP地址和目的IP地址信息,所以要求中间网络的NAT网关只能配置IP地址的一一映射,所以CPE1看到的隧道地址信息为(10.1.1.1,30.1.1.2),表示源地址为10.1.1.1,目的地址为30.1.1.2,在穿越NAT时,经NAT转换CPE2看到的隧道地址信息为(30.1.1.1,30.1.1.2),表示源地址为30.1.1.1,目的地址为30.1.1.2。
CPE1和CPE2之间的封装和解封装过程如下:
1)CPE1封装源地址为10.1.1.1,目的地址为30.1.1.2的报文,经CPE1发到NAT网关,经过NAT转换后,报文的源地址被替换成30.1.1.1后,按目的地址30.1.1.2路由转发到CPE2,CPE2根据解封装表信息进行解封装处理。
2)CPE2封装源地址为30.1.1.2,目的地址为30.1.1.1的报文,经CPE2发到NAT网关,经过NAT转换后,报文的源地址不变,目的地址30.1.1.1被替换成10.1.1.1后经过路由转发到CPE1,CPE1根据解封装表信息进行解封装处理。
图3中的私网侧只有一个CPE,可以实现点到点的IP隧道穿越NAT,但在如图4所示的场景下,当私网侧存在多个CPE时,例如以两个CPE为例,私网用户设备CPE1和CPE2分别和公网设备CPE3建立隧道一和隧道二进行通信,私网出口部署NAT网关实现公私网地址转换。例如CPE1先发起通信,CPE1封装的报文源IP地址在经过NAT设备后被转换成了网关NAT设备的IP地址30.1.1.1,并建立NAT会话流表,反向的流量(即CPE3给CPE1发送报文)经过NAT网关转换后,再发给CPE1,当CPE2再发起通信时,NAT网关建立会话时,由于转换后的信息一样,导致NAT建立反向会话冲突失败,因而建立CPE2这条流无法进行NAT转换,报文发给CPE3后,会因为反向地址是私网地址,查询不到路由被丢弃。即IP隧道穿越NAT无法支持多个私网设备地址经转换后IP地址相同的NAT穿越,即无法实现点到多点的NAT穿越,所以在实际中图4所示的这种场景是无法实现的。
有鉴于此,本申请实施例对IP隧道穿越NAT的方法进行了优化,以便能够在图4所示的网络架构下实现点对多点的NAT穿越。
为了更好地理解本申请实施例,下面先介绍本申请实施例中涉及到的概念。
NAT的用户数据报协议(user datagram protocol,UDP)的简单穿越(simpletraversal of UDP over NATs,STUN):一种客户机-服务器的网络协议。该协议定义了一些消息格式,大体上分为请求/应答(request/response)。这个协议主要作用就是可以用来在两个处于NAT路由器之后的主机之间建立UDP通信。它允许位于NAT后的客户端找出自己的公网地址,确定自己位于的NAT是哪种类型,以及NAT为这个客户端的本地端口所绑定的对外端口。
STUN主要有三个功能,分别是检测是否位于NAT后面,检测NAT的类型,获取经过NAT转换后的地址和端口。应用时,在内网安装一个STUN客户端(client),在公网上安装一个STUN服务器(server),client向server发送request,server发送response给client。
检测是否位于NAT后面的流程,当server端收到client端发送的UDP包以后,可以获取到私网的client位于公网侧经过转换后的地址和端口信息,而server端将接收到该包的地址和端口信息利用UDP再回传给client端,client端把server端发过来的地址和端口信息与本机的IP地址和端口进行比较,如果不同,说明在NAT后面,如果相同就说明client位于NAT前面,即client也是位于公网中。
可选的,本申请实施例中的网络设备在进行通信之前,可以通过与STUN交互确定是否处于NAT网关的两侧,同时发送侧网络设备可以获取经过NAT转换后的地址和端口。
可选的,本申请实施例中的网络设备在进行通信之前,发送侧网络设备可以通过配置的方式获得取经过NAT转换后的地址和端口。
下面将结合附图详细说明本申请提供的各个实施例。
图5是本申请实施例提供的一种传输报文的方法的示意性交互图。
S510,第二网络设备根据通信隧道的类型,确定隧道类型指示信息。
下面结合图6所示的第二网络设备为CPE1或CPE2,第一网络设备为CPE3为例进行说明。第二网络设备出口部署NAT网关实现网址的转换。CPE1与CPE3通过隧道一进行通信,CPE2与CPE3通过隧道二进行通信,例如隧道一和隧道二的隧道类型均为GRE隧道。
当CPE1通过NAT网关向CPE3发送报文时,CPE1使用隧道一对应的协议封装报文A,CPE1除了在IP头中封装源IP地址和目的IP地址信息,还在报文A中封装用户数据报协议(user datagram protocol,UDP)头,UDP头包括源端口号和目的端口号,其中源端口号为CPE1的端口号,目的端口号为CPE3的端口号,即报文A中封装IP头和UDP头中对应的信息四元组为(源IP地址,目的IP地址,源端口号,目的端口号)。
同理,当CPE2通过上述相同的NAT网关向CPE3发送报文时,CPE2使用隧道二对应的协议封装报文B,CPE2除了在IP头中封装源IP地址和目的IP地址信息,还在报文B中封装UDP头,UDP头中包括源端口号和目的端口号,其中源端口号为CPE2的端口号,目的端口号为CPE3的端口号,即报文B中封装IP头和UDP头中对应的信息四元组为(源IP地址,目的IP地址,源端口号,目的端口号)。
例如对于一种隧道类型业务来说,同一个隧道两端的网络设备可以使用同一端口号5000的UDP报文对NAT网关进行穿越打洞,如图6所示,那么CPE1封装的报文A的四元组为(10.1.1.1,30.1.1.2,5000,5000),CPE2封装的报文B的四元组为(20.1.1.1,30.1.1.2,5000,5000),其中10.1.1.1为CPE1的IP地址,20.1.1.1为CPE2的IP地址,30.1.1.2为CPE3的IP地址。因为报文A和报文B中的目的端口号经过NAT网关后不会被转换,所以目的端口号5000除了指示CPE3的端口号,还可以用来指示隧道一和隧道二的隧道类型,即目的端口号5000可以用来表示隧道一和隧道二的隧道类型为GRE隧道。
S520,第二网络设备向NAT网关发第二报文。
对应的,NAT网关接收第二网络设备发送的报文。
例如,CPE1在隧道一上向NAT网关发送的报文A(第二报文的一例),CPE2在隧道二上向NAT网关发送生成的报文B(第二报文的一另例)。
S530,NAT网关转换第二报文。
NAT网关将接收到的第二报文进行源IP和源端口转换,生成转换后的报文。
例如,如图6所示,NAT网关将接收到的CPE1的报文A中的四元组(10.1.1.1,30.1.1.2,5000,5000)中的源IP地址10.1.1.1和源端口号5000进行转换,得到的新的四元组(30.1.1.1,30.1.1.2,45001,5000)对应的报文C。同理,NAT网关将接收到的CPE2的报文B中的四元组(20.1.1.1,30.1.1.2,5000,5000)中的源IP地址20.1.1.1和源端口号5000进行转换,得到的新的四元组(30.1.1.1,30.1.1.2,45002,5000)对应的报文D。CPE1和CPE2发送的源报文A和B中的源IP地址转换后都变成了30.1.1.1,但源端口号转换后却不同,CPE1的报文A的源端口号被转换为45001,CPE2的报文B的源端口号被转换为45002。
S540,NAT网关向第一网络设备发送转换后的报文。
对应的,第二网络设备接收NAT网关发送的转换后的报文。
例如,NAT网关在在隧道一上向CPE3发送报文C,CPE3收到报文C后看到的隧道为(30.1.1.1,30.1.1.2,45001,5000),CPE3从报文C中获取传输该报文的隧道身份指示标识(45001),即根据报文C中的源端口号45001确定报文来自隧道一,同时根据报文中的目的端口5000确定隧道一的类型为GRE隧道;
NAT网关在在隧道二上向CPE3发送报文D,CPE3收到报文后看到的隧道为(30.1.1.1,30.1.1.2,45002,5000),CPE3从报文D中获取传输该报文的隧道身份指示标识(45002),即根据报文D中的源端口号45002确定报文来自隧道二,同时根据报文中的目的端口5000确定隧道二的类型为GRE隧道。
对应的,IP隧道解封装时,根据四元组定义解封装表,CPE1的封装表(10.1.1.1,30.1.1.2,5000,5000)对应的CPE3的解封装表为(30.1.1.2,10.1.1.1,5000,5000),CPE3根据解封装表信息进行解封装处理。
应理解,上述隧道一和隧道二为相同的隧道类型,所以可以使用相同的端口号5000进行NAT穿越,如果隧道一和隧道二是不同类型的隧道,例如隧道一为GRE隧道,隧道二为6over4隧道,对于多种类型的隧道建立时,隧道两端的网络设备可以使用不同的端口号进行穿越打洞,如图7所示,例如CPE1使用端口号5000封装报文A1,CPE1的报文A1中的四元组为(10.1.1.1,30.1.1.2,5000,5000),CPE2使用目的端口6000封装报文B1,CPE2的报文B1中的四元组为(10.1.1.1,30.1.1.2,6000,6000),因为NAT网关不会转换报文A1和报文B1中的目的端口号,这样CPE3收到转换后的报文C1的四元组(30.1.1.1,30.1.1.2,45001,5000)和报文D1的四元组(30.1.1.1,30.1.1.2,45002,6000),即可根据转换后报文的UDP头中的目的端口号确认隧道类型,例如根据端口号5000确定隧道一是GRE隧道,根据端口号6000确定隧道二是6over4隧道。
图8是基于不同端口实现多种隧道类型NAT穿越报文封装的示意性。以图7所示的NAT穿越为例,CPE1使用端口号5000实现GRE隧道的NAT穿越,CPE2使用端口号6000实现6over4隧道NAT穿越。其中,GRE NAT穿越封装的报文的UDP头中包括源端口号5000和目的端口号5000,6over4 NAT穿越封装的报文的UDP头中包括源端口号6000和目的端口号6000,实际使用中不同的端口号可以在CPE上进行管理分配。
上述技术方案中,在IP隧道协议的封装报文中增加UDP头,UDP头中包括源端口号和目的端口号,第二网络设备封装报文中的UDP头中的源端口号在NAT网关一一对应一个转换后的端口号,第一网络设备可以根据源端口号转换后的端口号确定收到的报文是哪个隧道发送的,同时还可以根据目的端口号确定发送的报文的隧道类型。
图9是本申请实施例提供的另一种传输报文的方法的示意性交互图。
图5所示的实施例描述了第二网络设备穿越NAT网关向第一网络设备发送报文的具体方法,图9中的实施例将在图5的基础上具体描述第一网络设备在收到第二网络设备发送的报文后,如何穿越NAT网关向第二网络设备回复报文的方法。
S910,第一网络设备获得隧道身份指示标识。
关于CPE1、CPE2和CPE3及隧道信息这里不再赘述,参考图5实施例中的描述。
CPE3(即第一网络设备的一例)从报文C中获取传输该报文的隧道身份指示标识(45001),即根据报文C中的源端口号45001确定报文来自隧道一,同时根据报文中的目的端口5000确定隧道一的类型为GRE隧道;
CPE3从报文D中获取传输该报文的隧道身份指示标识(45002),即根据报文D中的源端口号45002确定报文来自隧道二,同时根据报文中的目的端口5000确定隧道二的类型为GRE隧道。
应理解,如果第二网络设备没有发送报文给第一网络设备,这个时候第一网络设备无法从收到穿越报文中获取隧道身份指示标识(例如,报文中C中的45001,报文中D中的45002),但第一网络设备还需要主动发送报文给第二网络设备,那么第一网络设备可以通过STUN获得NAT穿越后的端口号,该端口号信息可以作为隧道身份指示标识,该隧道身份指示标识可通过第三方设备通知到第一网络设备,或者第一网络设备可以通过配置的方式获得隧道身份指示标识。
S920,第一网络设备根据所述隧道身份指示标识与第二网络设备建立通信隧道。
CPE3根据报文C中源端口号45001与CPE1(即第二网络设备的一例)在隧道一上建立通信,CPE3根据报文D中源端口号45002与CPE2(即第二网络设备的另一例)在隧道二上建立通信。
S930,第一网络设备向第二网络设备发送第一报文。
CPE3在收到CPE1发送的报文C后需要向CPE1回复报文,CPE3同样按照四元组封装IP头和UDP头为(30.1.1.2,30.1.1.1,5000,45001)的报文E(第一报文的一例),CPE3在隧道一上向NAT网关发送报文E,经过NAT网关转换后,报文E中的目的地址30.1.1.1被替换成10.1.1.1,目的端口45001被替换为5000后,转换后的报文F的四元组为(30.1.1.1,10.1.1.1,5000,5000),NAT网关将报文F按目的地址10.1.1.1,目的端口5000路由转发到CPE1。
同理,CPE3在收到CPE2发送的报文D后需要向CPE2回复报文,CPE3同样按照四元组封装IP头和UDP头为(30.1.1.2,30.1.1.1,5000,45002)的报文G(第一报文的另一例),CPE3在隧道二上向NAT网关发送报文G,经过NAT转换后,报文G中的目的地址30.1.1.1被替换成20.1.1.1,目的端口45002被替换为5000后,得到转换后的报文H的四元组为(30.1.1.1,20.1.1.1,5000,5000),NAT网关将报文H按目的地址20.1.1.1,目的端口5000路由转发到CPE2。
可选的,报文F中的目的端口号可以用来指示第一隧道的类型,报文H中的目的端口号可以用来指示第二隧道的类型。
上述技术方案中,第一网络设备获得第二网络设备在NAT网关上对应的端口号,根据该端口号与第二网络设备建立通信隧道,第一网络设备在发送的封装报文中增加UDP头,UDP头中包括源端口号和目的端口号,其中目的端口号为第二网络设备在NAT网关上对应的端口号,这样,第一网络设备可以在对应的隧道上将封装的报文发给NAT网关后,NAT网关可以根据报文中的目的端口号确定将该报文发送给第二网络设备,同时还可以根据NAT转换后的目的端口号确定发送的报文的隧道类型。
由上可知,当同时存在多种隧道类型时,上述方案中需要通过不同的目的端口号来区分不同的隧道类型,这样会增加对端口号的管理任务。
有鉴于此,本申请实施例提供一种方法,在存在多种隧道类型且隧道两端的网络设备只使用一个端口号进行NAT穿越打洞的情况下,第一网络设备也可以根据接收到的报文中的信息区分不同的隧道类型,以减少对端口号的管理任务。
图10是本申请实施例提供的又一种传输报文的方法示意图。
在图5描述的技术方案的基础上,在非IPSEC隧道的NAT穿越报文UDP头后面再封装一个通信隧道的类型指示标识,例如,该通信隧道的类型指示标识可以携带在穿越报文的安全参数索引(security parameter index,SPI)中,这样,即使在使用一个端口号进行NAT打洞的情况下,CPE3也可以根据安全参数索引中的通信隧道的类型指示标识信息区分隧道类型。
图11为标准IPSEC NAT穿越封装格式的示意图,标准IPSEC的NAT穿越是通过封装安全载荷(encapsulating security payload,ESP)协议添加UDP头来实现,图12为标准IPSEC NAT穿越封装中ESP报文头结构的示意性框图,IPSEC的ESP报文头包括ESP头部,加密部分和ESP认证。其中,ESP头部的第一个四字节为SPI,标准里规定的SPI值取值范围是256-0xFFFFFFFF,SPI值0,1,2标准已经做了定义,3-255未做定义。图13为基于SPI值实现的多隧道类型NAT穿越报文封装的示意图,非IPSEC隧道的NAT穿越报文可以在图8所示的封装的基础上,在UDP头后面再封装IPSEC的ESP报文头中四个字节不同大小的SPI字段,使用SPI中未定义的值表示隧道的类型,例如GRE隧道和6over4隧道使用同一NAT穿越端口号5000,使用SPI=255表示隧道类型为GRE隧道,SPI=254表示隧道的类型为6over4隧道。
下面以第二网络设备分别为CPE1或CPE2,第一网络设备为CPE3为例进行说明。CPE1和CPE3在隧道一上通信,CPE2和CPE3在隧道二上通信,CPE1和CPE2出口部署NAT网关,且隧道一为GRE隧道,隧道二为6over4隧道,CPE3在两条隧道上都使用端口5000进行NAT打洞。
当第二网络设备为CPE1时,CPE1报文封装和传输过程如下:
CPE1按照四元组封装IP头和UDP头为(10.1.1.1,30.1.1.2,5000,5000)的报文A2,在UDP头后面再封装四个字节不同大小的SPI,使用SPI=255表示隧道一的类型为GRE隧道,经过NAT网关转换后,报文A2的源地址10.1.1.1被替换成30.1.1.1,源端口5000被替换为45001后,得到转换后的报文C2的四元组为(30.1.1.1,30.1.1.2,45001,5000),将报文C2按目的地址30.1.1.2,目的端口5000路由转发到CPE3,此时CPE3收到的报文C2为中IP头、UDP头和SPI为(30.1.1.1,30.1.1.2,45001,5000,255),CPE3根据报文C2中的源端口号45001确定传输报文的隧道信息,即根据源端口号45001确定报文C2来自隧道一,同时可以根据SPI=255确定隧道一的类型为GRE隧道。
当第二网络设备为CPE2时,CPE2报文封装和传输过程如下:
CPE2按照四元组封装IP头和UDP头为(20.1.1.1,30.1.1.2,5000,5000)的报文B2,在UDP头后面再封装四个字节不同大小的SPI,使用SPI=254表示隧道二的类型为6over4隧道,经过NAT网关转换后,报文B2的源地址20.1.1.1被替换成30.1.1.1,源端口5000被替换为45002后,得到转换后的报文D2的四元组为(30.1.1.1,30.1.1.2,45002,5000),将报文D2按目的地址30.1.1.2,目的端口5000路由转发到CPE3,此时CPE3收到的报文D2为中IP头、UDP头和SPI为(30.1.1.1,30.1.1.2,45002,5000,254),CPE3根据报文D2中的源端口号45002确定传输报文D2的隧道信息,即根据源端口号45002确定报文D2来自隧道二,同时可以根据SPI=255确定隧道二的类型为6over4隧道。
上述技术方案中,所有隧道使用端口号相同的UDP报文对NAT穿越打洞,同时在UDP报文后增加SPI字段,这样第一网络设备可以通过接收到的报文中的源端口号确定报文来自哪条隧道,同时还可以根据报文中的SPI字段的不同值确定传输该报文的隧道的类型,从而减少端口号的管理任务。
图14是本申请实施例提供的又一种传输报文的方法的示意性交互图。
图10中的实施例描述了第二网络设备穿越NAT网关向第一网络设备发送报文的具体方法,图14中的实施例将在图10的基础上具体描述第一网络设备在收到第二网络设备发送的报文后,如何穿越NAT网关向第二网络设备回复报文的方法。
S1410,第一网络设备获得隧道身份指示标识。
关于CPE1、CPE2和CPE3及隧道信息这里不再赘述,参考图10实施例中的描述。
CPE3(即第一网络设备的一例)从报文C2中获取传输该报文的隧道身份指示标识(45001),CPE3根据源端口号45001确定报文来自隧道一,同时根据报文中SPI=255确认隧道一的类型为GRE隧道;
CPE3从报文D2中获取传输该报文的隧道身份指示标识(45002),根据源端口号45002确定报文来自隧道二,同时根据报文中SPI=254确定隧道二的类型为6over4隧道。
应理解,如果第二网络设备没有发送报文给第一网络设备,这个时候第一网络设备无法从收到的穿越报文中获取隧道身份指示标识(例如,报文中C2中的45001,报文中D2中的45002),但第一网络设备还需要主动发送报文给第二网络设备时,那么第一网络设备可以通过STUN获得NAT穿越后的端口号,该端口号信息可以作为隧道身份指示标识,该隧道身份指示标识可通过第三方设备通知到第一网络设备,或者第一网络设备可以通过配置的方式获得隧道身份指示标识。
S1420,第一网络设备根据所述隧道身份指示标识与第二网络设备建立通信隧道。
CPE3根据报文C2中源端口号45001与CPE1(即第二网络设备的一例)在隧道一上建立通信,CPE3根据报文D2中源端口号45002与CPE2(即第二网络设备的另一例)在隧道二上建立通信。
S1430,第一网络设备确定UDP头中端口信息及SPI的值。
CPE3在收到CPE1发送的报文C2后需要向CPE1回复报文,CPE3同样按照四元组封装IP头和UDP头为(30.1.1.2,30.1.1.1,5000,45001)的报文E1,在UDP头后面再封装四个字节不同大小的SPI,例如使用SPI=255表示隧道一的类型为GRE隧道;
同理,CPE3在收到CPE2发送的报文D1后需要向CPE2回复报文,CPE3同样按照四元组封装IP头和UDP头为(30.1.1.2,30.1.1.1,5000,45002)的报文G1,在UDP头后面再封装四个字节不同大小的SPI,例如使用SPI=254表示隧道二的类型为6over4隧道。
S1440,第一网络设备向第二网络设备发送第一报文。
CPE3在隧道一上向NAT网关发送报文E1(第一报文的一例),经过NAT网关转换后,报文E1中的目的地址30.1.1.1被替换成10.1.1.1,目的端口45001被替换为5000后,转换后的报文F1的四元组和SPI为(30.1.1.1,10.1.1.1,5000,5000,255),NAT网关将报文F1按目的地址10.1.1.1,目的端口5000路由转发到CPE1,CPE1根据报文中SPI=255确认隧道一的类型为GRE隧道。
CPE3在隧道二上向NAT网关发送报文G1(第一报文的另一例),经过NAT转换后,报文G1中的目的地址30.1.1.1被替换成20.1.1.1,目的端口45002被替换为5000后,转换后的报文G1的四元组和SPI为(30.1.1.1,20.1.1.1,5000,5000,254),NAT网关将报文H1按目的地址20.1.1.1,目的端口5000路由转发到CPE2,CPE2同时根据报文中SPI=254确认隧道二的类型为6over4隧道。
上述技术方案中,第一网络设备可以通过获得隧道身份指示标识确定在哪条隧道上发送报文,同时所有隧道使用端口号相同的UDP报文对NAT穿越打洞,并且在UDP报文后增加SPI字段指示隧道类型,第二网络设备在接收到报文后可以根据报文中的SPI字段的不同值确定传输该报文的隧道的类型,从而减少端口号的管理任务。
本申请中描述的各个实施例可以为独立的方案,也可以根据内在逻辑进行组合,这些方案都落入本申请的保护范围中。
可以理解的是,上述各个方法实施例中,由网络设备实现的方法和操作,也可以由可用于网络设备的部件(例如芯片或者电路)实现。
下面介绍本申请提供的传输报文的装置。
参见图15,图15为本申请提供的通信装置1000的示意性框图。如图15所示,通信装置1000包括:处理单元1100和收发单元1200。
处理单元1100,用于获得隧道身份指示标识,隧道身份指示标识包括第二网络设备对应的端口号;处理单元1100,还用于根据隧道身份指示标识与第二网络设备建立通信隧道;收发单元1200,用于通过通信隧道向第二网络设备发送第一报文,第一报文包括隧道身份指示标识。
可选的,第二网络设备对应的端口号为第二网络设备经网络地址转换NAT网关转换后的端口号。
可选的,第一报文包括第一用户数据报协议UDP报文头,隧道身份指示标识为第一UDP报文头中的目的端口号。
可选的,第一UDP报文头中目的端口号经NAT网关转换后的端口号用于指示通信隧道的类型。
可选的,第一报文还包括通信隧道的类型指示标识。
可选的,通信隧道标识携带在报文的安全参数索引中。
可选的,通信隧道为IP通信隧道。
可选地,收发单元1200也可以由发送单元或者接收单元替代。例如,收发单元1200在执行发送的动作时,可以由发送单元替代。收发单元1200执行接收的动作时,可以由接收单元替代。
可选地,通信装置1000可以为可用于传输报文的第一网络设备,或者第一网络设备中可实现上述方法实施例中的第一网络设备的功能的器件、部件等。
例如,收发单元1200可以为收发器。收发器可以由接收器或发射器代替。例如,收发器在执行发送的动作时,可以由发送器替代。收发器执行接收的动作时,可以由接收器替代。处理单元1100可以为处理装置或处理器这里不作限定。
可选地,通信装置1000可以为安装在第一网络设备中的电路系统,例如,芯片或片上系统(system on chip,SoC)等。处理单元1100以及收发单元1200可以各自为电路系统的一个模块或者单元,也可以由一个模块或单元实现其全部功能。在这种实现方式中,收发单元1200可以为通信接口。例如,收发单元1200可以为输入输出接口或者输入输出电路。输入输出接口可以包括输入接口和输出接口。输入输出电路可以包括输入电路和输出电路。
其中,上述装置实施例中的处理装置的功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。
例如,处理装置可以包括一个或多个存储器以及一个或多个处理器,其中,一个或多个存储器用于存储计算机程序,一个或多个处理器读取并执行一个或多个存储器中存储的计算机程序,使得通信装置1000执行各方法实施例中由第一网络设备执行的操作和/或处理。
可选地,处理装置可以仅包括处理器,用于存储计算机程序的存储器位于处理装置之外。处理器通过电路/电线与存储器连接,以读取并执行存储器中存储的计算机程序。
可选地,收发单元1200可以为射频装置。
参见图16,图16为本申请提供的通信装置10的示意性结构图。如图16所示,通信装置10包括:一个或多个处理器11,一个或多个存储器12,以及一个或多个通信接口13。其中,处理器11用于控制通信接口13收发信号,存储器12用于存储计算机程序,处理器11用于从存储器12中调用并运行计算机程序,使得通信装置10执行本申请的各方法实施例中由第一网络设备执行的处理和/或操作。
例如,处理器11可以集成了图15中的处理单元1100的功能,通信接口13可以具有图15中所示的收发单元1200的功能。具体可以参见图15中的详细说明,这里不再赘述。
可选地,当通信装置10为第一网络设备时,处理器11可以为安装在第一网络设备中的基带装置,通信接口13可以为射频装置。
可选的,上述各装置实施例中的存储器与处理器可以是物理上相互独立的单元,或者,存储器也可以和处理器集成在一起。
此外,本申请还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机指令,当计算机指令在计算机上运行时,使得计算机执行本申请提供的传输报文的方法中由第一网络设备执行的操作和/或处理。
本申请还提供一种计算机程序产品,计算机程序产品包括计算机程序代码,当计算机程序代码在计算机上运行时,使得计算机执行本申请提供的传输报文的方法中由第一网络设备执行的操作和/或处理。
本申请还提供一种通信装置,包括处理器和接口电路,所述接口电路用于接收计算机代码或指令,并传输至所述处理器,所述处理器用于运行所述计算机代码或指令,以执行本申请提供的传输报文的方法中由第一网络设备执行的操作和/或处理。
本申请还提供一种芯片,所述芯片包括一个或多个处理器。所述一个或多个处理器用于执行存储器中存储的计算机程序,以执行任意一个方法实施例中由第一网络设备执行的操作和/或处理。其中,所述用于存储计算机程序的存储器独立于所述芯片之外而设置。
进一步地,所述芯片还可以包括一个或多个通信接口。所述一个或多个通信接口可以是输入/输出接口,输入/输出电路等。
进一步地,所述芯片还可以包括一个或多个所述存储器。
本申请还提供一种通信系统,包括本申请实施例中的第一网络设备、第二网络设备以及NAT网关。
本申请实施例中的处理器可以是集成电路芯片,具有处理信号的能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。处理器可以是通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。本申请实施例公开的方法的步骤可以直接体现为硬件编码处理器执行完成,或者用编码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasablePROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronousDRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambusRAM,DRRAM)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
在本说明书中使用的术语“单元”、“系统”等用于表示计算机相关的实体、硬件、固件、硬件和软件的组合、软件或执行中的软件。例如,部件可以是但不限于,在处理器上运行的进程、处理器、对象、可执行文件、执行线程、程序和/或计算机。通过图示,在计算设备上运行的应用和计算设备都可以是部件。一个或多个部件可驻留在进程和/或执行线程中。部件可位于一个计算机上和/或分布在两个或更多个计算机之间。此外,这些部件可从上面存储有各种数据结构的各种计算机可读介质执行。部件可根据具有一个或多个数据分组(例如,来自与本地系统、分布式系统和/或网络间的另一部件交互的二个部件的数据,例如,通过信号与其它系统交互的互联网)的信号通过本地和/或远程进程来通信。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (18)

1.一种传输报文的方法,其特征在于,包括:
第一网络设备获得隧道身份指示标识,所述隧道身份指示标识包括所述第二网络设备对应的端口号;
所述第一网络设备根据所述隧道身份指示标识与所述第二网络设备建立通信隧道;
所述第一网络设备通过所述通信隧道向所述第二网络设备发送第一报文,所述第一报文包括所述隧道身份指示标识。
2.根据权利要求1所述的方法,其特征在于,所述第二网络设备对应的端口号为所述第二网络设备经网络地址转换NAT网关转换后的端口号。
3.根据权利要求1或2所述的方法,其特征在于,所述第一报文包括第一用户数据报协议UDP报文头,所述隧道身份指示标识为所述第一UDP报文头中的目的端口号。
4.根据权利要求3所述的方法,其特征在于,所述第一UDP报文头中目的端口号经NAT网关转换后的端口号用于指示所述通信隧道的类型。
5.根据权利要求1至3任一项所述的方法,其特征在于,所述第一报文还包括所述通信隧道的类型指示标识。
6.根据权利要求5所述的方法,其特征在于,所述通信隧道标识携带在所述第一报文的安全参数索引中。
7.根据权利要求1至6任一项所述的方法,所述通信隧道为IP通信隧道。
8.一种传输报文的装置,其特征在于,包括:
处理单元,用于获得隧道身份指示标识,所述隧道身份指示标识包括所述第二网络设备对应的端口号;
所述处理单元,还用于根据所述隧道身份指示标识与所述第二网络设备建立通信隧道;
收发单元,用于通过所述通信隧道向所述第二网络设备发送第一报文,所述第一报文包括所述隧道身份指示标识。
9.根据权利要求8所述的装置,其特征在于,所述第二网络设备对应的端口号为所述第二网络设备经网络地址转换NAT网关转换后的端口号。
10.根据权利要求8或9所述的装置,其特征在于,所述第一报文包括第一用户数据报协议UDP报文头,所述隧道身份指示标识为所述第一UDP报文头中的目的端口号。
11.根据权利要求10所述的装置,其特征在于,所述第一UDP报文头中目的端口号经NAT网关转换后的端口号用于指示所述通信隧道的类型。
12.根据权利要求8至10任一项所述的装置,其特征在于,所述第一报文还包括所述通信隧道的类型指示标识。
13.根据权利要求12所述的装置,其特征在于,所述通信隧道标识携带在所述报文的安全参数索引SPI中。
14.根据权利要求8至13任一项所述的装置,其特征在于,所述通信隧道为IP通信隧道。
15.一种通信装置,其特征在于,包括至少一个处理器和通信接口,所述至少一个处理器,用于执行计算机程序或指令,以使得所述通信装置执行如权利要求1至7中任一项所述的方法。
16.根据权利要求15所述的通信装置,其特征在于,所述装置还包括至少一个存储器,所述至少一个存储器与所述至少一个处理器耦合,所述计算机程序或指令存储在所述至少一个存储器中。
17.一种计算机可读存储介质,用于存储计算机指令,当所述计算机指令被执行时,如权利要求1至7中任一项所述的方法被实现。
18.一种通信系统,其特征在于,包括如权利要求8至16中任一项所述的通信装置以及网络地址转换NAT网关。
CN202010082180.8A 2020-02-07 2020-02-07 传输报文的方法、装置、存储介质和系统 Pending CN113259497A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010082180.8A CN113259497A (zh) 2020-02-07 2020-02-07 传输报文的方法、装置、存储介质和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010082180.8A CN113259497A (zh) 2020-02-07 2020-02-07 传输报文的方法、装置、存储介质和系统

Publications (1)

Publication Number Publication Date
CN113259497A true CN113259497A (zh) 2021-08-13

Family

ID=77219457

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010082180.8A Pending CN113259497A (zh) 2020-02-07 2020-02-07 传输报文的方法、装置、存储介质和系统

Country Status (1)

Country Link
CN (1) CN113259497A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113726795A (zh) * 2021-09-01 2021-11-30 北京天融信网络安全技术有限公司 报文转发方法、装置、电子设备及可读存储介质
CN114039812A (zh) * 2021-10-26 2022-02-11 南方电网数字电网研究院有限公司 数据传输通道建立方法、装置、计算机设备和存储介质
CN115348207A (zh) * 2022-07-21 2022-11-15 佛山职业技术学院 一种基于udp的主备nat设备流表同步方法及系统
CN115766760A (zh) * 2022-08-31 2023-03-07 成都赛力斯科技有限公司 一种汽车e/e架构、信号传输方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101488904A (zh) * 2009-02-27 2009-07-22 杭州华三通信技术有限公司 Gre隧道穿越网络地址转换设备的方法和网络地址转换设备
CN105703999A (zh) * 2016-03-29 2016-06-22 华为技术有限公司 建立gre隧道的方法和设备
CN106789534A (zh) * 2016-12-27 2017-05-31 京信通信技术(广州)有限公司 一种基于无线网络的数据传输方法和装置
US20180270084A1 (en) * 2015-11-10 2018-09-20 Telefonaktiebolaget Lm Ericsson (Publ) Technique for exchanging datagrams between application modules
CN109412927A (zh) * 2018-12-04 2019-03-01 新华三技术有限公司 一种多vpn数据传输方法、装置及网络设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101488904A (zh) * 2009-02-27 2009-07-22 杭州华三通信技术有限公司 Gre隧道穿越网络地址转换设备的方法和网络地址转换设备
US20180270084A1 (en) * 2015-11-10 2018-09-20 Telefonaktiebolaget Lm Ericsson (Publ) Technique for exchanging datagrams between application modules
CN105703999A (zh) * 2016-03-29 2016-06-22 华为技术有限公司 建立gre隧道的方法和设备
CN106789534A (zh) * 2016-12-27 2017-05-31 京信通信技术(广州)有限公司 一种基于无线网络的数据传输方法和装置
CN109412927A (zh) * 2018-12-04 2019-03-01 新华三技术有限公司 一种多vpn数据传输方法、装置及网络设备

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113726795A (zh) * 2021-09-01 2021-11-30 北京天融信网络安全技术有限公司 报文转发方法、装置、电子设备及可读存储介质
CN114039812A (zh) * 2021-10-26 2022-02-11 南方电网数字电网研究院有限公司 数据传输通道建立方法、装置、计算机设备和存储介质
CN115348207A (zh) * 2022-07-21 2022-11-15 佛山职业技术学院 一种基于udp的主备nat设备流表同步方法及系统
CN115348207B (zh) * 2022-07-21 2023-08-15 佛山职业技术学院 一种基于udp的主备nat设备流表同步方法及系统
CN115766760A (zh) * 2022-08-31 2023-03-07 成都赛力斯科技有限公司 一种汽车e/e架构、信号传输方法

Similar Documents

Publication Publication Date Title
CN113259497A (zh) 传输报文的方法、装置、存储介质和系统
CN101043411B (zh) 混合网络中实现移动vpn的方法及系统
US10530736B2 (en) Method and apparatus for forwarding generic routing encapsulation packets at a network address translation gateway
US20120179796A1 (en) Routing and service performance management in an application acceleration environment
CN110535768B (zh) 组播数据传输方法及相关设备
CN104579954B (zh) 报文跨域转发方法、装置及通信设备
US9654394B2 (en) Multi-tenant system, switch, controller and packet transferring method
JP2003502913A (ja) トンネリングおよび補償を使用するネットワーク・アドレス翻訳によりセキュリティを与えるための方法および装置
US8724630B2 (en) Method and system for implementing network intercommunication
CN104426737B (zh) 一种实现动态虚拟专用网络链路层通信的方法和装置
CN106559302A (zh) 单播隧道建立方法、装置和系统
CN104993993A (zh) 一种报文处理方法、设备和系统
JP2016508682A (ja) ドメインにまたがるvpnトラフィックのqosによる区別のための方法および配置構成
KR20230026424A (ko) IPv6 네트워크 통신 방법, 장치 및 시스템
CN107733930B (zh) 用于在多个wan网络网关处转发互联网协议(ip)数据包的方法和系统
CN112272134B (zh) IPSec隧道建立方法及装置、分支设备、中心端设备
CN111903105A (zh) 多路复用安全隧道
US10637825B2 (en) Router and method for connecting an IPv4 network and an IPv6 network
US11323410B2 (en) Method and system for secure distribution of mobile data traffic to closer network endpoints
CN113067910B (zh) 一种nat穿越方法、装置、电子设备和存储介质
CN112242943B (zh) IPSec隧道建立方法及装置、分支设备、中心端设备
CN116055586B (zh) 分片报文的匹配方法、路由器及存储介质
WO2023046006A1 (zh) 网络传输方法和设备
KR100609326B1 (ko) 이동 통신 시스템 및 최단 경로 통신 방법
CN113596192B (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