王立文,张雪贝,杨文强,杨文聪,黄蓉,王友祥,唐雄燕
(中国联合网络通信有限公司研究院,北京 100048)
虽然5G[1-3]在行业中的应用越来越深入,面向不同场景的5G专网[4]方案和应用案例也层出不穷,但在垂直行业,尤其是面向工业制造的工厂园区现场级位置的网络[5]还是以基于有线传输的二层交换为主,各类接入终端设备也通常按照局域网接入方式配置,甚至依赖二层的广播、组播协议协同工作。现有主要支持IP类型会话转发的UPF设备无法直接构建LAN网络,即使5G传输的SLA(Service Level Agreement,服务等级协议)指标满足应用要求,也难以直接替代有线传输网络。
现有的替代方案是使用AR路由器或者VPN配合5G专网变相地实现LAN网络,组网成本额外增加、配置复杂,限制了5G的应用和发展。3GPP在R16启动的5G LAN[6]研究增强了5G网络能力,Ethernet类型的5G LAN功能支持为VN组成员之间构建具有同一二层广播域的本地局域网络[7]。
在工业现场级场景需要的主要是二层局域网,因此本文主要讨论Ethernet类型的5G LAN需求,其用户面流量转发可以参考二层交换机的流量转发能力进行分析。
对于一台普通的二层交换机,最基本的流量转发功能如图1(a)所示。(1)将目的MAC为单播地址的以太网协议报文从一个端口(接收)转发至另外一个端口(发送);(2)将目的MAC为广播地址的以太网协议报文从一个端口(接收)转发至其他所有同广播域的端口(发送);(3)根据接入数据终端设备对组播流的订阅情况,将目的MAC为组播地址的以太网协议报文转发到所有订阅该组播流的数据终端。
将图1(a)中P0~P3类比为5G网络中的UE和DN设备,则上述普通交换机的基本转发需求演变为如图1(b)所示,UE之间(UE1与UE2)、UE与DN侧设备之间有L2层的单播、组播和广播互通需求。3GPP将这两种场景的转发方式定义为基于Local Switch的转发、基于N6接口的转发。UPF转发或者控制面生成FAR时,单播报文根据目的MAC地址转发,广播报文在广播域内全转发,组播报文根据组播协议动态添加或者静态配置的组播组转发。
图1 基本转发场景
在实际部署中,因为交换机的端口数量限制或者接入点的地址位置等,往往会存在多台交换机设备级联的场景,如图2(a)所示。类似地,当某个行业用户的两个厂区距离较远且跨厂区的设备之间也需要在同一广播域内进行L2层通信时,可将两个UPF下沉部署到两个厂区,两个UPF之间通过N19接口互通,如图2(b)所示。3GPP将这种场景的转发方式定义为基于N19接口的转发。
图2 多交换节点级联转发场景
传统交换机为了实现硬件设备的复用和广播域的隔离,引入了VLAN的概念,如图3(a)所示,将端口划分到不同的逻辑局域网中,可以控制广播的范围,提高网络的安全性。在5G LAN中引入了VN组,划入到同一个VN组的终端用户相当于处在同一广播域内,如图3(b)所示。在3GPP R16中,VN组仅支持与DNN+SNSSAI(Single Network Slice Selection Assistance Information)的1:1映射关联。
图3 广播域隔离场景
在传统的交换机网络中,为了提高可靠性,往往会做链路冗余,如图4(a)所示,三台交换机组成物理链路上的环网。为了避免广播域内环网产生广播风暴,通常用生成树协议阻塞环网中的部分端口,在逻辑上断环。类似地,当5G网络为终端设备提供了L2层网络后,也需要避免链路成环产生广播风暴,图4(b)、(c)为可能产生环网的两种拓扑方式。交换机中常用的断环协议在5G LAN场景沿用存在一些问题,例如,若在UPF中启动生成树协议,VN组内的UE的数量可以远远高于交换机的端口数,会导致协议计算负载太高从而影响倒换性能;若UPF中不启动断环协议,5G网络透传CPE或者DN侧交换机的断环协议报文,当网络拓扑倒换发生网络风暴时,5G网络大量丢包时,无差别地丢掉断环协议报文会导致断环协议工作异常。目前如何有效断环是5G LAN项目的讨论热点。
图4 链路冗余场景
5G的用户面通信模型如图5所示。在传统的数通网络中,终端设备有1个或者多个网口,网口接入到不同的网络设备或者同一网络设备的不同隔离域。网口之间各自可以通过接入网络节点与网络互通。类似地,在5G网络中,通过锚点UPF接入到DN网络,锚点UPF之所以被称为锚点,就是指关联到指定DN的UE不论如何移动,都会在该位置接入到该DN网络,即:用户面数据流可以在该位置进出DN网络,且UE的通信地址信息和DN网络是可互访互达的。
图5 5G用户面通信基础模型
如果将锚点UPF看作DN网络的接入节点设备,那么N3和空口信道相当于是传统网络中终端设备接入网络的网线,UE的每个PDU会话都类似于一个新的网口。
为了更精细化地控制网络服务质量,每个PDU会话又可以最多包含64个PDR,每个PDR定义该PDU会话中传输的一类用户面报文,是QoS和转发、计费等处理的最小粒度单元,类似于传统数通网络设备中的ACL机制。
UPF的转发过程主要有:针对PDU会话(网口)粒度的按照报文目的地址(IP地址或者MAC地址)的转发、针对PDR的PDI匹配和动作执行(QER、FAR、URR等)、针对GTP-U隧道(虚拟网线)的收发。
(1)GTP-U收发
GTP协议是一种隧道协议,GTPv1版本中指定UDP/IP为其底层传输协议。GTP-U是N3/N4-U/N9/N19信令接口承载用户数据的载体,通常包含以太网、IP和UDP、GTP-U报文头和T-PDU(隧道净荷、用户数据)。其中以太网、IP、UDP为传统的L2/L3/L4层协议,其报文头中都包含源和目的信息(mac/ip/udp port),GTP-U报文头包含TEID(Tunnel Endpoint Identifier,隧道端点标识)字段,用于标识隧道ID信息;T-PDU内容与会话类型相关,当为Ethernet类型会话时,T-PDU为UE发出的以太帧,当为IP类型会话时,T-PDU为UE发出的IP帧。
以N3上行为例,当UPF接收到来自于基站的GTP-U报文时,需要判断该GTP-U报文归属于哪个PDU会话。如图6(a)所示,UPF接收GTP-U报文时,可以获取到该GTP-U报文的源MAC、目的MAC、源IP、目的IP、源UDP端口号、目的UDP端口、TEID和T-PDU等信息。但是,其中一部分不适合作为PDU会话的检索索引,如MAC地址的作用范围主要是L2广播域内,对于基站到UPF往往需要跨域较远距离和复杂的承载网的场景并不适合;源IP地址和源UDP端口会随着UE移动时切换基站而不断变更,因此也不适合;目的UPF端口固定为2152,没有区分度;T-PDU为用户净荷数据,通过其中的源MAC/IP等信息虽然也能索引到UE和PDU会话,但是在某些不由5GC分配UE设备地址的场景(如Ethernet类型会话时UE设备使用硬件出厂MAC地址)有局限性。因此,适合作为PDU会话索引的字段主要是GTP-U报文的目的IP和TEID,即F-TEID(Full Qualified TEID,全量隧道端点标识)。TEID在会话建立时由UPF(GTP-U的目的端)分配,可以在设备内全局唯一,也可以在每个监听IP上唯一。当TEID在UPF设备内全局唯一时,仅通过接收到的GTP-U报文中的TEID即可检索到所属PDU会话。
图6 PDU会话与GTP-U报文收发
当UPF发送GTP-U报文时,同样要确定接收端的F-TEID,即接收端监听GTP-U的IP地址和接收端生成的TEID。F-TEID会包含在该PDR关联的FAR中。
对于N3/N4-U/N9,TEID对应的是PDU会话粒度的,而N19对应的是VN组粒度的。
(2)锚点功能
如前所述,锚点是UE接入DN网络的接入点。UE发出的上行流量经过复杂的5G系统处理之后,将从该位置脱离5G系统进入DN网络,这也意味着,自此之后报文的处理将需要遵循DN网络的传输机制。
如图7所示,对于IP类型的会话,其对应的DN网络通常是IP层路由转发方式,因此锚点UPF也将会具有路由器的功能,支持根据PDU会话的IP地址池和DN网络的路由拓扑生成路由表,用于实现IP报文的路由转发;对于Ethernet类型的会话,其对应的DN网络通常是L2层的交换转发方式,因此锚点UPF也将需要具备类似于交换机的功能,支持根据MAC地址查询对应的网络端口,此时每个PDU会话也类似于一个逻辑上的网络端口。
图7 PDU会话与GTP-U报文收发
虽然从理论上,UPF锚点的路由/交换功能支持同DNN同切片的UE之间互联互通,但是在2C的商用网络中,UE用户的上网行为主要是访问DN侧服务器中的业务应用,为了避免UE用户之间互访导致的安全风险,通常会关闭UE之间的互通权限,防止恶意用户对其他用户的端口扫描、流量泛洪攻击等不安全行为。而在2B的垂直行业场景中,终端设备互访成为一个必不可少的网络需求,5G LAN的目的就是为UE提供类似与LAN的互通功能,并考虑到安全性,将有互访功能的用户组划分到相同的隔离域内,即VN组。用户面的转发方案是在UPF锚点的路由/交换中增加与VN组对应的逻辑隔离域,该域内的UE之间支持路由/交换。不过,目前VN组与DNN+S-NSSAI的1:1映射关联方式有一定的局限性,用户本地网络内的细粒度隔离需求都要通过DNN和切片来配合实现VNG的隔离,不够灵活。
为了实现级联,通过N19信令将不同UPF中同一VN组的路由/交换功能连接,用于跨UPF的流量转发,因此N19隧道的粒度是VN组粒度的。
(3)PDU处理
如图8所示,当UPF通过GTP-U或者N6收到用户面报文并检索到该报文所属PDU会话后,会依据PDR中的PDI包检测信息进一步地检索该用户面报文匹配的PDR。PDR还会关联FAR、QER、URR等报文处理规则,用于指示该报文的转发、QoS、计费统计等处理方式。
图8 PDU会话处理过程
通过PDR和FAR可以精确控制报文流的转发。当同一VN组内UE通信时,也可以通过PDR和FAR实现转发,而不必须到锚点中的路由/交换功能中转发。
UPF支持的用户面接口主要有N3、N9、N4-U、N19、N6等5种,UPF的主要功能就是在这些接口之间转发用户流量,涉及的主要转发场景如表1所示:
表1 UPF的转发场景
Case0从N3接口接收再从N3接口转出。N3接口是用于基站与UPF之间传输的接口,因此该场景是UPF直接将UE1的上行报文转发给UE2。其在UPF内的处理过程有两种可能:(a)UPF作为I-UPF,SMF为UE1的该PDU会话添加了转发到UE2的PDR和FAR,因此该报文的处理过程为GTP-U收包、PDU处理、根据PDR关联的FAR进行GTP-U发包。类似于该处理过程的还有Case1、Case2、Case5、Case6。(b)UPF作为I-UPF和PSA UPF合设UPF,并没有明确指示转发到UE2的FAR,流量需要上行到锚点与DN网络的路由/交换阶段,因此该报文的处理过程为GTP-U收包、PDU处理、锚点路由/交换、PDU处理、GTP-U发包。类似于该处理过程的还有Case3、Case7、Case9、Case11。
Case4是N3与N6接口的流量转发,可以实现UE流量上行到DN、DN侧流量下行到UE,是5GC最典型的用户面转发场景。Case4a的过程为GTP-U收包、PDU处理、锚点转发;Case4b的过程为锚点转发、PDU处理、根据FAR指示完成GTP-U发包。类似于该处理过程的还有Case12。
表1所列举的UPF转发场景已经覆盖了5G LAN用户面流量转发需求的基本转发、多交换节点转发需求。在锚点转发时增加VN组的逻辑隔离,也可以满足广播域隔离的需求。
根据UPF转发模型,设计了UPF软件架构,如图9所示,主要包含用户态和内核态两部分。
图9 UPF软件架构图
用户态由UPF业务模块、SDK适配层和SDK三部分组成。UPF业务模块维护UPF的核心数据和业务逻辑,并包含N4消息处理单元、用户报文处理单元以及其他日志管理、OAM等模块,其中用户报文处理单元即UPF中数据转发的“慢路径”,用于处理“快路径”中的未知报文、DPI或者其他增强型功能;SDK适配层实现底层“快路径”的抽象接口,屏蔽内核模块转发、DPDK、xdp/eBPF等不同的报文转发方案的差异;SDK为内核转发模块的配套接口,用于配置GTP-U隧道、“快路径”转发所需的规则、需要缓存和“慢路径”转发的报文的传输管道等。
内核态为用户报文转发模块,主要包含与用户态的接口、转发规则表、GTP-U隧道、用户面报文处理、锚点虚拟网卡和简易交换路由模块等几部分。其中GTP-U隧道模块用于管理隧道和实现GTP-U报文收发;用户面报文处理用于PDU会话处理;简易交换路由模块用于锚点转发,并支持依据VN组进行UE转发或者通过N19实现UPF级联。
Free5gc是开源5G核心网软件,实现了AMF、SMF、UDM、UDR、NSSF、PCF、AUSF、NRF、UPF等功能。UERANSIM是开源的UE和GNB模拟软件,可以配合Free5gc实现端到端的5G系统。但是目前Free5gc和UERANSIM都是基于3GPP R15,只支持IPv4类型的PDU会话。
为了验证5G LAN功能,对Free5gc和UERANSIM进行了如下改进:(1)修改UE会话建立流程、添加虚拟网卡类型,使之支持Ethernet类型的PDU会话;(2)修改AMF和SMF等5GC控制面网元,使之支持Ethernet类型的PDU会话;(3)根据UPF的软件架构设计,实现了支持IP类型和Ethernet类型PDU会话、5G LAN用户面转发功能的UPF软件。
软件运行环境通过在物理服务器上搭建的虚机和容器构建,如图10所示,UE、GNB、UPF、DN等用户面网元./设备采用了虚机的方式,方便UE和UPF进行安装虚拟网卡、内核模块等操作;Mongo数据库、5GC控制面网元采用了容器部署的方式。
图10 验证环境组网图
模拟测试结果表明,UPF和改进后的ue、gnb及5gc控制面配合,可以实现IP类型和Ethernet类型的PDU会话功能,并支持5G LAN的基本转发功能。
本文参考传统交换机的组网拓扑,分析了5G LAN的组网和转发需求,研究了支持5G LAN功能的UPF转发模型,设计了UPF的软件架构,并对开源软件进行改进,完成了L2层5G LAN的基本功能验证,为5G LAN技术研究和应用提供了参考。本文中UPF的设计主要考虑了极边缘小型化UPF的场景,因此选择了Linux内核模块的转发方案,转发模型也采用了传统网络协议栈分层处理的思路进行分析,但实际高性能场景中,转发方案可以采用DPDK、xdp/eBPF或者硬件加速卡[8]等软硬件加速方案,对GTP-U报文的收包处理和PDR转发、锚点转发等阶段也可以进行合并,采用N元组匹配等方式提高报文处理性能。另外,5G LAN也还有一些关键技术需要进一步研究,如链路冗余和环网问题、快速的MAC地址学习和核心网集中控制的矛盾、5G LAN网络与工业现场总线以及确定性网络的融合协同等。