CN117461297A - 用于路由蜂窝数据数据包的ip网络的使用 - Google Patents

用于路由蜂窝数据数据包的ip网络的使用 Download PDF

Info

Publication number
CN117461297A
CN117461297A CN202280041235.8A CN202280041235A CN117461297A CN 117461297 A CN117461297 A CN 117461297A CN 202280041235 A CN202280041235 A CN 202280041235A CN 117461297 A CN117461297 A CN 117461297A
Authority
CN
China
Prior art keywords
packet
module
data packet
gtp
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202280041235.8A
Other languages
English (en)
Inventor
科约·帕特尔
村上哲也
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alcus Ltd
Original Assignee
Alcus Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US17/488,833 external-priority patent/US20220345984A1/en
Application filed by Alcus Ltd filed Critical Alcus Ltd
Publication of CN117461297A publication Critical patent/CN117461297A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一种蜂窝数据通信网络包括通过IP网络连接到UPF的gNodeB。第一转换模块将GFP数据包转换成通过IP网络传输的IP数据包。第二转换模块将IP数据包转换回IP数据包并将IP数据包转发到UPF。PFCP代理监听信息并将其提供给BGP模块,该BGP模块对转换模块和路由模块进行编程以绕过UPF执行对数据包的路由。BGP模块可以利用与绑定到对gNodeB的接口的绑定SID相关联的SR策略对第一转换模块进行编程。SR策略可以根据功能来调用转换。路由模块可以被编程为将GTP信息嵌入到由第一转换模块使用的SRH报头中。BGP模块还可以分发路由和VPN更新。

Description

