CN113472622A - 一种网络中传输业务的方法和设备 - Google Patents
一种网络中传输业务的方法和设备 Download PDFInfo
- Publication number
- CN113472622A CN113472622A CN202010238369.1A CN202010238369A CN113472622A CN 113472622 A CN113472622 A CN 113472622A CN 202010238369 A CN202010238369 A CN 202010238369A CN 113472622 A CN113472622 A CN 113472622A
- Authority
- CN
- China
- Prior art keywords
- network device
- ipsec
- network
- ipsec tunnel
- tunnel
- 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
- 238000000034 method Methods 0.000 title claims abstract description 253
- 230000004044 response Effects 0.000 claims abstract description 19
- 238000004891 communication Methods 0.000 claims description 65
- 230000015654 memory Effects 0.000 claims description 40
- 230000002159 abnormal effect Effects 0.000 claims description 6
- 238000012545 processing Methods 0.000 abstract description 54
- 230000005540 biological transmission Effects 0.000 description 21
- 230000008569 process Effects 0.000 description 19
- 235000019580 granularity Nutrition 0.000 description 18
- 238000010586 diagram Methods 0.000 description 17
- 238000012544 monitoring process Methods 0.000 description 16
- COCAUCFPFHUGAA-MGNBDDOMSA-N n-[3-[(1s,7s)-5-amino-4-thia-6-azabicyclo[5.1.0]oct-5-en-7-yl]-4-fluorophenyl]-5-chloropyridine-2-carboxamide Chemical compound C=1C=C(F)C([C@@]23N=C(SCC[C@@H]2C3)N)=CC=1NC(=O)C1=CC=C(Cl)C=N1 COCAUCFPFHUGAA-MGNBDDOMSA-N 0.000 description 13
- 230000003993 interaction Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 8
- 238000004590 computer program Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 6
- 230000032683 aging Effects 0.000 description 5
- 238000005538 encapsulation Methods 0.000 description 5
- 230000011664 signaling Effects 0.000 description 5
- 238000005457 optimization Methods 0.000 description 4
- 230000006855 networking Effects 0.000 description 3
- 229920006235 chlorinated polyethylene elastomer Polymers 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000000136 cloud-point extraction Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
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
-
- 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
-
- 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/50—Address allocation
- H04L61/5007—Internet protocol [IP] addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/029—Firewall traversal, e.g. tunnelling or, creating pinholes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本申请实施例公开了一种网络中传输业务的方法和设备,该方法包括:第一网络设备接收第一业务流的第一业务报文;响应于接收到第一业务报文,第一网络设备建立和第二网络设备之间直连的第一IPSec隧道;那么,第一网络设备接收第一业务流的第二业务报文时,即可通过第一IPSec隧道向第二网络设备发送所述第二业务报文。这样,控制器在网络中建立IPSec隧道时,不再建立全连接的IPSec隧道,而是合理的建立部分网络设备之间IPSec隧道,其他网络设备之间的IPSec隧道在有业务需求时才建立,能够一定程度上降低对网络中部分网络设备存储和处理能力的需求,从而能够有效的节约网络的部署成本。
Description
技术领域
本申请涉及通信技术领域,特别是涉及一种网络中传输业务的方法和设备,该方法基于互联网协议安全(英文:Internet Protocol Secrutity,IPSec)隧道传输业务,实现该网络中各网络设备上资源的合理利用。
背景技术
IPSec是互联网工程任务组(英文:Internet Engineering Task Force,简称:IETF)制定的一组框架协议,通过使用加密的安全传输通道,保障互联网上通信的安全性。
目前,考虑到通过IKE协议协商建立IPSec隧道,需要网络设备之间交互多个会话消息,对于包括众多网络设备的大规模网络而言过程复杂繁琐,所以,采用控制器替代IKE协议,由该控制器实现网络设备之间IPSec隧道的建立。具体实现时,控制器需要先与网络中的所有网络设备均建立安全通道,控制器将各个网络设备支持的IPSec安全联盟(英文:Security Association,简称:SA)参数信息发送给该网络中的其他网络设备,每个网络网络设备与该网络中的其他所有网络设备之间均创建IPSec SA,从而使得该网络中的每两个网络设备之间均建立了IPSec隧道。
但是,目前采用控制器建立IPSec隧道,网络中每两个网络设备之间均建立IPSec隧道,需要网络中各个网络设备都保存大量的IPSec SA,即,要求网络中部署的所有网络设备均具有较强的存储以及处理能力,网络部署成本较高。基于此,如何提供一种网络中传输业务的方法,能够使得采用控制器实现IPSec隧道建立时,降低对网络设备存储和处理能力的需求,从而降低网络的部署成本。
发明内容
基于此,本申请实施例提供了一种网络中传输业务的方法和设备,控制器能够针对网络设备在网络中部署的特点和实际而业务需求,合理、灵活的实现IPSec隧道的建立,使得该网络中无需全部部署支持较强存储及处理能力的网络设备,节约了网络部署的成本。
第一方面,本申请实施例中一种网络中传输业务的方法,该方法由第一网络设备实施,该方法例如可以包括:第一网络设备接收第一业务流的第一业务报文;响应于接收到所述第一业务报文,第一网络设备建立和所述第二网络设备之间直连的第一IPSec隧道;那么,第一网络设备接收所述第一业务流的第二业务报文时,即可通过所述第一IPSec隧道向所述第二网络设备发送所述第二业务报文。这样,控制器在网络中建立IPSec隧道时,不再建立全连接的IPSec隧道,而是合理的建立部分网络设备之间IPSec隧道,其他网络设备之间的IPSec隧道在有业务需求时才建立,能够一定程度上降低对网络中部分网络设备存储和处理能力的需求,从而能够有效的节约网络的部署成本。
作为一个示例,所述第一网络设备和所述第二网络设备可以均为分支Spoke节点,第一网络设备和第二网络设备均与第三网络设备连接,第三网络设备可以为Hub节点。
在一种可能的实施方式中,第一网络设备建立和所述第二网络设备之间直连的第一IPSec隧道,具体可以包括:第一网络设备向控制器发送第一消息,所述第一消息用于请求在所述第一网络设备和所述第二网络设备之间建立所述直连的第一IPSec隧道;第一网络设备接收所述控制器发送的第二消息,所述第二消息中携带所述第二网络设备的第二IPSec SA参数信息;第一网络设备基于自身保存的第一IPSec SA参数信息和所述第二IPSec SA参数信息,确定第一IPSec SA和第二IPSec SA,其中,所述第一IPSec SA用于对从所述第一网络设备到所述第二网络设备传输的报文进行安全保护,所述第二IPSec SA用于对从所述第二网络设备到所述第一网络设备传输的报文进行安全保护;第一网络设备基于所述第一IPSec SA和所述第二IPSec SA,建立所述第一IPSec隧道。
此外,该实施方式中,在控制器接收到第一网络设备发送的第一消息之后,控制器还可以向第二网络设备发送第三消息,该第三消息中携带所述第一网络设备的第一IPSecSA参数信息,该第三消息用于指示第二网络设备基于自身保存的第二IPSec SA参数信息和所述第一IPSec SA参数信息,确定第一IPSec SA和第二IPSec SA,从而第而网络设备基于所述第一IPSec SA和所述第二IPSec SA,建立所述第一IPSec隧道。
其中,所述第一消息、所述第二消息和第三消息均属于边界网关协议更新BGPUPDATE消息。
第一消息包括第一业务报文的源IP地址、目的IP地址以及第一网络设备连接的局域网LAN网络的网段地址,此外,第一消息还可以包括:第一网络设备的环回地址和/或第一网络设备的广域网端口WAN Port的IP地址。第一网络设备还可以携带第一网络设备的第一IPSec SA。其中,第一消息可以扩展新的扩展属性,通过该新的扩展属性携带上述内容。
第二消息可以包括网络层可达信息NLRI字段,所述NLRI字段包括隧道类型TunnelType字段,终点地址endpoint address字段和所述第二IPSec SA参数信息,其中,所述Tunnel Type字段指示隧道的类型为IPSec隧道,所述endpoint address字段用于携带所述第二网络设备的IP地址。
第三消息可以包括网络层可达信息NLRI字段,所述NLRI字段包括隧道类型TunnelType字段,终点地址endpoint address字段和所述第一IPSec SA参数信息,其中,所述Tunnel Type字段指示隧道的类型为IPSec隧道,所述endpoint address字段用于携带所述第一网络设备的IP地址。
作为一个示例,在第一网络设备建立和所述第二网络设备之间直连的第一IPSec隧道之前,该方法还可以包括:第一网络设备通过第三网络设备向所述第二网络设备发送所述第一业务报文,其中,所述第三网络设备为中心Hub节点,所述第一网络设备与所述第三网络设备之间通过第二IPsec隧道直连,所述第二网络设备通过第三IPsec隧道与所述第三网络设备直连。
可见,通过该实施方式,响应于业务需求,第一网络设备可以动态向控制器发送消息,以请求控制器在其与第二网络设备之间建立直连的IPSec隧道,既可以实现由控制器在网络中灵活的建立网络设备之间的IPSec隧道,无需网络设备之间基于IKE协议进行复杂的消息交互建立IPSec隧道,使得网络中建立IPSec隧道的过程简单、快速;而且,控制器会基于网络中各网络设备的特点,在合适的时机合理的建立IPSec隧道,而不是在网络中建立全连接的IPSec隧道,使得部分网络设备可以选择部署存储和处理能力一般的网络设备,一定程度上节约了网络部署的成本。优选的,对于SD-WAN等Hub-Spoke流量模型而言,能够使得支持较多数量IPSec隧道的Hub节点和支持较少数量IPSec隧道的Spoke节点部署在同一网络中,且可以由控制器代替IKE协议进行网络设备之间IPSec隧道的管理,实现了在网络中更加智能、方便和快速的传输业务。
在另一种可能的实施方式中,第一网络设备建立和所述第二网络设备之间直连的第一IPSec隧道,具体还可以包括:第一网络设备通过第三网络设备向所述第二网络设备发送第三业务报文,所述第三业务报文携带第一IPSec SA参数信息,所述第一IPSec SA参数信息用于确定第一IPSec SA,所述第一IPSec SA用于对从所述第一网络设备到所述第二网络设备传输的报文进行安全保护;其中,所述第一网络设备通过第二IPsec隧道与所述第三网络设备直连,所述第二网络设备通过第三IPsec隧道与所述第三网络设备直连;接着,第一网络设备通过所述第三网络设备接收所述第二网络设备发送的第四业务报文,所述第四业务报文携带第二IPSec SA参数信息,所述第二IPSec SA参数信息用于确定第二IPSecSA,所述第二IPSec SA用于对从所述第二网络设备到所述第一网络设备传输的报文进行安全保护;第一网络设备基于所述第一IPSec SA参数信息和所述第二IPSec SA参数信息,确定所述第一IPSec SA和所述第二IPSec SA;那么,第一网络设备基于所述第一IPSec SA和所述第二IPSec SA,建立所述第一IPSec隧道。
作为一个示例,第三业务报文可以通过扩展的第一报文头携带所述第一IPSec SA参数信息;第四业务报文包括扩展的第二报文头,所述扩展的第二报文头携带所述第二IPSec SA参数信息。
可见,通过该实施方式,响应于业务需求,网络设备可以将自身的IPSec SA参数信息携带在待发送的业务报文中,通过当前存在的IPSec隧道中转给对端网络设备,以便对端网络设备基于该IPSec SA参数信息确定IPSec SA,而且,对端网络设备执行相同的操作,实现在网络中灵活的建立网络设备之间的IPSec隧道,无需网络设备之间基于IKE协议进行复杂的消息交互建立IPSec隧道,使得网络中建立IPSec隧道的过程简单、快速;而且,控制器基于网络中各网络设备的特点,在合适的时机合理的建立部分IPSec隧道,而不是在网络中建立全连接的IPSec隧道,使得部分网络设备可以选择部署存储和处理能力一般的网络设备,一定程度上节约了网络部署的成本。优选的,对于SD-WAN等Hub-Spoke流量模型而言,能够使得支持较多数量IPSec隧道的Hub节点和支持较少数量IPSec隧道的Spoke节点部署在同一网络中,且可以由控制器代替IKE协议进行网络设备之间IPSec隧道的管理,实现了在网络中更加智能、方便和快速的传输业务。
在再一些实现方式中,第一网络设备通过所述第一IPSec隧道向所述第二网络设备发送所述第二业务报文,具体可以包括:第一网络设备根据与所述第一IPSec隧道关联的第一路由表项,确定通过所述第一IPSec隧道向所述第二网络设备发送所述第二业务报文,所述第一路由表项的下一跳为所述第二网络设备。
作为一个示例,该方法还可以包括:在预设第一时长内通过所述第一IPSec隧道传输的报文数量小于或者等于第一阈值时,所述第一网络设备老化所述第一路由表项;或者,在所述第一IPSec隧道建立时长达到第二时长时,所述第一网络设备删除所述第一IPSec隧道相关联的IPSec SA,所述第二时长为预设的所述第一IPSec隧道的可用时长。其中,老化第一路由表项,一种情况下,可以是指将该第一路由表项从第一网络设备本地删除,另一种情况下,也可以是指将该第一路由表项关联的第一IPSec隧道的状态设置为不可用。同理,删除与第一IPSec隧道相关的第一IPSec SA和第二IPSec SA,一种情况下,可以是指将该第一IPSec SA和第二IPSec SA从第一网络设备本地删除,另一种情况下,也可以是指将该第一IPSec SA和第二IPSec SA均设置为不可用状态。
这样,通过监测第一IPSec隧道上的使用情况,并根据监测结果对第一IPSec隧道继续保持还是拆除进行决策,对利用率低的临时IPSec隧道进行有效的管理,及时对网络中的资源进行优化,使得本申请实施例提供的网络中传输业务的方法更加智能。
在又一些可能的实现方式中,该方法还可以包括:统计临时建立的各直连IPSec隧道的使用情况,获得统计信息,并基于统计信息对网络中的IPSec隧道进行优化管理。
作为一个示例,该方法对网络中的IPSec隧道进行优化管理具体可以包括:第一网络设备统计所述第一网络设备和所述第二网络设备之间建立的非常连接的各直连IPSec隧道的使用情况,获得统计信息;接着,第一网络设备确定所述各直连IPSec隧道的使用情况满足预设条件,则,将与所述第二网络设备之间直连的第四IPSec隧道设置为常连接的IPSec隧道。
作为另一个示例,该方法对网络中的IPSec隧道进行优化管理具体还可以包括:第一网络设备统计所述第一网络设备和所述第二网络设备之间建立的非常连接的各直连IPSec隧道的使用情况,获得统计信息;第一网络设备向所述控制器发送第三消息,所述第三消息携带所述统计信息;第一网络设备接收所述控制器发送的第四消息,所述第四消息为所述控制器确定所述各直连IPSec隧道的使用情况满足预设条件时生成的,所述第四消息用于指示所述第一网络设备与所述第二网络设备之间建立常连接的直连IPSec隧道;第一网络设备将与所述第二网络设备之间直连的第四IPSec隧道设置为常连接的IPSec隧道。
其中,所述统计信息包括以下至少一项:所述各直连IPSec隧道的建立频率;所述各直连IPSec隧道的平均流量。当所述统计信息包括所述各直连IPSec隧道的建立频率,则,所述预设条件包括:所述建立频率大于或等于第二阈值。当所述统计信息包括所述各直连IPSec隧道的平均流量,则,所述预设条件包括:所述平均流量大于或等于第三阈值。
可见,该实施例中,通过统计各网络设备上临时建立的各条直连IPSec隧道的使用情况,获得统计信息,并基于统计信息对网络中的IPSec隧道进行优化管理,适应性的调整临时连接的IPSec隧道和常连接的IPSec隧道,实现对网络中各IPSec隧道的优化管理,提高网络中资源利用率。优选的,对于SD-WAN等Hub-Spoke流量模型而言,对于传输业务报文较为频繁的Hub节点和Spoke节点之间建立常连接的IPSec隧道,而对于传输业务报文较少的Spoke节点之间则基于业务需求动态建立直连的IPSec隧道,且基于各网络设备的使用情况对管理IPSec隧道的策略进行灵活的调整,使得该场景下网络中传输业务更加智能和合理。
第二方面,本申请实施例还提供了一种网络中传输业务的方法,该方法由控制器实施,该方法例如可以包括:控制器接收第一网络设备发送的第一消息,所述第一消息用于请求在所述第一网络设备和第二网络设备之间建立直连的IPSec隧道,其中,基于预配置策略,在所述第一网络设备与第三网设备之间建立有直连的第一IPSec隧道,在所述第二网络设备与所述第三网络设备之间建立有直连的第二IPSec隧道,所述第一网络设备和所述第二网络设备之间没有建立直连的IPSec隧道;控制器向所述第一网络设备发送第二消息,所述第二消息中携带所述第二网络设备的第一IPSec SA参数信息,所述第一IPSec SA参数信息被所述第一网络设备用于建立与所述第二网络设备之间直连的第三IPSec隧道;控制器向所述第二网络设备发送第三消息,所述第三消息中携带所述第一网络设备的第二IPSecSA参数信息,所述第二IPSec SA参数信息被所述第二网络设备用于建立与所述第一网络设备之间直连的所述第三IPSec隧道。
其中,第一网络设备和所述第二网络设备均可以为分支Spoke节点,所述第三网络设备可以为中心Hub节点。
其中,所述第一消息、所述第二消息和所述第三消息为边界网关协议更新BGPUPDATE消息。
作为一个示例,在所述控制器发送所述第二消息和所述第三消息之前,该方法还可以包括:控制器获得所述第一网络设备当前可用IPSec隧道的第一数量和所述第二网络设备上当前可用IPSec隧道的第二数量;控制器确定所述第一数量小于或等于第一阈值以及所述第二数据小于或等于第二阈值,其中,所述第一阈值为所述第一网络设备上最多允许建立IPSec隧道的数量,所述第二阈值为所述第二网络设备上最多允许建立IPSec隧道的数量。这样,控制器能够统筹考虑各个网络设备当前所能承担的存储和处理等能力,确定是否允许第一网络设备和第二网络设备之间建立直连的第一IPSec隧道,使得该方法更加智能和可靠。
在一些可能的实施方式中,该方法还可以包括:控制器接收所述第一网络设备发送的第四消息,所述第四消息携带统计信息,所述统计信息用于指示所述第一网络设备和所述第二网络设备之间建立的各非常连接的直连IPSec隧道的使用情况;控制器确定所述统计信息满足预设条件,则,更新所述预配置策略,获得更新的配置策略;所述控制器按照所述更新的配置策略,指示所述第一网络设备与所述第二网络设备之间建立常连接的第四IPSec隧道。
其中,所述统计信息包括以下至少一种:所述各直连IPSec隧道的建立频率;所述各直连IPSec隧道的平均流量。那么,当所述统计信息包括所述各直连IPSec隧道的建立频率,所述预设条件包括所述建立频率大于或等于第三阈值。当所述统计信息包括所述各直连IPSec隧道的平均流量,所述预设条件包括所述平均流量大于或等于第四阈值。
需要说明的是,该第二方面提供的方法与第一方面提供的方法相对应,具体实现方式以及达到的效果可以参见上述第一方面提供的方法中的相关说明。
第三方面,本申请实施例中还提供了一种网络中传输业务的方法,该方法由第二网络设备实施,该方法例如可以包括:第二网络设备通过第三网络设备接收第一网络设备发送的第一业务报文,所述第一网络设备与所述第三网络设备之间通过第一IPsec隧道直连,所述第二网络设备与所述第三网络设备通过第二IPsec隧道直连,所述第一业务报文中携带所述第一网络设备的第一IPSec SA参数信息;第二网络设备基于自身保存的第二IPSec SA参数信息和所述第一IPSec SA参数信息,建立与所述第一网络设备之间直连的第三IPSec隧道;第二网络设备接收第二业务报文;第二网络设备通过所述第三IPSec隧道向所述第一网络设备发送所述第二业务报文。
其中,所述第一网络设备和所述第二网络设备均可以为分支Spoke节点,所述第三网络设备可以为中心Hub节点。
作为一个示例,第二网络设备基于自身保存的第二IPSec SA参数信息和所述第一IPSec SA参数信息,建立与所述第一网络设备之间直连的第三IPSec隧道,具体可以包括:第二网络设备根据所述第一IPSec SA参数信息和所述第二IPSec SA参数信息,确定第一IPSec SA和第二IPSec SA,其中,所述第一IPSec SA用于对从所述第一网络设备到所述第二网络设备传输的报文进行安全保护,所述第二IPSec SA用于对从所述第二网络设备到所述第一网络设备传输的报文进行安全保护;第二网络设备基于所述第一IPSec SA和所述第二IPSec SA,建立所述第三IPSec隧道。
在一些可能的实施方式中,在所述第二网络设备通过所述第三IPSec隧道向所述第一网络设备发送所述第二业务报文之前,所述方法还可以包括:第二网络设备通过所述第三网络设备向所述第一网络设备发送第三业务报文,所述第三业务报文中携带所述第二网络设备的所述第二IPSec SA参数信息,所述第二IPSec SA参数信息被所述第一网络设备用于建立与所述第二网络设备之间直连的所述第三IPSec隧道。
作为一个示例,所述第二网络设备通过所述第三IPSec隧道向所述第一网络设备发送所述第二业务报文,具体可以包括:第二网络设备根据与所述第三IPSec隧道关联的第一路由表项,确定通过所述第三IPSec隧道向所述第一网络设备发送所述第二业务报文。
其中,所述第一业务报文通过扩展的报文头携带所述第一IPSec SA参数信息。
需要说明的是,该第三方面提供的方法与第一方面提供的方法相对应,具体实现方式以及达到的效果可以参见上述第一方面提供的方法中的相关说明。
第四方面,本申请实施例还提供了一种网络设备。该网络设备包括收发单元和处理单元。其中,收发单元用于执行上述第一方面提供的方法中第一网络设备实施的收发操作;处理单元用于执行上述第一方面提供的方法中第一网络设备实施的除了收发操作以外的其他操作。例如:当所述网络设备执行所述第一方面中第一网络设备所实施的方法时,所述收发单元可以用于接收第一业务流的第一业务报文,还可以用于接收第二业务报文,还可以用于基于第一IPSec隧道发送第二业务报文;所述处理单元可以用于响应于接收的第一业务报文,和第二网络设备建立直连的第一IPSec隧道。
第五方面,本申请实施例还提供了网络设备,该网络设备包括收发单元和处理单元。其中,收发单元用于执行上述第三方面提供的方法中第二网络设备实施的收发操作;处理单元用于执行上述第三方面提供的方法中第二网络设备实施的除了收发操作以外的其他操作。例如:当所述网络设备执行所述第三方面中第二网络设备所实施的方法时,所述收发单元可以用于通过第三网络设备接收第一网络设备发送的第一业务报文;所述处理单元可以用于基于自身保存的第二IPSec SA参数信息和所述第一IPSec SA参数信息,建立与所述第一网络设备之间直连的第三IPSec隧道。
第六方面,本申请实施例还提供了控制器,该控制器包括收发单元和处理单元。其中,收发单元用于执行上述第二方面提供的方法中控制器实施的收发操作;处理单元用于执行上述第二方面提供的方法中控制器实施的除了收发操作以外的其他操作。例如:当所述控制器执行所述第二方面中控制器所实施的方法时,所述收发单元可以用于接收第一网络设备发送的第一消息,还用于向所述第一网络设备发送第二消息,还用于向所述第二网络设备发送第三消息;所述处理单元可以用于获得所述第一网络设备当前可用IPSec隧道的第一数量和所述第二网络设备上当前可用IPSec隧道的第二数量,还可以用于确定所述第一数量小于或等于第一阈值以及所述第二数据小于或等于第二阈值。
第七方面,本申请实施例还提供了一种网络设备,该网络设备包括通信接口和处理器。其中,通信接口用于执行前述第一方面或第一方面任意一种可能的实现方式提供的方法中第一网络设备实施的收发操作;处理器,用于执行前述第一方面或第一方面任意一种可能的实现方式提供的方法中第一网络设备实施的除所述收发操作以外的其他操作。
第八方面,本申请实施例还提供了一种网络设备,该网络设备包括通信接口和处理器。其中,通信接口用于执行前述第三方面或第三方面任意一种可能的实现方式提供的方法中第二网络设备实施的收发操作;处理器,用于执行前述第三方面或第三方面任意一种可能的实现方式提供的方法中第二网络设备实施的除所述收发操作以外的其他操作。
第九方面,本申请实施例还提供了一种控制器,该控制器包括通信接口和处理器。其中,通信接口用于执行前述第二方面或第二方面任意一种可能的实现方式提供的方法中控制器实施的收发操作;处理器,用于执行前述第二方面或第二方面任意一种可能的实现方式提供的方法中控制器实施的除所述收发操作以外的其他操作。
第十方面,本申请实施例还提供了一种网络设备,该网络设备包括存储器和处理器。其中,该存储器包括计算机可读指令;与该存储器通信的处理器用于执行所述计算机可读指令,使得所述网络设备用于执行以上第一方面,第一方面任意一种可能的实现方式提供的方法。
第十一方面,本申请实施例还提供了一种网络设备,该网络设备包括存储器和处理器。其中,该存储器包括计算机可读指令;与该存储器通信的处理器用于执行所述计算机可读指令,使得所述网络设备用于执行以上第三方面,第三方面任意一种可能的实现方式提供的方法。
第十二方面,本申请实施例还提供了一种控制器,该控制器包括存储器和处理器。其中,该存储器包括计算机可读指令;与该存储器通信的处理器用于执行所述计算机可读指令,使得所述控制器用于执行以上第二方面,第二方面任意一种可能的实现方式提供的方法。
第十三方面,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得所述计算机执行以上第一方面、第二方面、第三方面或者上述任一方面的任意一种可能的实现方式提供的所述方法。
第十四方面,本申请实施例还提供了计算机程序产品,包括计算机程序或计算机可读指令,当所述计算机程序或所述计算机可读指令在计算机上运行时,使得计算机执行前述第一方面、第二方面、第三方面或者以上任一方面的任意一种可能的实现提供的所述方法。
第十五方面,本申请实施例还提供了一种通信***,该通信***包括:第四方面、第七方面或第十方面提供的所述的网络设备,第五方面、第八方面或第十一方面提供的所述的网络设备,以及第六方面、第九方面或第十二方面提供的控制器。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本申请实施例中一应用场景所涉及的网络100框架示意图;
图2为本申请实施例中网络100中传输业务的一示例的信令流程图;
图3为本申请实施例中提供的网络100中传输业务的方法的信令流程图;
图4为本申请实施例中一种网络中传输业务的方法100的流程示意图;
图5为本申请实施例中网络设备10中一路由表项的NLRI的示意图;
图6a为本申请实施例中消息1中携带的NLRI的示意图;
图6b为本申请实施例中消息2中携带的NLRI的示意图;
图6c为本申请实施例中消息3中携带的NLRI的示意图;
图7为本申请实施例中业务报文3的一示例性的示意图;
图8为本申请实施例中S102的一种实现方式的信令流程图;
图9为本申请实施例中S102的另一种实现方式的信令流程图;
图10为本申请实施例中一种网络中传输业务的方法200的流程示意图;
图11为本申请实施例中一种网络中传输业务的方法300的流程示意图;
图12为本申请实施例中一种网络中传输业务的方法400的流程示意图;
图13为本申请实施例中一种网络设备1300的结构示意图;
图14为本申请实施例中一种网络设备1400的结构示意图;
图15为本申请实施例中一种控制器1500的结构示意图;
图16为本申请实施例中一种网络设备1600的结构示意图;
图17为本申请实施例中一种网络设备1700的结构示意图;
图18为本申请实施例中一种控制器1800的结构示意图;
图19为本申请实施例中一种网络设备1900的结构示意图;
图20为本申请实施例中一种网络设备2000的结构示意图;
图21为本申请实施例中一种控制器2100的结构示意图;
图22为本申请实施例中一种通信***2200的结构示意图。
具体实施方式
下面将结合附图,对本申请实施例中的技术方案进行描述。本申请实施例描述的网络架构以及业务场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本申请中的“1”、“2”、“3”、“第一”、“第二”以及“第三”等序数词用于对多个对象进行区分,不用于限定多个对象的顺序。
本申请中提及的“A和/或B”,应该理解为包括以下情形:仅包括A,仅包括B,或者同时包括A和B。
下面对于本申请涉及的一些技术术语做出简单解释说明。
IPSec隧道,通常对应一对IPSec SA。IPSec SA是有方向且成对存在的,两个网络设备之间建立一条IPSec隧道,需要两个网络设备分别确定本端网络设备与对端网络设备之间两个不同方向的IPSec SA。网络设备之间建立的IPSec隧道,既可以应用于对业务报文的安全保护,也可以用于对第三版开放式最短路径优先(英文:Open Shortest Path Firstversion 3,简称:OSPFv3)等协议报文的安全保护。需要说明的是,基于不同的业务需求,网络设备之间可以建立不同粒度的IPSec隧道,IPSec隧道例如可以包括:设备(英文:device)级的IPSec隧道、端口(英文:port)级的IPSec隧道、虚拟专用网络(英文:Virtual PrivateNetwork,简称:VPN)级的IPSec隧道、子网级的IPSec隧道,IP网段级的IPSec隧道或具体的IP地址级的IPSec隧道等。本申请实施例以设备级的IPSec隧道为例进行说明,其他任何一个或多个粒度的IPSec隧道的建立方式均可以本申请实施例提供的方法。
IPSec SA具体可以包括用于唯一标识该IPSec SA的三元组:安全参数索引(英文:Security Parameter Index,简称:SPI)、IPSec隧道的目的互联网协议(英文:InternetProtocol,简称:IP)地址和使用的安全协议(如:报文验证头(英文:AuthenticationHeader,简称:AH)协议或封装安全载荷(英文:Encapsulating Security Payload,简称:ESP)协议);IPSec SA还可以包括:封装模式、认证算法、认证密钥、加密算法、加解密密钥和认证密钥、IPSec SA老化周期等参数,用于实现报文的加密等安全保护。例如:网络设备1和网络设备2之间要建立IPSec隧道1,网络设备1需要确定出方向对应的IPSec SA 1和入方向对应的IPSec SA 2,同样的,网络设备2确定出方向对应的IPSec SA 2和入方向对应的IPSec SA 1,那么,网络设备1和网络设备2均确定出IPSec SA 1和IPSec SA 2,相当于在网络设备1和网络设备2之间建立了IPSec隧道1。如此,当网络设备1基于IPSec隧道1向网络设备2发送报文1时,网络设备1即可基于IPSec SA 1对报文1进行安全保护,网络设备2从该IPSec隧道1接收到经过安全保护的报文1后,即可基于IPSec SA 1对经过安全保护的报文1进行安全验证。反之,当网络设备2基于IPSec隧道1向网络设备1发送报文2时,网络设备2即可基于IPSec SA 2对报文2进行安全保护,网络设备1从该IPSec隧道1接收到经过安全保护的报文2后,即可基于IPSec SA 2对经过安全保护的报文2进行安全验证。
IPSec SA参数信息,是指网络设备本地支持的IPSec SA相关信息。待建立IPSec隧道的两个网络设备需要分别将自身的IPSec SA参数信息告知对端网络设备,以便两个网络设备都基于所接收的对端的IPSec SA参数信息和自身的IPSec SA参数信息确定出和对端进行IPSec通信的一对IPSec SA,从而建立了两个网络设备之间的IPSec隧道。例如:网络设备1的IPSec SA参数信息可以包括该网络设备1所支持的两种加密算法,对端网络设备2基于这两种加密算法以及该网络设备2本地支持的加密算法,确定一种加密算法,作为网络设备1和网络设备2之间进行IPSec通信时使用的加密算法。需要说明的是,当基于对端的IPSec SA参数信息确定与该对端网络设备之间的IPSec SA后,可以在网络设备本地保存所确定的该IPSec SA;此外,网络设备本地也可以保存该IPSec SA参数信息。
需要说明的是,IPSec SA参数信息中,携带的可以是网络设备自身的公钥,由对端网络设备基于该公钥和该对端网络设备上的私钥确定解密密钥和加密密钥;或者,该IPSecSA参数信息中,也可以携带由控制器计算出的对称密钥,网络设备可以直接基于该对称密钥对传输的报文进行安全保护。IPSec SA参数信息中具体携带公钥还是对称密钥,在本申请实施例中不作具体限定。
目前,考虑到通过IKE协议协商的方式建立一条IPSec隧道,需要在两个网络设备之间交互至少4条消息,存在耗时长且效率低等问题,无法实现可快速、高效的安全通信。对于大规模组网的场景而言,这个通过IKE协议协商建立IPSec隧道存在的上述问题更为突出。基于此,提出由控制器建立网络设备之间的IPSec隧道并对IPSec隧道进行管理,无需网络设备之间进行复杂的消息交互即可完成IPSec隧道的建立,使得网络中的安全通信能够更加快速、高效的实现。
本申请所涉及的由控制器替代IKE协议在网络设备之间建立IPSec隧道的相关说明,可以参见IETF草案“IPsec Key Exchange using a Controller draft-carrel-ipsecme-controller-ike-01”的相关说明,上述草案以全文引用的方式并入本申请中。
参见图1所示的网络100,该网络100中包括网络设备10、网络设备20、网络设备30和控制器40。其中,网络设备10、网络设备20和网络设备30分别与该控制器40建立安全通道1、安全通道2和安全通道3。需要说明的是,上述安全通道1、安全通道2和安全通道3,具体可以是IPSec隧道,也可以是其他任何形式的安全通道。建立该网络100中的各网络设备和该控制器40之间的安全通道,是为了确保控制器40和各网络设备之间的通信是安全的,从而能够保证控制器40为该网络100中的各网络设备之间创建IPSec隧道的过程是安全和可靠的。
以图1所示的场景为例,介绍目前由控制器在网络设备之间建立IPSec隧道的示例性过程。由控制器40建立网络100中的IPSec隧道的过程,参见图2,例如可以包括:S11,网络设备10将自己的IPSec SA参数信息1通过安全通道1发送给控制器40,网络设备20将自己的IPSec SA参数信息2通过安全通道2发送给控制器40,网络设备30将自己的IPSec SA参数信息3通过安全通道3发送给控制器40;S12,控制器40将IPSec SA参数信息1和IPSec SA参数信息2通过安全通道3发送给网络设备30;S13,控制器40将IPSec SA参数信息1和IPSec SA参数信息3通过安全通道2发送给网络设备20;S14,控制器40将IPSec SA参数信息2和IPSecSA参数信息3通过安全通道1发送给网络设备10;S15,网络设备10根据IPSec SA参数信息2确定IPSec SA 12和IPSec SA 21,根据IPSec SA参考信息3确定IPSec SA 13和IPSec SA31;S16,网络设备20根据IPSec SA参数信息1确定IPSec SA 21和IPSec SA 12,根据IPSecSA参考信息3确定IPSec SA 23和IPSec SA 32;S17,网络设备30根据IPSec SA参数信息1确定IPSec SA 31和IPSec SA 13,根据IPSec SA参考信息2确定IPSec SA 32和IPSec SA 23;S18,网络设备10和网络设备20根据IPSec SA 12和IPSec SA 21,建立IPSec隧道1;S19,网络设备10和网络设备30根据IPSec SA 13和IPSec SA 31,建立IPSec隧道2;S20,网络设备20和网络设备30根据IPSec SA 23和IPSec SA 32,建立IPSec隧道3。
可见,通过控制器实现网络中网络设备之间的IPSec隧道的建立,无需网络设备之间基于IKE协议进行复杂的消息交互建立IPSec隧道,使得网络中的安全通信能够更加快速、高效的实现。但是,控制器通常会在网络中建立全连接的IPSec隧道,即,会在网络中的每两个网络设备之间均建立至少一条IPSec隧道,这样,需要网络中各个网络设备都保存与该网络中其他网络设备之间的IPSec SA,要求网络中部署的所有网络设备均具有较强的存储以及处理能力,网络部署成本会非常高。
但是,对于很多网络,例如:一些大网络小设备的企业网络,其实际部署过程中,考虑到中心站点要支持与各个分支站点的通信,实现较为强大的功能,所以,中心站点通常配置较强存储和处理能力的网络设备,该总部站点部署的网络设备能够支持大量的IPSec隧道。而各分支站点连接的网络较少,各分支站点之间通信频率较低,而且需要配置较多的分支站点,所以,为了控制组网成本,分支站点通常配置存储和处理能力一般的网络设备,各分支站点的网络设备一般只能支持较少的IPSec隧道。这样,按照上述思路部署的网络中,无法满足目前由控制器在网络中建立全连接的IPSec隧道的需求,即,各分支站点部署的网络设备可能无法支持全连接的IPSec隧道;按照目前由控制器在网络中建立全连接的IPSec隧道的需求部署网络,由于部分网络设备之间(如各分支站点的网络设备之间)通信频率较低,导致该部分网络设备之间创建的IPSec隧道利用率低,不仅网络部署成本高,而且在一定程度上浪费了网络资源。
基于此,为了兼顾网络部署成本和由控制器建立网络中的IPSec隧道这两者的相对平衡,在本申请实施例中,提供了一种网络中传输业务的方法,控制器能够针对网络设备在网络中部署的特点,合理的建立IPSec隧道,能够在部署成本较低的情况下实现由控制器快速、高效、合理的建立网络设备之间的IPSec隧道。具体实现时,控制器在网络中仅针对网络设备在网络中部署的特点(如:位置、通信频繁程度等),在部分网络设备之间建立IPSec隧道,而其他的网络设备之间则在有需求时,才临时建立IPSec隧道。例如:第一网络设备和第二网络设备之间未建立直接连接的IPSec隧道,当第一网络设备接收第一业务流的第一业务报文,其中,该第一业务流中所包括的每个业务报文的源IP地址所属网段属于第一网络设备连接的局域网(英文:Local Area Network,简称:LAN)网络的网段,即,第一业务流所包括的每个业务报文的源终端设备均属于第一网络设备所连接的LAN网络,同理,该第一业务流中所包括的每个业务报文的目的IP地址所属网段属于第二网络设备连接的LAN网络的网段,即,第一业务流所包括的每个业务报文的目的终端设备均属于第二网络设备所连接的LAN网络;那么,响应于接收到第一业务报文,第一网络设备建立和第二网络设备之间直连的第一IPSec隧道;此时,当第一网络设备接收该第一业务流的第二业务报文时,该第一网络设备即可通过第一IPSec隧道向第二网络设备发送第二业务报文。这样,控制器在网络中建立IPSec隧道时,不再建立全连接的IPSec隧道,而是合理的建立部分网络设备之间IPSec隧道,其他网络设备之间的IPSec隧道在有业务需求时才建立,能够一定程度上降低对网络中部分网络设备存储和处理能力的需求,从而能够有效的节约网络的部署成本。
举例来说,仍然以图1所示的网络100为例,示例性的介绍本申请实施例的由控制器在网络设备之间建立IPSec隧道的过程。如图3所示,本申请实施例提供中,控制器40上保存有预配置策略,该预配置策略中指示在中心Hub节点和各个分支Spoke节点之间建立直连的IPSec隧道,在各Spoke之间不建立直连的IPSec隧道。假设网络100中网络设备30为Hub节点,网络设备10和网络设备20均为Spoke节点。网络设备10和网络设备30之间、以及网络设备20和网络设备30之间分别建立直连的IPSec隧道,具体过程例如可以包括:S21,网络设备10将自己的IPSec SA参数信息1通过安全通道1发送给控制器40,网络设备20将自己的IPSec SA参数信息2通过安全通道2发送给控制器40,网络设备30将自己的IPSec SA参数信息3通过安全通道3发送给控制器40;S22,控制器40按照本地保存的预配置信息,将IPSecSA参数信息1、IPSec SA参数信息2通过安全通道3发送给网络设备30;S23,控制器40将IPSec SA参数信息3通过安全通道1发送给网络设备10;S24,控制器40将IPSec SA参数信息3通过安全通道2发送给网络设备20;S25,网络设备10根据IPSec SA参考信息3确定IPSecSA 13和IPSec SA 31;S26,网络设备20根据IPSec SA参考信息3确定IPSec SA 23和IPSecSA 32;S27,网络设备30根据IPSec SA参数信息1确定IPSec SA 31和IPSec SA 13,根据IPSec SA参考信息2确定IPSec SA 32和IPSec SA 23;S28,网络设备10和网络设备30根据IPSec SA 13和IPSec SA 31,建立IPSec隧道2;S29,网络设备20和网络设备30根据IPSecSA 23和IPSec SA 32,建立IPSec隧道3。
而对于Spoke节点之间,在有实际需要时,才触发建立直连的IPSec隧道,具体到网络100中,建立网络设备10和网络设备20的直连IPSec隧道1的具体过程,可以参见图3所示,包括:S31,网络设备10接收业务流1中的业务报文1,该业务流1包括的每个业务报文的源IP地址所属网段属于网络设备10连接的LAN网络的网段,该业务流1中所包括的每个业务报文的目的IP地址所属网段属于网络设备20连接的LAN网络的网段;S32,响应于所接收的该业务报文1,网络设备10建立与网络设备20直连的IPSec隧道1;S33,网络设备10接收到业务流1中的业务报文2;S34,网络设备10基于IPSec隧道1向网络设备20发送业务报文2。
如此,对于网络设备10和网络设备20,初始使能IPSec功能时,仅仅建立了和网络设备30之间直连的IPSec隧道,而没有在网络设备10和网络设备20之间建立直连的IPSec隧道,保存的也仅仅是与网络设备30建立的直连IPSec隧道的IPSec SA以及自身的IPSec SA参数信息,网络设备10和网络设备20之间仅仅在有需求时才临时建立直连的IPSec隧道。这样,对于网络设备10和网络设备20的处理以及存储能力的需求都有所降低,网络设备10和网络设备20可以部署成本较低的网络设备,从而降低了网络100的部署成本。需要说明的是,上述仅是以3个网络设备为例的说明,网络设备越多,该方式下降低网络部署成本的效果越突出。
这样,通过本申请实施例提供的方法,既可以实现由控制器在网络中建立网络设备之间的IPSec隧道,无需网络设备之间基于IKE协议进行复杂的消息交互建立IPSec隧道,使得网络中建立IPSec隧道的过程简单、快速;而且,控制器会基于网络中各网络设备的特点,在网络设备中的部分网络设备之间建立IPSec隧道,而不建立全连接的IPSec隧道,降低了对网络中部分网络设备的存储和处理能力的需求,节约了网络部署的成本。
该网络100可以是中心Hub-分支Spoke流量模型,网络设备30可以是中心站点的中心Hub节点,网络设备10和网络设备20可以是两个分支站点的分支Spoke节点。网络设备30可以是中心站点的客户边缘设备(英文:Customer premises equipment,CPE),网络设备10和网络设备20可以是分支站点的CPE。控制器40上的预配置策略具体用于指示网络100中的Hub节点与各Spoke节点之间、Hub节点之间建立IPSec隧道。其中,从Spoke节点到Hub节点之间的网络可以是骨干网,Spoke节点和Hub节点之间可能存在多种隧道,本申请实施例以IPSec隧道作为最外层隧道对传输的报文进行安全保护为例进行介绍。
需要说明的是,本申请实施例中的网络设备和节点表示相同的意思,可以交换使用。各网络设备可以是其对应的站点中的网关设备,负责实现与其他站点的互访,具体可以是路由器,交换机或防火墙等设备,网络设备支持IPSec隧道相关协议,还可以支持边界网关协议(英文:Border Gateway Protocol,简称:BGP),以太虚拟专用网(英文:EthernetVirtual Private Network,简称:EVPN)协议或三层虚拟专用网(英文:Layer 3VirtualPrivate Network,简称:L3VPN)协议。基于“Secure EVPN draft-sajassi-bess-secure-evpn-02”可知,控制器40可以是边界网关协议(英文:Border Gateway Protocol,简称:BGP)路由反射器(英文:Route Reflector,简称:RR)。控制器40可以是一个独立的Hub节点或一个独立的服务器;控制器40也可以集成网络设备30或其他Hub节点上,例如可以是网络设备30上新增的业务单板;控制器40还可以是集成在公有云上的功能模块。只要能够实现控制器40在本申请实施例中的控制功能即可。
作为一个示例,该网络100中可以是软件定义广域网(英文:Software DefinedWide Area Network,简称:SD-WAN),控制器40例如可以是SD-WAN中的软件定义网络(英文:Software Defined Network,简称:SDN)控制器,该SDN控制器可以支持BGP RR的功能。
可以理解的是,上述场景仅是本申请实施例提供的一个场景示例,本申请实施例并不限于此场景。
下面结合附图,通过实施例来详细说明本申请实施例中网络中传输业务的方法的具体实现方式。
以图1所示的网络100为例,介绍本申请实施例提供的一种网络中传输业务的方法100。方法100可以用于图1所示网络100中。网络100中,控制器40按照其本地的预配置策略,在网络设备10和网络设备30之间以及网络设备20和网络设备30之间分别建立直连的IPSec隧道2和直连的IPSec隧道3,具体建立过程参见图3所示实施例中的相关描述。按照所述预配置策略,网络设备10和网络设备20之间未建立直连的IPSec隧道。
图4为本申请实施例提供的网络中传输业务的方法100的信令流程图。参见图4,该方法100例如可以包括下述S101~S104:
S101,网络设备10接收业务流1中的业务报文1。
该业务流1中各业务报文的源节点为网络设备10所在站点的终端设备,业务流1中各业务报文的目的节点网络设备20所在站点的终端设备。网络设备10所在站点的终端设备,也可以称之为网络设备10所连接LAN网络中的终端设备。网络设备20所在的站点的终端设备,也可以称之为网络设备20所连接的LAN网络中的终端设备。其中,上述终端设备,例如可以是:打印机、手机、个人计算机等。
本申请中,网络设备10可以基于不同的流规则来区分不同的业务流。一种具体的实施方式中,可以基于业务报文目的IP地址来划分业务流。例如,基于业务报文的目的IP地址所属的网段和网络设备20所连接LAN网络所属的网段的对应关系,来确定业务流。业务报文的目的IP地址所属的网段与网络设备20所连接的某个LAN网络的网段相同的业务报文的集合可以认为是一个业务流。再比如,网络设备10可以基于目的IP地址来区分业务流,将发往同一个目的IP地址的所有业务报文的集合认为是一个业务流。一种具体的实现方式中,还可以基于业务报文的源IP地址和目的IP地址来划分业务流,即基于二元组来划分业务流。关于如何划分业务流,本领域技术人员基于现有的技术常识,可以获得多种划分方式,此处不再赘述。
网络设备10接收到业务报文1,能够触发其建立与网络设备20之前直连的IPSec隧道,即,S101为后续S102的执行提供了触发条件。
S102,响应于接收到的业务报文1,网络设备10建立和网络设备20之间直连的IPSec隧道1。
在S102之前,网络设备10上保存的其到网络设备20的非直连路由,具体可以通过对接收到的控制器40发送的路由通告消息中的网络层可达信息(英文:Network LayerReachability Information,简称:NLRI)进行学习,获得的路由信息。其中,该路由通告消息中的NLRI例如可以如图5所示,该NRLI中除了包括网络设备30的IPSec SA参数信息3,还可以包括NLRI字段、隧道类型(英文:Tunnel Type)字段和终点地址(英文:endpointaddress)字段。其中,根据IPSec隧道的粒度不同,NLRI字段的值具体可以是下述地址中的至少一个:网络设备20的环回(英文:loopback)地址、网络设备20的广域网端口WAN port的IP地址或者网络设备20所连接的局域网(英文:Local Area Network,简称:LAN)网络的网段地址。Tunnel Type字段的值用于指示隧道的类型,具体取值为IPSec;endpoint address字段的值可以是网络设备30的IP地址,例如:网络设备30的IP地址可以是指网络设备30的loopback地址或网络设备30的WAN port的IP地址。该NLRI还可以包括标志位,该标志位用于指示该NLRI学习到的是直连还是非直连的路由表项,例如:该标志位的值=0,则,确定该NLRI学习到的是非直连的路由表项,如果该标志位的值=1,则,确定该NLRI学习到的是直连的路由表项,那么,该图5中,该标志位的值=0。
网络设备10学习图5所示的NLRI之后,获得的路由表项可以包括:网络设备20的路由前缀和下一跳IP地址,该路由表项能够关联到对应的IPSec隧道。例如,网络设备10的下一跳IP地址为网络设备30的IP地址,通过该网络设备30能够指向网络设备20,且通过网络设备30的IP地址可以查找到对应的IPSec隧道2。同理,网络设备20学习的网络设备20到网络设备10的非直连路由的路由表项可以包括:网络设备10的路由前缀和下一跳IP地址,该路由表项能够关联到对应的IPSec隧道。例如,网络设备20的下一跳IP地址为网络设备30的IP地址,通过该网络设备30能够指向网络设备10,且通过网络设备30的IP地址可以查找到对应的IPSec隧道3。
例如:在S102之前,当网络设备10接收的业务报文a后,利用该业务报文a的目的IP地址去查找网络设备10上当前的路由表项,确定与该目的IP地址匹配的路由表项中下一跳为网络设备30,通过网络设备30指向网络设备20;此时,在网络设备10中还可以确定该网络设备30与IPSec隧道2关联,那么,网络设备10可以通过IPSec隧道2将该业务报文a发送到网络设备30,由网络设备30将该业务报文a转发给网络设备20。
具体实现时,S102通过下述两种方式实现:第一种可能的实现方式中,网络设备10可以向控制器40发送请求消息,该请求消息用于请求在网络设备10和网络设备20之间建立直连的IPSec隧道1;第二种可能的实现方式中,网络设备10也可以在通过网络设备30向网络设备20转发的业务报文中携带网络设备10的IPSec SA参数信息,网络设备20在通过网络设备30向网络设备10转发的业务报文中携带网络设备20的IPSec SA参数信息,从而在网络设备10和网络设备20之间建立直连的IPSec隧道1,其中,该携带IPSec SA参数信息的业务报文具体可以是网络设备10和网络设备20通过网络设备30转发的任意一个业务报文,本申请实施例中以网络设备10接收到的上述业务报文1为例进行说明。
对于第一种可能的实现方式,具体可以包括:网络设备10向控制器40发送消息1,该消息1用于请求在网络设备10和网络设备20之间建立直连的IPSec隧道;控制器40接收到网络设备10发送的建立直连IPSec隧道的请求后,控制器40分别向网络设备10和网络设备20发送消息2和消息3,其中,该消息2中携带网络设备20的IPSec SA参数信息2,该消息3中携带网络设备10的IPSec SA参数信息1;然后,网络设备10基于自身的IPSec SA参数1和接收到的IPSec SA参数信息2确定IPSec SA 12和IPSec SA 21,网络设备20基于自身保存的IPSec SA参数信息2和接收到的IPSec SA参数信息1确定IPSec SA 21和IPSec SA 12。其中,IPSec SA 12为网络设备10出方向的IPSec SA,以及网络设备20入方向的IPSec SA,用于对从网络设备10向网络设备20发出的报文进行安全保护。IPSec12为网络设备10入方向的IPSec SA,以及网络设备20出方向的IPSec SA,用于对从网络设备20向网络设备10发送的报文进行安全保护。基于IPSec SA 12和IPSec SA 21,网络设备10和网络设备20建立直连的IPSec隧道1。
其中,消息1、消息2和消息3均可以是路由通告消息,如边界网关协议更新BGPUpdate消息。
消息1中携带的业务报文1的源IP地址和业务报文1的目的IP地址。一方面,由于业务报文1的源IP地址所属网段属于网络设备10连接的LAN网络的网段,业务报文1的目的IP地址所属网段属于网络设备20连接的LAN网络的网段,所以,该控制器40即可基于消息1中携带的内容确定该网络设备10请求建立的是网络设备10和网络设备20之间直连的IPSec隧道。另一方面,该消息1中携带业务报文1的源IP地址,由于控制器40预先可以定义允许建立直连IPSec隧道的业务类型以及业务粒度,并已知其对应的LAN网络或LAN网络的终端设备IP地址,所以,控制器40还可以将该消息1中携带的业务报文1的源IP地址,与预先允许建立直连IPSec隧道的业务类型以及业务粒度对应的LAN网络或LAN网络的终端设备IP地址进行比对,确定该业务报文1是否属于预先允许建立直连IPSec隧道的业务类型或业务粒度,如果允许,则,控制器40指示建立该直连IPSec隧道1(即,向网络设备10、网络设备20分别发送消息2、消息3),如果不允许,则,控制器40不向网络设备10和网络设备20发送消息2和消息3。其中,业务类型可以是指该业务流1属于电话会议或者视频会议等类型,业务粒度可以是指该业务流1的源节点对应的LAN网络的终端设备属于研发部门或财务部门等。
例如:可以在消息1的NLRI中携带业务报文1的源IP地址和业务报文1的目的IP地址,消息1中NLRI的格式可以参见图6a,该NLRI中除了包括还可以包括NLRI字段、TunnelType字段和endpoint address字段。其中,根据IPSec隧道的粒度不同,NLRI字段的值具体可以是下述地址中的至少一个:网络设备10的loopback地址、网络设备10的WAN port的IP地址、网络设备10连接的LAN网络的网段地址;Tunnel Type字段的值为IPSec;endpointaddress字段的值可以网络设备10的IP地址,网络设备10的IP地址例如可以是:网络设备10的loopback地址或网络设备10的WAN port的IP地址。
通过该第一种可能的实现方式建立IPSec隧道1时,网络设备10和网络设备20上还可以更新路由。
消息2中的NLRI具体可以参见图6b所示,该NLRI中除了包括IPSec参数信息2,还可以包括NLRI字段、Tunnel Type字段和endpoint address字段。其中,根据IPSec隧道的粒度不同,NLRI字段的值包括网络设备20连接的LAN网络的网段地址、网络设备20的loopback地址或网络设备20的WAN port的IP地址三者中的任意一个;Tunnel Type字段的值为IPSec;endpoint address字段的值可以是网络设备20的IP地址,网络设备20的IP地址例如可以是:网络设备20的loopback地址或网络设备20的WAN port的IP地址。该NLRI还可以包括标志位,该标志位用于指示该NLRI学习到的是直连还是非直连的路由表项,例如:该标志位的值=0,则,确定该NLRI学习到的是非直连的路由表项,如果该标志位的值=1,则,确定该NLRI学习到的是直连的路由表项,那么,该图6b中,该标志位的值=1。
对于网络设备10,路由更新操作可以包括:网络设备10基于消息2中的NLRI,学习到与IPSec隧道1关联的路由表项1。这样,在网络设备10上保存有网络设备10到网络设备20的直连路由表项1,该路由表项1具体可以包括:网络设备20的路由前缀和下一跳IP地址,该路由表项1能够关联到IPSec隧道1,例如,通过该路由表项1的下一跳可以查找到IPSec隧道1。
消息3中NLRI具体可以参见图6c所示,该NLRI中除了包括IPSec参数信息1,还可以包括NLRI字段、Tunnel Type字段和endpoint address字段。其中,根据IPSec隧道的粒度不同,NLRI字段的值具体可以包括网络设备10连接的LAN网络的网段地址、网络设备10的loopback地址或网络设备10的WAN port的IP地址三者中的任意一个;Tunnel Type字段的值为IPSec;endpoint address字段的值可以是网络设备10的IP地址,网络设备10的IP地址例如可以是:网络设备10的loopback地址或网络设备10的WAN port的IP地址。该NLRI还可以包括标志位,该标志位用于指示该NLRI学习到的是直连还是非直连的路由表项,例如:该标志位的值=0,则,确定该NLRI学习到的是非直连的路由表项,如果该标志位的值=1,则,确定该NLRI学习到的是直连的路由表项,那么,图6c中,该标志位的值=1。
对于网络设备20,路由更新操作可以包括:网络设备20基于消息3中的NLRI,新学习到与IPSec隧道1关联的路由表项2。这样,在网络设备20上保存有网络设备20到网络设备10的直连路由表项2,该路由表项2具体可以包括:网络设备10的路由前缀和下一跳IP地址,该路由表项2能够关联到IPSec隧道1,例如,通过该路由表项2的下一跳可以查找到IPSec隧道1。
需要说明的是,第一种可能的实现方式的相关描述具体可以参见图8所示的实施例,在此不再详细赘述。
对于第二种可能的实现方式,具体可以包括:网络设备10在业务报文1中携带网络设备10的IPSec SA参数信息1,得到业务报文3;接着,网络设备10通过网络设备30向网络设备20发送该业务报文3,其中,网络设备30为Hub节点,网络设备10与网络设备30之间通过IPsec隧道2直连,网络设备10通过IPsec隧道3与网络设备30直连;网络设备20基于自身保存的IPSec SA参数信息2和所接收的IPSec SA参数信息1,确定IPSec SA 21和IPSec SA12,所述IPSec SA 21用于对从网络设备20到网络设备10传输的报文进行安全保护,IPSecSA 12用于对从网络设备10到网络设备20传输的报文进行安全保护。当网络设备20获得到目的节点为网络设备10所在站点的终端设备的业务报文5后,网络设备20在业务报文5中携带网络设备20的IPSec SA参数信息2,得到业务报文4;接着,网络设备20通过网络设备30向网络设备10发送该业务报文4;网络设备10基于自身保存的IPSec SA参数信息1和所接收的IPSec SA参数信息2,确定IPSec SA 12和IPSec SA 21。此时,网络设备10和网络设备20基于IPSec SA 12和IPSec SA 21,建立IPSec隧道1。
需要说明的是,业务报文5具体可以是业务报文3(或业务报文1)的响应业务报文,在网络设备20接收到业务报文3之后即可生成业务报文5,所以,网络设备20接收业务报文3的时间和网络设备20发送业务报文4的时间是比较接近的。即,网络设备10和网络设备20之间能够较快的建立IPSec隧道1,能够满足网络中快速传输业务的需求。
其中,网络设备10在业务报文1中携带网络设备10的IPSec SA参数信息1,得到业务报文3,具体可以是:网络设备10在业务报文1中扩展报文头1(该扩展的报文头也可以称之为扩展的安全头或扩展的安全报文头,记作:IPSec Header),并在IPSec Header中承载IPSec SA参数信息1,得到业务报文3。同理,网络设备20在业务报文5中携带网络设备20的IPSec SA参数信息2,得到业务报文4,具体可以是:网络设备20在业务报文5中扩展的报文头2,并在报文头2中承载IPSec SA参数信息2,得到业务报文4。
作为一个示例,以ESP为例,业务报文3的格式具体可以如图7所示,包括:外层IP(英文:OUTER IP)头、ESP头、虚拟扩展局域网(英文:Virtual Extensible Local AreaNetwork,简称:VXLAN)头/通用路由封装(英文:Generic Routing Encapsulation,简称:GRE)头、报文头(英文:IPSec Header)、内层(英文:INNER)IP/媒体存取控制位址(英文:Media Access Control Address,简称:MAC)头以及数据载荷(英文:payload)。其中,VXLAN头或GRE头也可以替换为使用通用路由封装的网络虚拟化(英文:Network Virtualizationusing Generic Routing Encapsulation,简称:NVGRE)头,均可以用于指示下一个扩展报文头为IPSec Header,该IPSec Header中携带IPSec SA参数信息1。
此外,在ESP场景中,可以通过SPI映射或用户数据报协议(英文:User DatagramProtocol,简称:UDP)封装实现网络地址转换(英文:Network Address Translation,简称:NAT)穿越。其中,SPI映射依赖于NAT穿越设备的应用层网关(英文:Application LayerGateway,简称:ALG)处理,而UDP封装仅依赖于IPSec隧道的两端网络设备,因此,UDP封装的方案能够更广泛的被用于IPSec场景下的NAT穿越。在使能了ESP NAT穿越的情况下,由于没有类似IKE方式的NAT穿越动态监测机制,所以,网络设备10可以在业务报文3的OUTER IP头和ESP头之间增加UDP头,该UDP头中的源端口和目的端口的端口号都是4500,私网侧的源端口会被NAT穿越设备转换。需要说明的是,按照IPSec相关协议的规定,即使中间设备没有NAT穿越的功能,在传输业务报文中额外增加的UDP头也不会影响该业务报文在IPSec隧道中的安全传输以及接收端网络设备对其的正常处理。
需要说明的是,当网络设备10生成IPSec SA 12和IPSec SA 21,即可更新路由,利用建立的直连IPSec隧道1传输需要发送到网络设备20及其所在站点各终端设备的报文。对于网络设备20,可以在网络设备20通过网络设备30向网络设备10发送该业务报文4后更新路由,利用建立的直连IPSec隧道1传输需要发送到网络设备10及其所在站点各终端设备的报文;或者,为了通信更加可靠,网络设备20也可以在接收到网络设备10基于IPSec隧道1发送的报文后,才更新路由,并利用直连IPSec隧道1传输需要发送到网络设备10及其所在站点各终端设备的报文。
通过该第二种可能的实现方式建立IPSec隧道1后,网络设备10和网络设备20更新路由操作具体可以是:网络设备10和网络设备20在确定建立IPSec隧道1后,本地自发的更新网络设备10与网络设备20之间的直连路由。
需要说明的是,第二种可能的实现方式的相关描述具体可以参见图9所示的实施例,在此不再详细赘述。
通过S102建立网络设备10和网络设备20之间的IPSec隧道1时,该方法100还包括网络设备10和网络设备20分别进行路由更新的操作。路由更新后,一种情况下,网络设备10上保存有网络设备10到网络设备20的直连路由表项和非直连路由表项,其中,可以设置不同的路由优先级。例如,可以设置直连路由表项的优先级高于非直连路由表项的优先级,那么,在两个路由表项均可用时,网络设备10可以基于优先级较高的该直连路由表项,确定基于IPSec隧道1进行报文传输;或者,两个路由表项中的某一个不可用,则,基于另一个可用的路由表项指导报文传输;又或者,直连IPSec隧道1未建立或者已删除,则,基于非直连路由表项指指导报文传输。另一种情况下,网络设备10上还可以将非直连的路由表项替换为直连路由表项,那么,网络设备10上保存有网络设备10到网络设备20的直连路由表项,此时,网络设备10基于该直连路由表项,确定基于IPSec隧道1进行报文传输。需要说明的是,路由表项是否可用,取决于该路由表项指示的出接口是否正常、下一跳邻居节点是否上线等因素。
这样,通过建立网络设备10和网络设备20之间直连的IPSec隧道1,为后续网络设备10直接向网络设备20传输业务报文提供了便利,同时,在IPSec隧道1存在期间,也为网络设备20向网络设备10传输业务报文提供了便利,如此,能够有效的提高网络设备10和网络设备20之间业务报文传输的效率,避免转发业务报文导致网络资源的浪费。
S103,网络设备10接收业务流1的业务报文2。
S104,网络设备10通过IPSec隧道1向网络设备20发送业务报文2。
具体实现时,在S102之后,当网络设备10接收到业务流1的业务报文2时,S104中网络设备10通过IPSec隧道1向网络设备20发送业务报文2,具体可以是:网络设备10按照与IPSec隧道1关联的路由表项1,确定通过直连的IPSec隧道1向网络设备20发送业务报文2。
需要说明的是,建立IPSec隧道1后,网络设备10当前可用的IPSec隧道的数量应该小于其所上允许建立的IPSec隧道的数量的最大值,同时,网络设备20当前可用的IPSec隧道的数量也应该小于其所上允许建立的IPSec隧道的数量的最大值,其中,网络设备10上允许建立的IPSec隧道的数量的最大值和网络设备20上允许建立的IPSec隧道的数量的最大值均依赖于网络设备自身的存储和处理等能力,数值可以相同也可以不同。网络设备10当前可用的IPSec隧道的数量,是指以网络设备10作为IPSec隧道端点的当前所有有效的IPSec隧道的条数。
IPSec隧道1属于临时建立的IPSec隧道,由于IPSec隧道1占用网络设备10和网络设备20上的存储和处理资源,所以,在S102之后,可以监测IPSec隧道1上的使用情况,并根据监测结果对IPSec隧道1继续保持还是拆除进行决策。
作为一个示例,网络设备10可以自己监测所获得的监测结果对IPSec隧道1进行管理,例如:当网络设备10确定在预设时长1(如:1分钟)内没有业务报文经过该IPSec隧道1进行传输,或者,经过IPSec隧道1传输的业务报文数量小于或等于预设阈值(例如:5个),那么,网络设备10老化路由表项1和/或删除与IPSec隧道1相关的IPSec SA 12和IPSec SA21;又例如:当网络设备10确定该IPSec隧道1建立时间超过预先设定的临时IPSec隧道的保持时长2(如:2小时),则,网络设备10老化路由表项1和/或删除与IPSec隧道1相关的IPSecSA 12和IPSec SA 21。其中,老化路由表项1,一种情况下,可以是指将该路由表项1从网络设备10本地删除,另一种情况下,也可以是指将该路由表项1关联的IPSec隧道1的状态设置为不可用。同理,删除与IPSec隧道1相关的IPSec SA 12和IPSec SA 21,一种情况下,可以是指将该IPSec SA 12和IPSec SA 21从网络设备10本地删除,另一种情况下,也可以是指将该IPSec SA 12和IPSec SA 21均设置为不可用状态。
作为另一个示例,网络设备10也可以将自己监测所获得的监测结果发送给控制器40,由控制器40对该临时建立的IPSec隧道1进行管理。例如:当控制器40基于网络设备10发送的一个或多个监测结果,确定在预设时长1内没有业务报文经过该IPSec隧道1进行传输,或者,经过IPSec隧道1传输的业务报文数量小于或等于预设阈值,那么,控制器40即可向网络设备10(和/或网络设备20)发送指示信息,该指示信息用于指示老化路由表项1和/或删除与IPSec隧道1相关的IPSec SA 12和IPSec SA 21;又例如:当控制器40基于网络设备10发送的一个或多个监测结果,确定该IPSec隧道1建立时间超过预先设定的临时IPSec隧道的保持时长2,则,控制器40即可向网络设备10(和/或网络设备20)发送指示信息,该指示信息用于指示老化路由表项1和/或删除与IPSec隧道1相关的IPSec SA 12和IPSec SA 21。
需要说明的是,监测结果还可以包括网络设备10以及网络设备20上当前已经建立的IPSec隧道的数量以及允许建立的IPSec隧道的数量的最大值,那么,控制器40、网络设备10或网络设备20还可以依据两者之间的差距大小决策是继续保持还是拆除该临时建立的IPSec隧道1。
具体监测结果中监测的内容,可以根据实际情况进行灵活的选择和设置,在本申请实施例中不作具体限定。
如此,通过监测IPSec隧道1上的使用情况,并根据监测结果对IPSec隧道1继续保持还是拆除进行决策,对利用率低的临时IPSec隧道进行有效的管理,及时对网络中的资源进行优化,使得本申请实施例提供的网络中传输业务的方法更加智能。
这样,通过该方法100,既可以实现由控制器40在网络100中建立网络设备之间的IPSec隧道,无需网络设备之间基于IKE协议进行复杂的消息交互建立IPSec隧道,使得网络100中建立IPSec隧道的过程简单、快速;而且,控制器40会基于网络100中各网络设备的特点,在网络设备中的部分网络设备之间建立IPSec隧道,而不建立全连接的IPSec隧道,另一部分网络设备在有业务需求时,才临时建立IPSec隧道,减少了部分网络设备建立IPSec隧道的数量,降低了对网络中部分网络设备的存储和处理能力的需求,节约了网络部署的成本。优选的,对于SD-WAN等Hub-Spoke流量模型而言,对于传输业务报文较为频繁的Hub节点和Spoke节点之间建立常连接的IPSec隧道,而对于传输业务报文较少的Spoke节点之间则基于业务需求动态建立直连的IPSec隧道,不仅能够在Spoke节点处能够部署存储和处理等能力一般的网络设备,节约了网络部署成本,而且使得该网络中业务的传输更加智能和合理,优化了网络资源。
在一些可能的实施例中,为了使得本申请实施例提供的网络中传输业务的方法100更加智能,还可以统计临时建立的各直连IPSec隧道的使用情况,获得统计信息,并基于统计信息对网络100中的IPSec隧道进行优化管理。其中,各直连IPSec隧道可以包括网络设备10和网络设备20历史建立的所有直连IPSec隧道,如果有一条当前可用的直连IPSec隧道,则,该统计信息中可以包括该当前可用的直连IPSec隧道的使用情况,也可以不包括该当前可用的直连IPSec隧道的使用情况。
作为一个示例,网络设备10可以自己基于统计信息对网络100中的IPSec隧道进行优化管理,该方法100还可以包括:网络设备10统计网络设备10和网络设备20之间建立的各直连IPSec隧道的使用情况,获得统计信息;从而,该网络设备10判断该统计信息是否满足预设条件,如果满足,则,网络设备10建立和网络设备20的IPSec隧道4,该IPSec隧道4为常连接的IPSec隧道,不会因为IPSec隧道4的使用情况而对其进行删除操作;如果不满足,则,网络设备10和网络设备20之间不建立常连接的IPSec隧道,而是基于上述方法100,在有业务需求时,才在两者之间临时建立直连的IPSec隧道。
作为另一个示例,网络设备10也可以将自己获得的统计信息发送给控制器40,由控制器40基于该统计信息对网络100中的IPSec隧道进行优化管理,该方法100还可以包括:网络设备10统计网络设备10和网络设备20之间建立的各直连IPSec隧道的使用情况,获得统计信息,并向控制器40发送该消息4,该消息4中携带该统计信息;控制器40接收到消息4后,从中获得统计信息,确定该统计信息满足预设条件后,更新预配置策略,并基于更新后的预配置策略生成并向网络设备10发送的消息5,其中,该更新后的预配置策略包括用于指示网络设备10和网络设备20之间建立常连接的IPSec隧道的信息,消息5用于指示网络设备10建立与网络设备20常连接的IPSec隧道;接着,该网络设备10按照消息5的指示,建立与网络设备20之间常连接的IPSec隧道4。
需要说明的是,如果确定需要网络设备10和网络设备20之间建立常连接的直连IPSec隧道,且当前网络设备10和网络设备20之间没有直连的IPSec隧道,可以建立常连接的直连IPSec隧道4,该IPSec隧道4可以设置和其他常连接IPSec隧道(如Spoke节点和Hub节点之间的常连接IPSec隧道)相同的保持时长,以使得该IPSec隧道4和其他常连接的IPSec隧道一样处于常连接的状态;或者,也可以不设置保持时长,默认不设置保持时长的IPSec隧道4为常连接的IPSec隧道。如果确定需要网络设备10和网络设备20之间建立常连接的直连IPSec隧道,且当前网络设备10和网络设备20之间具有直连的IPSec隧道1,则可以将该IPSec隧道1设置为常连接状态,例如:假设Spoke节点和Hub节点之间的常连接IPSec隧道的保持时长为1年,那么,通过修改该IPSec隧道1的保持时长为1年,使其为常连接的IPSec隧道;或者,如果确定需要网络设备10和网络设备20之间建立常连接的直连IPSec隧道,且当前网络设备10和网络设备20之间具有直连的IPSec隧道1,也可以也可以重新建立常连接的直连IPSec隧道4,而IPSec隧道1建立时长达到预设的保持时长(如2小时)自动被拆除。
需要说明的是,对于网络设备10或网络设备20,可以基于各IPSec隧道的保持时长的长短,来确定该IPSec隧道是否为常连接隧道。例如:IPSec隧道的保持时长大于或等于Spoke节点和Hub节点之间的常连接IPSec隧道的预设保持时长阈值,则认为该IPSec隧道为常连接隧道;又例如:IPSec隧道未设置对应的保持时长,则认为该IPSec隧道为常连接隧道,而且,该常连接的IPSec隧道可以认为是能够一直存在的,除非根据对网络中IPSec隧道的管理,确定需要拆除该IPSec隧道。
例如:统计信息具体可以包括:网络设备10和网络设备20之间各直连IPSec隧道的建立频率,和/或,网络设备10和网络设备20之间各直连IPSec隧道的平均流量。建立频率具体可以是指单位时间内网络设备10和网络设备20之间建立直连IPSec隧道的次数;平均流量具体可以是是指到当前为止网络设备10和网络设备20之间建立的各直连IPSec隧道上单位时间传输业务报文的大小。又例如:该统计信息还可以包括网络设备10和网络设备20之间各直连IPSec隧道的峰流值等其他体现该各直连IPSec隧道使用情况的参数指标。
预设条件与统计信息对应设置,例如:如果统计信息为网络设备10和网络设备20之间各直连IPSec隧道的建立频率,那么,统计信息满足预设条件具体为该建立频率大于或等于第一阈值(例如:每小时5次);又例如:如果统计信息为网络设备10和网络设备20之间各直连IPSec隧道的平均流量,那么,统计信息满足预设条件具体为平均流量大于或等于第二阈值(例如每秒100千比特);再例如:如果统计信息包括网络设备10和网络设备20之间各直连IPSec隧道的建立频率和平均流量,那么,统计信息满足预设条件包括建立频率大于或等于第一阈值且平均流量大于或等于第二阈值。需要说明的是,第一阈值和第二阈值是根据实际场景要求设置的最大值,具体数值在本申请实施例中不作限定。
此外,统计信息还可以包括网络设备10以及网络设备20上当前已经建立的IPSec隧道的数量以及允许建立的IPSec隧道的数量的最大值,依据两者之间的差距大小决策是否在网络设备10和网络设备20之间建立常连接的IPSec隧道。
具体统计信息中统计的内容,可以根据实际情况进行灵活的选择和设置,在本实施例中不作具体限定。
需要说明的是,网络设备10或控制器40还可以将统计信息发送给网管,由网管对网络100中常连接IPSec隧道的管理,例如:由网管将“网络设备10和网络设备20之间建立常连接的IPSec隧道”的指示配置给网络设备10或者控制器40上,从而按照上述两个示例中的任意一个进行IPSec隧道的管理。
例如:以设备级粒度为例,假设初始使能IPSec功能时,控制器40上的预配置策略具体可以通过下述表1的形式体现:
表1初始使能IPSec功能时的预配置策略
本地网络设备 | IPSec粒度 | 预配置策略中IPSec隧道 |
网络设备10 | 设备级IPSec隧道 | 网络设备30 |
网络设备20 | 设备级IPSec隧道 | 网络设备30 |
网络设备30 | 设备级IPSec隧道 | 网络设备10、网络设备20 |
该表1所示的预配置策略中,指示网络设备10和网络设备30建立常连接的IPSec隧道2,指示网络设备20和网络设备30建立常连接的IPSec隧道3。
如果基于本实施例,对预配置策略进行更新,更新后的预配置策略中指示指示网络设备10和网络设备20建立常连接的IPSec隧道4,那么,更新后的预配置策略可以通过下述表2所示的形式体现:
表2更新后的预配置策略
本地网络设备 | IPSec粒度 | 预配置策略中IPSec隧道 |
网络设备10 | 设备级 | 网络设备30、网络设备20 |
网络设备20 | 设备级 | 网络设备30、网络设备10 |
网络设备30 | 设备级 | 网络设备10、网络设备20 |
需要说明的是,随着组网结构的变化或者业务的更新,本申请实施例中还可以对预配置策略中指示的常连接IPSec隧道进行优化管理,例如:将常连接IPSec隧道中平均流量小于第三阈值(例如每秒200千比特)的IPSec隧道,更新为临时的IPSec隧道,该临时的IPSec隧道在有业务需求时才临时建立,其他时间则不建立,以节约网络资源。
可见,该实施例中,通过统计各网络设备上临时建立的各条直连IPSec隧道的使用情况,获得统计信息,并基于统计信息对网络中的IPSec隧道进行优化管理,适应性的调整临时连接的IPSec隧道和常连接的IPSec隧道,实现对网络中各IPSec隧道的优化管理,提高网络中资源利用率。优选的,对于SD-WAN等Hub-Spoke流量模型而言,对于传输业务报文较为频繁的Hub节点和Spoke节点之间建立常连接的IPSec隧道,而对于传输业务报文较少的Spoke节点之间则基于业务需求动态建立直连的IPSec隧道,且基于各网络设备的使用情况对管理IPSec隧道的策略进行灵活的调整,使得该场景下网络中传输业务更加智能和合理。
第一种可能的实现方式中,如图8所示,上述方法100中的S102具体可以包括:
S102a1,网络设备10向控制器40发送消息1,该消息1用于请求在网络设备10和网络设备20之间建立直连的IPSec隧道。
S102a2,控制器40向网络设备10发送消息2,该消息2中携带网络设备20的IPSecSA参数信息2。
S102a3,控制器40向网络设备20发送消息3,该消息3中携带网络设备10的IPSecSA参数信息1。
S102a4,网络设备10基于自身保存的IPSec参数1和消息2中的IPSec SA参数信息2,确定IPSec SA 12和IPSec SA 21,其中,IPSec SA 12用于对从网络设备10到网络设备20传输的报文进行安全保护,IPSec SA 21用于对从网络设备20到网络设备10传输的报文进行安全保护。
S102a5,网络设备20基于自身保存的IPSec参数2和消息3中的IPSec SA参数信息1,确定IPSec SA 21和IPSec SA 12。
S102a6,网络设备10和网络设备20基于IPSec SA 12和IPSec SA 21,建立IPSec隧道1。
需要说明的是,上述S102a2和S102a3执行上没有先后顺序的限定,可以先执行S102a2再执行S102a3,也可以先执行S102a3再执行S102a2,还可以同时执行S102a2和S102a3。上述S102a4和S102a5执行上也没有先后顺序的限定,可以先执行S102a4再执行S102a5,也可以先执行S102a5再执行S102a4,还可以同时执行S102a4和S102a5。
需要说明的是,S102a4和S102a5执行之后,即可认为IPSec隧道1已经建立,即,S102a6执行完成。具体可以是,网络设备10执行完S102a4后该网络设备10即认为建立了和网络设备20之间的IPSec隧道1;同理,网络设备20执行完S102a5后该网络设备20即认为建立了和网络设备10之间的IPSec隧道1。
其中,消息1、消息2和消息3的中NLRI的格式可以参见图6a~图6c,在此不再赘述。
当控制器40确定待建立的是网络设备10和网络设备20之间的IPSec隧道时,一种情况下,控制器40可以直接生成消息2和消息3,并执行S102a2和S102a3,以便网络设备10和网络设备20分别基于接收到的消息中携带的对端网络设备的IPSec SA参考信息,确定出一对IPSec SA,建立直连的IPSec隧道1。另一种情况下,考虑到控制器40具有管理整个网络100中的IPSec隧道的功能,控制器40也可以在接收到消息1后,考虑网络设备10和网络设备20当前所能承担的存储和处理等能力,或者,考虑该消息1中携带业务报文1的源IP地址对应的该业务流1的业务类型或业务粒度,决定是否允许网络设备10和网络设备20之间建立直连的IPSec隧道1。
作为一个示例,以控制器40考虑网络设备10和网络设备20当前所能承担的存储和处理等能力,决定是否建立直连的IPSec隧道1为例,在S102a1和S102a2之间,本申请实施例还可以包括:S41,控制器40获得网络设备10当前已建立IPSec隧道的数量n和网络设备20上当前已建立IPSec隧道的数量m,其中,n和m均为正整数;S42,控制器40判断数量n是否达到阈值N,数据m是否达到阈值M。一种情况下,当确定数量n未达到阈值N且数据m未达到阈值M,则,说明网络设备10和网络设备20当前均允许建立新的IPSec隧道,控制器40可以生成消息2和消息3,并执行S102a2和S102a3,以便网络设备10和网络设备20分别基于接收到的消息中携带的对端网络设备的IPSec SA参考信息,确定出一对IPSec SA,建立直连的IPSec隧道1。另一种情况下,当确定数量n达到阈值N或数据m达到阈值M,则,说明网络设备10或网络设备20当前不能再建立新的IPSec隧道,控制器40就不生成消息2和消息3,且不再执行S102a2和S102a3。此外,控制器40还可以向网络设备10发送反馈消息,用于告知该网络设备10目前无法建立其与网络设备20之间的直连IPSec隧道1。其中,阈值N可以为网络设备10上最多允许建立IPSec隧道的数量,阈值M可以为网络设备20上最多允许建立IPSec隧道的数量,或者,阈值N也可以是指占网络设备10上最多允许建立IPSec隧道的数量的预设比例(如:80%),阈值M也可以是指占网络设备20上最多允许建立IPSec隧道的数量的预设比例。N和M可以相等也可以不相等。
需要说明的是,依据S102a6建立IPSec隧道1后,网络设备10当前建立的IPSec隧道的数量为(n+1),应该满足(n+1)≤N,同时,网络设备20当前建立的IPSec隧道的数量为(m+1),应该满足(m+1)≤M。
作为另一个示例,以控制器40考虑该消息1中携带业务报文1的源IP地址对应的该业务流1的业务类型或业务粒度,决定是否建立直连的IPSec隧道1为例,在S102a1和S102a2之间,本申请实施例还可以包括:S51,控制器40从消息1中获得业务报文1的源IP地址;S52,控制器40基于预先已知允许建立的业务类型和业务粒度对应的LAN网络或LAN网络中的终端设备IP地址,确定该源IP地址对应的LAN网络或LAN网络中的终端设备IP地址是否属于预先已知允许建立的业务类型和业务粒度,如果是,则,控制器40可以生成消息2和消息3,并执行S102a2和S102a3,否则,控制器40就不生成消息2和消息3,且不再执行S102a2和S102a3。
其中,由于在使能IPSec功能时,各网络设备均会将自身的IPSec SA参数信息发送给控制器40,所以,控制器40本地可以保存各网络设备的IPSec SA参数信息,那么,控制器40可以直接基于本地保存的网络设备20的IPSec SA参数信息2生成消息2,基于本地保存的网络设备10的IPSec SA参数信息1生成消息2。或者,如果控制器40本地未保存各网络设备的IPSec SA参数信息,那么,消息1中还可以携带网络设备10的IPSec SA参数信息1,以便控制器40基于该消息1中携带的IPSec SA参数信息1,生成消息3并发送给网络设备20;网络设备20不仅基于接收到的消息3中的IPSec SA参数信息1生成IPSec SA 21和IPSec SA 12,还将网络设备20的IPSec SA参数信息2发送给控制器40;控制器40所接收到的IPSec SA参数信息2,生成消息2并发送给网络设备10,以便网络设备10基于IPSec SA参数信息2生成IPSec SA 12和IPSec SA 21。
可见,通过该图8所示的实现方式,响应于业务需求,网络设备可以动态向控制器发送消息,以请求控制器在其与另一网络设备之间建立直连的IPSec隧道,既可以实现由控制器在网络中灵活的建立网络设备之间的IPSec隧道,无需网络设备之间基于IKE协议进行复杂的消息交互建立IPSec隧道,使得网络中建立IPSec隧道的过程简单、快速;而且,控制器会基于网络中各网络设备的特点,在合适的时机合理的建立IPSec隧道,而不是在网络中建立全连接的IPSec隧道,使得部分网络设备可以选择部署存储和处理能力一般的网络设备,一定程度上节约了网络部署的成本。优选的,对于SD-WAN等Hub-Spoke流量模型而言,能够使得支持较多数量IPSec隧道的Hub节点和支持较少数量IPSec隧道的Spoke节点部署在同一网络中,且可以由控制器代替IKE协议进行网络设备之间IPSec隧道的管理,实现了在网络中更加智能、方便和快速的传输业务。
第二种可能的实现方式中,如图9所示,上述方法100中的S102具体可以包括:
S102b1,网络设备10在业务报文1中携带网络设备10的IPSec SA参数信息1,得到业务报文3。
S102b2,网络设备10通过网络设备30向网络设备20发送该业务报文3,其中,网络设备10与网络设备30之间通过IPsec隧道2直连,网络设备10通过IPsec隧道3与网络设备30直连。
S102b3,网络设备20基于自身保存的IPSec参数2和业务报文3中的IPSec SA参数信息1,确定IPSec SA 21和IPSec SA 12,所述IPSec SA 21用于对从网络设备20到网络设备10传输的报文进行安全保护,IPSec SA 12用于对从网络设备10到网络设备20传输的报文进行安全保护。
S102b4,网络设备20获得业务报文5,该业务报文5的目的终端设备属于网络设备10所连接的LAN网络。
S102b5,网络设备20在业务报文5中携带网络设备20的IPSec SA参数信息2,得到业务报文4。
S102b6,网络设备20通过网络设备30向网络设备10发送该业务报文4。
S102b7,网络设备10基于自身保存的IPSec参数1和业务报文4中的IPSec SA参数信息2,确定IPSec SA 12和IPSec SA 21。
S102b8,网络设备10和网络设备20基于IPSec SA 12和IPSec SA 21,建立IPSec隧道1。
需要说明的是,上述S101、S102b1~S102b3,与S102b4~S102b7的执行是独立的,其执行上没有先后顺序的限定,先执行可以先执行S101、S102b1~S102b3还是先执行S102b4~S102b7S102a2,具体可以取决于网络设备10接收到业务报文1和网络设备20接收到业务报文5的时间先后。如果网络设备10先接收到业务报文1,具体可以先执行S101、S102b1~S102b3再S102b4~S102b7,业务报文5可以是业务报文1的响应业务报文;如果网络设备20先接收到业务报文5,具体也可以先执行S102b4~S102b7再执行S101、S102b1~S102b3,业务报文1可以是业务报文5的响应业务报文;再或者,如果网络设备10接收到业务报文1的时间网络设备20接收到业务报文5的时间相同,那么,还可以同时执行S101、S102b1~S102b3与S102b4~S102b7。
需要说明的是,S102b3和S102b7执行之后,即可认为IPSec隧道1已经建立,即,S102b8执行完成。具体可以是,网络设备10执行完S102b3后该网络设备10即认为自身建立了和网络设备20之间的IPSec隧道1;同理,网络设备20执行完S102b7后该网络设备20即认为自身建立了和网络设备10之间的IPSec隧道1。
网络设备10和网络设备30、以及网络设备20和网络设备30之间建立的常连接IPSec隧道,建立过程可以详见图3所示实施例中“S21~S29”的相关说明。
具体实现时,网络设备10生成的业务报文3如图7所示,当网络设备30接收到该业务报文3时,可以分别剥掉OUTER IP头、UDP头、ESP头、VXLAN头/GRE头、扩展的报文头IPSecHeader,露出INNER IP/MAC头;网络设备30可以基于INNER IP/MAC头中的内容以及网络设备30本地的路由信息,确定通过IPSec隧道3向网络设备20发送该业务报文3;接着,网络设备30依次将扩展的报文头IPSec Header、VXLAN头/GRE头、ESP头、UDP头、和OUTER IP头封装到业务报文3上,并将该封装后的业务报文3通过IPSec隧道3发送给网络设备20。其中,网络设备30对业务报文3的处理过程中,除了ESP头中的内容从利用IPSec SA 13对该业务报文3进行安全保护后的内容变为利用IPSec SA 32对该业务报文3进行安全保护后的内容,其他各个头中的内容均未发生变化。业务报文4的结构与该业务报文3类似,该业务报文4中也可以通过扩展的报文头IPSec Header携带网络设备20的IPSec SA参数信息2。
需要说明的是,该IPSec头中,除了携带本端网络设备的IPSec SA参数信息之外,还可以携带标志位,该标志位的值用于指示接收方网络设备启用直连的IPSec隧道。
作为一个示例,在本实施例中,在S102b8之后,在S103之前,还可以包括更新路由的过程。对于网络设备10,当网络设备10接收到业务报文4并确定IPSec SA 12和IPSec SA21之后,即可更新与IPSec隧道1关联的路由表项1,该路由表项1用于指示下一跳为网络设备20。对于网络设备20,一种情况下,网络设备20可以在执行S102b6之后,更新与IPSec隧道1关联的路由表项2;或者,另一种情况下,为了通信更加可靠,网络设备20也可以在接收到网络设备10基于该IPSec隧道1发送的业务报文后,才更新与IPSec隧道1关联的路由表项2,并基于该路由表项2利用IPSec隧道1向网络设备10发送业务报文。其中,路由表项2用于指示下一跳为网络设备10。例如:路由表项2可以包括网络设备10的路由前缀和下一跳IP地址,路由表项2关联到的IPSec隧道1,其中,下一跳IP地址例如可以是网络设备10的loopback地址,通过该网络设备10的loopback地址可以查找到IPSec隧道1。
需要说明的是,本申请实施例中,如果网络设备10未更新与IPSec隧道1关联的路由表项1,则,待发送到网络设备10所在站点的业务报文均通过网络设备30中转至网络设备20;同理,如果网络设备20未更新与IPSec隧道1关联的路由表项2,则,待发送到网络设备20所在站点的业务报文均通过网络设备30中转至网络设备10。如果网络设备10更新与IPSec隧道1关联的路由表项1,则,待发送到网络设备10所在站点的业务报文均通过直连的IPSec隧道1发送给网络设备20;同理,如果网络设备20更新与IPSec隧道1关联的路由表项2,则,待发送到网络设备20所在站点的业务报文均通过直连的IPSec隧道1发送至网络设备10。
可见,通过该图9所示的实现方式,响应于业务需求,网络设备可以将自身的IPSecSA参数信息携带在待发送的业务报文中,通过当前存在的IPSec隧道中转给对端网络设备,以便对端网络设备基于该IPSec SA参数信息确定IPSec SA,而且,对端网络设备执行相同的操作,实现在网络中灵活的建立网络设备之间的IPSec隧道,无需网络设备之间基于IKE协议进行复杂的消息交互建立IPSec隧道,使得网络中建立IPSec隧道的过程简单、快速;而且,控制器基于网络中各网络设备的特点,在合适的时机合理的建立部分IPSec隧道,而不是在网络中建立全连接的IPSec隧道,使得部分网络设备可以选择部署存储和处理能力一般的网络设备,一定程度上节约了网络部署的成本。优选的,对于SD-WAN等Hub-Spoke流量模型而言,能够使得支持较多数量IPSec隧道的Hub节点和支持较少数量IPSec隧道的Spoke节点部署在同一网络中,且可以由控制器代替IKE协议进行网络设备之间IPSec隧道的管理,实现了在网络中更加智能、方便和快速的传输业务。
图10示出了本申请实施例中一种网络中传输业务的方法200的流程示意图,该方法200由第一网络设备实施,该网络中传输业务的方法200例如可以包括:
S201,第一网络设备接收第一业务流的第一业务报文;
S202,响应于接收到所述第一业务报文,所述第一网络设备建立和所述第二网络设备之间直连的第一IPSec隧道;
S203,所述第一网络设备接收所述第一业务流的第二业务报文;
S204,所述第一网络设备通过所述第一IPSec隧道向所述第二网络设备发送所述第二业务报文。
其中,该方法200中的第一网络设备具体可以是上述实施例中的网络设备10,该第一网络设备执行的操作具体可以参见方法100中网络设备10执行的操作。具体而言,S201~S204的相关描述可以参见方法100中的S101~S104。其中,第一业务流可以是方法100中的业务流1,第一业务报文可以是方法100中的业务报文1,第二业务报文可以是方法100中的业务报文2,第二网络设备可以是方法100中的网络设备20,第一IPSec隧道可以是方法100中的IPSec隧道。
作为一个示例,所述第一网络设备和所述第二网络设备可以均为分支Spoke节点,第一网络设备和第二网络设备均与第三网络设备连接,第三网络设备可以为Hub节点。
在一种可能的实施方式中,S202中第一网络设备建立和所述第二网络设备之间直连的第一IPSec隧道,具体可以包括:第一网络设备向控制器发送第一消息,所述第一消息用于请求在所述第一网络设备和所述第二网络设备之间建立所述直连的第一IPSec隧道;第一网络设备接收所述控制器发送的第二消息,所述第二消息中携带所述第二网络设备的第二IPSec SA参数信息;第一网络设备基于自身保存的第一IPSec SA参数信息和所述第二IPSec SA参数信息,确定第一IPSec SA和第二IPSec SA,其中,所述第一IPSec SA用于对从所述第一网络设备到所述第二网络设备传输的报文进行安全保护,所述第二IPSec SA用于对从所述第二网络设备到所述第一网络设备传输的报文进行安全保护;第一网络设备基于所述第一IPSec SA和所述第二IPSec SA,建立所述第一IPSec隧道。
此外,该实施方式中,在控制器接收到第一网络设备发送的第一消息之后,控制器还可以向第二网络设备发送第三消息,该第三消息中携带所述第一网络设备的第一IPSecSA参数信息,该第三消息用于指示第二网络设备基于自身保存的第二IPSec SA参数信息和所述第一IPSec SA参数信息,确定第一IPSec SA和第二IPSec SA,从而第而网络设备基于所述第一IPSec SA和所述第二IPSec SA,建立所述第一IPSec隧道。
其中,所述第一消息、所述第二消息和第三消息均属于边界网关协议更新BGPUPDATE消息。
第一消息包括第一业务报文的源IP地址、目的IP地址以及第一网络设备连接的局域网LAN网络的网段地址,此外,第一消息还可以包括:第一网络设备的环回地址和/或第一网络设备的广域网端口WAN Port的IP地址。第一网络设备还可以携带第一网络设备的第一IPSec SA。其中,第一消息可以扩展新的扩展属性,通过该新的扩展属性携带上述内容。
第二消息可以包括网络层可达信息NLRI字段,所述NLRI字段包括隧道类型TunnelType字段,终点地址endpoint address字段和所述第二IPSec SA参数信息,其中,所述Tunnel Type字段指示隧道的类型为IPSec隧道,所述endpoint address字段用于携带所述第二网络设备的IP地址。
第三消息可以包括网络层可达信息NLRI字段,所述NLRI字段包括隧道类型TunnelType字段,终点地址endpoint address字段和所述第一IPSec SA参数信息,其中,所述Tunnel Type字段指示隧道的类型为IPSec隧道,所述endpoint address字段用于携带所述第一网络设备的IP地址。
作为一个示例,在S202之前,该方法200还可以包括:第一网络设备通过第三网络设备向所述第二网络设备发送所述第一业务报文,其中,所述第三网络设备为中心Hub节点,所述第一网络设备与所述第三网络设备之间通过第二IPsec隧道直连,所述第二网络设备通过第三IPsec隧道与所述第三网络设备直连。
该实施方式具体可以参见图8所示的实施例,其中,第一消息、第二消息、第三消息分别对应图8所示实施例中的消息1、消息2和消息3,第一IPSec SA参数信息、第二IPSec SA参数信息、第一IPSec SA、第二IPSec SA分别对应图8所示实施例中的IPSec SA参数信息1、IPSec SA参数信息2、IPSec SA 12和IPSec SA 21;控制器具体可以是网络100中的控制器40,第三网络设备具体可以对应网络100中的网络设备30。其中,第一消息、第二消息、第三消息中扩展的NLRI具体可以参见图6a~图6c。
可见,通过该实施方式,响应于业务需求,第一网络设备可以动态向控制器发送消息,以请求控制器在其与第二网络设备之间建立直连的IPSec隧道,既可以实现由控制器在网络中灵活的建立网络设备之间的IPSec隧道,无需网络设备之间基于IKE协议进行复杂的消息交互建立IPSec隧道,使得网络中建立IPSec隧道的过程简单、快速;而且,控制器会基于网络中各网络设备的特点,在合适的时机合理的建立IPSec隧道,而不是在网络中建立全连接的IPSec隧道,使得部分网络设备可以选择部署存储和处理能力一般的网络设备,一定程度上节约了网络部署的成本。优选的,对于SD-WAN等Hub-Spoke流量模型而言,能够使得支持较多数量IPSec隧道的Hub节点和支持较少数量IPSec隧道的Spoke节点部署在同一网络中,且可以由控制器代替IKE协议进行网络设备之间IPSec隧道的管理,实现了在网络中更加智能、方便和快速的传输业务。
在另一种可能的实施方式中,S202中第一网络设备建立和所述第二网络设备之间直连的第一IPSec隧道,具体还可以包括:第一网络设备通过第三网络设备向所述第二网络设备发送第三业务报文,所述第三业务报文携带第一IPSec SA参数信息,所述第一IPSecSA参数信息用于确定第一IPSec SA,所述第一IPSec SA用于对从所述第一网络设备到所述第二网络设备传输的报文进行安全保护;其中,所述第一网络设备通过第二IPsec隧道与所述第三网络设备直连,所述第二网络设备通过第三IPsec隧道与所述第三网络设备直连;接着,第一网络设备通过所述第三网络设备接收所述第二网络设备发送的第四业务报文,所述第四业务报文携带第二IPSec SA参数信息,所述第二IPSec SA参数信息用于确定第二IPSec SA,所述第二IPSec SA用于对从所述第二网络设备到所述第一网络设备传输的报文进行安全保护;第一网络设备基于所述第一IPSec SA参数信息和所述第二IPSec SA参数信息,确定所述第一IPSec SA和所述第二IPSec SA;那么,第一网络设备基于所述第一IPSecSA和所述第二IPSec SA,建立所述第一IPSec隧道。
作为一个示例,第三业务报文可以通过扩展的第一报文头携带所述第一IPSec SA参数信息;第四业务报文包括扩展的第二报文头,所述扩展的第二报文头携带所述第二IPSec SA参数信息。
该实施方式具体可以参见图9所示的实施例,其中,第三业务报文、第四业务报文分别对应图9所示实施例中的业务报文3和业务报文4,第一IPSec SA参数信息、第二IPSecSA参数信息、第一IPSec SA、第二IPSec SA分别对应图9所示实施例中的IPSec SA参数信息1、IPSec SA参数信息2、IPSec SA 12和IPSec SA 21;第三网络设备具体可以对应网络100中的网络设备30,第二IPSec隧道对应图9所示实施例中的IPSec隧道2,第三IPSec隧道对应图9所示实施例中的IPSec隧道3。其中,第三业务报文的格式具体可以参见图7。
可见,通过该实施方式,响应于业务需求,网络设备可以将自身的IPSec SA参数信息携带在待发送的业务报文中,通过当前存在的IPSec隧道中转给对端网络设备,以便对端网络设备基于该IPSec SA参数信息确定IPSec SA,而且,对端网络设备执行相同的操作,实现在网络中灵活的建立网络设备之间的IPSec隧道,无需网络设备之间基于IKE协议进行复杂的消息交互建立IPSec隧道,使得网络中建立IPSec隧道的过程简单、快速;而且,控制器基于网络中各网络设备的特点,在合适的时机合理的建立部分IPSec隧道,而不是在网络中建立全连接的IPSec隧道,使得部分网络设备可以选择部署存储和处理能力一般的网络设备,一定程度上节约了网络部署的成本。优选的,对于SD-WAN等Hub-Spoke流量模型而言,能够使得支持较多数量IPSec隧道的Hub节点和支持较少数量IPSec隧道的Spoke节点部署在同一网络中,且可以由控制器代替IKE协议进行网络设备之间IPSec隧道的管理,实现了在网络中更加智能、方便和快速的传输业务。
在再一些可能的实现方式中,S204中第一网络设备通过所述第一IPSec隧道向所述第二网络设备发送所述第二业务报文,具体可以包括:第一网络设备根据与所述第一IPSec隧道关联的第一路由表项,确定通过所述第一IPSec隧道向所述第二网络设备发送所述第二业务报文,所述第一路由表项的下一跳为所述第二网络设备。
作为一个示例,该方法200还可以包括:在预设第一时长内通过所述第一IPSec隧道传输的报文数量小于或者等于第一阈值时,所述第一网络设备老化所述第一路由表项;或者,在所述第一IPSec隧道建立时长达到第二时长时,所述第一网络设备删除所述第一IPSec隧道相关联的IPSec SA,所述第二时长为预设的所述第一IPSec隧道的可用时长。其中,老化第一路由表项,一种情况下,可以是指将该第一路由表项从第一网络设备本地删除,另一种情况下,也可以是指将该第一路由表项关联的第一IPSec隧道的状态设置为不可用。同理,删除与第一IPSec隧道相关的第一IPSec SA和第二IPSec SA,一种情况下,可以是指将该第一IPSec SA和第二IPSec SA从第一网络设备本地删除,另一种情况下,也可以是指将该第一IPSec SA和第二IPSec SA均设置为不可用状态。
这样,通过监测第一IPSec隧道上的使用情况,并根据监测结果对第一IPSec隧道继续保持还是拆除进行决策,对利用率低的临时IPSec隧道进行有效的管理,及时对网络中的资源进行优化,使得本申请实施例提供的网络中传输业务的方法更加智能。
在又一些可能的实现方式中,该方法200还可以包括:统计临时建立的各直连IPSec隧道的使用情况,获得统计信息,并基于统计信息对网络中的IPSec隧道进行优化管理。
作为一个示例,该方法200对网络中的IPSec隧道进行优化管理具体可以包括:第一网络设备统计所述第一网络设备和所述第二网络设备之间建立的非常连接的各直连IPSec隧道的使用情况,获得统计信息;接着,第一网络设备确定所述各直连IPSec隧道的使用情况满足预设条件,则,将与所述第二网络设备之间直连的第四IPSec隧道设置为常连接的IPSec隧道。
作为另一个示例,该方法200对网络中的IPSec隧道进行优化管理具体还可以包括:第一网络设备统计所述第一网络设备和所述第二网络设备之间建立的非常连接的各直连IPSec隧道的使用情况,获得统计信息;第一网络设备向所述控制器发送第三消息,所述第三消息携带所述统计信息;第一网络设备接收所述控制器发送的第四消息,所述第四消息为所述控制器确定所述各直连IPSec隧道的使用情况满足预设条件时生成的,所述第四消息用于指示所述第一网络设备与所述第二网络设备之间建立常连接的直连IPSec隧道;第一网络设备将与所述第二网络设备之间直连的第四IPSec隧道设置为常连接的IPSec隧道。
其中,所述统计信息包括以下至少一项:所述各直连IPSec隧道的建立频率;所述各直连IPSec隧道的平均流量。当所述统计信息包括所述各直连IPSec隧道的建立频率,则,所述预设条件包括:所述建立频率大于或等于第二阈值。当所述统计信息包括所述各直连IPSec隧道的平均流量,则,所述预设条件包括:所述平均流量大于或等于第三阈值。
可见,该实施例中,通过统计各网络设备上临时建立的各条直连IPSec隧道的使用情况,获得统计信息,并基于统计信息对网络中的IPSec隧道进行优化管理,适应性的调整临时连接的IPSec隧道和常连接的IPSec隧道,实现对网络中各IPSec隧道的优化管理,提高网络中资源利用率。优选的,对于SD-WAN等Hub-Spoke流量模型而言,对于传输业务报文较为频繁的Hub节点和Spoke节点之间建立常连接的IPSec隧道,而对于传输业务报文较少的Spoke节点之间则基于业务需求动态建立直连的IPSec隧道,且基于各网络设备的使用情况对管理IPSec隧道的策略进行灵活的调整,使得该场景下网络中传输业务更加智能和合理。
需要说明的是,本申请实施例中的方法200,具体实现方式以及达到的效果可以参见上述图3、图4、图8和图9所示实施例中的相关说明。
图11示出了本申请实施例中一种网络中传输业务的方法300的流程示意图,该方法300由控制器实施,该网络中传输业务的方法300例如可以包括:
S301,控制器接收第一网络设备发送的第一消息,所述第一消息用于请求在所述第一网络设备和第二网络设备之间建立直连的IPSec隧道,其中,基于预配置策略,在所述第一网络设备与第三网设备之间建立有直连的第一IPSec隧道,在所述第二网络设备与所述第三网络设备之间建立有直连的第二IPSec隧道,所述第一网络设备和所述第二网络设备之间没有建立直连的IPSec隧道;
S302,控制器向所述第一网络设备发送第二消息,所述第二消息中携带所述第二网络设备的第一IPSec SA参数信息,所述第一IPSec SA参数信息被所述第一网络设备用于建立与所述第二网络设备之间直连的第三IPSec隧道;
S303,控制器向所述第二网络设备发送第三消息,所述第三消息中携带所述第一网络设备的第二IPSec SA参数信息,所述第二IPSec SA参数信息被所述第二网络设备用于建立与所述第一网络设备之间直连的所述第三IPSec隧道。
其中,第一网络设备和所述第二网络设备均可以为分支Spoke节点,所述第三网络设备可以为中心Hub节点。
其中,所述第一消息、所述第二消息和所述第三消息为边界网关协议更新BGPUPDATE消息。第一消息、第二消息、第三消息中扩展的NLRI具体可以参见图6a~图6c。
该方法300具体可以参见图4和图8所示的实施例,其中,第一消息、第二消息、第三消息分别对应图8所示实施例中的消息1、消息2和消息3,第一IPSec SA参数信息、第二IPSec SA参数信息、第一IPSec SA、第二IPSec SA分别对应图8所示实施例中的IPSec SA参数信息1、IPSec SA参数信息2、IPSec SA 12和IPSec SA 21;控制器具体可以是网络100中的控制器40,第一网络设备具体可以是网络100中的网络设备10,第二网络设备具体可以是网络100中的网络设备20,第三网络设备具体可以对应网络100中的网络设备30。
作为一个示例,在S302和S303之前,即,在所述控制器发送所述第二消息和所述第三消息之前,该方法300还可以包括:控制器获得所述第一网络设备当前可用IPSec隧道的第一数量和所述第二网络设备上当前可用IPSec隧道的第二数量;控制器确定所述第一数量小于或等于第一阈值以及所述第二数据小于或等于第二阈值,其中,所述第一阈值为所述第一网络设备上最多允许建立IPSec隧道的数量,所述第二阈值为所述第二网络设备上最多允许建立IPSec隧道的数量。这样,控制器能够统筹考虑各个网络设备当前所能承担的存储和处理等能力,确定是否允许第一网络设备和第二网络设备之间建立直连的第一IPSec隧道,使得该方法300更加智能和可靠。
在一些可能的实施方式中,该方法300还可以包括:控制器接收所述第一网络设备发送的第四消息,所述第四消息携带统计信息,所述统计信息用于指示所述第一网络设备和所述第二网络设备之间建立的各非常连接的直连IPSec隧道的使用情况;控制器确定所述统计信息满足预设条件,则,更新所述预配置策略,获得更新的配置策略;所述控制器按照所述更新的配置策略,指示所述第一网络设备与所述第二网络设备之间建立常连接的第四IPSec隧道。
其中,所述统计信息包括以下至少一种:所述各直连IPSec隧道的建立频率;所述各直连IPSec隧道的平均流量。那么,当所述统计信息包括所述各直连IPSec隧道的建立频率,所述预设条件包括所述建立频率大于或等于第三阈值。当所述统计信息包括所述各直连IPSec隧道的平均流量,所述预设条件包括所述平均流量大于或等于第四阈值。
需要说明的是,本申请实施例中的方法300,具体实现方式以及达到的效果可以参见上述图3、图4、图8和图10所示实施例中的相关说明。
图12示出了本申请实施例中一种网络中传输业务的方法400的流程示意图,该方法400由第二网络设备实施,该网络中传输业务的方法400例如可以包括:
S401,第二网络设备通过第三网络设备接收第一网络设备发送的第一业务报文,所述第一网络设备与所述第三网络设备之间通过第一IPsec隧道直连,所述第二网络设备与所述第三网络设备通过第二IPsec隧道直连,所述第一业务报文中携带所述第一网络设备的第一IPSec SA参数信息;
S402,第二网络设备基于自身保存的第二IPSec SA参数信息和所述第一IPSec SA参数信息,建立与所述第一网络设备之间直连的第三IPSec隧道;
S403,第二网络设备接收第二业务报文;
S404,第二网络设备通过所述第三IPSec隧道向所述第一网络设备发送所述第二业务报文。
其中,所述第一网络设备和所述第二网络设备均可以为分支Spoke节点,所述第三网络设备可以为中心Hub节点。
该方法400具体可以参见图4和图9所示的实施例,其中,第一网络设备具体可以是网络100中的网络设备10,第二网络设备具体可以是网络100中的网络设备20,第三网络设备具体可以对应网络100中的网络设备30,第一业务报文可以是图9所示实施例中的业务报文3,第一IPSec SA参数信息、第二IPSec SA参数信息、第一IPSec SA、第二IPSec SA分别对应图9所示实施例中的IPSec SA参数信息1、IPSec SA参数信息2、IPSec SA 12和IPSec SA21;第一IPSec隧道、第二IPSec隧道和第三IPSec隧道分别对应图9所示实施例中的IPSec隧道2、IPSec隧道3和IPSec隧道1。
作为一个示例,S402中第二网络设备基于自身保存的第二IPSec SA参数信息和所述第一IPSec SA参数信息,建立与所述第一网络设备之间直连的第三IPSec隧道,具体可以包括:第二网络设备根据所述第一IPSec SA参数信息和所述第二IPSec SA参数信息,确定第一IPSec SA和第二IPSec SA,其中,所述第一IPSec SA用于对从所述第一网络设备到所述第二网络设备传输的报文进行安全保护,所述第二IPSec SA用于对从所述第二网络设备到所述第一网络设备传输的报文进行安全保护;第二网络设备基于所述第一IPSec SA和所述第二IPSec SA,建立所述第三IPSec隧道。
在一些可能的实施方式中,在S404之前,即,在所述第二网络设备通过所述第三IPSec隧道向所述第一网络设备发送所述第二业务报文之前,所述方法400还可以包括:第二网络设备通过所述第三网络设备向所述第一网络设备发送第三业务报文,所述第三业务报文中携带所述第二网络设备的所述第二IPSec SA参数信息,所述第二IPSec SA参数信息被所述第一网络设备用于建立与所述第二网络设备之间直连的所述第三IPSec隧道。
作为一个示例,所述S404具体可以包括:第二网络设备根据与所述第三IPSec隧道关联的第一路由表项,确定通过所述第三IPSec隧道向所述第一网络设备发送所述第二业务报文。
其中,所述第一业务报文通过扩展的报文头携带所述第一IPSec SA参数信息。
需要说明的是,本申请实施例中的方法400,具体实现方式以及达到的效果可以参见上述图3、图4、图9和图10所示实施例中的相关说明。
相应的,本申请实施例还提供了网络设备1300,参见图13所示。该网络设备1300包括收发单元1301和处理单元1302。其中,收发单元1301用于执行上述方法100中网络设备10实施的收发操作,或者,该收发单元1301用于执行方法200、方法300或方法400中第一网络设备实施的收发操作;处理单元1302用于执行上述方法100中网络设备10实施的除了收发操作以外的其他操作,或者,该处理单元1302用于执行上述方法200、方法300或方法400中第一网络设备实施的除了收发操作以外的其他操作。例如:当所述网络设备1300执行所述方法100中网络设备10所实施的方法时,所述收发单元1301可以用于接收业务流1的业务报文1,还可以用于接收业务流1的业务报文2,还可以用于基于IPSec隧道1发送业务报文2;所述处理单元1302可以用于响应于接收的业务报文1,和网络设备20建立IPSec隧道1。
此外,本申请实施例还提供了网络设备1400,参见图14所示。该网络设备1400包括收发单元1401和处理单元1402。其中,收发单元1401用于执行上述方法100中网络设备20实施的收发操作,或者,该收发单元1401用于执行方法200、方法300或方法400中第二网络设备实施的收发操作;处理单元1402用于执行上述方法100中网络设备20实施的除了收发操作以外的其他操作,或者,该处理单元1402用于执行上述方法200、方法300或方法400中第二网络设备实施的除了收发操作以外的其他操作。例如:当所述网络设备1400执行所述方法100中网络设备20所实施的方法时,所述收发单元1401可以用于接收业务报文3,还可以用于接收业务报文5,还可以用于发送业务报文4;所述处理单元1402可以用于响应于基于自身保存的IPSec SA参数信息2和业务报文3中的IPSec SA参数信息1,确定IPSec SA 21和IPSec SA 12,所述处理单元1402还可以用于在业务报文5中携带IPSec SA参数信息2,获得业务报文4。
此外,本申请实施例还提供了控制器1500,参见图15所示。该控制器1500包括收发单元1501和处理单元1502。其中,收发单元1501用于执行上述方法100中控制器40实施的收发操作,或者,该收发单元1501用于执行方法200或方法300中控制器实施的收发操作;处理单元1502用于执行上述方法100中控制器40实施的除了收发操作以外的其他操作,或者,该处理单元1502用于执行上述方法200或方法300中控制器实施的除了收发操作以外的其他操作。例如:当所述控制器1500执行所述方法100中控制器40所实施的方法时,所述收发单元1501可以用于接收消息1,还可以用于向网络设备10发送消息2,向网络设备20发送消息3;所述处理单元1502可以用于基于接收到消息4中获得的统计信息,确定该统计信息满足预设条件后,更新预配置策略。
此外,本申请实施例还提供了一种网络设备1600,参见图16所示。该网络设备1600包括通信接口1601和处理器1602。其中,通信接口1601包括第一通信接口1601a和第二通信接口1601b。第一通信接口1601a用于执行前述方法100所示实施例中的网络设备10执行的接收操作,或者,第一通信接口1601a也用于执行前述方法200~400所示实施例中的第一网络设备执行的接收操作;第二通信接口1601b用于执行前述方法100所示实施例中的网络设备10执行的发送操作,或者,第二通信接口1601b也用于执行前述方法200~400所示实施例中的第一网络设备执行的发送操作;处理器1602用于执行前述方法100所示实施例中的网络设备10执行的除了接收操作和发送操作之外的其他操作,或者,处理器1602也用于执行前述方法200~400所示实施例中的第一网络设备执行的除了接收操作和发送操作之外的其他操作。例如:处理器1602可以执行方法100中实施例中的操作:响应接收的业务报文1,和网络设备20建立直连的IPSec隧道1。
此外,本申请实施例还提供了一种网络设备1700,参见图17所示。该网络设备1700包括通信接口1701和处理器1702。其中,通信接口1701包括第一通信接口1701a和第二通信接口1701b。第一通信接口1701a用于执行前述方法100所示实施例中的网络设备20执行的接收操作,或者,第一通信接口1701a也用于执行前述方法200~400所示实施例中的第二网络设备执行的接收操作;第二通信接口1701b用于执行前述方法100所示实施例中的网络设备20执行的发送操作,或者,第二通信接口1701b也用于执行前述方法200~400所示实施例中的第二网络设备执行的发送操作;处理器1702用于执行前述方法100所示实施例中的网络设备20执行的除了接收操作和发送操作之外的其他操作,或者,处理器1702也用于执行前述方法200~400所示实施例中的第二网络设备执行的除了接收操作和发送操作之外的其他操作。例如:处理器1702可以执行方法400中实施例中的操作:基于自身保存的第二IPSec SA参数信息和所述第一IPSec SA参数信息,建立与所述第一网络设备之间直连的第三IPSec隧道。
此外,本申请实施例还提供了一种控制器1800,参见图18所示。该控制器1800包括通信接口1801和处理器1802。其中,通信接口1801包括第一通信接口1801a和第二通信接口1801b。第一通信接口1801a用于执行前述方法100所示实施例中的控制器40执行的接收操作,或者,第一通信接口1801a也用于执行前述方法200或方法300所示实施例中的控制器执行的接收操作;第二通信接口1801b用于执行前述方法100所示实施例中的控制器40执行的发送操作,或者,第二通信接口1801b也用于执行前述方法200或方法300所示实施例中的控制器执行的发送操作;处理器1802用于执行前述方法100所示实施例中的控制器40执行的除了接收操作和发送操作之外的其他操作,或者,处理器1802也用于执行前述方法200或方法200所示实施例中的控制器执行的除了接收操作和发送操作之外的其他操作。例如:处理器1802可以执行方法300中实施例中的操作:获得所述第一网络设备当前可用IPSec隧道的第一数量和所述第二网络设备上当前可用IPSec隧道的第二数量;确定所述第一数量小于或等于第一阈值以及所述第二数据小于或等于第二阈值。
此外,本申请实施例还提供了一种网络设备1900,参见图19所示。该网络设备1900包括存储器1901和与存储器1901通信的处理器1902。其中,存储器1901包括计算机可读指令;处理器1902用于执行所述计算机可读指令,使得该网络设备1900执行以上方法100中网络设备10侧执行的方法,以及方法200~400中第一网络设备侧执行的方法。
此外,本申请实施例还提供了一种网络设备2000,参见图20所示。该网络设备2000包括存储器2001和与存储器2001通信的处理器2002。其中,存储器2001包括计算机可读指令;处理器2002用于执行所述计算机可读指令,使得该网络设备2000执行以上方法100中网络设备20侧执行的方法,以及方法200~400中第二网络设备侧执行的方法。
此外,本申请实施例还提供了一种控制器2100,参见图21所示。该控制器2100包括存储器2101和与存储器2101通信的处理器2102。其中,存储器2101包括计算机可读指令;处理器2102用于执行所述计算机可读指令,使得该控制器2100执行以上方法100中控制器40侧执行的方法,以及方法200、方法300中控制器侧执行的方法。
可以理解的是,上述实施例中,处理器可以是中央处理器(英文:centralprocessing unit,缩写:CPU),网络处理器(英文:network processor,缩写:NP)或者CPU和NP的组合。处理器还可以是专用集成电路(英文:application-specific integratedcircuit,缩写:ASIC),可编程逻辑器件(英文:programmable logic device,缩写:PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(英文:complex programmable logicdevice,缩写:CPLD),现场可编程逻辑门阵列(英文:field-programmable gate array,缩写:FPGA),通用阵列逻辑(英文:generic array logic,缩写:GAL)或其任意组合。处理器可以是指一个处理器,也可以包括多个处理器。存储器可以包括易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random-access memory,缩写:RAM);存储器也可以包括非易失性存储器(英文:non-volatile memory),例如只读存储器(英文:read-only memory,缩写:ROM),快闪存储器(英文:flash memory),硬盘(英文:hard diskdrive,缩写:HDD)或固态硬盘(英文:solid-state drive,缩写:SSD);存储器还可以包括上述种类的存储器的组合。存储器可以是指一个存储器,也可以包括多个存储器。在一个具体实施方式中,存储器中存储有计算机可读指令,所述计算机可读指令包括多个软件模块,例如发送模块,处理模块和接收模块。处理器执行各个软件模块后可以按照各个软件模块的指示进行相应的操作。在本实施例中,一个软件模块所执行的操作实际上是指处理器根据所述软件模块的指示而执行的操作。处理器执行存储器中的计算机可读指令后,可以按照所述计算机可读指令的指示,执行网络设备或控制器可以执行的全部操作。
可以理解的是,上述实施例中,网络设备1600的通信接口1601,具体可以被用作网络设备1300中的收发单元1301,实现网络设备和其他网络设备或控制器之间的通信。同理,网络设备1700的通信接口1701,具体可以被用作网络设备1400中的收发单元1401,实现网络设备和其他网络设备或控制器之间的通信;控制器1800的通信接口1801,具体可以被用作控制器1500中的收发单元1501,实现控制器和其他网络设备的通信。
此外,本申请实施例还提供了一种通信***2200,参见图22所示。该通信***2200包括第一网络设备2201、第二网络设备2202以及控制器2203,其中,第一网络设备2201具体可以是上述网络设备1300、网络设备1600或网络设备1900,第二网络设备2202具体可以是上述网络设备1400、网络设备1700或网络设备2000,控制器2203具体可以是上述控制器1500、控制器1800或控制器2100。或者,第一网络设备2201也可以是图1所示网络中的网络设备10,第二网络设备2202也可以是图1所示网络中的网络设备20,控制器2203也可以是图1所示网络中的控制器40。
此外,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得所述计算机执行以上方法100、方法200、方法300或方法400所示实施例中的所述网络中传输业务的方法。
此外,本申请实施例还提供了计算机程序产品,包括计算机程序或计算机可读指令,当所述计算机程序或所述计算机可读指令在计算机上运行时,使得计算机执行前述方法100、方法200、方法300或方法400所示实施例中的所述网络中传输业务的方法。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到上述实施例方法中的全部或部分步骤可借助软件加通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如只读存储器(英文:read-only memory,ROM)/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者诸如路由器等网络通信设备)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备及***实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的设备及***实施例仅仅是示意性的,其中作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本申请的优选实施方式,并非用于限定本申请的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (34)
1.一种网络中传输业务的方法,其特征在于,所述方法包括:
第一网络设备接收第一业务流的第一业务报文;
响应于接收到所述第一业务报文,所述第一网络设备建立和所述第二网络设备之间直连的第一IPSec隧道;
所述第一网络设备接收所述第一业务流的第二业务报文;
所述第一网络设备通过所述第一IPSec隧道向所述第二网络设备发送所述第二业务报文。
2.根据权利要求1所述的方法,其特征在于,所述第一网络设备建立和所述第二网络设备之间直连的第一IPSec隧道,包括:
所述第一网络设备向控制器发送第一消息,所述第一消息用于请求在所述第一网络设备和所述第二网络设备之间建立所述直连的第一IPSec隧道;
所述第一网络设备接收所述控制器发送的第二消息,所述第二消息中携带所述第二网络设备的第二IPSec SA参数信息;
所述第一网络设备基于自身保存的第一IPSec SA参数信息和所述第二IPSec SA参数信息,确定第一IPSec SA和第二IPSec SA,所述第一IPSec SA用于对从所述第一网络设备到所述第二网络设备传输的报文进行安全保护,所述第二IPSec SA用于对从所述第二网络设备到所述第一网络设备传输的报文进行安全保护;
所述第一网络设备基于所述第一IPSec SA和所述第二IPSec SA,建立所述第一IPSec隧道。
3.根据权利要求2所述的方法,其特征在于,所述第一消息和所述第二消息均属于边界网关协议更新BGP UPDATE消息。
4.根据权利要求2或3所述的方法,其特征在于,所述第二消息包括网络层可达信息NLRI字段,所述NLRI字段包括隧道类型Tunnel Type字段,终点地址endpoint address字段和所述第二IPSec SA参数信息,其中,所述Tunnel Type字段指示隧道的类型为IPSec隧道,所述endpoint address字段用于携带所述第二网络设备的IP地址。
5.根据权利要求1-4任一项所述的方法,其特征在于,在所述第一网络设备建立和所述第二网络设备之间直连的第一IPSec隧道之前,所述方法还包括:
所述第一网络设备通过第三网络设备向所述第二网络设备发送所述第一业务报文,其中,所述第三网络设备为中心Hub节点,所述第一网络设备与所述第三网络设备之间通过第二IPsec隧道直连,所述第二网络设备通过第三IPsec隧道与所述第三网络设备直连。
6.根据权利要求1所述的方法,其特征在于,所述第一网络设备建立和所述第二网络设备之间直连的第一IPSec隧道,包括:
所述第一网络设备通过第三网络设备向所述第二网络设备发送第三业务报文,所述第三业务报文携带第一IPSec SA参数信息,所述第一IPSec SA参数信息用于确定第一IPSecSA,所述第一IPSec SA用于对从所述第一网络设备到所述第二网络设备传输的报文进行安全保护;其中,所述第一网络设备通过第二IPsec隧道与所述第三网络设备直连,所述第二网络设备通过第三IPsec隧道与所述第三网络设备直连;
所述第一网络设备通过所述第三网络设备接收所述第二网络设备发送的第四业务报文,所述第四业务报文携带第二IPSec SA参数信息,所述第二IPSec SA参数信息用于确定第二IPSec SA,所述第二IPSec SA用于对从所述第二网络设备到所述第一网络设备传输的报文进行安全保护;
所述第一网络设备基于所述第一IPSec SA参数信息和所述第二IPSec SA参数信息,确定所述第一IPSec SA和所述第二IPSec SA;
所述第一网络设备基于所述第一IPSec SA和所述第二IPSec SA,建立所述第一IPSec隧道。
7.根据权利要求6所述的方法,其特征在于,
所述第三业务报文通过扩展的第一报文头携带所述第一IPSec SA参数信息;
所述第四业务报文包括扩展的第二报文头,所述扩展的第二报文头携带所述第二IPSec SA参数信息。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述第一网络设备通过所述第一IPSec隧道向所述第二网络设备发送所述第二业务报文,包括:
所述第一网络设备根据与所述第一IPSec隧道关联的第一路由表项,确定通过所述第一IPSec隧道向所述第二网络设备发送所述第二业务报文,所述第一路由表项的下一跳为所述第二网络设备。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
在预设第一时长内通过所述第一IPSec隧道传输的报文数量小于或者等于第一阈值时,所述第一网络设备老化所述第一路由表项;或者,
在所述第一IPSec隧道建立时长达到第二时长时,所述第一网络设备删除所述第一IPSec隧道相关联的IPSec SA,所述第二时长为预设的所述第一IPSec隧道的可用时长。
10.根据权利要求1-9任一项所述的方法,其特征在于,所述方法还包括:
所述第一网络设备统计所述第一网络设备和所述第二网络设备之间建立的非常连接的各直连IPSec隧道的使用情况,获得统计信息;
所述第一网络设备确定所述各直连IPSec隧道的使用情况满足预设条件,则,将与所述第二网络设备之间直连的第四IPSec隧道设置为常连接的IPSec隧道。
11.根据权利要求1-9任一项所述的方法,其特征在于,所述方法还包括:
所述第一网络设备统计所述第一网络设备和所述第二网络设备之间建立的非常连接的各直连IPSec隧道的使用情况,获得统计信息;
所述第一网络设备向所述控制器发送第三消息,所述第三消息携带所述统计信息;
所述第一网络设备接收所述控制器发送的第四消息,所述第四消息为所述控制器确定所述各直连IPSec隧道的使用情况满足预设条件时生成的,所述第四消息用于指示所述第一网络设备与所述第二网络设备之间建立常连接的直连IPSec隧道;
所述第一网络设备将与所述第二网络设备之间直连的第四IPSec隧道设置为常连接的IPSec隧道。
12.根据权利要求10或11所述的方法,其特征在于,所述统计信息包括以下至少一项:
所述各直连IPSec隧道的建立频率;
所述各直连IPSec隧道的平均流量。
13.根据权利要求12所述的方法,其特征在于,所述统计信息包括所述各直连IPSec隧道的建立频率,所述预设条件包括所述建立频率大于或等于第二阈值。
14.根据权利要求12或13所述的方法,其特征在于,所述统计信息包括所述各直连IPSec隧道的平均流量,所述预设条件包括:所述平均流量大于或等于第三阈值。
15.根据权利要求1-14任一项所述的方法,其特征在于,
所述第一网络设备和所述第二网络设备均为分支Spoke节点,所述第一网络设备和所述第二网络设备均与第三网络设备连接,所述第三网络设备为Hub节点。
16.一种网络中传输业务的方法,其特征在于,所述方法包括:
控制器接收第一网络设备发送的第一消息,所述第一消息用于请求在所述第一网络设备和第二网络设备之间建立直连的IPSec隧道,其中,基于预配置策略,在所述第一网络设备与第三网设备之间建立有直连的第一IPSec隧道,在所述第二网络设备与所述第三网络设备之间建立有直连的第二IPSec隧道,所述第一网络设备和所述第二网络设备之间没有建立直连的IPSec隧道;
所述控制器向所述第一网络设备发送第二消息,所述第二消息中携带所述第二网络设备的第一IPSec SA参数信息,所述第一IPSec SA参数信息被所述第一网络设备用于建立与所述第二网络设备之间直连的第三IPSec隧道;
所述控制器向所述第二网络设备发送第三消息,所述第三消息中携带所述第一网络设备的第二IPSec SA参数信息,所述第二IPSec SA参数信息被所述第二网络设备用于建立与所述第一网络设备之间直连的所述第三IPSec隧道。
17.根据权利要求16所述的方法,其特征在于,所述第一消息、所述第二消息和所述第三消息为边界网关协议更新BGP UPDATE消息。
18.根据权利要求16或17所述的方法,其特征在于,在所述控制器发送所述第二消息和所述第三消息之前,所述方法还包括:
所述控制器获得所述第一网络设备当前可用IPSec隧道的第一数量和所述第二网络设备上当前可用IPSec隧道的第二数量;
所述控制器确定所述第一数量小于或等于第一阈值以及所述第二数据小于或等于第二阈值,其中,所述第一阈值为所述第一网络设备上最多允许建立IPSec隧道的数量,所述第二阈值为所述第二网络设备上最多允许建立IPSec隧道的数量。
19.根据权利要求16-18任一项所述的方法,其特征在于,所述方法还包括:
所述控制器接收所述第一网络设备发送的第四消息,所述第四消息携带统计信息,所述统计信息用于指示所述第一网络设备和所述第二网络设备之间建立的各非常连接的直连IPSec隧道的使用情况;
所述控制器确定所述统计信息满足预设条件,则,更新所述预配置策略,获得更新的配置策略;
所述控制器按照所述更新的配置策略,指示所述第一网络设备与所述第二网络设备之间建立常连接的第四IPSec隧道。
20.根据权利要求19所述的方法,其特征在于,所述统计信息包括以下至少一种:
所述各直连IPSec隧道的建立频率;
所述各直连IPSec隧道的平均流量。
21.根据权利要求20所述的方法,其特征在于,所述统计信息包括所述各直连IPSec隧道的建立频率,所述预设条件包括所述建立频率大于或等于第三阈值。
22.根据权利要求20或21所述的方法,其特征在于,所述统计信息包括所述各直连IPSec隧道的平均流量,所述预设条件包括所述平均流量大于或等于第四阈值。
23.根据权利要求16-22任一项所述的方法,其特征在于,
所述第一网络设备和所述第二网络设备均为分支Spoke节点,所述第三网络设备为中心Hub节点。
24.一种网络中传输业务的方法,其特征在于,所述方法包括:
第二网络设备通过第三网络设备接收第一网络设备发送的第一业务报文,所述第一网络设备与所述第三网络设备之间通过第一IPsec隧道直连,所述第二网络设备与所述第三网络设备通过第二IPsec隧道直连,所述第一业务报文中携带所述第一网络设备的第一IPSec SA参数信息;
所述第二网络设备基于自身保存的第二IPSec SA参数信息和所述第一IPSec SA参数信息,建立与所述第一网络设备之间直连的第三IPSec隧道;
所述第二网络设备接收第二业务报文;
所述第二网络设备通过所述第三IPSec隧道向所述第一网络设备发送所述第二业务报文。
25.根据权利要求24所述的方法,其特征在于,所述第二网络设备基于自身保存的第二IPSec SA参数信息和所述第一IPSec SA参数信息,建立与所述第一网络设备之间直连的第三IPSec隧道,包括:
所述第二网络设备根据所述第一IPSec SA参数信息和所述第二IPSec SA参数信息,确定第一IPSec SA和第二IPSec SA,其中,所述第一IPSec SA用于对从所述第一网络设备到所述第二网络设备传输的报文进行安全保护,所述第二IPSec SA用于对从所述第二网络设备到所述第一网络设备传输的报文进行安全保护;
所述第二网络设备基于所述第一IPSec SA和所述第二IPSec SA,建立所述第三IPSec隧道。
26.根据权利要求24或25所述的方法,其特征在于,在所述第二网络设备通过所述第三IPSec隧道向所述第一网络设备发送所述第二业务报文之前,所述方法还包括:
所述第二网络设备通过所述第三网络设备向所述第一网络设备发送第三业务报文,所述第三业务报文中携带所述第二网络设备的所述第二IPSec SA参数信息,所述第二IPSecSA参数信息被所述第一网络设备用于建立与所述第二网络设备之间直连的所述第三IPSec隧道。
27.根据权利要求26所述的方法,其特征在于,所述第二网络设备通过所述第三IPSec隧道向所述第一网络设备发送所述第二业务报文,包括:
所述第二网络设备根据与所述第三IPSec隧道关联的第一路由表项,确定通过所述第三IPSec隧道向所述第一网络设备发送所述第二业务报文。
28.根据权利要求24-27任一项所述的方法,其特征在于,所述第一业务报文通过扩展的报文头携带所述第一IPSec SA参数信息。
29.根据权利要求24-28任一项所述的方法,其特征在于,
所述第一网络设备和所述第二网络设备均为分支Spoke节点,所述第三网络设备为中心Hub节点。
30.一种网络设备,其特征在于,包括:
存储器,该存储器包括计算机可读指令;
与该存储器通信的处理器,所述处理器用于执行所述计算机可读指令,使得所述网络设备用于执行权利要求1-15任一项所述的方法。
31.一种控制器,其特征在于,包括:
存储器,该存储器包括计算机可读指令;
与该存储器通信的处理器,所述处理器用于执行所述计算机可读指令,使得所述控制器用于执行权利要求16-23任一项所述的方法。
32.一种网络设备,其特征在于,包括:
存储器,该存储器包括计算机可读指令;
与该存储器通信的处理器,所述处理器用于执行所述计算机可读指令,使得所述网络设备用于执行权利要求24-29任一项所述的方法。
33.一种计算机可读存储介质,包括计算机可读指令,其特征在于,当所述计算机可读指令在计算机上运行时,使得所述计算机实施权利要求1-29任一项所述的方法。
34.一种通信***,包括权利要求30所述的网络设备、权利要求31所述的控制器和权利要求32所述的网络设备。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010238369.1A CN113472622A (zh) | 2020-03-30 | 2020-03-30 | 一种网络中传输业务的方法和设备 |
PCT/CN2021/079627 WO2021196987A1 (zh) | 2020-03-30 | 2021-03-09 | 一种网络中传输业务的方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010238369.1A CN113472622A (zh) | 2020-03-30 | 2020-03-30 | 一种网络中传输业务的方法和设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113472622A true CN113472622A (zh) | 2021-10-01 |
Family
ID=77865039
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010238369.1A Pending CN113472622A (zh) | 2020-03-30 | 2020-03-30 | 一种网络中传输业务的方法和设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113472622A (zh) |
WO (1) | WO2021196987A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115037573A (zh) * | 2022-05-25 | 2022-09-09 | 天翼云科技有限公司 | 一种网络互联方法、装置、设备及存储介质 |
US11463399B2 (en) * | 2018-12-15 | 2022-10-04 | Telefonaktiebolaget Lm Ericsson (Publ) | Efficient network address translation (NAT) in cloud networks |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1138367C (zh) * | 2001-09-17 | 2004-02-11 | 华为技术有限公司 | 用于网络区域节点间安全通信的安全联盟产生方法 |
CN104144143B (zh) * | 2013-05-08 | 2017-10-24 | 华为技术有限公司 | 网络建立的方法及控制设备 |
JP2015177430A (ja) * | 2014-03-17 | 2015-10-05 | 日本電気株式会社 | トンネルエンドポイント装置、通信装置、通信システム、通信方法及びプログラム |
CN106982427B (zh) * | 2017-04-14 | 2020-08-18 | 北京佰才邦技术有限公司 | 连接建立方法及装置 |
-
2020
- 2020-03-30 CN CN202010238369.1A patent/CN113472622A/zh active Pending
-
2021
- 2021-03-09 WO PCT/CN2021/079627 patent/WO2021196987A1/zh active Application Filing
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11463399B2 (en) * | 2018-12-15 | 2022-10-04 | Telefonaktiebolaget Lm Ericsson (Publ) | Efficient network address translation (NAT) in cloud networks |
CN115037573A (zh) * | 2022-05-25 | 2022-09-09 | 天翼云科技有限公司 | 一种网络互联方法、装置、设备及存储介质 |
CN115037573B (zh) * | 2022-05-25 | 2023-08-08 | 天翼云科技有限公司 | 一种网络互联方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2021196987A1 (zh) | 2021-10-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10757008B2 (en) | Flow specification protocol-based communications method, device, and system | |
CN113261248B (zh) | 安全sd-wan端口信息分发 | |
EP2747355B1 (en) | Aggregation network with centralized control | |
US9288686B2 (en) | Topology discovery based on SCTP/X2 snooping | |
US9438433B1 (en) | Efficient multicast across multiple virtual local area network (VLANs) | |
US20200274739A1 (en) | Methods, Nodes and Computer Readable Media for Tunnel Establishment Per Slice | |
US11489836B2 (en) | Method, apparatus, and system for collecting access control list | |
US11343173B2 (en) | Systems and methods to implement path aware networking | |
US9294986B2 (en) | Topology discovery based on explicit signaling | |
CN111756565B (zh) | 管理分支网络内的卫星设备 | |
WO2021196987A1 (zh) | 一种网络中传输业务的方法和设备 | |
CN114710975B (zh) | 一种用于多域间传输多传输网络上下文标识的方法、基站、网元及装置 | |
WO2022194023A1 (zh) | 报文处理的方法、网络设备及控制器 | |
EP3989511A1 (en) | Supporting multiple transport options for border gateway protocol | |
CN114978975B (zh) | 以太网虚拟私有网络中的bum业务的快速重路由 | |
CN104994019B (zh) | 一种用于sdn控制器的水平方向接口*** | |
CN108259292B (zh) | 建立隧道的方法及装置 | |
CN113300998A (zh) | 实现数据加密传输的方法及装置、通信*** | |
Reuter | Source Packet Routing in Networking (SPRING) | |
CN114389992A (zh) | 一种控制流量转发方法、设备及*** | |
CN116097630A (zh) | 软件定义的广域网(sd-wan)的水平缩放 |
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 |