掌桥专利:专业的专利平台
掌桥专利
首页

报文发送方法、装置、网络设备及存储介质

文献发布时间:2024-04-18 19:58:53


报文发送方法、装置、网络设备及存储介质

技术领域

本申请涉及网络通信技术领域,特别涉及一种报文发送方法、装置、网络设备及存储介质。

背景技术

通用路由封装(generic routing encapsulation,GRE)协议提供了将一种封装机制,通过对报文进行GRE封装,即可使封装得到的GRE报文通过GRE隧道(GRE tunnel)直接实现网络设备间的点对点传输,简化了不同网络之间的连接。其中,GRE隧道是一种虚拟传输通道,GRE隧道两端的隧道接口分别对应于隧道的源地址和目的地址。

目前,在发送报文涉及多段GRE隧道的情况下,会在封装GRE报文时添加增加

隧道头,以在隧道头的嵌套结构中逐层携带多段GRE隧道的目的地址,从而使得接收到GRE报文的网络设备能够基于隧道头,得到下一段GRE隧道的目的地址,实现多段GRE隧道之间的报文发送。

然而,上述技术方案中复杂的报文封装过程,极大地增加了网络设备的负载,导致报文的传输效率受到很大影响。

发明内容

本申请提供了一种报文发送方法、装置、网络设备及存储介质,能够有效提升报文传输效率。该技术方案如下:

第一方面,提供了一种报文发送方法,由网络设备执行,该方法包括:

接收第一报文,该第一报文包括第一网络协议IP头,该第一IP头包括第一隧道的源地址和目的地址;

基于该第一隧道的源地址和目的地址,获取预先存储的第二隧道的源地址和目标地址,该第一隧道和该第二隧道用于传输该第一报文;

发送第二报文,该第二报文包括第二IP头,该第二IP头包括该第二隧道的源地址和目标地址。

其中,通用路由封装(GRE)是一种协议,用于对使用一种路由协议的数据报文进行封装,得到使用另一种路由协议的数据报文,使这些被封装的数据报文能够在另一种路由协议中传输。GRE是在网络上建立直接点对点连接的一种方法,目的是简化单独网络之间的连接,GRE封装适用于各种网络层协议。

GRE隧道是一种点对点的虚拟传输通道,GRE隧道两端的隧道接口分别对应于隧道的源地址和目的地址。

通过上述技术方案,在网络设备中存储多段隧道的源地址和目的地址,即可在发送报文时,根据报文来自的上一段隧道,自动地确定发送报文的下一段隧道,从而进行报文转发,基于此,网络设备能够灵活地实现多段隧道之间的拼接,从而基于预先存储的信息,即可基于多段隧道进行报文转发;并且,无需在报文中携带多段隧道的相关信息,减轻了网络设备的负载,从而大大提升了报文的传输效率。

在一种可能实施方式中,该基于该第一隧道的源地址和目的地址,获取预先存储的第二隧道的源地址和目标地址包括:

基于该第一隧道的源地址和目的地址,获取该第一隧道对应的出隧道接口;

基于该第一隧道对应的出隧道接口,获取预先存储的该第二隧道的源地址和目标地址。

通过上述技术方案,基于出隧道端口来确定下一段隧道的地址,能够提升报文转发的灵活性和效率。

在一种可能实施方式中,该第一IP头包括封装协议信息,该基于该第一隧道的源地址和目的地址,获取该第一隧道对应的出隧道接口包括:

基于该封装协议信息、该第一隧道的源地址和目的地址,确定与该封装协议信息匹配的出隧道接口。

通过上述技术方案,基于封装协议信息来确定出隧道接口,在多协议传输的场景下,能够保证报文转发的准确性。

在一种可能实施方式中,该第一报文的通用路由封装GRE头包括校验信息,该基于该第一隧道的源地址和目的地址,获取该第一隧道对应的出隧道接口包括:

基于该校验信息、该第一隧道的源地址和目的地址,确定与该校验信息匹配的出隧道接口。

通过上述技术方案,基于校验信息来确定出隧道接口,能够保证提升报文传输的安全性。

在一种可能实施方式中,在该发送第二报文之前,该方法还包括:基于该第一报文以及该第二隧道的源地址和目标地址,生成该第二报文。

通过上述技术方案,基于已存储的信息,对报文进行简单处理,即可完成两段隧道之间的报文转发,有效提升了报文传输的效率。

在一种可能实施方式中,该基于该第一报文以及该第二隧道的源地址和目标地址,生成该第二报文包括:

将该第一报文的第一IP头中该第一隧道的源地址和目的地址,分别替换为该第二隧道的源地址和目的地址,得到该第二报文;或,

将该第一报文的第一IP头删除,将该第二IP头添加至删除该第一IP头的该第一报文中,得到该第二报文,该第二IP头包括该第一隧道的源地址和目的地址。

通过上述技术方案,在不增加报文数据量的情况下,即可完成两段隧道之间的报文转发,有效提升了报文传输的效率。

第二方面,提供了一种报文发送装置,该装置包括多个功能模块,用于执行如第一方面所提供的报文发送方法中的对应步骤。