用于路由蜂窝数据数据包的IP网络的使用
相关申请的交叉引用
本申请是2021年6月29日提交的序列号为17/362,071的美国专利申请的部分延续并且是2021年4月26日提交的序列号为17/240,726的美国专利申请的部分延续,其公开内容通过引用整体并入本文。
技术领域
本申请涉及往返蜂窝数据通信网络的数据包(packet)的路由。
背景技术
参照图1A,在传统的5G蜂窝数据通信网络100中,用户设备(UE)102可以传输gNodeB 106的数据包,gNodeB 106执行通过无线电天线接收数据包并通过网关(GW)108将数据包传输到IP网络110的功能。在传统的蜂窝数据通信网络中,来自UE 102的数据包必须被转发到用户面功能(UPF)112,即与最初接收数据包的GW 108相关联的UPF 112。UPF 112可以通过网络110接收数据包,网络110可以是UPF和GW 108之间的互联网协议(IP)网络110。UPF 112可以通过另一IP网络114将数据包转发到移动边缘计算(MEC)服务器116。MEC服务器116可以是数据包的目的地,例如,提供由数据包寻址的服务的服务器或用于访问更广泛的网络(例如互联网)的网关。
参照图1B,在一些情况下,可能需要将数据包从与UPF 112相关联的MEC服务器116重定向到另一个MEC服务器118。例如,GW 108还可以连接到将MEC服务器118与GW 108联接的一个或多个IP网络120。当MEC服务器116发生故障或者出于某种其他目的而重定向时,可以将数据包重定向到MEC服务器118。然而,当前的5G协议要求首先将数据包路由到UPF112,然后UPF 112将把数据包转发到MEC服务器118,如图1B所示。从MEC服务器118到UE 102的流量可以遵循相反路径。这增加了传输到UE 102和从UE 102传输的数据包的等待时间。
提供一种用于处理蜂窝通信网络中的数据包重定向的改进方法将是本领域的进步。
附图说明
为了容易理解本发明的优点,将参考附图中示出的具体实施例对上面简要描述的本发明进行更具体的描述。应当理解,这些附图仅描绘了本发明的典型实施例,因此不应被视为对其范围的限制,将通过使用附图以附加的特征和细节来描述和说明本发明,其中:
图1A是示出根据现有技术的通过蜂窝数据通信网络接收的数据包的路由的示意性框图;
图1B是示出根据现有技术的通过蜂窝数据通信网络接收的数据包的重新路由的示意性框图;
图2是示出根据本发明的实施例的用于路由通过蜂窝数据通信网络接收到的数据包的方法的示意性框图;
图3是根据本发明的实施例的用于执行对通过蜂窝数据通信网络接收到的数据包的路由的组件的示意性框图;
图4是示出根据本发明的实施例的由PFCP代理监听信息以及使用该信息对转换和路由模块进行编程的示意性框图;
图5是根据本发明的实施例的PFCP代理的示意性框图;
图6是示出根据本发明的实施例的PFCP代理和路由/SDN控制器之间的信息交换的示意性框图;
图7A是示出根据本发明的实施例的将外部路由信息传播到转换模块的示意性框图;
图7B是示出根据本发明的实施例的对将数据包路由到外部网络的转换模块进行编程的示意性框图;
图7C是示出根据本发明的实施例的对将数据包路由到外部网络的路由模块进行编程的示意性框图;并且
图7D是示出根据本发明的实施例的对将数据包路由到外部网络的转换模块进行编程的示意性框图;
图8是示出根据本发明的实施例的转换模块的配置的示意性框图;
图9A是示出根据本发明的实施例的从GTP到SRv6的转换的示意性框图;
图9B是进一步示出根据本发明的实施例的转换模块的操作的示意性框图;
图9C是示出根据本发明的实施例的从SRv6到GTP的转换的示意性框图;并且
图10是适合于实现根据本发明的实施例的方法的计算机系统的示意性框图。
具体实施方式
容易理解的是,如本文附图中一般描述和示出的,本发明的组件可以以多种不同的配置来布置和设计。因此,如图所示,本发明的实施例的以下更详细的描述并不旨在限制本发明所要求保护的范围,而仅代表根据本发明的当前设想的实施例的某些示例。通过参考附图将更好地理解当前描述的实施例,其中相同的部件自始至终由相同的附图标记表示。
根据本发明的实施例可以被实施为设备、方法或计算机程序产品。因此,本发明可以采用全硬件实施例、全软件实施例(包括固件、常驻软件、微代码等)或者组合软件和硬件方面的实施例的形式,这些实施例在本文中通常被称为“模块”或“系统”。此外,本发明可以采取实施在任何有形表达介质中的计算机程序产品的形式,该有形表达介质具有实施在介质中的计算机可用程序代码。
可以利用一种或多种计算机可用或计算机可读的介质的任意组合。例如,计算机可读介质可以包括便携式计算机软盘、硬盘、随机存取存储器(RAM)装置、只读存储器(ROM)装置、可擦除可编程只读存储器(EPROM或闪存)装置、便携式光盘只读存储器(CDROM)、光存储装置和磁存储装置中的一种或多种。在所选择的实施例中,计算机可读介质可以包括任何非暂时性介质,任何非暂时性介质可以包含、存储、传达、传播或传输程序以供指令运行系统、设备或装置使用或与指令运行系统、设备或装置结合使用。
用于执行本发明的操作的计算机程序代码可以用包括诸如Java、Smalltalk、C++之类的面向对象的编程语言和诸如“C”编程语言或类似的编程语言之类的传统的过程式编程语言的一种或多种编程语言的任意组合来编写,并且还可以使用诸如HTML、XML、JSON之类的描述性或标记语言。程序代码可以作为独立软件包完全在计算机系统上执行、在独立硬件单元上执行、部分在与计算机间隔一定距离的远程计算机上执行或者完全在远程计算机或服务器上执行。在后面的情况下,远程计算机可以通过包括局域网(LAN)或广域网(WAN)的任何类型的网络连接到计算机,或者可以连接到外部计算机(例如,使用互联网服务提供商通过互联网)。
下面参考根据本发明的实施例的方法、设备(系统)和计算机程序产品的流程图和/或框图来描述本发明。应当理解,流程图和/或框图的每个框以及流程图和/或框图中的框的组合可以由计算机程序指令或代码来实现。可以将这些计算机程序指令提供给通用计算机、专用计算机或其他可编程数据处理设备的处理器以产生机器,使得经由计算机或其他可编程数据处理设备的处理器执行的指令创建用于实现流程图和/或框图块中指定的功能/动作的方法。
这些计算机程序指令还可以存储在非暂时性计算机可读介质中,其可以指导计算机或其他可编程数据处理设备以特定方式发挥作用,使得存储在计算机可读介质中的指令产生包括实现流程图和/或框图块中指定的功能/动作的指令方法的制造品。
计算机程序指令还可以被加载到计算机或其他可编程数据处理设备上,以使得一系列操作步骤在计算机或其他可编程设备上执行,进而产生计算机实现的过程,使得在计算机或其他可编程设备上执行的指令提供用于实现流程图和/或框图块中指定的功能/动作的过程。
参照图2,在一些实施例中,来自UE 102的数据包在被gNodeB 106接收时被格式化为通用分组(packet)无线电业务(general packet radio service,GPRS)数据包。gNodeB106可以控制RU(无线电单元,即天线)、DU(分布式单元)和CU(集中式单元)的功能,并且管理UE 102与网络110之间的数据包传送。然后,gNodeB 106可以将这些数据包封装在GPRS隧道协议(GTP)数据包内,GPRS隧道协议(GTP)数据包然后被转发到UPF 112。路径204示出发送到UPF 112和从UPF 112发送的数据包的路径。路径206示出被重定向例如往返于与图1B不同的MEC服务器118或其他目的地的数据包的路径。
gNodeB 106输出的数据包可以由转换模块208处理。在所示实施例中,转换模块208在GTP和互联网协议(即,不适合在蜂窝数据网络中使用并且不是GTP的协议)之间来回转换。在所示实施例中,互联网协议是SRv6(通过IPv6数据面(dataplane)分段路由)。在下面的描述中,应当理解,GTP和SRv6之间的转变可以用GTP和其他互联网协议之间的转变来代替。
转换模块208可以插入gNodeB 106和SRv6网络210(例如,路由根据SRv6或其他IP协议实现的数据面(data plane)和/或网络)之间。UPF 112可以通过另一个转换模块212连接到SRv6网络210。注意,在一些实施例中,转换模块208、网络210和转换模块208可以是公共计算装置的一部分,即安装到公共底架。该公共计算装置可以与天线104和gNodeB 106中的一个或两者并置。公共计算装置还可以包括MEC服务器116。
网络210还可以例如通过互联网协议路由模块216联接到外部网络214。在所示实施例中,路由模块216是SRv6路由器,但是也可以使用实现其他路由协议的路由器。在一些实施例中,路由模块216不实现GTP协议。外部网络214可以是WAN,例如互联网,并且可以将网络210连接到另一个MEC服务器118或连接到向UE 102提供服务的任何第三方服务器。
在所示实施例中,路径204、206的标记为“A”的部分可以传递格式化为GTP数据包的数据包(下文中“A型数据包”)。除了由此封装的有效负载数据之外,A型数据包还可以包括内部互联网协议(IP)报头、GTP报头、UDP(用户数据报协议)报头和外部IP报头中的一些或全部。内部IP报头可以是根据在UE 102上生成的IP协议的IP报头。外部IP报头可以是根据IP协议或不同IP协议的IP报头,其由gNodeB106生成并且定义用于将A型数据包通过网络210路由到UPF 112、MEC服务器116、MEC服务器118或外部网络214的信息。
路径204、206标记为“B”的部分可以传递格式化为互联网协议数据包的数据包,例如SRv6数据包(下文中“B型数据包”)。此类数据包可以包括如上定义的内部IP报头、分段路由报头(SRH')以及互联网路由报头(例如IPv6报头)。每个B型数据包的SRH'可以由生成B型数据包的转换模块208、212填充以包括来自A型数据包的GTP报头、UDP报头和外部IP报头中的一些或全部的信息,B型数据包是从A型数据包转换来的。具体地,存储在SRH'中的信息可以包括足以由转换模块208、212中的另一个将B型数据包转换成A型数据包(GTP数据包)的数据。Ipv6字段可以是根据诸如Ipv6的互联网协议(IP)格式化的数据包,并且包括足以通过诸如网络210的IP网络路由数据包的信息,该信息包括源IP地址、目的地IP地址和由Ipv6或其他互联网协议定义的其他字段的数据。该信息可以从A型数据包的外部IP报头获得,B型数据包从该A型数据包获得。IPv6数据包还可以包括来自A型数据包的有效负载数据。
路径206的标记为“C”的部分可以传送“C型”数据包,“C型”数据包被格式化为互联网协议数据包,包括与B型数据包相同的字段定义,但是其中SRH不存储来自A型数据包的GTP报头的信息,和/或随后不使用SRH字段中的信息转换为B型数据包。如图2所示,从MEC服务器118发送到UE 102的数据包可以作为B型数据包穿过网络210,而从UE 102发送到MEC服务器118的数据包作为C型数据包穿过网络210。
路径206的标记为“D”的部分可以传送“D型”数据包,“D型”数据包被格式化为互联网协议数据包,包括C型数据包的内部IP报头和有效负载数据,D型数据包是从C型数据包获得的。具体地,D型数据包可以包括由gNodeB 106从UE 102,从MEC服务器116、118或从外部网络214接收的IP数据包。
“直接入站数据包”可以是经过gNodeB 106且未被重定向的数据包,例如沿着图2中的路径204从左向右移动的数据包。直接入站数据包被从UE 102传输到gNodeB。当由gNodeB接收时,直接入站数据包可以是D型数据包,例如IPv4或IPv6。当由gNodeB 106输出时,直接入站数据包可以是由gNodeB 106传输到转换模块208的A型数据包。具体地,A型数据包可以是封装从UE 102接收的IP数据包的GTP数据包。
转换模块208将A型直接入站数据包转换为B型数据包,并使用A型直接入站数据包的外部IP报头中包括的信息通过网络210将B型直接入站数据包传输到UPF112。如上所述,来自A型数据包的GTP字段的信息可以包含在从A型数据包获得的B型数据包的SRH'字段中,以便能够转换回A型数据包。然而,B型数据包本身可以是SRv6数据包而不是GTP数据包。B型数据包进一步包括来自A型数据包的内部IP报头和有效负载数据。
可以将B型直接入站数据包路由到转换模块212,转换模块212使用存储在B型数据包的SRH'中的信息将直接入站数据包从B型数据包转换回A型数据包。具体地,B型数据包的SRH'字段中的数据用于生成包括B型数据包的内部IP字段和有效负载数据的GTP数据包的GTP报头,该GTP数据包是针对B型直接入站数据包的A型直接入站数据包。
经过转换模块212的转换之后,A型直接入站数据包被传输到UPF 112。UPF 112然后可以解封装直接入站数据包以获得内部IP数据包(例如,从UE 102接收的D型数据包)并且将D型直接入站数据包转发到MEC服务器116。
“重定向的入站数据包”可以是源自UE 102作为D型数据包并通过gNodeB 106传输的数据包,但是其被重定向远离MEC服务器116,例如重定向到外部网络214和/或另一MEC服务器118或第三方服务器。重定向的入站数据包可以在图2中从左上到右下穿过路径206。当由gNodeB 106输出时,重定向的入站数据包可以是由gNodeB 106传输到转换模块208的A型数据包。转换模块208将A型重定向的入站数据包转换为C型数据包,使得C型重定向的入站数据包不包括来自A型重定向的入站数据包的GTP或UDP报头的信息。转换模块208将C型重定向的入站数据包传输到MEC服务器118,数据包例如通过路由模块216被重定向到该MEC服务器118。路由模块216将C型重定向的入站数据包转换成D型数据包并将D型重定向的入站数据包发送到MEC服务器118。如上所述,转换可以包括对封装在C型数据包中的D型数据包进行解封装。
“直接出站数据包”可以是经过UPF 112并通过gNodeB传输到UE 102而没有响应于重定向的入站数据包或与重定向的入站数据包相同的网络流的一部分的数据包。例如,来自MEC服务器116的数据包可以通过UPF 112作为直接出站数据包来传输。直接出站数据包可以沿着图2中的路径204从右到左穿过路径204。UPF 112从MEC服务器116接收的数据包可以是D型数据包。当由UPF 112输出时,直接出站数据包可以是封装D型数据包的A型数据包并且由UPF 112传输到转换模块212。转换模块212将A型直接出站数据包转换为B型数据包,并且使用B型数据包的IPv6字段中包括的信息通过网络210将B型直接出站数据包传输到gNodeB 106。转换可以包括将GTP数据包转换成SRv6数据包,该SRv6数据包包括来自SRv6数据包的SRH'字段中的GTP数据包的GTP报头的数据,SRv6数据包进一步包括GTP数据包的内部IP报头和GTP数据包的有效负载数据。
B型直接出站数据包可以由转换模块212路由到转换模块208,转换模块208使用存储在B型数据包的SRH'中的信息将B型直接出站数据包转换回A型直接出站数据包。这可以包括将SRv6数据包转换为GTP数据包,GTP数据包封装B型数据包的内部IP报头和有效负载数据并包括来自GTP报头中的SRH'字段的数据。
在经由转换模块208转换之后,A型直接出站数据包被传输到gNodeB 106。gNodeB106然后可以解封装A型数据包以获得D型直接出站数据包并且将D型直接出站数据包转发到UE 102。解封装可以包括从GTP数据包中提取内部IP报头和有效负载数据。
“重定向的出站数据包”可以是源自MEC服务器118或重定向的入站数据包所路由到的外部网络214中的位置的数据包。重定向的出站数据包可以响应于重定向的入站数据包而被发送,或者作为重定向的入站数据包的相同网络流的一部分而被发送。例如,重定向的出站数据包可以由MEC服务器118或第三方服务器发送到UE 102。重定向的出站数据包可以在图2中从右下到左上穿过路径206。重定向的出站数据包可以例如通过外部网络214、路由模块216和网络210中的一些或全部,穿过到转换模块208的路径。当由路由模块216接收时,重定向的出站数据包可以是D型数据包,其通过路由模块216转换成B型重定向的出站数据包,并且B型重定向的出站数据包通过网络210被转发到转换模块208。该转换可以包括将IP数据包的内部IP报头和有效负载数据封装入GTP数据包。
转换模块208将B型重定向的出站数据包转换为A型数据包并将A型重定向的出站数据包传输到gNodeB 106。从B型到A型的转换可以包括使用存储在B型数据包的SRH'中的信息。这可以包括将SRv6数据包转换为GTP数据包,GTP数据包封装B型数据包的内部IP报头和有效负载数据并包括来自GTP报头中的SRH'字段的数据。gNodeB 106然后可以从B型重定向的出站数据包中解封装D型重定向的出站数据包(内部IP报头和有效负载数据),并且将D型重定向的出站数据包传输到UE 102。
在一些实施例中,用户面消息(user plane message)是用于建立和维持UPF 112与UE 102之间的会话的消息。用户面消息还可以包括由UPF 112传输以指示将数据包路由到UE 102和MEC服务器116以及从UE 102和MEC服务器116路由数据包或者将数据包重定向到外部网络214的那些消息。用户面消息还可以传递5G用户面消息,例如回应请求、回应应答、错误指示或其他用户面消息。
入站用户面消息可以作为直接入站数据包来路由。从UPF 112传输的用户面消息在每种情况下都可以被视为直接出站数据包。当按照UPF 112的指示发生重定向时,随后的入站数据数据包,即非用户面消息数据包,可以绕过UPF 112作为重定向的入站数据包由转换模块208进行路由。转换模块208可以通过执行入站数据包的深度数据包检查来识别用户面消息。下面详细描述用于执行该路由的系统和方法。
参照图3,可以就控制面(control plane)300和数据面302来理解UE 102和外部网络214之间的网络路径。控制面300包括一些模块以及这些模块之间的通信,控制面300将数据面302的模块配置为按照预定方式传输数据包。数据面302包括一些模块以及这些模块之间的通信,数据面302在UE 102和外部网络214之间传输有效负载数据的数据包。控制面300和数据面302的模块可以在单个装置内、在联接到公共电路板或底架的多个装置内或者通过一个或多个网络连接而彼此连接的多个装置内实现。所示组件可以在服务器、云计算平台或其他位置上运行,或者分布在这些组件中的一个或多个的组合上。
控制面300和数据面302还可以被分为部分304和306。部分304可以被理解为根据适合在分组无线电类型通信(“分组无线电部分304”)即使用GPRS、GTP或其他蜂窝数据通信协议的通信中使用的协议来传递数据包。在所示实施例中,部分304实现用于蜂窝数据通信的第三代合作伙伴计划(3GPP)协议,不过也可以使用其他蜂窝数据通信协议。
部分306可以被理解为根据互联网协议(例如IPv6协议或不适合在分组无线电类型通信中使用的其他互联网协议(“IP部分306”))传递数据包。
分组无线电部分304的控制面300可以包括如下组件:
·具有统一数据管理的归属用户服务器(HSS UDM)308或用于管理认证、切换、IP多媒体子系统(IMS)和简单消息服务(SMS)中的一些或全部的其他组件。
·用于根据用户订阅来管理对蜂窝数据通信网络的接入的策略控制功能(PCF)和/或策略和计费规则功能(PCRF)310。
·接入和移动性管理功能(AMF)和/或移动性管理实体(MME)312或用于管理连接和移动性管理任务(例如,切换)的其他组件。
·会话管理功能(SMF)和/或服务和数据包网关(SPGW,例如SPGW-C)312(本文中也称为“SMF 314”)或用于管理与UPF的用户会话以及用于促进分组无线电网络与互联网协议网络连接的其他组件。
SMF 314可以管理GTP会话信息并将其提供给AMF 312。AMF312可以对数据面302中的组件(如下所述的gNodeB 106)进行编程以根据GTP会话信息来路由数据包。
分组无线电部分304的数据面302可以包括如下组件:
·通过天线直接与UE 102通信并且将来自UE 102的数据包封装到GTP数据包中并且还可以实现用户面控制协议的gNodeB 106或其他硬件组件。
·用于当数据包穿过分组无线电部分304和IP部分306之间时在GTP和SRv6之间来回转换数据包的转换模块208。
IP部分306的控制面300可以包括如下组件:
·下面更详细地描述的数据包转发控制协议(PFCP)代理322。
·边界网关协议(BGP)模块324或用于接收和/或传输到图3所示的其他组件和/或本文描述的任何网络的其他装置的路由路径的其他组件。
·用户面功能控制模块(UPF N4)326或用于终止GTP连接并管理分组无线电网络与互联网协议网络之间的数据包传输的其他组件。UPF N4 326有助于与UPF 112建立会话。
IP部分306的数据面302可以包括如下组件:
·如上所述的UPF 112。
·转换模块208,在部分304和306中操作。
·网络210。
·路由模块216。
·如上所述,转换模块212用于转换发送到UPF 112的流量。
在所示实施方式中,可以通过PFCP代理322在SMF 314和UPF控制模块326之间协调根据PFCP的数据包转发关联。SMF 314和UPF控制模块326因此可以通过PFCP代理322交换会话信息。PFCP代理322可以探听该信息并将其提供给BGP模块324。因此,PFCP代理322可以与UPF控制模块326的PFCP实现进行关联并且与SMF 314进行关联。BGP模块324可以使用探听到的信息来对数据面302(例如,转换模块208、212,路由模块216)进行编程,以使用PFCP代理322探听到的信息来执行从GTP到IP协议(例如,SRv6)以及从IP协议到GTP的转换,如下文所述。
实现PFCP的现有软件数据包是专有的且不易更改。一些用于实现PFCP的开源软件数据包可用,但仅作为必须合并到应用程序中的数据包存在。另外,UPF控制模块326的网络堆栈可以由不易修改的第三方或开源软件(例如upg-vpp(用户面网关矢量数据包处理器))来实现。
在一些实施例中,PFCP代理322、BGP模块324和内部路由模块216可以相对于此类组件的常规实现进行修改,以便执行以下中的一些或全部:
·在SMF 314和UPF控制模块(UPF N4)326的PFCP实现之间建立关联。
·在SMF 314和UPF控制模块326的PFCP实现之间传送消息。
·探听BGP模块324的会话消息以获得诸如UE 102的地址、远程/本地隧道端点(TEP)地址、隧道端点标识符(TEID)和其他信息之类的信息。
图4进一步示出PFCP代理322和BGP模块324的示例实施方式。在传统的5G移动网络中,将在AMF MME 312和UPF N4 326之间建立关联,例如控制信道。将在SMF SPGW 314和UPFN4 326之间建立会话,例如用户面信息。一旦在SMF SPGW 314和UPF N4 326之间建立了会话,UE 102就可以开始发送有效负载流量。随后,gNodeB 106可以将来自UE 102的数据包封装到GTP数据包中并将GTP数据包转发到UPF112。在典型的5G实施方式中,关联和会话请求被发送到UPF N4 326的UDP端口8805,并且对来自UPF N4 326的请求的响应将被发送到源UDP端口,请求是从源UDP端口接收的。
在传统系统中,由于上述原因,难以优化gNodeB 106和UPF 112之间的路径:所有UE流量必须封装到GTP数据包中并通过UPF 112转发。
在一些实施例中,通过在SMF SPGW 314和UPF N4 326之间插入PFCP代理322使得PFCP代理322在这些组件之间转发400流量来克服传统5G移动网络的限制。因此,PFCP代理322从SMF SPGW 314接收PFCP消息并将它们转发到UPF N4 326。同样,PFCP代理322从UPFN4326接收PFCP消息并将它们转发到SMF SPGW 314。当其这样做时,PFCP代理322可以在两个方向上解析PFCP消息以检索用户面信息。
PFCP代理322然后可以向在PFCP代理322外部运行的路由/软件定义网络(SDN)控制器提供402用户面信息。在所示实施例中,使用BGP模块324来实现路由/SDN控制器,但是也可以使用其他实施方式。PFCP代理322和路由/SDN控制器324可以在同一计算装置或不同的计算装置上运行。PFCP代理和路由/SDN控制器324可以实现如上所述关于图2的路由,而不需要进一步修改控制面300,特别是SMF SPGW-C314和UPF N4 326。具体地,SMF SPGW-C314和UPF N4 326可以交换信息以通过PFCP代理322建立5G会话,使得PFCP代理322的操作不被SMF SPGW-C 314和UPF N4 326感知到。
BGP模块324可以根据用户面信息将转换模块208编程404a在数据面中。然后,转换模块208可以绕过UPF 112根据从BGP模块324接收的路径,将重定向的数据包转发406到重定向的目标,例如MEC服务器118或外部网络214,该路径相对于数据包首先通过UPF 112路由的传统方法更为优化。BGP模块324还可以对转换模块212进行编程404b以将控制数据包路由到UPF 112,并对路由模块216进行编程404c以将数据包路由到MEC服务器118或通过外部网络214连接到路由模块216的其他装置以及从MEC服务器118或通过外部网络214连接到路由模块216的其他装置路由数据包。
对于编程404a,BGP模块324向转换模块208提供朝向UPF 112的路由,并且还提供关于如何将GTP数据包转换为SRv6数据包(即,如上所述A型数据包转换为B型数据包)的规则。因此,当转换模块208接收到目的地是UPF 112的GTP数据包时,转换模块208将应用从BGP模块324接收到的规则来执行转换。
对于编程404b,BGP模块324可以向转换模块212提供类似或相同的规则。基于该规则,转换模块212可以将SRv6数据包转换为GTP数据包并重新创建被发送到UPF 112的原始GTP数据包。BGP模块212还可以向转换模块212提供朝向gNodeB 106的路由。当UPF112发出目的地为gNodeB 106的GTP数据包时,转换模块212可以基于上述规则将GTP数据包转换为SRv6数据包,然后将得到的SRv6数据包转发到转换模块208。转换模块208可以基于相同的规则将SRv6数据包转换回GTP数据包并且将所得到的GTP数据包转发到gNodeB 106。
对于由UE 102向外部网络214或外部MEC服务器118发送的数据包,路由模块216可以向转换模块208发布到外部MEC服务器118和/或外部路由模块214的外部路由。这可以基于标准L3VPN SRv6方式来完成。因此,转换模块208可以基于UE生成的内部数据包来执行标准SRv6封装。
对于编程404c,路由模块216可以实现可能缺乏处理GTP数据包的能力的标准SRv6路由器。因此,编程404c可以包括由BGP模块324生成用于SRv6的特殊服务SID,其包含GTP信息(例如,可以嵌入在B型数据包的SRH'报头中的GTP信息中的一些或全部)。如上所述,穿过网络210的重定向的入站数据包可以被格式化为B型数据包。因此,编程404c可以对路由模块216进行编程以将GTP信息填充添加到Srv6报头的SRH'字段,Srv6报头的SRH'字段封装从MEC服务器118或外部网络214接收到的并且寄送到gNodeB 106的每个数据包。
对于从外部网络214或外部MEC 118接收到的并且定向到UE 102的响应,路由模块216可以将响应数据包(IP数据包,诸如IPv4或IPv6)封装到SRv6数据包中。此时,路由模块216可以使用由BGP 324提供的特殊服务SID。该SID包含可以包括在SRH'报头中的所需GTP信息。因此,转换模块208可以将SRv6数据包转换为GTP数据包并将所得到的GTP数据包发送到gNodeB 106。
图5示出PFCP代理322的示例实施方式。PFCP代理322可以解析PFCP消息以检索5G会话信息并如下所示处理消息并将PFCP消息转发到它们的目的地。在一些实施例中,go-pfcp数据包用于解析PFCP消息。例如,在所示实施例中,PFCP代理322包括PFCP请求接收器500、SMF请求转发器502、UPF请求转发器504、SMF响应接收器506、UPF响应接收器508、SMF响应转发器510和UPF响应转发器512。这些组件中的每一个都可以被指派监听PFCP代理322的特定端口或从PFCP代理322的特定端口进行传输。下面描述每个组件的操作。
当将PFCP消息转发到UPF N4 326时,PFCP代理322可以用PFCP代理的地址重写所转发的消息的IP源地址,并将IP目的地地址重写为UPF N4 326的IP目的地地址。PFCP代理322可以将所转发的请求的UDP源端口重写为PFCP代理的端口号。然后,可以将由PFCP代理322重写的PFCP请求发送到UPF N4 326。
当将PFCP消息转发到SMF SPGW-C 314时,PFCP代理322将IP源地址重写为PFCP代理的地址,用SMF SPGW-C 314的IP目的地地址重写IP目的地地址,并将UDP源端口重写为PFCP代理的本地端口号。然后PFCP代理将重写后的PFCP响应发送到SMF SPGW-C 314。
通过以此方式重写消息514、516,SMF SPGW-C 314和UPF N4 326与PFCP代理322进行通信。然而,PFCP代理322可以覆盖IP源/目的地地址和UDP源端口,使得MF SPGW-C 314和UPF N4 326根本无法识别PFCP代理322。
PFCP代理322通过监听UDP端口8805来拦截PFCP消息。UDP端口8805是3GPP定义的用于接收PFCP消息的端口。因此,当使用不同的配置时,在以下整个描述中可以用不同的端口来替代UDP端口8805。PFCP代理322的组件可以如下操作:
·PFCP请求接收器500监听从SMF SPGW-C 314或UPF N4 326寄送到UDP端口8805(即为接收PFCP消息而分配的端口)的PFCP请求消息514、516,并记录来自SMF SPGW-C 314的PFCP请求514的源端口(所示示例中的端口A)。PFCP请求接收器500可以进一步记录来自UPF N4 326的PFCP请求516的源端口(所示示例中的端口B)。可以预先配置消息514、516的源端口(分别为端口X和Y)。
·SMF请求转发器502将请求516转发到SMF SPGW-C 314。SMF请求转发器502由PFCP请求接收器500配置为使用X作为由SMF请求转发器502传输到SMF SPGW-C 314的转发请求516的源端口。SMF请求转发器502进一步通过将IP目的地地址重写为SMF-SPGW-C 314的IP地址并将IP源地址重写为PFCP代理322的IP地址来修改转发请求516。
·UPF请求转发器504将请求514转发到UPF N4 326。UPF请求转发器504由PFCP请求接收器500配置为使用Y作为由UPF请求转发器504传输到UPF N4 326的转发请求516的源端口。UPF请求转发器504进一步通过将IP目的地地址重写为UPFN4 326的IP地址并将IP源地址重写为PFCP代理322的IP地址来修改转发请求514。
·SMF响应接收器506被配置为检测寄送到端口X的来自SMF SPGW-C 314的PFCP响应518,并将检测到的PFCP响应518提供给UPF响应转发器512。
·UPF响应接收器508被配置为检测寄送到端口Y的来自UPF N4 326的PFCP响应520,并将检测到的PFCP响应520提供给SMF响应转发器510。
·SMF响应转发器510被编程为将PFCP响应518转发到SMF SPGW-C 314,其中所转发的PFCP响应518的源被设置为UDP端口8805并且目的地被设置为端口A(请求514的先前记录的源端口)。SMF响应转发器510进一步通过将IP目的地地址重写为SMF SPGW-C 314的IP地址并将IP源地址重写为PFCP代理322的IP地址来修改转发响应518。
·UPF响应转发器512被编程为将PFCP响应520转发到UPF N4 326的端口Y,其中转发的PFCP响应520的源被设置为UDP端口8805并且目的地被设置为端口B(请求516的先前记录的源端口)。UPF响应转发器512进一步通过将IP目的地地址重写为UPF N4 326的IP地址并将IP源地址重写为PFCP代理322的IP地址来修改转发响应518。
参考图6,当PFCP代理322如上参考图4所示转发消息时,PFCP代理322还可以监听关于使用该消息创建的关联和会话的信息。然后可以将该监听到的信息提供给路由/SDN控制器324(BGP模块324)。在所示实施例中,使用进程间通信(IPC)600来执行PFCP代理322和路由/SDN控制器324之间的信息传送。例如gRPC(一种开源远程过程调用(RPC)系统)。SDN控制器324可以根据监听到的信息对路由表602进行编程。
监听到的信息可以包括以下部分或全部:
·远程隧道端点(TEP),例如UPF 112的地址
·本地TEP,例如gNodeB 106的地址
·隧道端点标识符(TEID)
·QFI(服务质量(QoS)流标识符)
·UE地址(UE 102的地址)
·接入网络实例
·核心网实例
当接收到该信息时,路由/SDN控制器324然后可以基于该信息在路由表602中生成路由条目。这些路由条目可以用于控制转换模块208、212以及可能的路由模块216的路由,以便实现上面参考图2和图4描述的路由。
再次参考图2,期望的路由可以包括由gNodeB 106从UE 102接收内部IP数据包,gNodeB 106生成包括内部IP数据包的A型(GTP)数据包。gNodeB 106通过gNodeB 106和UPF112之间的GTP隧道将A型数据包传输到UPF 112。定义该GTP隧道的参数包括在上面列出的监听到的信息中,特别是引用UPF 112的远程TEP和引用gNodeB 106的本地TEP。
如上面参考图2所描述的,不是简单地通过GTP隧道路由A型数据包,而是将A型数据包转换为B或C型数据包并通过IP网络210(例如,SRv6网络210)路由。IP网络210和GTP隧道之间的转变由转换模块208、212管理。另外,路由模块216可能还需要参考定义GTP隧道的参数来路由数据包。可以将由PFCP代理322获得的监听到的信息提供给路由/SDN控制器324。路由/SDN控制器324然后可以对转换模块208、212和路由模块216进行编程以实现参考图2描述的路由。下面描述路由/SDN控制器324如何对转换模块208、212和路由模块216进行编程的各种示例。
在第一示例中,路由/SDN控制器324接收远程TEP并生成和分发朝向UPF 112的路由。具体地,可以将该路由提供给转换模块208。除了如上所述的编程404a之外,还可以提供路由以执行GTP和SRv6之间的转换。
在第二示例中,路由/SDN控制器324接收本地TEP和UE地址并且根据SRv6基于该信息生成和分发服务SID。具体地,可以将服务SID提供给路由模块216。服务SID经由本地TEP引用的gNodeB 106通过网络210向UE 102公布路由。当生成服务SID时,路由/SDN控制器324可以使用QFI。当执行如上所述的编程404c时可以实现该第二示例。
在第三示例中,gNodeB 106可以通过将A型数据包的目的地设置为远程TEP(UPF112的隧道端点地址)来在与UPF 112建立的GTP隧道内发出A型(GTP)数据包。PFCP代理322在建立GTP隧道时通过监听gNodeB 106和UPF 112之间的控制数据包来获得该远程TEP地址。PFCP代理322可以将远程TEP地址给予路由/SDN控制器324。
路由/SDN控制器324然后可以生成用于该远程TEP的路由条目并且利用该路由条目对转换模块208进行编程。在一些实施例中,路由/SDN控制器324可以使用诸如GTP4.D的功能来生成路由条目。路由条目可以定义从A型到B型数据包的转换,包括将GTP报头信息编码成SRH'报头,并且定义通过网络210到转换模块212的路由,例如根据分段路由协议(例如SRv6)以一个或多个SID的形式。
在第四示例中,基于监听到的信息来管理从入口前置设备(PE)到出口PE的流量路由,如下所述。入口PE例如可以是转换模块208,而出口PE是用于与外部网络214或MEC服务器118连接的路由模块216。在相反方向上,路由模块216是入口PE并且转换模块208是出口PE。
在标准的虚拟专用网络(VPN)(例如L3VPN SRv6)中,入口PE发出SRv6数据包,SRv6数据包的内部数据包是从IP网络接收的数据包。SRv6数据包的目的地地址可以被设置为分配给出口PE的IP地址,例如IPv6地址(例如,段标识符(SID))。出口PE接收SRv6数据包,解封装内部数据包,并将内部数据包转发至内部数据包的目的地地址。在所示示例中,内部数据包的目的地地址可以是IPv6目的地(例如,SID)的形式。因此,出口PE可以基于内部数据包的目的地地址来确定将内部数据包转发到哪里,根据数据包通过网络210移动的方向,该目的地地址可以是第三方服务器或UE 102。
在所示实施例中,出口PE(例如,转换模块208)可能需要确定一组可用gNodeB实例中的内部数据包应当被转发到的gNodeB 106,以便到达特定UE 102。因此,出口PE可以从路由/SDN控制器324接收路由条目,该路由条目将UE 102的IP地址映射到UE 102所连接到的gNodeB 106的本地TEP(例如,建立了TCP或其他会话)。可以根据上面列出的监听到的信息来确定UE 102的IP地址和本地TEP之间的关联。
路由条目可以在执行从C型数据包到A型数据包的数据包转换并且通过GTP连接将所得到的A型数据包传输到gNodeB 106时,指示出口PE使用gNodeB 106的本地TEP。例如,在使用GTP4.D(IPv4 GTP)的情况下,路由/SDN控制器324可以向出口PE提供以下IPv6地址:
SRv6定位符(<56位)+TEID(32位)+QFI(8位)+本地TEP地址(32位)
“SRv6定位符”可以参考路由/SDN控制器324上的配置。基于SRv6定位符,转换模块208、212可以识别它们要执行的转换功能。例如,BGP 324可以分配2001:db8::/48作为用于GTP和SRv6之间的转换的SRv6定位符。在这种情况下,当转换模块208、212根据GTP数据包生成SRv6数据包时,它将使用2001:db8::/48作为SRv6定位符并将GTP数据包的TEID、QFI、TEP地址嵌入SRH'字段中。当转换模块208、212接收到目的地与2001:db8::/48匹配的SRv6数据包时,转换模块208,212可以理解SRv6数据包需要被转换为GTP。转换模块208、212可以从SRH'字段获得TEID、QFI、TEP地址,然后重新生成原始GTP数据包。然后可以将GTP数据包发送到其所寻址到的UPF 112或gNodeB106中的任一个。
对于L3VPN中的多路径标签交换(MPLS),SRv6定位符可以用于指定给定的VPN。就SRv6 L3VPN而言,SRv6定位符可以指定服务SID(IPv6地址格式)并且可以用于指定给定的VPN而不是MPLS L3VPN的标签。
本地TEP地址可以嵌入上述IPv6地址中。也可以将该地址作为服务SID公布给入口PE。当出口PE接收到目的地地址与该IPv6地址匹配的数据包时,出口PE确定将数据包转发到哪个gNodeB实例,并且还可以获得BBU的本地TEP地址,并生成GTP数据包(A型数据包)以传输到gNodeB实例。路由/SDN控制器324可以利用路由规则(例如指导出口PE如何执行从IPv6地址到GTP数据包的转换的GTP4.D路由规则)对出口PE进行编程。
为了从SRv6转换到GTP,出口PE可以使用以下信息:本地TEP地址(gNodeB 106的地址)、TEID(隧道标识符)和QFI(QoS标识符)。本地TEP地址是GTP数据包的目的地地址。TEID和QFI是需要嵌入GTP报头中的值。因此,该信息可以被嵌入到从入口PE路由到出口PE的数据包的IPv6目的地地址(参见上面的示例地址)中,以促进从SRv6到GTP的转换,其在IPv6目的地地址中携带。
该信息(本地TEP地址、TEID、QFI)由PFCP代理322获得,被提供给路由/SDN控制器324,然后由路由/SDN控制器324用来对入口PE和出口PE进行编程以嵌入该信息并使用上述信息进行转换。路由/SDN控制器324可以通过发布具有包括嵌入信息的IPv6地址的VPNv4/v6路由作为提供给入口PE的服务SID来这样做。路由/SDN控制器324还可以以使用GTP4.E功能创建的SRv6定位符的形式将该信息编程在出口PE中。
当入口PE从IP网络接收到数据包时,入口PE可以用SRv6对来自IP网络的数据包进行封装。此时,外部IPv6目的地地址是上述包含嵌入信息的服务SID。当出口PE接收到外部IPv6目的地与上述服务SID匹配的数据包时,出口PE可以确定对接收到的数据包执行GTP4.E功能,以使用嵌入在IPv6目的地地址中的TEID、QFI和本地TEP将该数据包转换为GTP(A型)数据包。
在第五示例中,路由模块216可以从外部网络214接收寻址到UE 102的IP地址的数据包。监听到的信息提供与gNodeB 106的本地TEP的关联。因此,路由/SDN控制器324可以向路由模块216公布路由,该路由指导路由模块216将寻址到UE 102的IP地址的流量路由到gNodeB 106。然后,路由模块216可以通过如上所述的D、C和A型数据包之间的转换根据图2的路径206通过gNodeB 106将数据包路由到UE 102。
在第六示例中,监听到的信息可以包括核心网络实例。该值可以用于5G核心网络中的网络切片。基于该值,路由/SDN控制器324可以在执行编程404c时确定应当从哪个虚拟路由和转发(VRF)表导入UE地址以及在生成到UE 102的路由时使用哪个VPN(VRF)。监听到的信息中的接入网络实例可以用于从给定的VRF表中过滤掉特定的UE地址。因此,路由/SDN控制器324可以基于在监听到的信息中指定的核心网络实例和接入网络实例来指定导入和/或过滤规则。
参照图7A至图8,转换模块208管理从SRv6到GTP的数据包转换。在典型的5G网络中,UPF 112从gNodeB 106接收GTP数据包,UPF 112从GTP数据包获得内部IP数据包,并且内部IP数据包随后由SRv6组件处理以根据SRv6管理内部IP数据包的路由,这可以包括根据虚拟路由功能(VRF)使用路由。SRv6组件可以是寻址到UE 102的入站数据包的目标,并且根据SRv6管理路由,并将接收到的数据包转发到UPF 112以封装到GTP数据包中并转发到gNodeB106。
在本文描述的方法中,数据包通过SRv6网络210和外部网络214路由到转换模块208以及从转换模块208路由。因此,转换模块208还可以根据SRv6管理数据包的路由,包括管理VRF。
本文描述的方法参考了SRv6。然而,它也可以根据多协议标签交换(MPLS)使用标签来实现。
具体参考图7A,路由模块216可以包括或充当路由反射器客户端700,例如BGP路由反射器客户端。BGP模块324(本文也称为路由/SDN控制器324)可以充当路由反射器并且接收702由路由反射器客户端700广播的路由信息。BGP模块324然后可以诸如通过执行标准路由反射器功能来将该路由信息反射704到转换模块208。在一些实施例中,路由模块216向BGP 324发送外部路由(即到外部网络214中的外部IP地址的路由)的VPNv4/v6更新。作为路由反射器工作的BGP 324将VPNv4/v6更新从路由模块216反射到转换模块208,其中路由模块216作为客户端。基于此,转换模块208可以经由路由模块216获得到外部网络214的路由。
例如,路由模块216可以更新路由,例如具有服务SID的VPNv4/v6路由。路由可以描述关于外部网络214的路由,并且服务SID可以指示包括针对用该服务SID标记的数据包执行VPNv4/v6功能的段的执行。路由可以将路由模块216指定为外部网络214中的一个或多个地址的下一跳,或者提供指示将前缀SID添加到包括一个或多个地址的数据包的SR策略,该前缀SID引用指示将数据包路由到路由模块216的段。因此,当将该路由提供给转换模块208时,其能够接收GTP数据包(图7A的A型数据包)并且解封装内部IP数据包。
转换模块208获得内部IP数据包的目的地IP地址,并且确定路由指定应当将寻址到目的地IP地址的数据包转发到路由模块216。然后,转换模块208将内部IP数据包作为具有由路由指定的SID(例如,路由模块216的前缀SID)的SRv6数据包(图7A的C型数据包)来转发。可以通过网络210将C型数据包转发到路由模块216,在图7A至图7D的实施例中,网络210可以被实现为具有SRv6的3级(L3)VPN。
路由模块216接收C型数据包、解封装内部IP数据包(图7A的D型数据包)并且通过外部网络214将内部IP数据包转发到目的地IP地址。
在一些实施例中,BGP模块324还可以指示转换模块208执行与VPN(VPNv4/v6)的服务SID相关联的AVPN服务。
图7B示出使用BGP模块324和转换模块208来管理通过转换模块212从UE 102到UPF112的流量路由的方法。例如,5G定义了GTP-U消息。GTP-U消息可以用于检查和/或检测gNodeB 106和UPF 112之间的数据路径信息。其他GTP-U消息包括回应请求和回应应答,以检测该数据路径是否正常。GTP-U消息还可以用于响应于数据路径上的错误来传递错误指示。GTP-U消息可以包括结束标记以通知数据包传送的结束(例如,当发生切换时)。在用户数据流量寻址外部网络214的情况下,转换模块208可以剥离GTP报头并将内部IP数据包封装在SRv6数据包(C型数据包)中,然后将C型数据包直接转发到转换模块212。
如本文描述的其他实施例中,BGP模块324从PFCP代理322和/或CLI控制器708获得706信息。与图7B的功能相关的信息可以包括GTP隧道的远程TEP地址、VRFID(或路由区分符RD)以及VPN信息(VPNv4/v6信息)。
为了实现由UPF 112和/或gNodeB 106处理GTP-U消息,转换模块208可以将GTP-U消息转发到UPF 112。如上所述,这可以包括在网络210和UPF 112之间使用第二转换模块212。转换模块212可以在将GTP数据包转发到UPF 112之前将数据包从SRv6转换为GTP。为了做到这一点,可以将GTP信息嵌入到转发到转换模块212的SRv6数据包(例如,B型数据包)的SRH字段中。
因此,BGP模块324可以向转换模块208提供710VPNv4/v6更新以提供到UPF 112的路由。BGP模块324还可以向转换模块208提供712SR策略,该SR策略指示转换模块208转换寻址到UPF 112的GTP数据包,该转换包括将GTP信息编码在SRH字段中,如上所述。BGP模块324可以从自如上所述的PFCP代理322接收的信息中获得VPNv4/v6更新和GTP信息。编程710可以包括向转换模块208提供包括到UPF 112的路由的VPNv4/v6更新。编程710可以包括用特定VRF中的该路由对转换模块208进行编程。基于该编程710,转换模块208可以将数据包从gNodeB 106路由到UPF 112。
由转换模块208提供给UPF 112的编程710可以进一步根据gNodeB 106所连接到的VRF路由区分符(RD)和gNodeB 106所属于的5G网络实例(接入)来管理路由。CLI控制器708可以提供gNodeB 106所连接的第一VRF RD与gNodeB 106所属于的5G网络实例(接入)以及用于内部IP数据包(例如,由GTP数据包封装的内部IP数据包)的目的地IP地址的第二VRFRD之间的映射。PFCP代理322可以提供gNodeB 106所属的5G网络实例(接入)和UPF的地址。
使用该信息,BGP模块324确定哪个VRF RD与PFCP代理322提供的5G网络实例(接入,即包括UPF 112的网络)匹配。然后,BGP模块324可以执行以下操作:向转换模块208发送针对与5G网络实例(接入)匹配的第一VRF RD的到UPF的路由的VPNv4/v6更新;并发送SR策略以向转换模块208通知上述转换规则(定义从GTP到具有嵌入的GTP信息的SRv6的转换)以及向与目的地地址相关联的第二VRF RD通知内部IP数据包。
SR策略和VPNv4/v6可以对转换模块208进行编程以执行以下功能:
·接收目的地地址为UPF 112的地址的GTP数据包;
·检查GTP数据包的数据包类型;
·如果GTP数据包的数据包类型为用户数据流量,则剥离GTP报头以获得内部IP数据包,利用BGP模块324提供的用于VRF RD的路由表转发内部IP数据包(例如,执行标准L3VPN SRv6转发)。
如果GTP数据包是GTP-U消息,则基于BGP控制器提供的转换规则(例如GTP4/6.D规则)执行从GTP到SRv6的转换(例如,转换为带有嵌入SRH'字段中的GTP信息的B型数据包)。
在一些实施例中,对UPF地址的VPNv4/v6更新将绑定SID值作为前缀SID。因此,VPNv4/v6更新联接到特定SR策略,即从BGP模块324接收的SR策略。从BGP模块324接收的SR策略还可以包括相同的绑定SID并且还包括用于内部IP数据包的VRF RD。基于此,当转换模块208接收到目的地与UPF地址匹配的GTP数据包时,转换模块208可以对该GTP数据包应用SR策略。
在一些实施例中,SR策略可以指示转换模块208评估内部IP数据包的目的地地址是否是IPv6链路本地地址。如果是,则转换模块208可以根据如上所述的SR策略执行从GTP到SRv6的相同转换,然后转发到转换模块212。然而,由于链路本地地址不是全局可路由的,因此只有UPF 112可以处理这样的数据包。因此,转换模块208需要将转换后的SRv6数据包发送到UPF 112。SR策略可以指示转换模块针对每个GTP数据包检查内部IP数据包的目的地地址是否是链路本地的,如果是,则将GTP数据包转换为SRv6数据包,同时在SRv6数据包的SRH字段中嵌入GTP相关信息,并将SRv6数据包转发到转换模块212。然后,转换模块使用嵌入的信息将SRv6数据包转换回GTP数据包,并将GTP数据包转发到UPF 112。
基于BGP模块324提供710的VPNv4/v6更新,可以利用与第一VRF RD(gNodeB 106所连接的网络的外部VRF)相关联的路由表中的UPF地址的路由条目来对转换模块进行编程。在步骤712提供的SR策略可以将第二VRF RD(UPF 112所连接的网络的内部VRF)与绑定SID相关联。绑定SID可以将SR策略应用于寻址到UPF地址和第二VRF RD的内部IP数据包。绑定SID可以用作UPF地址的VPNv4/v6更新的服务SID。绑定SID也可以携带在SR策略中。SR策略可以携带内部VRF RD,内部VRF RD用于路由内部IP数据包。因此,考虑到该编程,可以由转换模块208如下处理从gNodeB 106接收到的GTP数据包:
·基于与VRF RD相关联的路由表中的目的地地址(UPF地址)执行路由查找,VRFRD与接收GTP数据包所通过传入接口相关联;
·基于绑定SID获得SR策略,该绑定SID用作UPF地址的VPNv4/v6更新的服务SID;
·检查消息类型;
·如果消息类型是G-PDU,则转换模块208剥离GTP报头以获得内部IP数据包,将内部IP数据包封装在SRv6数据包中,并使用由SR策略指定的第二VRF RD根据标准SRv6 L3VPN来路由SRv6数据包(内部IP数据包的目的地IP地址的内部VRF);并且
·如果消息类型为GTP-U,则转换模块208根据SR策略生成携带诸如UPF地址、QFI、TEID之类的GTP相关信息以及SRv6定位符的特殊服务SID;将GTP数据包的内部IP数据包封装在包括特殊服务SID的SRv6数据包中,并将SRv6数据包发送至转换模块212。
特殊服务SID可以被格式化为[目的地的SRv6定位符][UPF地址+QFI+TED],其中使用GTP4.D。在使用GTP6.D的情况下,特殊服务SID的形式可以是[目的地的SRv6定位符][QFI+TEID+sid0],其中sid0是UPF地址。
图7C示出BGP模块324的功能,该BGP模块324用于配置路由模块216以路由从外部网络214接收到的并且寻址到UE 102的数据包。当数据包被路由模块216从外部网络214接收并寻址到UE 102时,路由模块可以使用与UE 102的地址相关联的路由。该路由可以由BGP模块324使用图7C中所示的方法提供给路由模块216。
CLI控制器708可以提供714VRF RD和5G网络实例(核心)之间的映射,例如为网络210定义的VRF RD。PFCP代理322可以提供UE地址和包括gNodeB 106的5G网络实例(核心)。
基于该信息,BGP模块324可以基于在其中接收到寻址到UE地址的数据包的5G网络实例(核心)来确定将这些数据包导入到哪个VRF中。在将UE地址导入由VRF RD识别的VRF(即,到UE地址的路由)中之后,BGP 324生成VPNv4/v6更新以向路由模块216通知716到UE102的路由。
当发出UE路由的VPNv4/v6更新时,BGP模块324可以为UE路由分配服务SID。因此,响应于VPNv4/v6更新,路由模块216将从外部网络214接收包括UE地址的内部IP数据包。响应于接收到包括UE地址的内部IP数据包,路由模块216根据更新的VPNv4/v6的指示,将内部IP数据包封装在包括作为目的地的该服务SID的SRv6数据包中。该服务SID将指示介入组件根据该路由将数据包路由到UE,其将包括转换模块208和gNodeB 206。
当转换模块208从网络210接收SRv6数据包时,转换模块208可能需要将SRv6数据包转换为GTP数据包,因为GTP数据包需要通过gNodeB 106转发到UE。服务SID可以由BGP模块324编码以携带GTP相关信息,例如gNodeB的地址、TEID和QFI。
IPv6地址是128位。因此,对于GTP4.E(gNodeB地址是IPv4),所有GTP相关信息都可以嵌入单个IPv6地址中,如下所示:SRv6定位符+gNodeB IPv4地址+QFI+TEID。如果最大SRv6定位符长度为56位,并且gNodeB地址是32位的IPv4地址,则为QFI留下8位,为TEID留下32位。就GTP6.E而言,其中gNodeB 106具有IPv6地址,可能无法将gNodeB 106的地址与GTP信息一起嵌入单个IPv6地址中。在这种情况下,SRv6可以在SRH中携带多个段(IPv6地址)。因此,SRH中的最后一个SID(SID[0])可以是gNodeB 106的IPv6地址,并且倒数第二个SID(SID[1])可以携带SRv6定位符、QFI和TEID。
图7D示出BGP模块324的功能,该BGP模块324用于配置转换模块208以路由从外部网络214接收到的并且寻址到UE 102的数据包。这些数据包可以由转换模块208通过网络210从路由模块216接收。BGP模块324可以进一步配置转换模块208以将这样的数据包从SRv6转换为GTP。
BGP模块324可以从CLI控制器708接收718信息,例如GTP4/6.E的SRv6定位符和从其导入UE地址的每个VRF的连接到gNodeB的外部VRF。
BGP模块324可以提供SRv6定位符,SRv6定位符识别待由转换模块208应用的功能,例如如上所述执行转换的GTP4/6.E或GTP4.D功能。SRv6定位符和相应的转换功能可以由BGP模块324提供给转换模块208、212。该SRv6定位符可以包括在服务SID中,如上所述。BGP模块324生成SR策略并将其传输720到转换模块208。SR策略包含各种指令。
SR策略可以指示SRv6定位符信息(例如,定位符信息格式是否基于IPv6前缀)。因此,SR策略使得转换模块208能够理解如上面参考图7C所描述的嵌入SRH字段中包括的服务SID(或多个SID)中的gNodeB地址、QFI、TEID的位置(例如,这些信息项是否位于SID[0]或SID[1]中)。SR策略还可以携带诸如GTP4.E或GTP6.E功能之类的功能,该功能指示转换模块208使用SRH报头的最后一个段来查找gNodeB地址并使用嵌入的GTP信息执行从SRv6到GTP的转换。BGP模块324生成的SR策略可以进一步提供UE地址的外部VRF,该外部VRF用于在根据SR策略将SRv6数据包转换为GTP而获得GTP数据包之后将GTP数据包路由到UE 102。
图8示出转换模块208的示例配置。转换模块212可以具有类似的配置。在所示实施例中,从gNodeB 106接收并传输到UPF 112的数据包(例如,GTP-U消息)可以由第一转发信息库(FIB)查找模块800、GTP4/6.D处理模块802、SRv6封装模块804和第二FIB查找模块806来处理。从gNodeB 106接收并传输到路由模块216的数据包(例如,非GTP-U消息)可以由FIB查找模块800、GTP 4.6.D模块802、第三FIB查找模块808、SRv6封装模块810和第四FIB查找模块812来处理。
第一FIB查找模块800可以评估在其上接收到数据包的接口(IP地址和VRF RD)。如果该接口与绑定SID相关联,则与绑定SID相关联的SR策略激活GTP4/6.D模块802对数据包的处理。对第一FIB查找模块808的编程、绑定SID和SR策略的生成以及对GTP4/6.d模块的编程可以由如上所述的BGP模块324执行。
GTP4/6.D模块802可以被编程有由SR策略激活的功能。该功能可以评估GTP数据包的数据包类型。如果该数据包是GTP-U消息,则将该数据包发送至SRv6封装模块804。可以对SRv6封装模块804进行编程以将数据包从GTP数据包(A型)转换为具有嵌入的GTP信息(B型)的SRv6数据包。下面参考图9A来描述关于如何执行该封装的进一步的细节。由SRv6封装模块804生成的SRv6数据包可以由第二FIB查找模块806处理。第二FIB查找模块806可以评估SRv6数据包的目的地地址(即,UPF 112前面的GTP/SRv6 212的地址)并且确定将SRv6数据包路由到哪里。这可以包括使用来自VPNv4/v6更新的信息来确定下一跳、VPN隧道信息、VRFRD或用于将SRv6数据包路由到UPF 112的其他信息。如上所述,可以从BGP模块324接收VPNv4/v6更新。然后,转换模块208根据从第二FIB查找模块806获得的路由信息来传输SRv6数据包。
当GTP 4/6.D模块确定GTP数据包不是GTP-U消息时,GTP数据包可以由第三FIB查找模块808在剥离GTP/UDP/外部IP报头之后进行处理。第三FIB查找模块808可以查找用于将GTP数据包的内部IP数据包封装在SRv6数据包中的信息。这例如可以包括查找与内部IP数据包的目的地地址相关联的VPNv4/v6路由并且决定这样的SID以将内部IP数据包封装在SRv6数据包中。SID可以定义封装内部IP数据包的SRv6数据包通过网络210的路由,并且可以根据从BGP模块324接收的路由信息来生成。可以将内部IP数据包和SID提供给SRv6封装模块810,SRv6封装模块810将内部IP数据包和SID封装在SRv6数据包中。SRv6数据包可以由第四FIB查找模块812处理。
第四FIB查找模块812可以评估SRv6数据包的目的地地址(即,路由模块216的地址)并且确定将SRv6数据包路由到哪里。这可以包括使用来自VPNv4/v6更新的信息来确定下一跳、VPN隧道信息、VRF RD或用于将SRv6数据包路由到路由模块216以便到达外部地址的其他信息。如上所述,可以从BGP模块324接收VPNv4/v6更新。然后,转换模块208根据从第四FIB查找模块812获得的路由信息来传输SRv6数据包。
图9A示出将转换模块208接收到的GTP(A型)数据包转换为具有嵌入的GTP信息的SRv6数据包(B型)数据包的过程。如上所述,A型数据包可以包括内部IP数据包(例如,外部网络中的目的地地址)、GTP报头和外部IP报头(例如,UPF 112的目的地地址)。就GTP4.D而言,B型数据包的SRH'字段中包含的SID可以如所示。就GTP4.D而言,单个SID(SID[0]或SRH'字段中的第一个SID)包括如上所述的GTP4.D定位符、外部IP地址(UPF 112的地址)和GTP信息,例如QFI、TEID、用于某些GTP-U消息(例如GTP-U回应请求/回复消息)的序列ID。在一些实施例中,可以包括附加的填充位。QFI信息可以包括QFI、R和U值。QFI是3GPP中定义的QoS(服务质量)流标识符。R是3GPP中定义的RQI(反射QoS指示)。U位用于指定GTP-U数据包的PDU(协议数据单元)类型。就GTP6.D而言,可以使用两个SID(SID[0]和SID[1])。SID[0]可以包括外部IP地址(UPF 112的地址)并且SID[1]可以包括嵌入的GTP信息,例如QFI、TEID、序列ID。
图9B示出在处理具有从路由模块216接收的嵌入GTP信息的SRv6(B型数据包)时转换模块208的功能。FIB查找模块812接收数据包并确定与接收数据包所通过的接口(源地址和VRF RD)相关联的绑定SID。与绑定SID相关联的SR策略可以调用GTP4/6.E模块814。GTP4/6.E模块814可以使用嵌入的GTP信息将SRv6数据包转换为GTP(A型)数据包。GTP4/6.E模块814的编程以及绑定SID和SR策略可以从如上所述的BGP模块324接收。
GTP数据包可以由FIB查找模块800处理,FIB查找模块800确定与目的地地址(例如,gNodeB 106地址或UPF地址)相关联的VRF RD并且根据该VRF RD的路由表来路由GTP数据包。FIB查找模块800可以根据从如上所述的BGP模块324接收的VPNv4/v6更新来执行路由。图9B示出下行链路(外部网络214到UE 102或UPF 112到UE 100)的数据包流。对于这样的数据包流,FIB查找模块812可以被编程以确定指向GTP4/6.E模块814的路由条目。GTP4/6.E模块814然后可以将每个SRv6数据包转换成GTP数据包。然后可以将该GTP数据包路由到FIB查找模块800。
图9C示出从B型数据包到A型数据包的转换。获得SRH'字段中的嵌入信息。如上所述,就GTP4.E而言,该信息将包含在SID[0]中。就GTP6.E而言,该信息将包含在SID[1]中。SRH'字段中的GTP4.E定位符与GTP4.E功能相关联,该GTP4.E功能使用外部IPv4目的地地址和嵌入的GTP信息(QFI、TEID/序列ID)执行转换。转换可以包括使用外部IPv4目的地地址(例如,gNodeB的地址)作为A型数据包的外部IP目的地地址并且将嵌入的GTP信息包括在A型数据包的GTP字段中。内部IP数据包可以被转发到UE 102的地址。
针对转换模块208描述图8、图9A、图9B和图9C。转换模块212同样执行A型和B型数据包之间的转换并且可以以类似的方式起作用。具体地,从UPF 112移动到gNodeB 106的数据包可以以与从gNodeB106到UPF 112的数据包相同的方式转换。从SRv6 216移动到UE 102的数据包可以以与从UPF 112到gNodeB208的数据包相同的方式进行处理。换句话说,当从网络210接收到数据包时,转换模块208、212可以执行从SRv6到GTP的转换,而不管正在发送该数据包的实体如何(其他转换模块208、212或路由模块216)。
图10是示出可用于实现本文公开的系统和方法的示例计算装置1000的框图。计算装置1000可以充当服务器、客户端或任何其他计算实体。计算装置可以执行如本文所讨论的各种功能,并且可以执行一个或多个应用程序,诸如本文所描述的应用程序。计算装置1000可以是诸如以下的多种计算装置中的任一种:台式计算机、笔记本计算机、服务器计算机、手持计算机、平板计算机等等。
计算装置1000包括全部联接到总线1012的一个或多个处理器1002、一个或多个存储器装置1004、一个或多个接口1006、一个或多个大容量存储装置1008、一个或多个输入/输出(I/O)装置1010和显示装置1030。处理器1002包括运行存储在存储器装置1004和/或大容量存储装置1008中的指令的一个或多个处理器或控制器。处理器1002还可以包括各种类型的计算机可读介质,诸如高速缓存存储器。
存储器装置1004包括各种计算机可读介质,诸如易失性存储器(例如,随机存取存储器(RAM)1014)和/或非易失性存储器(例如,只读存储器(ROM)1016)。存储器装置1004还可以包括可重写ROM,诸如闪速存储器。
大容量存储装置1008包括各种计算机可读介质,诸如磁带、磁盘、光盘、固态存储器(例如,闪速存储存储器)等等。如图10所示,特定的大容量存储装置是硬盘驱动器1024。大容量存储装置1008中还可以包括各种驱动器,以允许从各种计算机可读介质读取和/或写入各种计算机可读介质。大容量存储装置1008包括可移动介质1026和/或不可移动介质。
I/O装置1010包括允许将数据和/或其他信息输入计算装置1000或从计算装置1000检索数据和/或其他信息的各种装置。示例I/O装置1010包括光标控制装置、键盘、小键盘、麦克风、监视器或其他显示装置、扬声器、打印机、网络接口卡、调制解调器、镜头、CCD或其他图像捕获装置等。
显示装置1030包括能够向计算装置1000的一个或多个用户显示信息的任何类型的装置。显示装置1030的示例包括监视器、显示终端、视频投影装置等。
接口1006包括允许计算装置1000与其他系统、装置或计算环境交互的各种接口。示例接口1006包括任意数量的不同网络接口1020,诸如到局域网(LAN)、广域网(WAN)、无线网和因特网的接口。其他接口包括用户接口1018和外围装置接口1022。接口1006还可以包括一个或多个用户接口元件1018。接口1006还可以包括一个或多个外围接口,例如用于打印机、指针装置(鼠标、触控板等)、键盘等的接口。
总线1012允许处理器1002、存储器装置1004、接口1006、大容量存储装置1008和I/O装置1010与彼此以及其他装置或联接到总线1012的组件通信。总线1012代表诸如系统总线、PCI总线、IEEE 1394总线、USB总线等等的几种类型的总线结构中的一种或多种。
为了说明的目的,程序和其他可运行的程序组件在本文中作为离散块示出,尽管不用说这种程序和组件可以在不同时间驻留在计算装置1000的不同存储组件中并且由处理器1002执行。可选地,本文中所描述的系统和过程可以以硬件或硬件、软件和/或固件的组合来实现。例如,可以对一个或多个专用集成电路(ASIC)进行编程以执行本文所述的系统或过程中的一个或多个。

Claims (22)

1.一种设备,包括:
网络装置,包括被编程为实现转换模块的处理装置,所述转换模块被配置为:
接收根据分组无线电协议格式化并包括内部数据的第一数据包;
评估所述第一数据包的类型;
如果所述第一数据包的类型为第一类型,将所述内部数据包封装为根据非分组无线电协议格式化的第二数据包,其中所述第二数据包的路由指令中包括有第一嵌入数据,所述第一嵌入数据足以根据第一数据包生成第三数据包,所述第三数据包根据所述分组无线电协议进行格式化。
2.根据权利要求1所述的设备,其中所述转换模块进一步被配置为:
如果所述第一数据包的类型为第二类型,将所述内部数据包封装为根据所述非分组无线电协议格式化且不包括所述第一嵌入数据的第四数据包。
3.根据权利要求2所述的设备,其中所述分组无线电协议是通用分组无线电服务(GPRS)隧道协议(GTP)。
4.根据权利要求3所述的设备,其中所述非分组无线电协议是互联网协议上的分段路由。
5.根据权利要求4所述的设备,其中所述路由指令是所述第二数据包的段标识符(SID)。
6.根据权利要求5所述的设备,其中所述第一类型是GTP-U消息,并且所述第二类型不是GTP-U消息。
7.根据权利要求6所述的设备,其中所述第一数据包寻址到用户面功能(UPF)模块。
8.根据权利要求7所述的设备,其中所述转换模块进一步被编程为通过第二转换模块将所述第二数据包传输到UPF模块,所述第二转换模块远离所述第一转换模块并通过互联网协议(IP)网络连接到所述第一转换模块。
9.根据权利要求8所述的设备,其中根据分段路由(SR)策略来对所述转换模块进行编程。
10.根据权利要求9所述的设备,其中所述SR策略根据GTP4.D实现,并且其中所述路由指令为所述第二数据包的SID[0]。
11.根据权利要求10所述的设备,其中所述第一嵌入数据包括GTP4.D定位符、所述第一数据包的IP目的地地址、服务质量流标识符(QFI)和用于在gNodeB模块和所述UPF模块之间连接的GTP隧道的隧道端点标识符(TEID)。
12.根据权利要求9所述的设备,其中所述SR策略根据GTP4.E实现,并且其中所述路由指令在SID[0]中携带GTP信息。
13.根据权利要求9所述的设备,其中所述SR策略根据GTP6.D实现,并且其中所述路由指令包括所述第二数据包的SID[0]和SID[1]。
14.根据权利要求13所述的设备,其中SID[0]中包括的第一嵌入数据包括所述第一数据包的IP目的地地址,并且SID[1]中的第一嵌入数据包括GTP6.D定位符、服务质量流标识符(QFI)和用于在gNodeB模块和所述UPF模块之间连接的GTP隧道的隧道端点标识符(TEID)。
15.根据权利要求9所述的设备,其中所述SR策略根据GTP6.E实现,并且其中所述路由指令在SID[0]和SID[1]中携带GTP信息。
16.根据权利要求1所述的设备,其中所述转换模块进一步被编程为:
接收根据所述非分组无线电协议格式化的第四数据包;
从所述第四数据包提取第二嵌入数据;
使用所述第二嵌入数据将所述第四数据包转变为第五数据包,根据所述分组无线电协议格式化所述第五数据包;
将所述第五数据包传输到所述第四数据包的目的地地址。
17.根据权利要求16所述的设备,其中所述分组无线电协议是通用分组无线服务(GPRS)隧道协议(GTP)并且所述非分组无线电协议是通过互联网协议的分段路由。
18.根据权利要求17所述的设备,其中所述转换模块被编程为
确定与接收所述第四数据包所通过的所述接口相关联的绑定段标识符;并且
应用与所述绑定SID相关联的分段路由(SR)策略,所述SR策略定义将所述第四数据包转变为第五数据包。
19.根据权利要求18所述的设备,其中所述SR策略根据GTP4.D和GTP4.E中的任一个来实现。
20.根据权利要求16所述的设备,其中所述第二嵌入数据携带在所述第四数据包的段标识符(SID)[0]中并且包括目的地地址、服务质量流标识符(QFI)和隧道端点标识符(TEID)。
21.根据权利要求16所述的设备,其中所述第二嵌入数据携带在所述第四数据包的段标识符(SID)[0]和SID[1]中并且包括携带在SID[0]中的目的地地址以及服务质量流标识符(QFI)以及携带在SID[1]中的隧道端点标识符(TEID)。
22.根据权利要求21所述的设备,其中所述目的地地址是gNodeB模块的地址。
CN202280041235.8A 2021-04-26 2022-04-20 用于路由蜂窝数据数据包的ip网络的使用 Pending CN117461297A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US17/240,726 2021-04-26
US17/362,071 2021-06-29
US17/488,833 2021-09-29
US17/488,833 US20220345984A1 (en) 2021-04-26 2021-09-29 Use Of Ip Networks For Routing Of Cellular Data Packets
PCT/US2022/025549 WO2022231905A1 (en) 2021-04-26 2022-04-20 Use of ip networks for routing of cellular data packets

Publications (1)

Publication Number Publication Date
CN117461297A true CN117461297A (zh) 2024-01-26

Family

ID=89595277

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280041235.8A Pending CN117461297A (zh) 2021-04-26 2022-04-20 用于路由蜂窝数据数据包的ip网络的使用

Country Status (1)

Country Link
CN (1) CN117461297A (zh)

Similar Documents

Publication Publication Date Title
CN112671628B (zh) 业务服务提供方法及系统
CN105009544A (zh) 报文的隧道处理方法、交换设备及控制设备
WO2021073555A1 (zh) 业务服务提供方法及系统、远端加速网关
US10491691B2 (en) Methods and apparatus for optimizing service discovery
US11849381B2 (en) Use of IP networks for routing of cellular data packets
US20220345519A1 (en) PFCP Session Load Balancer
JP2012085208A (ja) Lispネットワークの通信方法
US20220345984A1 (en) Use Of Ip Networks For Routing Of Cellular Data Packets
US20220345986A1 (en) Selective Importing of UE Addresses to VRF in 5g Networks
US11632692B2 (en) Use of IP networks for routing of cellular data packets
CN117461297A (zh) 用于路由蜂窝数据数据包的ip网络的使用
CN117480855A (zh) 用于路由蜂窝数据数据包的ip网络的改进使用
CN117529709A (zh) Pfcp会话负载平衡器
CN117441377A (zh) 在5g网络中将ue地址选择性地导入vrf
CN116032839A (zh) 报文传输方法、装置、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination