CN107306198B - 报文转发方法、设备和系统 - Google Patents
报文转发方法、设备和系统 Download PDFInfo
- Publication number
- CN107306198B CN107306198B CN201610250035.XA CN201610250035A CN107306198B CN 107306198 B CN107306198 B CN 107306198B CN 201610250035 A CN201610250035 A CN 201610250035A CN 107306198 B CN107306198 B CN 107306198B
- Authority
- CN
- China
- Prior art keywords
- address
- gateway
- message
- header
- 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.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/35—Switches specially adapted for specific applications
- H04L49/354—Switches specially adapted for specific applications for supporting virtual local area networks [VLAN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/66—Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0668—Management of faults, events, alarms or notifications using network fault recovery by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
- H04L43/0894—Packet rate
-
- 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/22—Alternate routing
-
- 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/24—Multipath
- H04L45/245—Link aggregation, e.g. trunking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
- H04L49/252—Store and forward routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
- H04L49/253—Routing or path finding in a switch fabric using establishment or release of connections between ports
- H04L49/254—Centralised controller, i.e. arbitration or scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/70—Virtual switches
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
Abstract
本申请公开了一种报文转发方法、设备和系统,涉及通信领域,用于VPN网络中分部之间通过总部进行通信时解密加密导致的报文转发效率低的问题。报文转发方法包括:第一网关获取第一报文;第一网关依次在所述第一报文外层封装UDP首部和IP首部,获得第二报文;第一网关将所述第二报文发送给所述第一NAT设备;中心设备接收来自第一NAT设备的第一报文;中心设备解封装所述第一报文的UDP首部,获得第二报文;中心设备根据所述第二网关的私网IP地址到所述第二网关的公网IP地址的映射,获取所述第二网关的公网IP地址;中心设备对所述第二报文外层封装UDP首部和IP首部,获得第三报文;中心设备发送所述第三报文。本申请的实施例应用于VPN网络中。
Description
技术领域
本申请涉及通信领域,尤其涉及一种报文转发方法、设备和系统。
背景技术
虚拟专用网络(英文全称:virtual private network,英文简称:VPN)是一种利用公用网络,架设专用网络的技术,通过对数据包的加密和数据包目标地址的转换实现远程访问。例如,企业总部的局域网和分部局域网通过在公网上建立VPN隧道,使得企业分部的局域网中的主机与总部的局域网中的主机相互通信。
通常情况下,企业实现VPN所采用的组网方式是,在企业的总部和分部的局域网均部署VPN网关,总部的网关与各个分部的网关之间采用星形网络拓扑(英文全称:starnetwork topology)。各个分部的VPN网关分别与总部的VPN网关建立VPN隧道,与总部的VPN网关通信。网关使用VPN隧道发送的报文,通常采用网际协议安全性(英文全称:internetprotocol security,英文简称:IPSec)技术进行加密,保证企业内部通讯的数据在公网中传输的安全。
各个分部局域网的网关通常情况下通过网络地址转换(英文全称:networkaddress translation,英文简称:NAT)设备进行私网网际协议(英文全称:internetprotocol,英文简称:IP)地址和公网IP地址的转换才能够与公网通信。由于公网IP地址是动态分配的,因此两个不同分部局域网中的主机需要通信时,需要这两个分部的网关,例如第一分部的第一网关和第二分部的第二网关,分别与总部的网关建立第一网际协议安全性(英文全称:internet protocol security,英文简称:IPSec)隧道和第二IPSec隧道。第一网关将要发送的报文按照建立第一IPSec隧道时协商的加密方式进行IPSec封装,然后通过第一IPSec隧道将加密后的IPSec报文发送给总部的网关,总部的网关将该IPSec报文按照建立第一IPSec隧道时协商的解密方式对该报文解封装后,再按照建立第二IPSec隧道时协商的加密方式,将该报文进行新的IPSec封装,并发送给第二网关。
即,通过NAT设备访问公网的不同分部局域网中的主机之间通信,需要通信两端的分部局域网的网关分别与总部局域网的网关建立IPSec隧道,通信的报文在总部局域网的网关进行IPSec解密和加密。解密和加密占用总部的网关的计算资源。解密加密的过程造成报文转发的延迟,报文转发效率低。
发明内容
本申请的实施例提供一种报文转发方法、设备和系统,用于解决VPN网络中通信的两端主机所在的分部局域网网关之间通信时,需要分别与总部局域网的网关建立隧道,用于通信的报文被总部局域网的网关解密加密,导致的报文转发效率低的问题。
为达到上述目的,本申请的实施例采用如下技术方案:
第一方面,提供了一种报文转发的方法,该方法包括:第一网关获取第一报文,第一报文的网际协议IP首部为第一IP首部,第一IP首部的源IP地址为第一网关的私网IP地址,第一IP首部的目的IP地址为第二网关的私网IP地址,第一网关通过第一网络地址转换NAT设备与公网通信,第二网关通过第二NAT设备与公网通信;
第一网关依次在第一报文外层封装用户数据报协议(英文全称:user datagramprotocol,英文简称:UDP)首部和第二IP首部,获得第二报文,第二IP首部的源IP地址为第一网关的私网IP地址,第二IP首部的目的IP地址为中心设备的公网IP地址,第二NAT设备中存在第一表项,第一表项用于指示第二NAT设备将源IP地址为中心设备的公网IP地址且目的IP地址为第二网关的公网IP地址的报文发送给第二网关;
第一网关将第二报文发送给第一NAT设备,第二报文被第一NAT设备用于生成第三报文,第二报文的净荷与第三报文的净荷相同,第三报文的IP首部为第三IP首部,第三IP首部的源IP地址为第一网关的公网IP地址,第三IP首部的目的IP地址为中心设备的公网IP地址,第三报文在第一NAT设备到中心设备的链路中传输。
在该实现方式中,第一网关把将要发送给第二网关的第一报文外封装UDP首部和第二IP首部,经由第一NAT设备转换成所述第三报文发送给中心设备,使得第一报文作为净荷经由中心设备转发。第三报文是不需要解密或加密的报文,因此中心设备转发第三报文时,不用进行解密加密,节省了加密解密的时间和计算资源,提高了报文转发效率。
在第一种可能的实现方式中,根据第一方面,该方法还包括:
第一报文为网际协议安全性IPSec报文,在第一网关获取第一报文之前,该方法还包括,第一网关建立与第二网关通信的IPSec隧道。
在该实现方式中,所述第一报文是按照所述第一网关和所述第二网关协商的加密方式进行加密的IPSec报文,所述IPSec报文只需要被第一网关进行加密,在第二网关进行解密,所述第一报文的净荷即可被安全的传输,在保障通信安全性的同时提高了通信效率。
在第二种可能的实现方式中,根据第一方面,第一报文为网际密钥交换协议(英文全称:internet key exchange,英文简称:IKE)报文,IKE报文用于指示第二网关建立与第一网关通信的IPSec隧道。
在该实现方式中,第一网关可以与第二网关互相之间进行身份认证;互相交换密钥;第二网关建立与第一网关通信的安全的IPSec隧道等。
在第三种可能的实现方式中,根据第一方面或第一方面的第一种可能的实现方式至第二种可能的实现方式中的任一项,在第一网关获取第一报文之前,该方法还包括:
第一网关向中心设备发送下一跳解析协议(英文全称:next hop resolutionprotocol,英文简称:NHRP)注册报文,NHRP注册报文中携带第一网关的私网IP地址以及中心设备的公网IP地址,NHRP注册报文用于指示第一NAT设备生成第二表项,第二表项用于指示第一NAT设备将源IP地址为中心设备的公网IP地址且目的IP地址为第一网关的公网IP地址的报文发送给第一网关。
在该实现方式中,第一网关通过向中心设备发送下一跳解析协议注册报文来向中心设备进行注册,使得中心设备获取第一网关的私网IP地址和公网IP地址的同时,第一NAT设备中生成所述第二表项,提高了通信效率。
在第四种可能的实现方式中,根据第一方面或第一方面的第一种可能的实现方式至第三种可能的实现方式中的任一项,该方法进一步包括:
第一网关接收第四报文,第四报文为UDP报文,第四报文的源IP地址为中心设备的公网IP地址;
第一网关解封装第四报文的UDP首部,获得第五报文,第五报文的源IP地址为第二网关的私网IP地址,第五报文的目的IP地址为第一网关的私网IP地址;
第一网关根据第五报文的类型对第五报文进行处理。
在第五种可能的实现方式中,根据第一方面的第四种可能的实现方式,第五报文为IPSec报文,或者第五报文为IKE报文。
第二方面,提供了一种报文转发的方法,该包括:
中心设备接收来自第一NAT设备的第一报文,第一报文为UDP报文,第一报文的IP首部为第一IP首部,第一IP首部的源IP地址为第一网关的公网IP地址,第一IP首部的目的IP地址为中心设备的公网IP地址;
中心设备解封装第一报文的UDP首部,获得第二报文,第二报文的IP首部为第二IP首部,第二IP首部的源IP地址为第一网关的私网IP地址,第二报文的目的IP地址为第二网关的私网IP地址;
中心设备根据第二网关的私网IP地址到第二网关的公网IP地址的映射,获取第二网关的公网IP地址;
中心设备对第二报文外层封装UDP首部和第三IP首部,获得第三报文,第三IP首部的目的IP地址为第二网关的公网IP地址,第三IP首部的源IP地址为中心设备的IP地址;
中心设备发送第三报文。
在该实现方式中,中心设备接收来自第一NAT设备的第一报文后,对其进行解封装得到其中的净荷——第二报文,其中,该第二报文是由第一网关将要发送给第二网关的报文,然后中心设备再次在第二报文外层封装UDP首部和第三IP首部,第三IP首部的目的IP地址为第二网关的公网IP地址,使得第二报文作为净荷经由中心设备转发,不用中心设备进行解密加密,节省了报文转发的时间,提高了报文转发的效率。
在第一种可能的实现方式中,根据第二方面,第二报文为IPSec报文。
在该实现方式中,所述第一报文是按照所述第一网关和所述第二网关协商的加密方式进行加密的IPSec报文,所述IPSec报文只需要被第一网关进行加密,在第二网关进行解密,所述第一报文的净荷即可被安全的传输,在保障通信安全性的同时提高了通信效率。
在第二种可能的实现方式中,根据第二方面,第二报文为IKE报文,IKE报文用于指示第二网关建立与第一网关通信的IPSec隧道。
在该实现方式中,第一网关可以与第二网关互相之间进行身份认证;互相交换密钥;第二网关建立与第一网关通信的安全的IPSec隧道等。
第三方面,提供了一种第一网关,用于执行上述第一方面或者第一方面任意一种可能的实现方式的报文转发方法,包括:
获取单元,用于获取第一报文,第一报文的网际协议IP首部为第一IP首部,第一IP首部的源IP地址为第一网关的私网IP地址,第一IP首部的目的IP地址为第二网关的私网IP地址,第一网关通过第一网络地址转换NAT设备与公网通信,第二网关通过第二NAT设备与公网通信;
封装单元,用于依次在获取单元获取第一报文外层封装用户数据报协议UDP首部和第二IP首部,获得第二报文,第二IP首部的源IP地址为第一网关的私网IP地址,第二IP首部的目的IP地址为中心设备的公网IP地址,第二NAT设备中存在第一表项,第一表项用于指示第二NAT设备将源IP地址为中心设备的公网IP地址且目的IP地址为第二网关的公网IP地址的报文发送给第二网关;
发送单元,用于将封装单元获得的第二报文发送给第一NAT设备,第二报文被第一NAT设备用于生成第三报文,第二报文的净荷与第三报文的净荷相同,第三报文的IP首部为第三IP首部,第三IP首部的源IP地址为第一网关的公网IP地址,第三IP首部的目的IP地址为中心设备的公网IP地址,第三报文在第一NAT设备到中心设备的链路中传输。
在第一种可能的实现方式中,根据第三方面,第一报文为网际协议安全性IPSec报文,第一网关还包括:
建立单元,用于获取单元获取第一报文之前,第一网关建立与第二网关通信的IPSec隧道。
在第二种可能的实现方式中,根据第三方面,第一报文为网际密钥交换协议IKE报文,IKE报文用于指示第二网关建立与第一网关通信的IPSec隧道。
在第三种可能的实现方式中,根据第三方面或第三方面的第一种可能的实现方式至第二种可能的实现方式中的任一项,发送单元还用于:
向中心设备发送NHRP注册报文,NHRP注册报文中携带第一网关的私网IP地址以及中心设备的公网IP地址,NHRP注册报文用于指示第一NAT设备生成第二表项,第二表项用于指示第一NAT设备将源IP地址为中心设备的公网IP地址且目的IP地址为第一网关的公网IP地址的报文发送给第一网关。
在第四种可能的实现方式中,根据第三方面或第三方面的第一种可能的实现方式至第三种可能的实现方式中的任一项,第一网关还包括:
接收单元,用于接收第四报文,第四报文为UDP报文,第四报文的源IP地址为中心设备的公网IP地址;
解封装单元,用于解封装接收单元接收的第四报文的UDP首部,获得第五报文,第五报文的源IP地址为第二网关的私网IP地址,第五报文的目的IP地址为第一网关的私网IP地址;
处理单元,用于根据解封装单元得到的第五报文的类型对第五报文进行处理。
在第五种可能的实现方式中,根据第三方面的第四种可能的实现方式,第五报文为IPSec报文,或者第五报文为IKE报文。
由于本发明实施例提供的第一网关可以用于执行上述第一方面或者第一方面任意一种可能的实现方式的方法,因此,其所能获得的技术效果可以参考上述第一方面或者第一方面任意一种可能的实现方式提供的方法的技术效果,此处不再赘述。
第四方面,提供了一种中心设备,包括:
接收单元,用于接收来自第一NAT设备的第一报文,第一报文为UDP报文,第一报文的IP首部为第一IP首部,第一IP首部的源IP地址为第一网关的公网IP地址,第一IP首部的目的IP地址为中心设备的公网IP地址;
解封装单元,用于解封装接收单元接收到的第一报文的UDP首部,获得第二报文,第二报文的IP首部为第二IP首部,第二IP首部的源IP地址为第一网关的私网IP地址,第二报文的目的IP地址为第二网关的私网IP地址;
获取单元,用于根据第二网关的私网IP地址到第二网关的公网IP地址的映射,获取第二网关的公网IP地址;
封装单元,用于对解封装单元得到的第二报文外层封装UDP首部和第三IP首部,获得第三报文,第三IP首部的目的IP地址为第二网关的公网IP地址,第三IP首部的源IP地址为中心设备的IP地址;
发送单元,用于发送第三报文。
在第一种可能的实现方式中,根据第四方面,第二报文为IPSec报文。
在第二种可能的实现方式中,根据第四方面,第二报文为IKE报文,IKE报文用于指示第二网关建立与第一网关通信的IPSec隧道。
第五方面,提供了一种第一网关,包括处理器和接口电路;处理器用于执行以下操作:
第一报文,第一报文的网际协议IP首部为第一IP首部,第一IP首部的源IP地址为第一网关的私网IP地址,第一IP首部的目的IP地址为第二网关的私网IP地址,第一网关通过第一网络地址转换NAT设备与公网通信,第二网关通过第二NAT设备与公网通信;
依次在第一报文外层封装用户数据报协议UDP首部和第二IP首部,获得第二报文,第二IP首部的源IP地址为第一网关的私网IP地址,第二IP首部的目的IP地址为中心设备的公网IP地址,第二NAT设备中存在第一表项,第一表项用于指示第二NAT设备将源IP地址为中心设备的公网IP地址且目的IP地址为第二网关的公网IP地址的报文发送给第二网关;
通过接口电路将第二报文发送给第一NAT设备,第二报文被第一NAT设备用于生成第三报文,第二报文的净荷与第三报文的净荷相同,第三报文的IP首部为第三IP首部,第三IP首部的源IP地址为第一网关的公网IP地址,第三IP首部的目的IP地址为中心设备的公网IP地址,第三报文在第一NAT设备到中心设备的链路中传输。
在第一种可能的实现方式中,根据第五方面,第一报文为网际协议安全性IPSec报文,处理器还用于:
在处理器获取第一报文之前,第一网关建立与第二网关通信的IPSec隧道。
在第二种可能的实现方式中,根据第五方面,第一报文为网际密钥交换协议IKE报文,IKE报文用于指示第二网关建立与第一网关通信的IPSec隧道。
在第三种可能的实现方式中,根据第五方面或第五方面的第一种可能的实现方式至第二种可能的实现方式中的任一项,处理器还用于:
通过接口电路向中心设备发送NHRP注册报文,NHRP注册报文中携带第一网关的私网IP地址以及中心设备的公网IP地址,NHRP注册报文用于指示第一NAT设备生成第二表项,第二表项用于指示第一NAT设备将源IP地址为中心设备的公网IP地址且目的IP地址为第一网关的公网IP地址的报文发送给第一网关。
在第四种可能的实现方式中,根据第五方面或第五方面的第一种可能的实现方式至第三种可能的实现方式中的任一项,处理器还用于:
通过接口电路接收第四报文,第四报文为UDP报文,第四报文的源IP地址为中心设备的公网IP地址;
解封装第四报文的UDP首部,获得第五报文,第五报文的源IP地址为第二网关的私网IP地址,第五报文的目的IP地址为第一网关的私网IP地址;
根据第五报文的类型对第五报文进行处理。
在第五种可能的实现方式中,根据第五方面的第四种可能的实现方式中,第五报文为IPSec报文,或者第五报文为IKE报文。
第六方面,提供了一种中心设备,包括处理器、接口电路;处理器用于执行以下操作:
通过接口电路接收来自第一NAT设备的第一报文,第一报文为UDP报文,第一报文的IP首部为第一IP首部,第一IP首部的源IP地址为第一网关的公网IP地址,第一IP首部的目的IP地址为中心设备的公网IP地址;
解封装第一报文的UDP首部,获得第二报文,第二报文的IP首部为第二IP首部,第二IP首部的源IP地址为第一网关的私网IP地址,第二报文的目的IP地址为第二网关的私网IP地址;
根据第二网关的私网IP地址到第二网关的公网IP地址的映射,获取第二网关的公网IP地址;
对第二报文外层封装UDP首部和第三IP首部,获得第三报文,第三IP首部的目的IP地址为第二网关的公网IP地址,第三IP首部的源IP地址为中心设备的IP地址;
通过接口电路发送第三报文。
在第一种可能的实现方式中,根据第六方面,第二报文为IPSec报文。
在第二种可能的实现方式中,根据第六方面,第二报文为IKE报文,IKE报文用于指示第二网关建立与第一网关通信的IPSec隧道。
由于本发明实施例提供的中心设备可以用于执行上述第二方面或者第二方面任意一种可能的实现方式的方法,因此,其所能获得的技术效果可以参考上述第二方面或者第二方面任意一种可能的实现方式提供的方法的技术效果,此处不再赘述。
第七方面,提供了一种报文转发系统,包括如第三方面或第三方面的任意一种可能的实现方式中的第一网关以及如第四方面或第四方面的任意一种可能的实现方式中的中心设备;
或者,
包括如第五方面或第五方面的任意一种可能的实现方式中的第一网关以及如第六方面或第六方面的任意一种可能的实现方式中的中心设备。
由于本发明实施例提供的报文转发系统可以用于执行上述第一方面或者第一方面任意一种可能的实现方式或第二方面或者第二方面任意一种可能的实现方式的方法,因此,其所能获得的技术效果可以参考上述第一方面或者第一方面任意一种可能的实现方式或者第二方面或者第二方面任意一种可能的实现方式提供的方法的技术效果,此处不再赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例一种可能的应用场景示意图;
图2为本申请的实施例提供的报文转发方法的流程示意图;
图3为本申请图2的实施例中报文格式示意图;
图4为本申请的实施例提供的另一种报文转发方法的流程示意图;
图5为本申请的实施例提供的一种第一网关的结构示意图;
图6为本申请的实施例提供的一种中心设备的结构示意图;
图7为本申请的实施例提供的另一种第一网关的结构示意图;
图8为本申请的实施例提供的另一种中心设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请中,某个网关通过某个NAT设备与公网通信是指,该网关向公网中的网络设备发送报文时,报文的源IP地址要通过该NAT设备由该网关的私网IP地址改为公网IP地址。具体来说,该网关向公网中的网络设备发送报文,可以是指报文的目的地址为公网中的设备,也可以是指报文需要通过公网中的网络设备转发。例如,公网可以是运营商网络,也可以是互联网。
图1是本申请实施例一种可能的应用场景示意图。如图1中所示,企业包括总部和分部,总部和分部分别有各自的局域网。总部局域网101中包括多个总部的主机,总部的主机之间通过总部局域网101进行通信。分部局域网102和分部局域网103中的分别包括多个分部的主机。处于同一个分部局域网中的主机之间通过该分部局域网进行通信。
分部局域网102中的主机通过第一NAT设备204与公网通信。分部局域网103中的主机通过第二NAT设备205与公网通信。具体来说,分部局域网102中的主机要向分部局域网102之外的主机发送报文时,需要先将报文发送到第一NAT设备204,由第一NAT设备204将报文中的私网IP地址转换为公网IP地址并转发。第一NAT设备204在发送该报文的过程中,存储该报文的相关信息,例如在第一NAT设备204的穿越流表中建立第一表项,第一表项中存储该报文的私网源IP地址,公网源IP地址,目的IP地址。当第一NAT设备204接收到来自公网的某个报文,且该报文的源IP地址为第一表项中记录的目的IP地址,该报文的目的IP地址为第一表项中记录的公网源IP地址,那么第一NAT设备204将该报文的目的IP地址转换为第一表项中记录的私网IP地址,并发送给私网IP地址的主机,也就是发给分部局域网102中相应的主机。分部局域网103中的主机与第二NAT设备205之间报文转发过程,同分部局域网102与第一NAT设备204之间报文转发过程类似,在此不再赘述。
总部局域网101中包括中心设备201作为总部局域网101的网关。分部局域网102中包括第一网关202。分部局域网103中包括第二网关203。举例来说,中心设备201、第一网关202以及第二网关203均可以是路由器、交换机、分组传送网设备、波分复用设备或光传送网设备。
总部或分部的局域网中,不同局域网的主机之间相互通信,通常需要采用IPSec技术实现VPN,以保障企业内部的数据在公网上被传输时的信息安全。例如,分部局域网102中的第一主机要向分部局域网103中的第二主机发送报文时,第一主机需要先将报文发送给第一网关202。第一网关202接收到报文后,对报文进行IPSec封装加密后,再将该IPSec报文发送到公网的网络设备中进行传输。
由于第一网关202需要通过第一NAT设备204与公网通信,第二网关203需要通过第二NAT设备205与公网通信,因此在第一网关202要向第二网关203发送报文时,由于此前第二网关203没有向第一网关202发送过报文,因此第二NAT设备205中没有存储保存了第二网关私网IP地址、第二网关公网IP地址以及第一网关公网IP地址的表项,因此第二NAT设备205无法将第一网关202的所述报文发送给第二NAT设备205。
因此,通常在第一网关202要向第二网关203发送IPSec报文时,会采用如下的方式进行:第一网关202与中心设备201建立第一IPSec隧道,并且中心设备201与第二网关203建立第二IPSec隧道。
当分部局域网102中的主机需要向分部局域网103中的主机发送报文时,分部局域网102中的第一网关202按照建立第一IPSec隧道时协商的加密方式,将该报文进行IPSec封装后通过第一IPSec隧道发送给中心设备201,总部局域网101将该IPSec报文解封装后,再按照建立第二IPSec隧道时协商的加密方式,将该报文进行新的IPSec封装,并发送给分部局域网103的网关。
针对上述方案中,报文被中心设备解密和加密占用中心设备的计算资源,以及解密加密的过程造成报文转发的延迟,导致报文转发效率低的问题,本申请的实施例提供了一种报文转发方法,第一网关与第二网关进行通信时,在加密的报文外层封装未经加密的UDP首部,通过中心设备对报文进行解封装和封装后再进行转发。
图2示出了本申请实施例提供的一种可能的报文转发方法示意图。该方法可以应用于图1所示应用场景中。举例来说,图2中所述的中心设备可以是图1中的中心设备201,图2中所述的第一网关可以是图1中的第一网关202,图2中所述的第一NAT设备可以是图1中的第一NAT设备204,图2中所述的第二网关可以是图1中的第二网关203。图2中所述的第二NAT设备可以是图1中的第二NAT设备205。参照图2中所示,该方法包括:
S101、第一网关获取第一报文。所述第一报文的IP首部为第一IP首部,所述第一IP首部的源IP地址为所述第一网关的私网IP地址,所述第一IP首部的目的IP地址为第二网关的私网IP地址,所述第一网关通过第一NAT设备与公网通信,所述第二网关通过第二NAT设备与公网通信。
举例来说,第一网关202接收到来自所述分部局域网102中的第一主机的数据报文,所述数据报文的目的IP地址是分部局域网103中的第二主机。第一网关202根据路由表确定该数据报文应当转发给所述第二网关。
在一种示例中,所述第一网关的路由表中存储了所述第二网关的私网IP地址。在另一种示例中,所述第一网关的路由表中存储了所述第二网关的端口地址,由于与第二网关建立IPSec隧道需要获取第二网关的私网IP地址,因此第一网关通过NHRP学习所述第二网关的私网IP地址。关于NHRP学习的具体方式,可以参考请求注解协议(英文:request forcomment,简称:RFC)2332的相关描述。
在一种可能的示例中,在S101之前,所述第一网关和所述第二网关之间还没有建立IPSec隧道。第一报文为IKE报文,所述IKE报文用于指示第二网关建立与第一网关通信的IPSec隧道。具体来说,所述第一报文是所述第一网关生成的,所述第一报文用于第一网关和第二网关进行IKE协商。
在另一种可能的示例中,第一报文为IPSec报文,在第一网关获取第一报文之前,该方法还包括,第一网关建立与第二网关通信的IPSec隧道。具体来说,所述第一网关和所述第二网关之间已经建立了IPSec隧道。建立IPSec隧道的过程中,第一网关需要和第二网关协商。所述协商所采用的方法,可以是所述第一报文为IKE报文的示例所描述的方法。所述第一报文的净荷是第一网关所在的局域网中的主机向第一网关发送的数据报文,所述数据报文的目的地址是第二网关所在的局域网中的主机。所述第一网关根据所述与所述第二网关建立的IPSec隧道的加密方式,对所述数据报文进行IPSec封装,获得所述第一报文。
S102、所述第一网关依次在所述第一报文外层封装UDP首部和第二IP首部,获得第二报文,所述第二IP首部的源IP地址为第一网关的私网IP地址,所述第二IP首部的目的IP地址为所述中心设备的公网IP地址。所述第二NAT设备中存在第一表项,所述第一表项用于指示所述第二NAT设备将源IP地址为所述中心设备的公网IP地址且目的IP地址为所述第二网关的公网IP地址的报文发送给所述第二网关。
具体来说,所述第一网关以及所述第二网关中,均存储了所述中心设备的公网IP地址。
具体来说,所述第二网关的公网IP地址是指,所述中心设备向所述第二网关发送报文时,使用的目的IP地址。所述第二网关在S102之前,还向所述中心设备发送过报文,例如向所述中心设备发送注册报文,用于将所述第二网关的私网IP地址以及所述第二网关的公网IP地址通知所述中心设备。举例来说,所述注册报文可以是NHRP注册报文。例如,所述第二网关的私网IP地址携带在所述NHRP注册报文的净荷中。第二网关将该NHRP注册报文发送给第二NAT设备,由第二NAT设备将该报文的源IP地址由第二网关的私网IP地址改为某个公网IP地址,并发送给中心设备。该公网IP地址就可以是S102中所述的第二网关的公网IP地址。在NHRP注册过程中,中心设备将NHRP注册报文中的源IP地址作为第二网关的公网IP地址存储起来。此外,第二NAT设备在上述处理该NHRP注册报文的过程中,存储该NHRP注册报文的信息,例如在第二NAT设备的穿越流表中建立所述第一表项,第一表项中存储该NHRP注册报文的私网源IP地址,即第二网关的私网IP地址、该NHRP注册报文的公网源IP地址,即所述第二网关的公网IP地址和该NHRP注册报文的目的IP地址,即中心设备的公网IP地址。当此后中心设备向第二网关发送源IP地址为中心设备的公网IP地址、目的IP地址为第二网关的公网IP地址的报文时,所述第二NAT设备根据所述第一表项将该报文发送给第二网关。
当然,本领域技术人员可以理解的是,所述第二网关的公网IP地址还可以是所述第二网关使用其他协议向所述中心设备发送注册报文时,所述第二NAT设备为所述第二网关分配的公网IP地址。无论使用何种协议,所述中心设备获取所述第二网关的公网IP地址的方法,以及所述第二NAT设备获取所述第一表项的方法是相同的,在此不再举例。
举例来说,所述第一网关也可以采用类似的方法向中心设备注册。所述第一NAT设备也可以在该注册过程中存储第二表项,所述第二表项用于指示所述第一NAT设备将源IP地址为所述中心设备的公网IP地址且目的IP地址为所述第一网关的公网IP地址的报文发送给所述第一网关。在此不再赘述。
S103、所述第一网关将所述第二报文发送给所述第一NAT设备,所述第二报文被所述第一NAT设备用于生成第三报文,所述第二报文的净荷与所述第三报文的净荷相同,所述第三报文的IP首部为第三IP首部,所述第三IP首部的源IP地址为所述第一网关的公网IP地址,所述第三IP首部的目的IP地址为所述中心设备的公网IP地址,所述第三报文在所述第一NAT设备到所述中心设备的链路中传输。
具体来说,所述第一网关的公网IP地址是指,所述第一NAT设备在生成所述第三报文的过程中,为所述第一网关分配的公网IP地址。
S104,所述第一NAT设备根据所述第二报文生成所述第三报文,并将所述第三报文发送给中心设备。
具体来说,如图3所示,所述第二报文和所述第三报文的净荷都是第一报文。
第一NAT设备用于对报文的私网IP地址与公网IP地址之间进行转换,第一NAT设备将第二报文的第二IP首部替换为第三IP首部,二者区别在于,第二IP首部的源IP地址为第一网关的私网IP地址,第三IP首部的源IP地址为第一网关的公网IP地址。第三报文仍是UDP报文。
S105、所述中心设备接收来自所述第一NAT设备的所述第三报文。
S106、所述中心设备解封装所述第三报文的UDP首部,获得所述第一报文。
具体的,中心设备解封装第三报文的第三IP首部及UDP首部,得到第三报文的净荷,即第一报文。
S107、所述中心设备根据所述第二网关的私网IP地址到所述第二网关的公网IP地址的映射,获取所述第二网关的公网IP地址。
举例来说,所述中心设备在S107之前,接收过来自所述第二网关的报文,例如S102中所述的NHRP注册报文。所述中心设备根据NHRP注册报文中所述第二网关的私网IP地址,以及所述NHRP注册报文的源IP地址,即所述第二网关的公网IP地址,生成所述映射。
举例来说,中心设备读取所述第一报文的所述第一IP首部中的目的IP地址。由于所述目的IP地址是所述第二网关的私网IP地址,不是所述中心设备的IP地址或者所述中心设备所在的局域网中的主机的IP地址,因此所述中心设备查找所述第二网关的公网IP地址,并按照S108转发该报文。
S108、所述中心设备在所述第一报文外层封装UDP首部和第四IP首部,获得第四报文。所述第四IP首部的目的IP地址为所述第二网关的公网IP地址,所述第四IP首部的源IP地址为所述中心设备的IP地址。
具体来说,第四报文仍是UDP报文,第四报文的净荷与第三报文的净荷相同,都是第一报文。
S109、所述中心设备发送所述第四报文。
S110、所述第二NAT设备接收来自所述中心设备的所述第四报文。
S111、所述第二NAT设备根据第四报文生成第五报文,并将第五报文发送给第二网关。其中,第五报文的净荷与第四报文的净荷相同,都是第一报文,第五报文的IP首部为第五IP首部,第五IP首部的源IP地址为中心设备的公网IP地址,第五IP首部的目的IP地址为第二网关的私网IP地址。
由于第四报文的第四IP首部的目的IP地址为第二网关的公网IP地址,第二NAT设备接收到该报文后会根据S102中所述的、第二NAT设备存储的穿越流表中的第一表项,将第四报文的第四IP首部替换为第五IP首部,生成所述第五报文。
S112、所述第二网关接收所述第五报文。
S113、所述第二网关解封装所述第五报文的UDP首部,获得所述第一报文。
S114、所述第二网关根据所述第一报文的类型对所述第一报文进行处理。
例如,在所述第一报文为IKE报文的示例中,第二网关对所述第一报文进行处理包括根据所述第一报文中的信息,与所述第一网关进行IKE协商,比如发送IKE响应报文。
例如,在所述第一报文为IPSec报文的示例中,第二网关根据建立所述IPSec隧道是的解密算法,解密所述第一报文,获得所述第一报文的净荷。例如第一报文的净荷是发送给所述第二网关所在的局域网中的主机的数据报文,则所述第二网关将所述数据报文发送给该主机。
需要说明的是,本申请所描述的第一网关与第二网关在该通信网络中的地位与功能并无实质差别,当其中一个执行上述第一网关的功能时,另一个即执行上述第二网关的功能;同样的第一NAT设备与第二NAT设备在该通信网络中的地位与功能并无实质差别,当其中一个执行上述第一NAT设备的功能时,另一个即执行上述第二NAT设备的功能。
本实施例中,由于所述第一报文被加密的字段位于所述第一报文的所述第一IP首部之后,因此中心设备可以在不需要对所述第一报文解密的情况下,获取所述第二网关的目的IP地址,并将所述报文转发给所述第二网关。因此,中心设备在整个报文转发过程中仅进行了IP首部和UDP首部的解封装和封装,不用进行加密、解密等过程,因此耗费时间很短,解决了中心设备转发报文过程中进行解密加密导致报文转发效率低的问题。
图4示出了本申请实施例提供的另一种报文转发方法。包括以下步骤。
S401、中心设备接收来自第一NAT设备的第一报文,所述第一报文为UDP报文,所述第一报文的IP首部为第一IP首部,所述第一IP首部的源IP地址为第一网关的公网IP地址,所述第一IP首部的目的IP地址为所述中心设备的公网IP地址。
S402、所述中心设备解封装所述第一报文的UDP首部,获得第二报文,所述第二报文的IP首部为第二IP首部,所述第二IP首部的源IP地址为所述第一网关的私网IP地址,所述第二报文的目的IP地址为所述第二网关的私网IP地址。
S403、所述中心设备根据所述第二网关的私网IP地址到所述第二网关的公网IP地址的映射,获取所述第二网关的公网IP地址。
S404、所述中心设备在所述第二报文外层封装UDP首部和第三IP首部,获得第三报文,所述第三IP首部的目的IP地址为所述第二网关的公网IP地址,所述第三IP首部的源IP地址为所述中心设备的IP地址。
S405、所述中心设备发送所述第三报文。
举例来说,所述S401的具体实现方式可以与图2中的S105相同。具体来说,S401中的第一报文,可以是S105中的第三报文。所述S402的具体实现方式可以与图2中的S106相同。具体来说,S402中的第二报文,可以是S105中的第一报文。所述S403的具体实现方式可以与图2中的S107相同。所述S404的具体实现方式可以与图2中的S108相同。具体来说,S404中的第三报文,可以是S108中的第四报文。所述S405的具体实现方式可以与图2中的S109相同。
上述方案中,中心设备在整个报文转发过程中仅进行了IP首部和UDP首部的解封装和再封装,不用再进行加密解密等过程,节省了转发报文的时间,提高了报文转发的效率。
本发明的实施例提供了一种第一网关500。所述第一网关可以应用于图1所示的场景中作为第一网关202,可以用于执行图2或图4所示的报文转发方法。参照图5中所示,包括:
获取单元501,用于获取第一报文,第一报文的网际协议IP首部为第一IP首部,第一IP首部的源IP地址为第一网关的私网IP地址,第一IP首部的目的IP地址为第二网关的私网IP地址,第一网关通过第一网络地址转换NAT设备与公网通信,第二网关通过第二NAT设备与公网通信。
封装单元502,用于依次在获取单元501获取第一报文外层封装用户数据报协议UDP首部和第二IP首部,获得第二报文,第二IP首部的源IP地址为第一网关的私网IP地址,第二IP首部的目的IP地址为中心设备的公网IP地址,第二NAT设备中存在第一表项,第一表项用于指示第二NAT设备将源IP地址为中心设备的公网IP地址且目的IP地址为第二网关的公网IP地址的报文发送给第二网关。
发送单元503,用于将封装单元502获得的第二报文发送给第一NAT设备,第二报文被第一NAT设备用于生成第三报文,第二报文的净荷与第三报文的净荷相同,第三报文的IP首部为第三IP首部,第三IP首部的源IP地址为第一网关的公网IP地址,第三IP首部的目的IP地址为中心设备的公网IP地址,第三报文在第一NAT设备到中心设备的链路中传输。
可选的,在一种可能的实现方式中,第一报文为网际协议安全性IPSec报文,第一网关还包括:
建立单元504,用于第一网关建立与第二网关通信的IPSec隧道。
可选的,在一种可能的实现方式中,第一报文为网际密钥交换协议IKE报文,IKE报文用于指示第二网关建立与第一网关通信的IPSec隧道。
可选的,在一种可能的实现方式中,发送单元还用于:
向中心设备发送NHRP注册报文,NHRP注册报文中携带第一网关的私网IP地址以及中心设备的公网IP地址,NHRP注册报文用于指示第一NAT设备生成第二表项,第二表项用于指示第一NAT设备将源IP地址为中心设备的公网IP地址且目的IP地址为第一网关的公网IP地址的报文发送给第一网关。
可选的,在一种可能的实现方式中,参照图5中所示,第一网关还包括:
接收单元505,用于接收第四报文,第四报文为UDP报文,第四报文的源IP地址为中心设备的公网IP地址;
解封装单元506,用于解封装接收单元505接收的第四报文的UDP首部,获得第五报文,第五报文的源IP地址为第二网关的私网IP地址,第五报文的目的IP地址为第一网关的私网IP地址;
处理单元507,用于根据解封装单元506得到的第五报文的类型对第五报文进行处理。
可选的,在一种可能的实现方式中,第五报文为IPSec报文,或者第五报文为IKE报文。
由于本发明实施例中的第一网关可以用于执行上述方法流程,因此,其所能获得的技术效果也可参考上述方法实施例,本发明实施例在此不再赘述。
本发明的实施例提供了一种中心设备600。所述中心设备可以应用于图1中所示的场景中作为中心设备201,可以用于执行图2或图4中所示的报文转发方法。参照图6中所示,包括:
接收单元601,用于接收来自第一NAT设备的第一报文,第一报文为UDP报文,第一报文的IP首部为第一IP首部,第一IP首部的源IP地址为第一网关的公网IP地址,第一IP首部的目的IP地址为中心设备的公网IP地址。
解封装单元602,用于解封装接收单元601接收到的第一报文的UDP首部,获得第二报文,第二报文的IP首部为第二IP首部,第二IP首部的源IP地址为第一网关的私网IP地址,第二报文的目的IP地址为第二网关的私网IP地址。
获取单元603,用于根据第二网关的私网IP地址到第二网关的公网IP地址的映射,获取第二网关的公网IP地址。
封装单元604,用于对解封装单元602得到的第二报文外层封装UDP首部和第三IP首部,获得第三报文,第三IP首部的目的IP地址为第二网关的公网IP地址,第三IP首部的源IP地址为中心设备的IP地址。
发送单元605,用于发送第三报文。
可选的,在一种可能的实现方式中,第二报文为IPSec报文。
可选的,在一种可能的实现方式中,第二报文为IKE报文,IKE报文用于指示第二网关建立与第一网关通信的IPSec隧道。
由于本发明实施例中的中心设备可以用于执行上述方法流程,因此,其所能获得的技术效果也可参考上述方法实施例,本发明实施例在此不再赘述。
本发明的实施例提供了一种第一网关700,用于执行上述报文转发方法,参照图7中所示,包括:处理器701、接口电路702、存储器703和总线704。举例来说,处理器701、接口电路702、存储器703通过总线704连接并完成相互间的通信。其中,图7中所述的第一网关700可以是图5中所述的第一网关500,图7中所述的处理器701可以是图5中所述的获取单元501、封装单元502、建立单元504、解封装单元506和处理单元506。图7中所述的接口电路702可以是图5中所述的发送单元503和接收单元505。
需要说明的是,这里的处理器701可以是一个处理器,也可以是多个处理元件的统称。例如,该处理器可以是中央处理器CPU,也可以是特定集成电路ASIC,或者是被配置成实施本发明实施例的一个或多个集成电路,例如:一个或多个微处理器(英文全称:digitalsingnal processor,英文简称:DSP),或,一个或者多个现场可编程门阵列(英文全称:field programmable aate array,英文简称:FPGA)。
接口电路702可以是具备发送和接收功能的网络接口电路,可以以有线或无线方式连接至网络。
存储器703可以是一个存储装置,也可以是多个存储元件的统称,且用于存储可执行程序代码或接入网管理设备运行所需要参数、数据等。且存储器703可以包括随机存储器(英文全称:random-access memory,英文简称:RAM),也可以包括非易失性存储器(英文全称:non-volatile memory,英文简称:NVRAM),例如磁盘存储器,闪存(Flash)等。
总线704可以是工业标准体系结构(英文全称:industry standardarchitecture,英文简称:ISA)总线、外部设备互连(英文全称:peripheral component,英文简称:PCI)总线或扩展工业标准体系结构(英文全称:extended industry standardarchitecture,英文简称:EISA)总线等。该总线704可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
处理器701用于执行存储器703中的程序代码以控制接口电路702执行以下操作:
获取第一报文,第一报文的网际协议IP首部为第一IP首部,第一IP首部的源IP地址为第一网关的私网IP地址,第一IP首部的目的IP地址为第二网关的私网IP地址,第一网关通过第一网络地址转换NAT设备与公网通信,第二网关通过第二NAT设备与公网通信;
依次在第一报文外层封装用户数据报协议UDP首部和第二IP首部,获得第二报文,第二IP首部的源IP地址为第一网关的私网IP地址,第二IP首部的目的IP地址为中心设备的公网IP地址,第二NAT设备中存在第一表项,第一表项用于指示第二NAT设备将源IP地址为中心设备的公网IP地址且目的IP地址为第二网关的公网IP地址的报文发送给第二网关;
通过接口电路702将第二报文发送给第一NAT设备,第二报文被第一NAT设备用于生成第三报文,第二报文的净荷与第三报文的净荷相同,第三报文的IP首部为第三IP首部,第三IP首部的源IP地址为第一网关的公网IP地址,第三IP首部的目的IP地址为中心设备的公网IP地址,第三报文在第一NAT设备到中心设备的链路中传输。
可选的,在一种可能的实现方式中,第一报文为网际协议安全性IPSec报文,处理器701还用于:
在处理器701获取第一报文之前,第一网关建立与第二网关通信的IPSec隧道。
可选的,在一种可能的实现方式中,第一报文为网际密钥交换协议IKE报文,IKE报文用于指示第二网关建立与第一网关通信的IPSec隧道。
可选的,在一种可能的实现方式中,处理器701还用于:
通过接口电路702向中心设备发送NHRP注册报文,NHRP注册报文中携带第一网关的私网IP地址以及中心设备的公网IP地址,NHRP注册报文用于指示第一NAT设备生成第二表项,第二表项用于指示第一NAT设备将源IP地址为中心设备的公网IP地址且目的IP地址为第一网关的公网IP地址的报文发送给第一网关。
可选的,在一种可能的实现方式中,处理器701还用于:
通过接口电路702接收第四报文,第四报文为UDP报文,第四报文的源IP地址为中心设备的公网IP地址;
处理器701,还用于解封装第四报文的UDP首部,获得第五报文,第五报文的源IP地址为第二网关的私网IP地址,第五报文的目的IP地址为第一网关的私网IP地址;
处理器701,还用于根据第五报文的类型对第五报文进行处理。
可选的,在一种可能的实现方式中,第五报文为IPSec报文,或者第五报文为IKE报文。
由于本发明实施例中的第一网关可以用于执行上述方法流程,因此,其所能获得的技术效果也可参考上述方法实施例,本发明实施例在此不再赘述。
本发明的实施例提供了一种中心设备800,用于执行上述报文转发方法,参照图8中所示,包括:处理器801、接口电路802、存储器803和总线804。举例来说,处理器801、接口电路802、存储器803通过总线804连接并完成相互间的通信。其中,图8中所述的中心设备800可以是图6中所述的中心设备600,图8中所述的处理器801可以是图6中所述的解封装单元602、获取单元603、封装单元604。图8中所述的接口电路802可以是图6中所述的接收单元601、发送单元605。
需要说明的是,这里的处理器801可以是一个处理器,也可以是多个处理元件的统称。例如,该处理器可以是中央处理器CPU,也可以是特定集成电路ASIC,或者是被配置成实施本发明实施例的一个或多个集成电路,例如:一个或多个微处理器(英文全称:digitalsingnal processor,英文简称:DSP),或,一个或者多个现场可编程门阵列(英文全称:field programmable aate array,英文简称:FPGA)。
接口电路802可以是具备发送和接收功能的网络接口电路,可以以有线或无线方式连接至网络。
存储器803可以是一个存储装置,也可以是多个存储元件的统称,且用于存储可执行程序代码或接入网管理设备运行所需要参数、数据等。且存储器803可以包括随机存储器(英文全称:random-access memory,英文简称:RAM),也可以包括非易失性存储器(英文全称:non-volatile memory,英文简称:NVRAM),例如磁盘存储器,闪存(Flash)等。
总线804可以是工业标准体系结构(英文全称:industry standardarchitecture,英文简称:ISA)总线、外部设备互连(英文全称:peripheral component,英文简称:PCI)总线或扩展工业标准体系结构(英文全称:extended industry standardarchitecture,英文简称:EISA)总线等。该总线804可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
处理器801用于执行存储器803中的程序代码以控制接口电路802执行以下操作:
通过接口电路802接收来自第一NAT设备的第一报文,第一报文为UDP报文,第一报文的IP首部为第一IP首部,第一IP首部的源IP地址为第一网关的公网IP地址,第一IP首部的目的IP地址为中心设备的公网IP地址;
解封装第一报文的UDP首部,获得第二报文,第二报文的IP首部为第二IP首部,第二IP首部的源IP地址为第一网关的私网IP地址,第二报文的目的IP地址为第二网关的私网IP地址;
根据第二网关的私网IP地址到第二网关的公网IP地址的映射,获取第二网关的公网IP地址;
对第二报文外层封装UDP首部和第三IP首部,获得第三报文,第三IP首部的目的IP地址为第二网关的公网IP地址,第三IP首部的源IP地址为中心设备的IP地址;
通过接口电路802发送第三报文。
可选的,在一种可能的实现方式中,第二报文为IPSec报文。
可选的,在一种可能的实现方式中,第二报文为IKE报文,IKE报文用于指示第二网关建立与第一网关通信的IPSec隧道。
由于本发明实施例中的中心设备可以用于执行上述方法流程,因此,其所能获得的技术效果也可参考上述方法实施例,本发明实施例在此不再赘述。
应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文全称:read-only memory,英文简称:ROM)、随机存取存储器(英文全称:random access memory,英文简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (21)
1.一种报文转发的方法,其特征在于,包括:
第一网关获取第一报文,所述第一报文的网际协议IP首部为第一IP首部,所述第一IP首部的源IP地址为所述第一网关的私网IP地址,所述第一IP首部的目的IP地址为第二网关的私网IP地址,所述第一网关通过第一网络地址转换NAT设备与公网通信,所述第二网关通过第二NAT设备与公网通信;
所述第一网关依次在所述第一报文外层封装用户数据报协议UDP首部和第二IP首部,获得第二报文,所述第二IP首部的源IP地址为所述第一网关的私网IP地址,所述第二IP首部的目的IP地址为中心设备的公网IP地址,所述第二NAT设备中存在第一表项,所述第一表项用于指示所述第二NAT设备将源IP地址为所述中心设备的公网IP地址且目的IP地址为所述第二网关的公网IP地址的报文发送给所述第二网关;
所述第一网关将所述第二报文发送给第一NAT设备,所述第二报文被所述第一NAT设备用于生成第三报文,所述第二报文的净荷与所述第三报文的净荷相同,所述第三报文的IP首部为第三IP首部,所述第三IP首部的源IP地址为所述第一网关的公网IP地址,所述第三IP首部的目的IP地址为所述中心设备的公网IP地址,所述第三报文在所述第一NAT设备到所述中心设备的链路中传输。
2.根据权利要求1所述的方法,其特征在于,所述第一报文为网际协议安全性IPSec报文,所述第一网关获取所述第一报文之前,所述方法还包括,
所述第一网关建立与所述第二网关通信的IPSec隧道。
3.根据权利要求1所述的方法,其特征在于,所述第一报文为网际密钥交换协议IKE报文,所述IKE报文用于指示所述第二网关建立与所述第一网关通信的IPSec隧道。
4.根据权利要求1至3任一所述的方法,其特征在于,所述第一网关获取第一报文之前,所述方法还包括:
所述第一网关向所述中心设备发送下一跳解析协议NHRP注册报文,所述NHRP注册报文中携带所述第一网关的私网IP地址以及所述中心设备的公网IP地址,所述NHRP注册报文用于指示所述第一NAT设备生成第二表项,所述第二表项用于指示所述第一NAT设备将源IP地址为所述中心设备的公网IP地址且目的IP地址为所述第一网关的公网IP地址的报文发送给所述第一网关。
5.根据权利要求1至3任一所述的方法,其特征在于,所述方法进一步包括:
所述第一网关接收第四报文,所述第四报文为UDP报文,所述第四报文的源IP地址为所述中心设备的公网IP地址;
所述第一网关解封装所述第四报文的UDP首部,获得第五报文,所述第五报文的源IP地址为所述第二网关的私网IP地址,所述第五报文的目的IP地址为所述第一网关的私网IP地址;
所述第一网关根据所述第五报文的类型对所述第五报文进行处理。
6.根据权利要求5所述的方法,所述第五报文为IPSec报文,或者所述第五报文为IKE报文。
7.一种报文转发的方法,其特征在于,包括:
中心设备接收来自第一网络地址转换NAT设备的第一报文,所述第一报文为用户数据报协议UDP报文,所述第一报文的网际协议IP首部为第一IP首部,所述第一IP首部的源IP地址为第一网关的公网IP地址,所述第一IP首部的目的IP地址为所述中心设备的公网IP地址;
所述中心设备解封装所述第一报文的UDP首部,获得第二报文,所述第二报文的IP首部为第二IP首部,所述第二IP首部的源IP地址为所述第一网关的私网IP地址,所述第二报文的目的IP地址为第二网关的私网IP地址;
所述中心设备根据所述第二网关的私网IP地址到所述第二网关的公网IP地址的映射,获取所述第二网关的公网IP地址;
所述中心设备在所述第二报文外层封装UDP首部和第三IP首部,获得第三报文,所述第三IP首部的目的IP地址为所述第二网关的公网IP地址,所述第三IP首部的源IP地址为所述中心设备的IP地址;
所述中心设备发送所述第三报文。
8.根据权利要求7所述的方法,其特征在于,所述第二报文为网际协议安全性IPSec报文。
9.根据权利要求7所述的方法,其特征在于,所述第二报文为IKE报文,所述网际密钥交换协议IKE报文用于指示所述第二网关建立与所述第一网关通信的IPSec隧道。
10.一种第一网关,其特征在于,包括:
获取单元,用于获取第一报文,所述第一报文的网际协议IP首部为第一IP首部,所述第一IP首部的源IP地址为所述第一网关的私网IP地址,所述第一IP首部的目的IP地址为第二网关的私网IP地址,所述第一网关通过第一网络地址转换NAT设备与公网通信,所述第二网关通过第二NAT设备与公网通信;
封装单元,用于依次在所述获取单元获取第一报文外层封装用户数据报协议UDP首部和第二IP首部,获得第二报文,所述第二IP首部的源IP地址为所述第一网关的私网IP地址,所述第二IP首部的目的IP地址为中心设备的公网IP地址,所述第二NAT设备中存在第一表项,所述第一表项用于指示所述第二NAT设备将源IP地址为所述中心设备的公网IP地址且目的IP地址为所述第二网关的公网IP地址的报文发送给所述第二网关;
发送单元,用于将所述封装单元获得的所述第二报文发送给第一NAT设备,所述第二报文被所述第一NAT设备用于生成第三报文,所述第二报文的净荷与所述第三报文的净荷相同,所述第三报文的IP首部为第三IP首部,所述第三IP首部的源IP地址为所述第一网关的公网IP地址,所述第三IP首部的目的IP地址为所述中心设备的公网IP地址,所述第三报文在所述第一NAT设备到所述中心设备的链路中传输。
11.根据权利要求10所述的第一网关,其特征在于,所述第一报文为网际协议安全性IPSec报文,所述第一网关还包括:
建立单元,用于所述获取单元获取所述第一报文之前,所述第一网关建立与所述第二网关通信的IPSec隧道。
12.根据权利要求10所述的第一网关,其特征在于,所述第一报文为网际密钥交换协议IKE报文,所述IKE报文用于指示所述第二网关建立与所述第一网关通信的IPSec隧道。
13.根据权利要求10至12任一所述的第一网关,其特征在于,所述发送单元还用于:
向所述中心设备发送下一跳解析协议NHRP注册报文,所述NHRP注册报文中携带所述第一网关的私网IP地址以及所述中心设备的公网IP地址,所述NHRP注册报文用于指示所述第一NAT设备生成第二表项,所述第二表项用于指示所述第一NAT设备将源IP地址为所述中心设备的公网IP地址且目的IP地址为所述第一网关的公网IP地址的报文发送给所述第一网关。
14.根据权利要求10至12任一所述的第一网关,其特征在于,所述第一网关还包括:
接收单元,用于接收第四报文,所述第四报文为UDP报文,所述第四报文的源IP地址为所述中心设备的公网IP地址;
解封装单元,用于解封装所述接收单元接收的所述第四报文的UDP首部,获得第五报文,所述第五报文的源IP地址为第二网关的私网IP地址,所述第五报文的目的IP地址为所述第一网关的私网IP地址;
处理单元,用于根据所述解封装单元得到的所述第五报文的类型对所述第五报文进行处理。
15.根据权利要求14所述的第一网关,所述第五报文为IPSec报文,或者所述第五报文为IKE报文。
16.一种中心设备,其特征在于,包括:
接收单元,用于接收来自第一网络地址转换NAT设备的第一报文,所述第一报文为用户数据报协议UDP报文,所述第一报文的网际协议IP首部为第一IP首部,所述第一IP首部的源IP地址为第一网关的公网IP地址,所述第一IP首部的目的IP地址为所述中心设备的公网IP地址;
解封装单元,用于解封装所述接收单元接收到的所述第一报文的UDP首部,获得第二报文,所述第二报文的IP首部为第二IP首部,所述第二IP首部的源IP地址为所述第一网关的私网IP地址,所述第二报文的目的IP地址为第二网关的私网IP地址;
获取单元,用于根据所述第二网关的私网IP地址到所述第二网关的公网IP地址的映射,获取所述第二网关的公网IP地址;
封装单元,用于对所述解封装单元得到的第二报文外层封装UDP首部和第三IP首部,获得第三报文,所述第三IP首部的目的IP地址为所述第二网关的公网IP地址,所述第三IP首部的源IP地址为所述中心设备的IP地址;
发送单元,用于发送所述第三报文。
17.根据权利要求16所述的中心设备,其特征在于,所述第二报文为IPSec报文。
18.根据权利要求16所述的中心设备,其特征在于,所述第二报文为IKE报文,所述IKE报文用于指示所述第二网关建立与所述第一网关通信的IPSec隧道。
19.一种第一网关,其特征在于,包括处理器和接口电路;所述处理器用于执行以下操作:
获取第一报文,所述第一报文的网际协议IP首部为第一IP首部,所述第一IP首部的源IP地址为所述第一网关的私网IP地址,所述第一IP首部的目的IP地址为第二网关的私网IP地址,所述第一网关通过第一网络地址转换NAT设备与公网通信,所述第二网关通过第二NAT设备与公网通信;
依次在第一报文外层封装用户数据报协议UDP首部和第二IP首部,获得第二报文,所述第二IP首部的源IP地址为所述第一网关的私网IP地址,所述第二IP首部的目的IP地址为中心设备的公网IP地址,所述第二NAT设备中存在第一表项,所述第一表项用于指示所述第二NAT设备将源IP地址为所述中心设备的公网IP地址且目的IP地址为所述第二网关的公网IP地址的报文发送给所述第二网关;
通过所述接口电路将所述第二报文发送给第一NAT设备,所述第二报文被所述第一NAT设备用于生成第三报文,所述第二报文的净荷与所述第三报文的净荷相同,所述第三报文的IP首部为第三IP首部,所述第三IP首部的源IP地址为所述第一网关的公网IP地址,所述第三IP首部的目的IP地址为所述中心设备的公网IP地址,所述第三报文在所述第一NAT设备到所述中心设备的链路中传输。
20.一种中心设备,其特征在于,包括处理器和接口电路;所述处理器用于执行以下操作:
通过所述接口电路接收来自第一网络地址转换NAT设备的第一报文,所述第一报文为用户数据报协议UDP报文,所述第一报文的网际协议IP首部为第一IP首部,所述第一IP首部的源IP地址为第一网关的公网IP地址,所述第一IP首部的目的IP地址为所述中心设备的公网IP地址;
解封装所述第一报文的UDP首部,获得第二报文,所述第二报文的IP首部为第二IP首部,所述第二IP首部的源IP地址为所述第一网关的私网IP地址,所述第二报文的目的IP地址为第二网关的私网IP地址;
根据所述第二网关的私网IP地址到所述第二网关的公网IP地址的映射,获取所述第二网关的公网IP地址;
对所述第二报文外层封装UDP首部和第三IP首部,获得第三报文,所述第三IP首部的目的IP地址为所述第二网关的公网IP地址,所述第三IP首部的源IP地址为所述中心设备的IP地址;
通过所述接口电路发送所述第三报文。
21.一种报文转发系统,包括如权利要求10-15任一项所述的第一网关以及如权利要求16-18任一项所述的中心设备;
或者,
包括如权利要求19所述的第一网关以及如权利要求20所述的中心设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610250035.XA CN107306198B (zh) | 2016-04-20 | 2016-04-20 | 报文转发方法、设备和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610250035.XA CN107306198B (zh) | 2016-04-20 | 2016-04-20 | 报文转发方法、设备和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107306198A CN107306198A (zh) | 2017-10-31 |
CN107306198B true CN107306198B (zh) | 2019-12-06 |
Family
ID=60152443
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610250035.XA Active CN107306198B (zh) | 2016-04-20 | 2016-04-20 | 报文转发方法、设备和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107306198B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101988130B1 (ko) * | 2017-11-21 | 2019-09-30 | 두산중공업 주식회사 | 배전망 및 그리드망에서의 노드관리 게이트웨이 장치 및 그 방법 |
CN109981534B (zh) * | 2017-12-27 | 2021-03-05 | 华为技术有限公司 | 一种认证方法、设备及系统 |
CN108769292B (zh) * | 2018-06-29 | 2021-04-13 | 北京百悟科技有限公司 | 报文数据处理方法及装置 |
CN110912859B (zh) * | 2018-09-17 | 2021-12-14 | 华为技术有限公司 | 发送报文的方法、接收报文的方法及网络设备 |
CN110086702B (zh) * | 2019-04-04 | 2021-09-21 | 杭州迪普科技股份有限公司 | 报文转发方法、装置、电子设备及机器可读存储介质 |
CN111416762B (zh) * | 2020-02-28 | 2021-06-04 | 联想(北京)有限公司 | 一种建立网络隧道的方法、装置、系统及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7155740B2 (en) * | 2000-07-13 | 2006-12-26 | Lucent Technologies Inc. | Method and apparatus for robust NAT interoperation with IPSEC'S IKE and ESP tunnel mode |
CN101488904A (zh) * | 2009-02-27 | 2009-07-22 | 杭州华三通信技术有限公司 | Gre隧道穿越网络地址转换设备的方法和网络地址转换设备 |
CN101567831A (zh) * | 2008-04-21 | 2009-10-28 | 成都市华为赛门铁克科技有限公司 | 局域网之间发送、接收信息的方法和装置以及通信的系统 |
CN103780492A (zh) * | 2012-10-25 | 2014-05-07 | 华为技术有限公司 | 报文转发的方法和相应设备 |
-
2016
- 2016-04-20 CN CN201610250035.XA patent/CN107306198B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7155740B2 (en) * | 2000-07-13 | 2006-12-26 | Lucent Technologies Inc. | Method and apparatus for robust NAT interoperation with IPSEC'S IKE and ESP tunnel mode |
CN101567831A (zh) * | 2008-04-21 | 2009-10-28 | 成都市华为赛门铁克科技有限公司 | 局域网之间发送、接收信息的方法和装置以及通信的系统 |
CN101488904A (zh) * | 2009-02-27 | 2009-07-22 | 杭州华三通信技术有限公司 | Gre隧道穿越网络地址转换设备的方法和网络地址转换设备 |
CN103780492A (zh) * | 2012-10-25 | 2014-05-07 | 华为技术有限公司 | 报文转发的方法和相应设备 |
Also Published As
Publication number | Publication date |
---|---|
CN107306198A (zh) | 2017-10-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11283772B2 (en) | Method and system for sending a message through a secure connection | |
CN107306198B (zh) | 报文转发方法、设备和系统 | |
US9369550B2 (en) | Protocol for layer two multiple network links tunnelling | |
US8179890B2 (en) | Mobile IP over VPN communication protocol | |
JP4407452B2 (ja) | サーバ、vpnクライアント、vpnシステム、及びソフトウェア | |
US10044841B2 (en) | Methods and systems for creating protocol header for embedded layer two packets | |
US9473466B2 (en) | System and method for internet protocol security processing | |
CN111903105A (zh) | 多路复用安全隧道 | |
JP6075871B2 (ja) | ネットワークシステム、通信制御方法、通信制御装置及び通信制御プログラム | |
CN117254976B (zh) | 基于VPP的国标IPsec VPN实现方法、装置、系统及电子设备 | |
Zhang | The solution and management of VPN based IPSec technology | |
WO2015003379A1 (zh) | 一种数据通信方法、设备和系统 | |
CN115766063A (zh) | 数据传输方法、装置、设备及介质 | |
CN114338116A (zh) | 加密传输方法、装置及sd-wan网络系统 | |
JP2006033350A (ja) | 代理セキュアルータ装置及びプログラム | |
Cui et al. | Softwire Mesh Management Information Base (MIB) | |
JP2010278638A (ja) | トンネル通信装置及び方法 | |
Cui et al. | RFC 7856: Softwire Mesh Management Information Base (MIB) | |
JP2005252464A (ja) | 通信方法、通信端末装置およびゲートウェイ装置 |
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 |