第三方面,提供了一种网络设备,该网络设备包括处理器和存储器,该存储器用于存储至少一段程序代码,该至少一段程序代码由该处理器加载并执行上述第一方面提供的报文发送方法。

第四方面,提供了一种计算机可读存储介质,该计算机可读存储介质用于存储至少一段程序代码,该至少一段程序代码用于执行上述第一方面提供的报文发送方法。

第五方面,提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得该计算机执行上述第一方面提供的报文发送方法。

附图说明

图1是本申请实施例提供的一种报文发送方法的实施环境示意图;

图2是本申请实施例提供的一种GRE报文的结构示意图;

图3是本申请实施例提供的一种报文发送方法的流程示意图;

图4是本申请实施例提供的一种隧道配置的示意图;

图5是本申请实施例提供的一种报文发送装置的结构示意图;

图6是本申请实施例提供的一种网络设备的结构示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。

本申请中术语“第一”、“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,应理解,“第一”、“第二”、“第n”之间不具有逻辑或时序上的依赖关系,也不对数量和执行顺序进行限定。还应理解,尽管以下描述使用术语第一、第二等来描述各种元素,但这些元素不应受术语的限制。这些术语只是用于将一元素与另一元素区别分开。例如,在不脱离各种示例的范围的可能情况下,第一隧道被称为第二隧道,并且类似地,第二隧道被称为第一隧道。第一隧道和第二隧道文都是隧道,并且在某些可能的情况下,第一隧道和第二隧道是单独且不同的隧道。

还应理解,术语“若”被解释为意指“当...时”(“when”或“upon”)或“响应于确定”或“响应于检测到”。

需要说明的是,本申请所涉及的信息(包括但不限于用户设备信息、用户个人信息等)、数据(包括但不限于用于分析的数据、存储的数据、展示的数据等)以及信号,均为经用户授权或者经过各方充分授权的,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。例如,本申请中涉及到的报文都是在充分授权的情况下获取的。

在介绍本申请实施例提供的技术方案之前,下面先对本申请涉及的关键术语进行说明。

通用路由封装(GRE)是一种协议,用于对使用一种路由协议的数据报文进行封装,得到使用另一种路由协议的数据报文,使这些被封装的数据报文能够在另一种路由协议中传输。GRE是在网络上建立直接点对点连接的一种方法,目的是简化单独网络之间的连接,GRE封装适用于各种网络层协议。

GRE隧道是一种点对点的虚拟传输通道,GRE隧道两端的隧道接口分别对应于隧道的源地址和目的地址。

数据网络(data network,DN)指接入5G网络以使用其数据处理服务的业务平台,例如,运营商业务网络或者第三方业务网络等。

用户面功能(user plane function,UPF)是5G网络系统架构中,5G核心网的重要组成部分,UPF包括业务数据的路由和转发、与数据网络(data net,DN)进行数据交互以及用户平面的服务质量(quality of service,QoS)处理等功能。5G核心网的业务数据能够经过UPF网元转发至外部的数据网络。

本申请实施例提供的方案,能够应用于多种类型的网络场景中,如数据中心网络、园区网络以及其他各种网络中需要通过GRE隧道进行报文传输的场景,能够有效提高报文的传输效率。接下来对本申请实施例提供的技术方案的实施环境进行简要介绍。

图1是本申请实施例提供的一种报文发送方法的实施环境示意图,参见图1,该实施环境包括:UPF设备110、网络设备120和用户站点设备130。

其中,该UPF设备110是服务器类型的计算设备,例如,该UPF设备110为一台服务器、多台服务器、服务器集群、分布式文件系统或虚拟化中心等。在一些实施例中,该UPF设备110运行在提供数据处理服务的核心网中,用于将业务报文转发至核心网外部。示例性地,该UPF设备110能够根据路由信息和流量规划策略,对报文进行相应的封装以及解封装。

其中,该网络设备120是用于实现网络之间互联的网络设备,例如,路由器。在一些实施例中,该网络设备120是部署在核心网边缘的边缘路由器。可选地,该边缘网络设备是部署在核心网边缘,针对指定用户的用户边缘路由器(customer edge router,CE),该用户边缘路由器能够作为中间节点,向用户侧转发该UPF设备110发送的业务报文,从而为该指定用户提供点对点的数据传输服务。

在一些实施例中,部署在核心网中的该UPF设备110和该网络设备120之间,能够基于内部网关协议(interior gateway protocol,IGP)进行通信。可选地,该IGP可以是开放式最短路径优先(open shortest path first,OSPF)协议。可选地,该UPF设备110和该网络设备120之间,能够基于双向转发检测(bidirectional forwarding detection,BFD)协议,进行故障检测,从而地及时采取排障措施,减小设备故障对业务的影响,提高网络的可靠性。

在另一些实施例中,上述核心网包括数据中心网关(data center gateway,DCGW),该DCGW经过防火墙(firewall,FW),将该UPF设备110发送的报文,转发至部署在核心网边缘的该网络设备120。可选地,该防火墙是基于虚拟系统(virtual system,VSYS)划分出的虚拟防火墙,能够实现大规模组网环境下的流量隔离和资源独立管理。

