專題簡介
專題報告
核心網路是整個網路架構的中心部分,是許多網路元件的集合體,每個元件都有其被賦予的功能,在核心網路中被稱為 Network Function (NF) ,眾多元件的合作與溝通即形成核心網路,用實際一點的例子來舉例,就是電信業者所架設的機房。
核心網路可以把 local area networks (LANs) 及 wide-area networks (WANs) 連結起來,目的是傳送大規模、遠距離的資料,並確保其穩定性及效能。
Evolution of Core Network(3G vs. 4G vs. 5G)
當SDN遇上NFV 虛擬化5G核心網路掀革
由於 Software-Defined Networking (SDN) 及 Network-Function Virtualization (NFV) 技術的發展, 5G 核心網路比起 4G 核心網路多了不少虛擬化的網路元件 (Network Function , NF) ,這樣帶來的好處有 3 :
目前我們知道的開放使用 5G 核心網路有以下幾種
開放的 5G 核心網路清單
由國立陽明交通大學通訊服務與軟體研究中心主持
此專案至今仍然持續維護
此專案歷經三個版本的改良,最新版本中僅包含 5G 核心網路的 NF ,不具有 4G 核心網路的架構。
目前的功能僅限於網路上,不具有通話的功能。
與 UERANSIM (用戶裝置模擬器)配合
由 Open Networking Fundation 主持維護
此專案目前也持續維護
屬於 COMAC 底下的其中一個專案
COMAC 架構圖如下
可以看出此專案較為接近商業用的版本,除了核心網路本身之外,還在網路服務的方向做了許多功能,使其更貼近商用的目的。
除了 OMEC 專案以外,其他專案僅部分為開源 project 。
此專案也持續維護
此專案基於 4G 核心網路進行改良,在安裝時可以根據指南選擇安裝的組態,一種是 4G/5G 的核網架構,另一種為純 5G 的架構。
底下的 VoLTE 有提供 call setup 的功能,功能相較於 free5GC 更為完善。
科技部新聞–-世界第一套符合國際標準的開放原始碼5G核心網路
https://www.p1sec.com/corp/2021/12/31/pentesting-5g-core-networks/
https://read01.com/zh-tw/J843zAK.html#.YonlhKhBxPY
free5GC | OMEC | Open5GS | |
---|---|---|---|
優點 | 官方文件整理得較易懂 | 功能最多最齊全 | 指南詳盡、補充資料多 |
架設流程最簡單 | 延伸功能多,且有文件教學 | ||
缺點 | 功能相對單調 | 安裝上相對困難 | 文件有些凌亂 |
官方文件雜亂無章 |
free5GC | OMEC | Open5GS |
---|---|---|
台灣研發 | 國際組織 | 韓國研發 |
全世界第一套完全依照3GPP Release 15國際標準的開放原始碼5G核心網路 | – | – |
安裝指南詳細+影片輔助 | 安裝指南複雜 | 安裝指南詳細但無影片輔助 |
硬體需求低 | 硬體需求高 | 硬體需求居中 |
– | 重視商用 | – |
功能完善 | 功能較侷限 | 附加功能較多 |
free5GC: https://www.free5gc.org/installations/stage-3-free5gc/
OMEC:https://guide.opencord.org/prereqs/hardware.html
Open5GS:https://open5gs.org/open5gs/docs/tutorial/01-your-first-lte/
https://opennetworking.org/onf-connect-2019-resources/
因為我們深知核心網路相關議題之深與其複雜程度,在對核心網路一無所知的前提下,我們決定選擇 free5GC 做為研究的方向,原因無他,只因為其最好上手,較有可能是一介大學生可以涉足的程度。
共有三台虛擬機,一台架設核心網路,兩台架設 RAN(GNodeB) 和 UE 的模擬器
Core Network中有著許多元件,每個元件都有他各自的用途
主要解釋 AMF, SMF, UPF 這三個元件
我們自己撰寫了一份程式,這隻程式可以讓兩台虛擬機透過核心網路互相傳送訊息和檔案
必須從 103 開始此程式,這是因為這隻程式的架構依舊是 client-server 架構,我 hardcode 成 103 那端做為第一個 client 端
這隻程式會創建出兩個 thread ,分別負責接收和傳送訊息。
介紹 tshark 工具,可指定攔截封包的介面卡及了解封包的在傳輸時的時間戳記變化,並藉由它協助分析封包傳輸順序
tshark 與 wireshark 的功能大致相同,可以藉由特定參數指定我們想要抓取的 interface 或是指定 IP 位置,我們在後續進行實驗時使用到以下參數:
-i <interface>
: 選定特定的 interface-t <format>
: 設定輸出的 timestamp 格式,以下皆使用 -t a
作為輸入參數,以顯示絕對時間-f <filter>
: 設定攔截封包時的 filter-f "src 192.168.56.102"
, -f "dst 192.168.56.102"
-c <count>
: 設定最大攔截封包量,如 -c 1
代表僅攔截一個封包tshark 是 wireshark 的無 GUI 版本
整體功能和 wireshark 相同,可針對各個 interface 攔截封包
也可在攔截或輸出時設置 filter 抓取特定來源或是特定目的地的封包
在我們設置核心網路的過程中,會先依序建立 GNB 及 UE ,若只建立 GNB 時先用 ifconfig
檢查,會發現 tunnel (uesimtun0
) 尚未建立,
此時再建立 UE 後,即可在 ifconfig
中看到多了一個網路介面 uesimtun0
。
因此我們推論 uesimtun0
建立在本機(GNB 和 UE 間)而非核心網路所在的虛擬機上。
為了驗證假設,我們先用 tshark 來抓取內網卡的封包。
輸出結果:
輸出結果:
輸出結果:
DNS outside Core Network
-
: dash
_
: underscore
: space
/
: slash
\
: backslash
架構圖大小重拉
Hotkey | usage |
---|---|
Ctrl+b d |
detach tmux |
Ctrl+b c |
create new window |
Ctrl+b % |
Split pane horizontally |
Ctrl+b " |
Split pane vertically |
Ctrl+b x |
Close selected pane |
Ctrl+b w |
Show window list |
Ctrl+b & |
Close selected window |