搭建與驗證指南)
1. 部署前先弄清的問題為什么選Open5GS與Ubuntu 22.04組合最近幫朋友在實驗室搭一套5G核心網(wǎng)前前后后折騰了一周踩了一堆網(wǎng)上教程不會告訴你的坑。趁著記憶還熱乎把整個部署過程、驗證鏈路和常見問題整理成這篇筆記給打算做Open5GS部署驗證、邊緣計算實驗或者接入網(wǎng)聯(lián)調(diào)的朋友一個可以直接照做的參考。這里先把目標(biāo)說清楚我們要在Ubuntu 22.04上部署一套基于Open5GS的5G SA核心網(wǎng)覆蓋AMF、SMF、UPF、AUSF、UDM、NRF、PCF、NSSF這些網(wǎng)元然后用UERANSIM模擬一個基站和一個終端把“終端開機→注冊→建立PDU會話→拿到IP→ Ping通”這條最核心的鏈路打通。這套環(huán)境既可以用來做協(xié)議流程學(xué)習(xí)、功能驗證也能作為后續(xù)開發(fā)調(diào)試的最小可運行底座。1.1 Open5GS是整個通信系統(tǒng)里的哪一塊5G網(wǎng)絡(luò)按功能切開大致可以分成三塊終端UE、接入網(wǎng)gNB、核心網(wǎng)5GC。終端就是手機、CPE、工業(yè)模組這類設(shè)備接入網(wǎng)負(fù)責(zé)把終端接入無線空口而核心網(wǎng)負(fù)責(zé)認(rèn)證、移動性管理、會話管理、數(shù)據(jù)轉(zhuǎn)發(fā)、計費策略等“大腦”功能。Open5GS做的就是最后這一塊它是一個用C語言實現(xiàn)的開源5G核心網(wǎng)項目支持5G SA架構(gòu)同時也兼容4G LTE的EPC網(wǎng)元。對剛?cè)腴T的朋友我建議把5G核心網(wǎng)當(dāng)成一家公司來看AMF是前臺接待所有終端的注冊請求先到它這里AUSF和UDM是行政人事部門負(fù)責(zé)驗證“你確實是本公司員工”SMF是業(yè)務(wù)調(diào)度中心負(fù)責(zé)給用戶分配IP、建立數(shù)據(jù)通道UPF則是物流倉庫真正的用戶流量都從它這里進出。這樣再看網(wǎng)上那些英文縮寫就不容易暈了。1.2 為什么我堅持用Ubuntu 22.04而不是其他版本Open5GS官方文檔其實沒有把系統(tǒng)版本寫死但實際部署下來你會發(fā)現(xiàn)Ubuntu 22.04 LTS是目前省心程度最高的選擇。原因有三個。一是依賴庫的版本匹配度好。Open5GS需要MongoDB做用戶訂閱數(shù)據(jù)存儲需要libssl、libyaml等開發(fā)庫22.04源里的版本都夠新不會像老版本系統(tǒng)那樣動不動遇到依賴沖突。二是Open5GS官方提供了針對Ubuntu的二進制包倉庫和PPA源安裝、升級都能用apt管理出問題的概率低很多。三是網(wǎng)絡(luò)功能配置在22.04上更順手尤其是內(nèi)核的TUN/TAP驅(qū)動、網(wǎng)絡(luò)命名空間、IP轉(zhuǎn)發(fā)這些和5G用戶面強相關(guān)的機制兼容性表現(xiàn)得非常穩(wěn)定。我見過有人用CentOS去裝編譯出來的版本沒問題但后續(xù)想用官方腳本做自動化部署時就要自己額外折騰。除非你所在團隊對操作系統(tǒng)有硬性規(guī)定否則個人實驗、協(xié)議學(xué)習(xí)、Demo演示我建議直接選Ubuntu 22.04 LTS。1.3 硬件配置和網(wǎng)絡(luò)拓?fù)湟崆跋牒肙pen5GS對硬件的要求非常親民我個人實測過的最低配置是2核CPU、4GB內(nèi)存、20GB磁盤??刂泼婢W(wǎng)元全部塞在一臺虛擬機里也能跑起來只是MongoDB偶爾會吃內(nèi)存所以推薦把內(nèi)存加到8GB尤其是后面要同時模擬多個UE時更從容。真正的關(guān)鍵點在于網(wǎng)卡和IP規(guī)劃。Open5GS在部署時分為控制面CP和用戶面UPCP包含AMF、SMF、AUSF、UDM、NRF等UP主要指UPF。最簡單的拓?fù)渚褪前阉芯W(wǎng)元裝在一臺機器上只靠邏輯地址區(qū)分稍微貼近生產(chǎn)一點的做法是準(zhǔn)備兩臺機器一臺跑控制面一臺單獨跑UPF。我這次為了把原理講清楚采用單機模式但會在配置階段把UPF的IP池單獨規(guī)劃好這樣以后拆出來部署時不需要改動整體邏輯。2. 核心網(wǎng)里每個網(wǎng)元都在干什么一次注冊流程全拆解很多教程一上來就讓用戶安裝、改配置、看效果但這個順序其實是錯誤的。Open5GS有8個核心網(wǎng)元每個網(wǎng)元都有一份YAML配置如果不先明白它們之間的協(xié)作關(guān)系配置改完你都不知道是哪一步出了問題。我建議先用15分鐘把流程梳理清楚再動手安裝。2.1 從終端開機到注冊成功的完整信令鏈終端開機后先找基站基站和核心網(wǎng)之間的第一個接口是N2對接的網(wǎng)元是AMF。基站會發(fā)出一條NGAP消息把終端的注冊請求轉(zhuǎn)發(fā)給AMFAMF收到后會檢查這個終端的身份。接下來AMF去找AUSF和UDM做鑒權(quán)。UDM里保存著每個SIM卡對應(yīng)的國際移動用戶識別碼IMSI、根密鑰K、OPc這些數(shù)據(jù)AUSF完成5G AKA鑒權(quán)算法確認(rèn)終端不是偽造的。鑒權(quán)通過后AMF會向終端下發(fā)注冊接受消息到這里“終端入網(wǎng)”就算完成了。但入網(wǎng)只是第一步真正要上網(wǎng)還必須建立PDU會話。這時AMF根據(jù)網(wǎng)絡(luò)切片信息選擇合適的SMFSMF再去找UPF在N4接口上建立會話上下文同時給終端分配一個內(nèi)網(wǎng)IP。UPF通過N3接口和基站對接通過N6接口連接外部數(shù)據(jù)網(wǎng)。到這里數(shù)據(jù)通路才算真正打通。2.2 各網(wǎng)元對應(yīng)哪些端口和接口Open5GS網(wǎng)元之間的通信走的是不同協(xié)議使用的端口也完全不同。我把這次部署用到的關(guān)鍵端口和用途整理成了一張表排查問題時先對一遍這張表能省不少時間網(wǎng)元接口/協(xié)議默認(rèn)端口作用AMFNGAP/SCTP38412與基站gNB對接AMFN1/N2服務(wù)化接口7777內(nèi)部HTTP服務(wù)SMFPFCP8805與UPF建立N4會話UPFGTP-U2152用戶面數(shù)據(jù)轉(zhuǎn)發(fā)NRFHTTP7777網(wǎng)元服務(wù)注冊與發(fā)現(xiàn)NSSFHTTP7777網(wǎng)絡(luò)切片選擇這個表里的端口稍微記一下后面配置UERANSIM模擬基站、抓包定位問題時都用得上。防火墻如果開著建議先把這些端口放通或者干脆在實驗環(huán)境臨時關(guān)閉防火墻避免問題定位時被干擾。2.3 控制面和用戶面為什么要分開看5G相比4G一個很大的變化就是把控制面和用戶面徹底分開了??刂泼娴男帕盍髁亢苄〉髮崟r、可靠用戶面流量大強調(diào)的是轉(zhuǎn)發(fā)性能和帶寬。這個設(shè)計讓運營商可以把UPF下沉到離用戶更近的位置也就是常說的邊緣計算場景。這個思想也體現(xiàn)在Open5GS的配置上。SMF、AMF、UDM這些網(wǎng)元的配置里都要寫自己的地址和對外服務(wù)端口而UPF的配置里單獨定義GTP-U地址和數(shù)據(jù)網(wǎng)子網(wǎng)。我們實驗環(huán)境里雖然所有網(wǎng)元在一臺機器上但IP地址最好也按“控制面網(wǎng)段”和“用戶面網(wǎng)段”分開規(guī)劃我使用的是控制面走管理網(wǎng)段UPF的N6對接數(shù)據(jù)網(wǎng)段這樣做的目的是讓日志、抓包結(jié)果更加清晰可讀。3. 三步裝好基礎(chǔ)環(huán)境系統(tǒng)、Open5GS、WebUI一個都不能少網(wǎng)絡(luò)規(guī)劃和網(wǎng)元職責(zé)搞清楚后進入實操環(huán)節(jié)。我按順序整理成三步每一步都有對應(yīng)的驗證方法避免裝了后面忘了前面。3.1 系統(tǒng)初始化和基礎(chǔ)依賴安裝安裝完Ubuntu 22.04系統(tǒng)后第一件事是更新軟件源。國內(nèi)服務(wù)器如果直接訪問官方源速度慢可以參考網(wǎng)上的一些開源鏡像站替換方式替換后執(zhí)行sudo apt update sudo apt upgrade -y接著安裝Open5GS運行所需的依賴。這里有個小技巧先裝curl、gnupg這些基礎(chǔ)工具再裝MongoDB因為Open5GS的服務(wù)進程啟動時必須能連上MongoDB否則AMF、SMF這些網(wǎng)元會反復(fù)重啟并報數(shù)據(jù)庫連接錯誤。sudo apt install -y curl gnupg software-properties-common sudo install -d /usr/share/keyrings sudo curl -fsSL https://www.mongodb.org/static/pgp/server-6.0.asc | sudo gpg --dearmor -o /usr/share/keyrings/mongodb-server-6.0.gpgMongoDB 6.0在Ubuntu 22.04上有官方源支持安裝后要立即設(shè)置開機自啟并確認(rèn)狀態(tài)sudo apt install -y mongodb-org sudo systemctl start mongod sudo systemctl enable mongod systemctl status mongodmongod運行正常是Open5GS安裝的前提。如果這一步?jīng)]有確認(rèn)清楚就繼續(xù)后面所有網(wǎng)元都會報cannot connect to mongodb排查起來非常勸退。3.2 通過PPA安裝Open5GS核心網(wǎng)Open5GS提供了編譯好的Ubuntu包安裝非???。先添加PPA源sudo add-apt-repository -y ppa:open5gs/latest sudo apt update sudo apt install -y open5gs安裝完成后系統(tǒng)里會多出一批systemd服務(wù)包括open5gs-amfd、open5gs-smfd、open5gs-upfd、open5gs-ausfd、open5gs-udmd、open5gs-nrfd、open5gs-pcfd、open5gs-nssfd。這些都是Open5GS自己注冊好的服務(wù)單元可以用systemctl逐個控制。啟動方式有兩種一種是逐個啟動適合調(diào)試時單獨看日志另一種是全部啟動適合快速看到整體效果。我是這樣處理的sudo systemctl start open5gs-nrfd open5gs-ausfd open5gs-udmd open5gs-pcfd open5gs-nssfd sudo systemctl start open5gs-amfd open5gs-smfd open5gs-upfd每個服務(wù)都啟動成功后用端口監(jiān)聽情況做一次全面自檢ss -tulpn | grep -E 38412|8805|2152|7777正常情況下能看到AMF的SCTP端口38412、SMF的8805、UPF的2152都在監(jiān)聽。如果某個端口缺失先看對應(yīng)systemd服務(wù)狀態(tài)再翻日志不要盲目重啟原因我會在第6節(jié)詳細(xì)講。3.3 WebUI管理SIM卡用戶數(shù)據(jù)的入口Open5GS核心網(wǎng)本身沒有存儲手機號之類的概念它存的是SIM卡的IMSI、密鑰、運營商標(biāo)識這類數(shù)據(jù)。手動往MongoDB里插這些數(shù)據(jù)也可以但效率太低官方提供了一個WebUI來管理用戶數(shù)據(jù)推薦一并裝上。WebUI依賴Node.js環(huán)境sudo apt install -y nodejs npm git clone https://github.com/open5gs/open5gs.git cd open5gs/webui npm ci --legacy-peer-deps npm run build之后用npm start啟動WebUI瀏覽器訪問http://服務(wù)器IP:3000默認(rèn)賬號是admin密碼是1423。登錄后進入“用戶”頁面添加一個新的用戶條目填入IMSI為001010000000001選擇鑒權(quán)類型填入K、OPc等參數(shù)。這里的K和OPc必須和后面UERANSIM配置文件里保持一致否則終端注冊一定會失敗。WebUI常見的一個坑是Node.js版本不對導(dǎo)致npm ci報錯。如果在Ubuntu 22.04上遇到Node 18與某些依賴不兼容的情況可以考慮用nvm切換Node 16版本再試。這套WebUI只是用來管理訂閱數(shù)據(jù)不參與核心網(wǎng)信令流程所以出問題時不必阻塞太久先用MongoDB命令行插入一條測試數(shù)據(jù)也是完全可以的。4. 配置文件怎么改讓網(wǎng)元按你的拓?fù)渑芷饋戆惭b完成后Open5GS自帶一份默認(rèn)配置直接啟動所有服務(wù)是能跑起來但它內(nèi)部使用的是默認(rèn)網(wǎng)段和默認(rèn)PLMN無法對接你自定義的基站和終端。所以配置文件的修改是本次部署的重點也是區(qū)分“會裝”和“會調(diào)”的分水嶺。4.1 先看懂YAML配置的組織方式Open5GS的所有配置文件都放在/etc/open5gs/目錄下每個網(wǎng)元一份例如amf.yaml、smf.yaml、upf.yaml、nssf.yaml等。以smf.yaml為例打開后能看到一個嵌套的YAML結(jié)構(gòu)頂層有幾個關(guān)鍵段smf段里定義SMF自身的地址和服務(wù)配置upf段里定義UPF的地址和子網(wǎng)參數(shù)。這里有一個非常容易被忽略的細(xì)節(jié)不同版本的Open5GS配置項名稱會有細(xì)微差別。例如某些版本用addr某些版本用ip某些版本把subnet寫為network。我建議拿到任何一臺新環(huán)境先實際打開配置文件逐行看一遍不要直接CTRLC網(wǎng)上舊教程里的配置舊版本配置很可能導(dǎo)致服務(wù)啟動失敗這是不少新手花一整晚時間才發(fā)現(xiàn)的坑。4.2 AMF配置運營商標(biāo)識和接入網(wǎng)接口AMF配置里最重要的參數(shù)是PLMNPublic Land Mobile Network公共陸地移動網(wǎng)絡(luò)它由MCC和MNC組成MCC是國家碼MNC是運營商網(wǎng)絡(luò)碼。我們用模擬實驗時通常不申請真實運營商碼直接使用001和01。還需要設(shè)置TAC也就是跟蹤區(qū)碼這個值要和后面UERANSIM里基站配置保持一致。AMF的ngap地址決定它監(jiān)聽哪個IP來接收基站的N2連接。如果機器有多個網(wǎng)卡這里必須明確指定不能留空。我在第一次部署時沒寫IP結(jié)果AMF實際監(jiān)聽在了默認(rèn)網(wǎng)卡上而基站配置指向另一個IP兩邊一直無法建立連接。檢查日志發(fā)現(xiàn)SCTP連接請求被拒絕這才反應(yīng)過來是監(jiān)聽地址不對。4.3 SMF和UPF配置用戶IP池和N4關(guān)聯(lián)SMF負(fù)責(zé)給UE分配IP地址這個IP池定義在smf.yaml的會話段。我分配了10.45.0.0/16網(wǎng)段作為終端上網(wǎng)地址段網(wǎng)關(guān)設(shè)置為10.45.0.1DNN數(shù)據(jù)網(wǎng)絡(luò)名稱用的是internet。UPF的配置則需要與SMF嚴(yán)格對應(yīng)。UPF通過PFCP協(xié)議向SMF報告自己可用的用戶面IP地址和子網(wǎng)SMF才能把數(shù)據(jù)轉(zhuǎn)發(fā)給UPF??磁渲玫臅r間點讓我特別提一句UPF里定義的gtpu.addr要寫本機實際網(wǎng)卡的IPsubnet要和SMF定義的IP池一致否則UE注冊成功后依然建立不起PDU會話。配置涉及的核心部分如下這是我自己環(huán)境里穩(wěn)定運行的一版smf: plmn: mcc: 001 mnc: 01 session: - subnet: 10.45.0.0/16 gateway: 10.45.0.1 dnn: internet upf: gtpu: - addr: - 192.168.18.128 subnet: - 10.45.0.0/16 dev: pgw0改完配置文件后統(tǒng)一用sudo systemctl restart open5gs-smfd open5gs-upfd重啟對應(yīng)服務(wù)然后用journalctl驗證是否有語法報錯。YAML文件的縮進對解析結(jié)果影響巨大本人在實際項目中因為一個多出來的空格導(dǎo)致整個服務(wù)無法啟動排查過程用了半個小時后來用python3 -c import yaml; yaml.safe_load(open(/etc/open5gs/smf.yaml))去校驗才發(fā)現(xiàn)問題。建議每個人改完配置都順手跑一遍這個校驗。4.4 防火墻和IP轉(zhuǎn)發(fā)最容易漏掉的兩個坑Open5GS服務(wù)本身配置好了不代表數(shù)據(jù)通道能通。UPF負(fù)責(zé)用戶面數(shù)據(jù)轉(zhuǎn)發(fā)在Linux上這需要兩個條件一是服務(wù)器的IP轉(zhuǎn)發(fā)功能開啟二是iptables或路由表里有允許轉(zhuǎn)發(fā)的規(guī)則。開啟IPv4轉(zhuǎn)發(fā)sudo sysctl -w net.ipv4.ip_forward1同時檢查UERANSIM跑起來后產(chǎn)生的pgw0虛擬網(wǎng)卡是否存在。UPF會創(chuàng)建一個tun設(shè)備用于承載UE的數(shù)據(jù)流量如果這個設(shè)備沒出現(xiàn)多半是內(nèi)核模塊沒加載或者權(quán)限不足。如果你發(fā)現(xiàn)UE能注冊、能建立會話、但Ping外部IP失敗十有八九就是IP轉(zhuǎn)發(fā)沒有開或者UPF的數(shù)據(jù)網(wǎng)段路由沒有指向正確網(wǎng)關(guān)。這個問題的排查方法我給到第5節(jié)末尾這里先記住一個結(jié)論用戶面通不通和核心網(wǎng)配置文件的關(guān)聯(lián)度沒有想象中那么大更多時候是Linux主機網(wǎng)絡(luò)配置的問題。5. 用UERANSIM模擬終端驗證從開機注冊到拿到IP核心網(wǎng)部署完成后下一步就是讓基站和終端跑起來。UERANSIM是使用最廣泛的開源5G基站和終端模擬器支持N2/N3接口對接Open5GS。到這一步很多教程會輕描淡寫帶過但實際部署時有不少細(xì)節(jié)值得一步步展開。5.1 編譯安裝UERANSIMUERANSIM對Ubuntu 22.04的支持很成熟依賴只需要make、g等基礎(chǔ)工具sudo apt install -y build-essential cmake libsctp-dev git clone https://github.com/aligungr/UERANSIM cd UERANSIM make編譯完成后build目錄下會生成三個關(guān)鍵可執(zhí)行文件nr-gnb模擬基站、nr-ue模擬終端、nr-cli命令行交互工具。如果編譯過程中報錯大多是因為依賴缺失根據(jù)提示補齊重新make即可。我用的版本內(nèi)置的示例配置已經(jīng)按Open5GS的默認(rèn)參數(shù)微調(diào)過但自己再手動檢查一遍更穩(wěn)妥。5.2 基站配置要和AMF完全對齊UERANSIM的配置目錄在config/下。打開open5gs-gnb.yaml核心參數(shù)如下mcc: 001 mnc: 01 tac: 1 linkIp: 192.168.18.128 ngapIp: 192.168.18.128 gtpIp: 192.168.18.128 amfConfigs: - address: 192.168.18.128 port: 38412這里的MCC、MNC、TAC必須和Open5GS的AMF配置完全一致否則NGAP連接會建立失敗。linkIp、ngapIp、gtpIp要與AMF能訪問到的本機IP一致端口默認(rèn)38412。啟動基站的命令是./nr-gnb -c config/open5gs-gnb.yaml如果看到類似NGAP connection established的日志說明基站已經(jīng)成功連上AMF這是整個過程中最容易獲得成就感的一步。如果一直沒有連接成功的日志用tcpdump -i any sctp抓包看一下38412端口有沒有SCTP包到達就能確定是哪一側(cè)的問題。5.3 終端配置里最容易出錯的SIM參數(shù)open5gs-ue.yaml里模擬的是手機里SIM卡的信息關(guān)鍵參數(shù)包括supi: imsi-001010000000001 mcc: 001 mnc: 01 key: 465B5CE8B199B49FAA5F0A2EE238A6BC op: E8ED289DEBA952E4283B54E88E618BE4 amf: 8000其中key就是SIM卡的根密鑰Kop是運營商算法密鑰amf是鑒權(quán)管理字段。這些參數(shù)必須和Open5GS WebUI里錄進去的用戶數(shù)據(jù)完全一致差一個字節(jié)都會導(dǎo)致鑒權(quán)失敗。我在實際測試時因為復(fù)制粘貼過程中多了一個空格導(dǎo)致AMF日志反復(fù)報鑒權(quán)失敗這個問題靠眼睛看很難發(fā)現(xiàn)后來是寫了個腳本逐字節(jié)對比兩個文件的哈希值才定位到。啟動終端的命令是./nr-ue -c config/open5gs-ue.yaml啟動成功后的標(biāo)志是終端日志中出現(xiàn)PDU session established。此時可以在核心網(wǎng)一側(cè)執(zhí)行ip addr show pgw0正常情況下能看到一個10.45.0.2之類的地址這就是核心網(wǎng)分配給終端的IP。再執(zhí)行ping -I pgw0 10.45.0.2或者直接在另一臺設(shè)備Ping這個地址網(wǎng)絡(luò)就通了。5.4 鏈路打通后的整體驗證和排查順序從終端注冊到Ping通的完整鏈路建議按以下順序做整體驗證用ss -tulpn確認(rèn)核心網(wǎng)各端口在監(jiān)聽啟動nr-gnb確認(rèn)NGAP連接建立啟動nr-ue觀察注冊流程日志核心網(wǎng)AMF日志里應(yīng)出現(xiàn)終端的注冊請求和處理成功記錄查看pgw0設(shè)備是否有UE的IP地址最后Ping測試驗證用戶面數(shù)據(jù)通路如果第4步開始失敗優(yōu)先檢查IMSI和PLMN是否匹配如果第5步失敗重點排查SMF和UPF的網(wǎng)段配置是否一致如果第6步失敗檢查Linux IP轉(zhuǎn)發(fā)是否開啟以及UPF到外部網(wǎng)絡(luò)的默認(rèn)路由是否存在。我按這個順序快速排查了多次實驗環(huán)境的問題基本都是幾分鐘內(nèi)定位。6. 部署中我踩過的坑日志排查、性能優(yōu)化與運維心得Open5GS項目的活躍度很高文檔做得也算不錯但真正動手部署時你會遇到一些在官方文檔里找不到答案的細(xì)節(jié)問題。這里把我實際踩過的坑和對應(yīng)的解決方法集中做一個匯總希望給你省些時間。6.1 網(wǎng)元進程起不來先學(xué)會看日志Open5GS的所有網(wǎng)元都是systemd服務(wù)查看某個網(wǎng)元日志的標(biāo)準(zhǔn)命令是journalctl -u open5gs-amfd -f很多新手遇到服務(wù)啟動失敗會直接去看配置文件但我的經(jīng)驗是先看日志因為大部分啟動失敗在日志里都會明確寫出問題和行號。比如Failed to find the AMF這類報錯意味著配置里的某處指向不明確cannot connect to mongodb則說明MongoDB沒起來或地址配置錯誤Failed to parse YAML則直接說明配置文件語法有誤。另外注意區(qū)分不同網(wǎng)元的日志。SMF的問題要去open5gs-smfd日志里找UPF的問題要去open5gs-upfd里找不要在一份AMF日志里找所有問題的答案。6.2 常見問題和解決方法對照表把實驗過程中最常遇到的異常情況整理成了這張表可以直接對照排查現(xiàn)象常見原因解法基站連接AMF失敗ngapIp配置錯誤或端口不通核對IP確認(rèn)38412端口監(jiān)聽且防火墻放通UE注冊永久pendingSIM參數(shù)不一致對比WebUI與UERANSIM的K、OPc、IMSI注冊成功但PDU會話失敗SMF和UPF的子網(wǎng)配置不一致核對smf.yaml的subnet和upf.yaml的subnetUE有IP但外部不通IPv4轉(zhuǎn)發(fā)未開或路由缺失開啟ip_forward檢查默認(rèn)路由WebUI登錄后無法添加用戶Node.js版本問題嘗試用nvm切換Node 16網(wǎng)元反復(fù)重啟MongoDB未運行先啟動mongod再重啟open5gs服務(wù)6.3 性能調(diào)優(yōu)方向從“能跑”到“跑得好”如果這套環(huán)境只是用來學(xué)習(xí)前面講的內(nèi)容已經(jīng)足夠了。但如果你打算拿它做性能測試或者邊緣計算實驗我建議再關(guān)注三個方向。一是把UPF從單機里拆出來。Open5GS的UPF可以部署在獨立服務(wù)器上SMF通過N4接口遠(yuǎn)程管理它。這種部署方式更接近真實組網(wǎng)也能避免控制面負(fù)載和用戶面大流量互相干擾。二是使用DPDK等高性能數(shù)據(jù)面加速技術(shù)。UPF的用戶面轉(zhuǎn)發(fā)如果走傳統(tǒng)的內(nèi)核協(xié)議棧吞吐有上限當(dāng)壓力上來時需要考慮加速方案。這一點在Open5GS社區(qū)里也有不少實踐案例可以參考。三是調(diào)整日志級別。默認(rèn)的日志級別會打印大量調(diào)試信息長期運行會產(chǎn)生大量日志文件把amf.yaml、smf.yaml里的日志級別改為warn再把核心網(wǎng)服務(wù)的內(nèi)存占用限制好實驗環(huán)境一周不重啟也不會出問題。這里還想專門提一下MySQL和MongoDB的分工。Open5GS用MongoDB存用戶訂閱數(shù)據(jù)這一點和很多傳統(tǒng)網(wǎng)元不同。實驗過程中如果MongoDB數(shù)據(jù)損壞或者你改了SIM卡參數(shù)想恢復(fù)默認(rèn)直接清空數(shù)據(jù)庫再重新添加用戶即可不用重新安裝整個核心網(wǎng)。6.4 我的“復(fù)盤式”運維慣例最后分享一個個人習(xí)慣。每次把5G核心網(wǎng)配置調(diào)通以后我建議用cp把當(dāng)前能正常工作的一組配置文件和UERANSIM配置文件一起備份到一個帶日期的目錄比如backup/2025-01-14/。因為在后續(xù)調(diào)試中你大概率會改動各種配置改掛了之后能一鍵回滾會讓人安心很多。Open5GS的配置文件本身不大但每個參數(shù)都牽一發(fā)動全身保留一份“已知可用”的標(biāo)準(zhǔn)配置比事后回憶和查文檔效率高得多。我在實際部署中最大的體會是5G核心網(wǎng)沒有玄學(xué)它只是網(wǎng)絡(luò)協(xié)議棧上按固定流程把信令和用戶面掰開、各司其職的系統(tǒng)。只要把每個網(wǎng)元的角色、端口、配置對應(yīng)關(guān)系在心里畫清一張圖剩下的問題都只是按圖索驥?,F(xiàn)在這套Ubuntu 22.04加Open5GS加UERANSIM的組合我已經(jīng)在好幾臺新環(huán)境上重復(fù)部署過從系統(tǒng)裝好到終端跑通熟練之后半小時以內(nèi)就能完成希望這篇筆記也能幫你達到同樣的效率。