其中,该用户站点设备130是部署在用户侧、用于与该网络设备120通信的设备,例如,部署在企业园区内的用户边缘路由器。在一些实施例中,该用户站点设备130能够访问互联网,以与该网络设备120通信。可选地,该用户站点设备130通过接入运营商骨干网络,来访问互联网,以与该网络设备120通信。可选地,在该运营商骨干网络的边缘,部署有运营商边缘路由器(provider edge router,PE),用于与该用户站点设备130进行通信,以将该用户站点设备130接入运营商骨干网络中,使得该用户站点设备130能够与该网络设备120通信。可选地,该用户站点设备能够基于外部边界网关协议(external border gatewayprotocol,eBGP)与该网络设备120通信。可选地,该用户站点设备130连接有用户侧内部的组网,本申请实施例对此不作限定。

需要说明的是,本申请实施例仅以网络设备120来举例说明,并不构成对网络设备120数量的限定,在更多可能的实现方式中,网络设备120的数量可以更多,以实现更多段GRE隧道之间的报文发送,本申请实施例对网络设备120的数量和设备类型均不加以限定。可选地,网络设备120还包括其他功能性设备,以便提供更全面且多样化的服务,本申请实施例对此不加以限定。

在一些实施例中,上述的网络使用标准通信技术和/或协议。网络包括但不限于数据中心网络(data center network)、存储区域网(storage area network,SAN)、局域网(local area network,LAN)、城域网(metropolitan area network,MAN)、广域网(widearea network,WAN)、移动、有线或者无线网络、专用网络或者虚拟专用网络的任何组合。在一些实现方式中,使用包括超级文本标记语言(hyper Text Markup Language,HTML)、可扩展标记语言(extensible markup language,XML)等的技术和/或格式来代表通过网络交换的数据。此外还能够使用诸如安全套接字层(secure sockets layer,SSL)、传输层安全(transport layer security,TLS)、虚拟专用网络(virtual private network,VPN)、网际协议安全(internet protocol security,IPsec)等常规加密技术来加密所有或者部分链路。在另一些实施例中,还能够使用定制和/或专用数据通信技术取代或者补充上述数据通信技术。

在本申请实施例中,基于GRE技术,通过在网络设备120中,配置UPF设备110和用户站点设备130之间的GRE隧道,来为该用户站点设备130提供点对点的数据传输服务。

接下来,结合图1,对UPF设备110和用户站点设备130之间的GRE隧道进行介绍。

参见图1,其中,第一隧道是从UPF设备110到网络设备120的GRE隧道,第一隧道的源地址为UPF设备110的网络协议(internet protocol,IP)地址“100.1.1.1”,第一隧道的目的地址为网络设备120的IP地址“100.5.5.5”;第二隧道是从网络设备120到用户站点设备130的GRE隧道,第二隧道的源地址为网络设备120的IP地址“100.5.5.5”,第二隧道的目的地址为用户站点设备130的IP地址“100.9.9.9”。在一些实施例中,上述IP地址是设备的公网地址,也即是,在互联网中的IP地址。在另一些实施例中,上述IP地址是设备的非公网地址,例如,在企业内部局域网中的地址,本申请实施例对此不作限定。

本申请实施例中,网络设备120能够作为第一隧道和第二隧道之间的节点,将从第一隧道接收到的该UPF设备110发送的报文,通过第二隧道发往用户站点设备130。其中,该网络设备120中预先存储有第一隧道的源地址和目的地址、第二隧道的源地址和目的地址。

示例性地,上述网络设备120发送报文的过程包括:该UPF设备110基于GRE协议对发往该用户站点设备130的数据报文进行GRE封装,得到第一报文,该第一报文的第一IP头中包括该第一隧道的源地址和目的地址,以指示该第一报文通过该第一隧道传输;网络设备120从该UPF设备110接收到该第一报文,根据该第一隧道的源地址和目的地址,获取预先存储的第二隧道的源地址和目标地址;网络设备120向用户站点设备130发送第二报文,该第二报文包括第二IP头,该第二IP头包括该第二隧道的源地址和目标地址,以指示通过第二隧道传输该第二报文。

在另一些实施例中,该网络设备120向UPF设备110发送报文的过程与上述向用户站点设备130发送报文的过程同理,在此不作赘述。

上述在GRE隧道中传输的报文(包括上述第一报文和第二报文),是基于GRE协议封装得到的GRE报文。接下来,基于GRE报文的结构,对上述第一报文在该第一IP头中携带该第一隧道源地址和目的地址的原理进行介绍。

本申请实施例提供了一种GRE报文的结构示意图,参见图2,该GRE报文包括待传输的原始数据报文和基于GRE封装后的报文头。其中,该原始数据报文的协议类型为乘客协议(passenger protocol),该GRE报文的报文头包括GRE头和IP头。参见图2,基于GRE协议封装该原始数据报文的过程包括:

