王立文,張雪貝,楊文強,楊文聰,黃蓉,王友祥,唐雄燕
(中國聯合網絡通信有限公司研究院,北京 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網絡與工業現場總線以及確定性網絡的融合協同等。