(1)在该原始数据报文的外层封装GRE头(GRE header)。示例性地,该GRE头包括的字段如下:

C:校验和(checksum)标识字段,长度为1bit;校验和标识字段值为1,表示GRE头包含校验和字段,校验和标识字段值为0,表示GRE头不包含校验和字段。

K:关键字(key)标识字段,长度为1bit;关键字标识字段值为1,表示GRE头包含关键字字段,关键字标识字段值为0,表示GRE头不包含关键字字段。

Protocol Type:协议类型字段,用于指示乘客协议的协议类型。

Checksum:校验和字段。

Key:关键字字段,隧道接收侧用于对收到的报文进行验证。

需要说明的是,根据不同的业务需求,该GRE头可以包括更多字段,本申请实施例对此不作限定。

(2)在该GRE头221的外层封装IP头。示例性地,该IP头包括的字段如下:

Source:源地址字段;

Destination:目的地址字段;

Protocol:封装协议字段,指示该报文的封装协议信息,例如,封装协议号为47(指示采用GRE协议封装)。

在本申请实施例中,该IP头携带报文的源IP地址和目的IP地址以及GRE封装协议信息,以指示该GRE报文在IP层中的传输路径(也即是从源IP地址到目的IP地址),以及,该GRE报文所采用的封装协议。其中,IP头携带的源IP地址也即是该GRE报文所传输的GRE隧道的源地址,该IP头携带的目的IP地址也即是该GRE隧道的目的地址。

在一些实施例中,该IP头包括的更多字段根据承载报文传输的网络层协议确定,该网络层协议也称为传输协议(delivery protocol),例如,互联网通信协议第四版(internet protocol version 4,IPv4)或互联网通信协议第六版(internet protocolversion 6,IPv6),本申请实施例对此不作限定。

在一些实施例中,该网络设备120通过解析该第一报文最外层的IP头,即可获取该第一隧道的源IP地址和目的IP地址。其中,该源IP地址也即是该第一隧道的源地址,该目的IP地址也即是该第一隧道的目的地址。

通过上述技术方案,在网络设备中存储多段隧道的源地址和目的地址,即可在发送报文时,根据报文来自的上一段隧道,自动地确定发送报文的下一段隧道,从而进行报文转发,基于此,网络设备能够灵活地实现多段隧道之间的拼接,从而基于预先存储的信息,即可基于多段隧道进行报文转发;并且,无需在报文中携带多段隧道的相关信息,减轻了网络设备的负载,从而大大提升了报文的传输效率。

接下来,基于上述图1提供的实施环境,对本申请实施例提供的报文发送方法进行详细说明,图3是本申请实施例提供的一种报文发送方法的流程示意图。在下述说明过程中,UPF服务器也即是上述UPF设备110,边缘路由器也即是上述网络设备120,用户边缘路由器也即是上述用户站点设备130。

301、边缘路由器存储第一隧道的源地址和目的地址以及第二隧道的源地址和目的地址。

在本申请实施例中,该第一隧道是该边缘路由器和UPF服务器之间的GRE隧道,该第二隧道是该边缘路由器和用户边缘路由器之间的GRE隧道,原理参见图1对应的内容中对该第一隧道和该第二隧道的说明,在此不作赘述。

需要说明的是,在本申请实施例中涉及的接口可以是物理形态的,例如,路由器的物理接口,也可以是逻辑形态的,例如,交换机中的虚拟逻辑区域网络接口(virtual localarea network interface,VLANIF),或者,基于以太网物理接口所创建的逻辑接口(也称以太网子接口),本申请实施例对此不做限定。

在一些实施例中,能够通过以下配置命令,配置GRE隧道(下述公网地址也即是在互联网中的IP地址):

(1)在UPF服务器中配置该第一隧道在该UPF服务器中的出隧道接口tunnel 159,其中,159为隧道接口的标识;

Interface tunnel 159/*从UPF服务器到边缘路由器的GRE隧道*/

Source-ip 100.1.1.1/*UPF服务器的公网地址*/

Destination-ip 100.5.5.5/*边缘路由器的公网地址*/

Protocol GRE/*第一隧道的协议为GRE*/

Key 115599/*第一隧道的校验关键字*/

(2)在边缘路由器中配置第一隧道在该边缘路由器中的入隧道接口tunnel 51,其中,51为隧道接口的标识;

Interface tunnel 51/*从边缘路由器到UPF服务器的GRE隧道*/

Source-ip 100.5.5.5/*边缘路由器的公网地址*/

Destination-ip 100.1.1.1/*UPF服务器的公网地址*/

Protocol GRE/*第一隧道的协议为GRE*/

Key 115599/*第一隧道的校验关键字*/

在一些实施例中,该边缘路由器和UPF服务器之间传输多路业务报文,通过为不同用户边缘路由器设置不同的校验关键字,能够有效地区分不同用户的业务报文,从而保证不同用户的业务报文在该第一隧道中传输时的安全性。例如,为用户边缘路由器uCE1配置的校验关键字为“115599”,为用户边缘路由器uCE2配置的校验关键字为“115588”。

需要说明的是,上述(1)和(2)描述的入隧道接口和出隧道接口,是针对该UPF服务器向该边缘路由器发送报文的情况,在另一些实施例中,在由该边缘路由器向UPF服务器发送报文的情况下,则该tunnel 159为该第一隧道在该UPF服务器中的入隧道接口,同理,该tunnel 51为该第一隧道在该边缘路由器中的出隧道接口。

(3)在边缘路由器中配置该第二隧道在该边缘路由器中的入隧道接口tunnel 59,其中,59为隧道接口的标识;

Interface tunnel 59/*从边缘路由器到用户边缘路由器的GRE隧道*/

Source-ip 100.5.5.5/*边缘路由器的公网地址*/

Destination-ip 100.9.9.9/*用户边缘路由器的公网地址*/

Protocol GRE/*第二隧道的协议为GRE*/

(4)在用户边缘路由器中配置该第二隧道在该用户边缘路由器中的出隧道接口tunnel 1,其中,1为隧道接口的标识。

Interface tunnel 1/*从边缘路由器到UPF服务器的GRE隧道*/

Source-ip 100.9.9.9/*用户边缘路由器的公网地址*/

Destination-ip 100.5.5.5/*边缘路由器的公网地址*/

Protocol GRE/*第二隧道的协议为GRE*/

需要说明的是,上述(3)和(4)描述的入隧道接口和出隧道接口,是针对该用户边缘路由器向该边缘路由器发送报文的情况,在另一些实施例中,在由该边缘路由器向用户边缘路由器发送报文的情况下,则该tunnel 59为该第二隧道在该边缘路由器中的出隧道接口,同理,该tunnel 1为该第二隧道在该用户边缘路由器中的入隧道接口。

在一些实施例中,该边缘路由器是针对该用户边缘路由器专门部署的,该边缘路由器的下游未连接有其他中间边缘路由器,因此,该第二隧道专供该用户边缘路由器进行数据传输,无需进一步为该第二隧道配置校验关键字。在另一些实施例中,该边缘路由器的下游连接有其他中间边缘路由器,则通过配置第二套校验关键字,以使下游的中间边缘路由器能够区分不同的用户边缘路由器,进一步提升报文传输的安全性,该过程与配置第一隧道的校验关键字的过程同理。可选地,该边缘路由器可以沿用该第一隧道的校验关键字,以节省配置校验关键字所耗费的资源。

在一些实施例中,通过上述过程,该边缘路由器中即存储有各个隧道的入隧道接口的配置信息,也即完成了存储第一隧道的源地址和目的地址以及第二隧道的源地址和目的地址的过程。示例性地,该边缘路由器中存储的各个隧道的入隧道接口的配置信息如下:

第一隧道的入隧道接口:tunnel 51;

隧道源地址:100.5.5.5;

隧道目的地址:100.1.1.1;

隧道协议:GRE;

校验关键字:115599。

第二隧道的入隧道接口:tunnel 59;

隧道源地址:100.5.5.5;

隧道目的地址:100.9.9.9;

隧道协议:GRE。

为了便于理解,本申请实施例提供了一种隧道配置的示意图,参见图4,其中,整体网拓扑结构参见图1对应的内容,在此不作赘述。如图4所示,UPF服务器的公网地址为“100.1.1.1”,边缘路由器包括bCE1和bCE2,bCE1是针对用户边缘路由器uCE1部署的,bCE2是针对用户边缘路由器uCE2部署的,该bCE1和bCE2的公网地址均为该边缘路由器的公网地址“100.5.5.5”;其中,该uCE1的公网地址为“100.9.9.9”,该uCE2的公网地址为“100.8.8.8”;该bCE1通过第二隧道和uCE1之间通信,该bCE1中第二隧道的隧道接口是:tunnel 59;该bCE2通过第三隧道和uCE2之间通信,该bCE2中第三隧道的隧道接口是:tunnel58。

302、该边缘路由器建立该第一隧道和该第二隧道之间的映射关系。

在一些实施例中,该边缘路由器作为连接多个隧道的中间节点,通过建立隧道之间的映射关系,实现拼接多段隧道的过程,从而能够将从第一隧道接收到的报文,从第二隧道对应的隧道接口转发出去。

在一些实施例中,通过下述配置命令,能够在该边缘路由器上建立该第一隧道和该第二隧道之间的映射关系:

MS-GRE binding

Interface tunnel 51to interface tunnel 59

相应地,可以通过下述配置命令建立第一隧道和第三隧道之间的映射关系:

MS-GRE binding

Interface tunnel 51to interface tunnel 58

在一些实施例中,上述建立映射关系的配置命令指示:将该第一隧道在该边缘路由器中的入隧道接口(也即是上述tunnel 51)和该第二隧道在该边缘路由器中的入隧道接口(也即是上述tunnel 59)绑定。基于此,即建立了该第一隧道和该第二隧道之间的映射关系。

在一些实施例中,该边缘路由器响应于上述配置命令,基于该多个隧道接口的配置信息,生成隧道拼接表,以建立该第一隧道和该第二隧道之间的映射关系。上述过程以配置第一隧道和第二隧道为例,配置第一隧道和第三隧道的过程同理,在此不作赘述。

本申请实施例提供了一种隧道拼接表的示意形式,参见下述表1。

表1

如表1所示,条目1指示:当从tunnel 51隧道端口接收到源地址为“100.1.1.1”、目的地址为“100.5.5.5”、隧道协议为GRE且校验关键字为“115599”的报文时,则确定该报文的出隧道接口为tunnel 59,也即是,从tunnel 59发送该报文。可以理解地,基于校验关键字,可以保证从UPF服务器发往uCE1的报文可以命中该条目1。条目3指示的内容与条目1同理,在此不作赘述。其中,条目2指示:当从tunnel 59隧道端口接收到源地址为“100.9.9.9”、目的地址为“100.5.5.5”、隧道协议为GRE的报文时,则确定该报文的出隧道接口为tunnel 51,也即是,从tunnel 51发送该报文。在一些实施例中,命中该条目2的报文来自uCE1,该uCE1向该边缘路由器发送的报文未设置校验关键字。

在一些实施例中,该隧道拼接表中的隧道协议列、入隧道接口列和入隧道接口校验关键字列为可选项,可以根据实际需求对该多列信息进行组合,例如,不存储入隧道接口列和入隧道接口校验关键字列,仅存储隧道协议列。在另一些实施例中,可以根据实际需求,在该隧道拼接表中存储更多拼接隧道涉及到的相关信息,本申请实施例对此不作限定。

在一些实施例中,上述隧道拼接表基于配置隧道端口时输入的配置命令自动生成,以简化配置流程,在这种示例下,若配置命令指示了校验关键字,则该隧道拼接表中自动生成校验关键字列。在另一些实施例中,上述隧道拼接表基于配置隧道端口时输入的配置命令,按照预设规则生成,例如,该预设规则指定该隧道拼接表至少包括源地址列、目标地址列和隧道协议列。基于此,能够有效提升报文发送的灵活性和效率。

需要说明的是,上述步骤301可以基于任一新隧道的建立、旧隧道的IP地址变更而执行,本申请实施例对此不做限定。相应地,上述步骤302能够基于任意隧道之间的映射关系的建立或变更而执行,本申请实施例对此不做限定。可以理解地,上述步骤302基于步骤301中存储的隧道相关的信息执行。

303、UPF服务器向该边缘路由器发送第一报文,该第一报文包括第一网络协议IP头,该第一IP头包括第一隧道的源地址和目的地址。

其中,该第一报文是该UPF服务器基于GRE协议封装得到的,封装过程以及该第一IP头的结构参见图2对应的内容,在此不作赘述。

在一些实施例中,该边缘路由器通过解析该第一报文外层的IP头,即可获取该第一隧道的源地址和目的地址。

在一些实施例中,该第一IP头还包括封装协议信息,该封装协议信息指示该第一报文采用的封装协议,例如,该封装协议信息携带在该第一报文IP头的Protocol字段,该Protocol字段的值指示该第一报文的封装协议号为47(指示GRE协议封装)。

在一些实施例中,该第一报文的GRE头包括校验信息,该校验信息用于对该第一报文进行校验,例如,该校验信息携带在该GRE头的Key字段,该Key字段的值指示该第一报文的校验关键字。

在另一些实施例中,该第一报文携带的信息包括:源地址、目的地址、封装协议信息和校验关键字。

304、该边缘路由器接收该第一报文,基于该第一隧道的源地址和目的地址,获取预先存储的该第二隧道的源地址和目标地址,该第一隧道和该第二隧道用于传输该第一报文。

在一些实施例中,该边缘路由器中存储有隧道拼接表。在这种示例下,该边缘路由器基于该第一隧道的源地址和目的地址,通过查询该隧道拼接表,即可获取该第一隧道对应的出隧道接口,进而基于该第一隧道对应的出隧道接口,查询该出隧道接口的配置信息,以获取预先存储的该第二隧道的源地址和目标地址。

在一些实施例中,该边缘路由器基于该第一IP头携带的封装协议信息、该第一隧道的源地址和目的地址,查询该隧道拼接表,确定与该封装协议信息匹配的出隧道接口。在另一些实施例中,该边缘路由器基于该第一IP头携带的校验信息、该第一隧道的源地址和目的地址,确定与该校验信息匹配的出隧道接口。

在一些实施例中,该边缘路由器基于该第一报文的第一IP头携带的源地址、目的地址、封装协议信息和该第一报文的GRE头携带的校验关键字,查询该隧道拼接表,以确定该第一报文对应的出隧道接口。示例性地,该第一报文携带的信息包括:源地址“100.1.1.1”、目的地址“100.5.5.5”、封装协议信息“GRE”和校验关键字“115599”,通过查询表1可以确定,该第一报文的出隧道接口为tunnel 59。基于此,该网络节点查询该tunnel59的配置信息“隧道源地址:100.5.5.5;隧道目的地址:100.9.9.9;隧道协议:GRE”,即可获取该第二隧道的源地址和目标地址。

305、该边缘路由器基于该第一报文以及该第二隧道的源地址和目标地址,生成第二报文,该第二报文包括第二IP头,该第二IP头包括该第二隧道的源地址和目标地址。

在一些实施例中,该边缘路由器将该第一报文的第一IP头中该第一隧道的源地址和目的地址,分别替换为该第二隧道的源地址和目的地址,得到该第二报文。示例性地,该边缘路由器将该第一报文的第一IP头中的源地址“100.1.1.1”替换为tunnel 59对应的该第二隧道的源地址“100.5.5.5”,将该第一报文的第一IP头中的目的地址“100.5.5.5”替换为tunnel 59对应的该第二隧道的目的地址“100.9.9.9”,得到该第二报文。

在另一些实施例中,该边缘路由器将该第一报文的第一IP头删除,将该第二IP头添加至删除该第一IP头的该第一报文中,得到该第二报文。示例性地,该边缘路由器将该第一IP头删除,基于该tunnel 59的配置信息“隧道源地址:100.5.5.5;隧道目的地址:100.9.9.9;隧道协议:GRE”确定第二IP头,在删除了第一IP头的第一报文外层,封装上该第二IP头。

可选地,在将第一IP头替换为该第二IP头之前,该边缘路由器能够基于该tunnel59的配置信息包括的新的校验关键字,更新该第一报文的GRE头,也即是,将该GRE头中原有的校验关键字替换为该新的校验关键字,来得到第二报文,从而在第二隧道中,基于新的校验关键字来保证该第二报文的安全传输。

通过上述技术方案,基于已存储的信息对报文进行简单处理,即可在不增加报文数据量的情况下,进行两段隧道之间的报文转发,有效提升了报文传输的效率。

306、该边缘路由器向用户边缘路由器发送该第二报文。

其中,该边缘路由器基于该第二报文的第二IP头,即可从该第二隧道将该第二报文转发至该用户边缘路由器。

在一些实施例中,该边缘路由器基于该第一隧道对应的出隧道接口,也即是,该第二隧道对应的隧道接口tunnel 59,将该第二报文转发出去。其中,转发路径上的节点通过解析该第二IP头中的源地址和目的地址,即可执行对该第二报文的转发。

通过上述技术方案,在边缘路由器基于预先存储的信息,即可基于多段隧道进行报文转发,灵活地实现了多段隧道之间的拼接;并且,无需在报文中携带多段隧道的相关信息,减轻了边缘路由器的负载,从而大大提升了报文的传输效率。进一步地,基于隧道拼接表的形式,在边缘路由器中存储隧道之间的映射关系,有效隔离了用户边缘路由器与UPF服务器之间的业务操作流程,在UPF服务器侧由于扩容、割接或分裂发生网络地址变更的情况下,仅需在边缘路由器中更改隧道拼接表即可保证业务报文的正常发送,无需到用户边缘路由器中修改配置,保证了业务操作流程在用户面无感知,有效提升了业务开展的灵活性和稳定性。

需要说明的是,上述图3对应的实施例是以边缘路由器接收到UPF服务器向用户边缘路由器发送的第一报文为例进行说明,在边缘路由器接收到用户边缘路由器向UPF服务器发送的第二报文时,该边缘路由器能够基于同理的操作执行报文的发送过程,例如,基于表1中的条目2,即可将来自用户边缘路由器的第二报文,通过隧道接口tunnel 51发送给UPF服务器。

图5是本申请实施例提供的一种报文发送装置的结构示意图。参见图5,该报文发送装置包括:

接收模块501,用于接收第一报文,该第一报文包括第一网络协议IP头,该第一IP头包括第一隧道的源地址和目的地址;

获取模块502,用于基于该第一隧道的源地址和目的地址,获取预先存储的第二隧道的源地址和目标地址,该第一隧道和该第二隧道用于传输该第一报文;

发送模块503,用于发送第二报文,该第二报文包括第二IP头,该第二IP头包括该第二隧道的源地址和目标地址。

在一种可能实施方式中,该获取模块502包括:

第一获取单元,用于基于该第一隧道的源地址和目的地址,获取该第一隧道对应的出隧道接口;

第二获取单元,用于基于该第一隧道对应的出隧道接口,获取预先存储的该第二隧道的源地址和目标地址。

在一种可能实施方式中,该第一IP头包括封装协议信息,该第一获取单元用于:

基于该封装协议信息、该第一隧道的源地址和目的地址,确定与该封装协议信息匹配的出隧道接口。

在一种可能实施方式中,该第一报文的通用路由封装GRE头包括校验信息,该第一获取单元用于:

基于该校验信息、该第一隧道的源地址和目的地址,确定与该校验信息匹配的出隧道接口。

在一种可能实施方式中,在该发送第二报文之前,该装置还包括:

报文生成模块,用于基于该第一报文以及该第二隧道的源地址和目标地址,生成该第二报文。

在一种可能实施方式中,该报文生成模块用于:

将该第一报文的第一IP头中该第一隧道的源地址和目的地址,分别替换为该第二隧道的源地址和目的地址,得到该第二报文;或,

将该第一报文的第一IP头删除,将该第二IP头添加至删除该第一IP头的该第一报文中,得到该第二报文,该第二IP头包括该第一隧道的源地址和目的地址。

通过在网络设备中存储多段隧道的源地址和目的地址,即可在发送报文时,根据报文来自的上一段隧道,自动地确定发送报文的下一段隧道,从而进行报文转发。通过上述技术方案,网络设备灵活地实现了多段隧道之间的拼接,基于预先存储的信息,即可基于多段隧道进行报文转发;并且,无需在报文中携带多段隧道的相关信息,减轻了网络设备的负载,从而大大提升了报文的传输效率。

需要说明的是:上述实施例提供的报文发送装置在进行报文发送时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的报文发送装置与报文发送属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

参见图6,图6是本申请实施例提供的一种网络设备的结构示意图,该网络设备600可以配置为上述边缘路由器或用户边缘路由器。

该网络设备600包括至少一个处理器601、通信总线602、存储器603以及至少一个物理接口604。

处理器601可以是一个通用中央处理器(central processing unit,CPU)、网络处理器(network processor,NP)、微处理器或者可以是一个或多个用于实现本申请方案的集成电路,例如,专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。

通信总线602用于在上述组件之间传送信息。通信总线602可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

存储器603可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其它类型的静态存储设备,也可以是随机存取存储器(random access memory,RAM)或者可存储信息和指令的其它类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、只读光盘(compactdisc read-only memory,CD-ROM)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备,或者是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。存储器603可以是独立存在,并通过通信总线602与处理器601相连接。存储器603也可以和处理器601集成在一起。

物理接口604使用任何收发器一类的装置,用于与其它设备或通信网络通信。物理接口604包括有线通信接口,还可以包括无线通信接口。其中,有线通信接口例如可以为以太网接口。以太网接口可以是光接口,电接口或其组合。无线通信接口可以为无线局域网(wireless local area networks,WLAN)接口,蜂窝网络通信接口或其组合等。物理接口604也称物理口。

在具体实现中,作为一种实施例,处理器601可以包括一个或多个CPU,如图6中所示的CPU0和CPU1。

在具体实现中,作为一种实施例,网络设备600可以包括多个处理器,如图6中所示的处理器601和处理器605。这些处理器中的每一个可以是一个单核处理器(single-CPU),也可以是一个多核处理器(multi-CPU)。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(如计算机程序指令)的处理核。

在一些实施例中,网络设备600还可以包括输出设备和输入设备。输出设备和处理器601通信,可以以多种方式来显示信息。例如,输出设备可以是液晶显示器(liquidcrystal display,LCD)、发光二级管(light emitting diode,LED)显示设备、阴极射线管(cathode ray tube,CRT)显示设备或投影仪(projector)等。输入设备和处理器601通信,可以以多种方式接收用户的输入。例如,输入设备可以是鼠标、键盘、触摸屏设备或传感设备等。

在一些实施例中,存储器603用于存储执行本申请方案的程序代码610,处理器601可以执行存储器603中存储的程序代码610以实现相应的功能,也即是,网络设备600可以通过处理器601以及存储器603中的程序代码610,来配合实现前述方法实施例提供的报文发送方法。

本申请实施例的网络设备600可对应于上述各个方法实施例中的网络节点,并且,该网络设备600中的处理器601、物理接口604等可以实现上述各个方法实施例中的网络节点所具有的功能和/或所实施的各种步骤和方法。为了简洁,在此不再赘述。

在示例性实施例中,还提供了一种计算机可读存储介质,例如包括程序代码的存储器,上述程序代码可由网络设备中的处理器执行以完成上述实施例中的报文转发方法。例如,该计算机可读存储介质是非临时计算机可读存储介质,如只读存储器(read-onlymemory,ROM)、随机存取存储器(random access memory,RAM)、只读光盘(compact discread-only memory,CD-ROM)、磁带、软盘和光数据存储设备等。

本申请实施例还提供了一种计算机程序产品,该计算机程序产品包括程序代码,该程序代码存储在计算机可读存储介质中,网络设备的处理器从计算机可读存储介质读取该程序代码,处理器执行该计算机指令,使得网络设备执行上述报文发送方法。

以上描述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以程序产品的形式实现。该程序产品包括一个或多个程序指令。在网络设备上加载和执行该程序指令时,全部或部分地产生按照本申请实施例中的流程或功能。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

相关技术
  • 一种报文发送方法、装置、网络设备和计算机可读介质
  • 信息发送方法及装置、存储介质、电子装置
  • WUP发送方法、WUP接收方法、装置、AP、WUR STA及存储介质
  • 一种带宽调整方法、装置、存储介质和网络设备
  • 一种报文调度方法、装置及存储介质
  • 报文发送方法、装置、网络设备及存储介质
  • 发送报文的方法、装置、网络设备、系统及存储介质
技术分类

06120116514371