發表文章

Single Root I/O Virtualization (SR-IOV) 介紹

圖片
在虛擬化技術中, 最一開始的技術從硬碟開始, 之後是 CPU 與記憶體的虛擬化, 最後則慢慢走向網路以及各種周邊裝置虛擬化, 其中, 在網路虛擬化的部分, 一開始以軟體方案 (OpenVSwitch) 為主, 此類方法依賴 Host Machine 上的程式進行資料的轉傳, 限制了 Virtual Machine 上的網路的效能. 為了增進其他裝置 (CPU, 記憶體, 硬碟) 的虛擬化程度, Intel 提出了 SR-IOV (Single Root I/O Virtualization) 的機制, 目標是透過對 PCIe 介面的虛擬化, 使一個裝置可以服務多個虛擬機, 其中, SR 代表只有一個 Host Machine, 也就是一般家用電腦狀況, 相對應的有所謂的 MR-IOV (Multi-Root I/O Virtualization), MR-IOV 適用於刀鋒伺服器 (Blade Server) 架構, 在此架構下, 多張刀鋒伺服器共享同一機櫃之 IO 支援 (如對外網路), 因此會出現多台 Host Machine (Multi-Root) 對單一 IO 裝置的存取需求. 考慮到 MR-IOV 可視為 SR-IOV 的延伸, 我們著重介紹 SR-IOV 的部分,  在 SR-IOV 中, 將原本提供 Physical Function (PF),  切割成多個 Virtual Function (VF), 而每個 VF 對應到不同的虛擬網卡, 其框架可以以下圖表示: 來自:  https://www.marvell.com/content/dam/marvell/en/public-collateral/ethernet-adaptersandcontrollers/marvell-ethernet-adapters-fastlinq-concurrent-nic-partitioning-sr-iov-technology-brief-2018-07.pdf 由上圖中可以發現, SR-IOV 需要裝置本身的支援 (PF和VF的功能提供), 以及虛擬層 (hypervisor) 的支援, 其中, PF 可以視為原本裝置的 driver 支援, 負責和 hpervisor 進行溝通, 當虛擬機生成後, 就直接透過 ...

LTE筆記: 5G Time Sensitive Communications ~ NTP 協定

圖片
在5G工業物聯網的應用中, 其中一項重要的應用就是低延遲網路, 低延遲網路可用於智慧工廠中, 特別是對於精密控制的工業機台, 在 3GPP 的架構中, 這些應用屬於工業 4.0 的範疇, 並將需要精密時間同步的工業物聯網服務稱為 Time Sensitive Communications (TSC), https://www.3gpp.org/news-events/2122-tsn_v_lan 其中, 用以支持精密同步的通訊協定為 802.1AS. 802.1AS 繼承自 IEEE 1588v2, 也稱為 PTP (Precision Time Protocol), PTP 的基本同步架構沿襲自 NTP (Network Time Protocol), 但考量了大型網路的複雜度, 對於網路中介裝置 (Bridge 或 Switch), 加入修正的機制, 以及對時鐘 (Grand Master, GM) 的選擇機制, 主要目標在於服務無法以 GPS 對時, 但需要比 NTP 更精確同步的場域, 其同步精確度的設計為 500 ns (七個網路節點, 時脈飄移小於 1PPM). 考慮到 802.1AS 是源自於 NTP 的設計, 我們在此篇文章中, 先介紹 NTP 的對時設計,  在 NTP 的基本想法中, 透過兩裝置封包交換, 計算兩者的通訊延遲, 並透過此延遲時間的估算 (下圖的 \delta), 用以同步兩個裝置的時間, 來自:  https://en.wikipedia.org/wiki/Network_Time_Protocol 在NTP中, 假設兩個裝置互相傳送封包 (上行/下行) 的延遲一致, 因此 \delta = ((t3-t2)+(t1-t0)) = 65 (ms) \delta 代表的是藍色部分的漂移時間 (propagation time), 其值除以二就代表著封包從 Server 到 Client 所需的單向漂移時間, 因此, Client 可以參考從 Server 送出的參考時間, 加上單向漂移時間, 用以作為本地校正的時間數值. 在 NTP 的架構下, 兩點之間的時間同步不成問題, 因為在同一個區網下, 同一網路媒介下, 上行和下行的時間差異不大, 但對於一個大型網路而言, 則會有以下兩個問題: 當有多個裝置想當...

LTE筆記: 3GPP 中的企業專網 (Non-Public Network, NPN) -2

圖片
在 上一篇文章 中, 介紹了企業專網, 以及其在 3GPP 中的角色以及兩種不同的應用情境. 接下來, 我們將從其佈建的方式, 詳細介紹其不同實作方案的差別, 本文主要的圖表和內容來自:  https://www.netmanias.com/en/post/blog/14500/5g-edge-kt-sk-telecom/7-deployment-scenarios-of-private-5g-networks 這篇文章詳細的敘述了7種不同的企業專網架構, 其中, 最為有趣的是 6 和 7 兩個韓國 SK 電信的實作案例. 本文專注於一般性架構 (前5種) 不會談到, 有興趣可以進入連結詳讀. 在之前介紹中, 我們說明了企業專網可以分成兩大類, 第一類是由場域主自行佈建, 維護從基地台至核網所有 5G 單元 (如下圖左), 按照實施者的不同, 在原文中拆成兩個方案討論. 第二類是由電信業者佈建, 此類專網會在一定程度上和電信業者的網路進行整合, 共享網路中的部分元件, 並使用網路分層 (network slicing) 的技術, 來達成場域主對安全性的需求 (如下圖右),  在此架構下, 我們將分成 3 種不同方案進行說明. 來自:  https://www.netmanias.com/en/post/blog/14500/5g-edge-kt-sk-telecom/7-deployment-scenarios-of-private-5g-networks 首先, 是方案一和方案二, 此兩方案在原文中的差異只有實施者是場域主或是電信商, 在網路架構上完全一致, 都是整套的獨立 5G 網路 (黑色部分),  並和電信商的 5G 網路 (藍色部分) 沒有任何實體上的重疊. 方案一, 二: 來自:  https://www.netmanias.com/en/post/blog/14500/5g-edge-kt-sk-telecom/7-deployment-scenarios-of-private-5g-networks   考慮到兩邊網路獨立, 在這兩個方案中, 企業專網必須有專屬頻譜 (圖中的 Local 5G freq.) 將墊高建置成本, 但另一方面, 由於企業專網的網路為實體上獨立, 因此, 有最高等級的...

LTE筆記: 3GPP 中的企業專網 (Non-Public Network, NPN) -1

圖片
在 5G 的時代, 其中一個主要的應用就是物聯網, 透過拓展 5G 的應用情境, 5G 服務的使用者不再只是人, 而包含了各式各樣不同需求的裝置,  像是: V2X 中的車輛與路旁裝置, mMTC 中的感測裝置,  這些多樣的裝置與應用, 使得 5G 不只是單一種電信商 (Operator) 網路, 而是一種異質的網路組合, 用以服務不同的應用情境. 考慮到此特性, 5G 網路就產生了企業專網的延伸, 其基本想法就是透過專屬的頻寬 (專網), 提供給場域營運商 (企業), 使得場域營運商可以按照其需求, 佈建一個符合自己應用情境的服務. 在台灣, 企業專網的頻帶為 4.8~4.9 GHz 的頻段. 目前已有多家企業 (如: 鴻海, 台積電) 表示興趣, 電信商也提出各自的解決方案, 然而, 不可否認的是, 目前企業專網尚未擁有成功的布建案例, 企業專網可以帶來甚麼優點? 比起 4G 的解決方案, 5G 的架構有甚麼幫助? 各國企業專網頻帶 (Source: Nokia) 在 3GPP R15 和 R16 的規範中, 定義了企業專網的架構 (稱為 Non-Public Network, NPN) 請參考: https://www.3gpp.org/news-events/2122-tsn_v_lan 在 3GPP 的分類中, NPN 可以大致分成兩類: SNPN (Stand-alone Non-Public Network): 在此架構下, 核網與頻帶都為營運上所擁有. 此架構等於是場域主自行營運一個小型的 5G 網路, 無須電信商的介入. PNI-NPN (Public Network Integrated NPN): 此架構下, 一些功能由電信商核網支援. 在此架構下又可以按照不同程度的功能切分, 形成不同的架構. 大致來說, SNPN 需要較高的建置成本, 較低的營運成本, PNI-NPN 則相反, 在安全性上, SNPN 掌握所有資料, PNI-NPN 則依賴電信商的支援, 下圖為 3G4G blog 提供的簡易比較 (MNO 為 Mobile Network Operator 縮寫): https://blog.3g4g.co.uk/2020/03/5g-private-and-non-public-network-npn.html 若我...

[WiFi] WiFi 網路的認證: 802.1X 與 EAP (Extensible Authentication Protocol)

圖片
在上一篇文章中, 我們介紹了 RADIUS 認證協定, RADIUS 是基於 UDP 的方式建立連線, 不但無法保證資料傳輸的完整性, 也無法保證資料的安全性. 使用 UDP 的主要原因應該是在舊有有線網路的設計架構下, 將控制訊息以 UDP 傳輸, 使用者資料以 TCP 傳輸的想法, 此想法基於控制訊息短, 且具有定期重送的保護機制而形成, 使用 UDP 傳輸可以避免封包多餘的重傳, 以及訊息交換, 節省使用頻寬, 特別適用於早年頻寬有限的網路架構. 然而, 隨著網路的發展, 安全性和穩定性受到更多注意, 特別是針對無線網路, 由於在空氣中的封包可以側聽, 因此, 安全性受到更多考量. 為了增進 WiFi 網路的安全性, EAP (Extensible Authentication Protocol) 首先被提出, EAP 被定義於 RFC3748 , 為一個點對點的認證框架, 由於 EAP 的角色是框架, 而非協定, 因此有各家廠商的不同實現, 不同 EAP 的協定比較可以參考 Intel 的這篇文章: https://www.intel.com.tw/content/www/tw/zh/support/articles/000006999/network-and-i-o/wireless.html 802.1X 基於 EAP 的架構, 提出一種在區域網路 (Local Area Network, LAN) 的實作方式, 或者也可以稱為 EAPOL (EAP Over LAN), 提供 EAP 架構進行裝置與伺服器之間的資料交換, EAPOL 為一個點對點的通訊協議, 不依賴 IP 層, 可用 MAC 直接溝通, 在 EAPOL (或是 802.1X) 加入後, 整體的架構如下圖: 來自:  https://www.semanticscholar.org/paper/Extensible-Authentication-Protocol-(-EAP-)-Security-Sotillo/417b0aa1fd8d7ddb8616a018de1fbc9de039a40e 在上圖中, 可以看出來 802.1X, EAP 和 RADIUS 之間的分工, 一方面, EAP 架構下通訊的兩點為終端裝置和 RADIUS 伺服器, 補足了 RADIUS 只定義 NAS (...

[WiFi] WiFi 網路的認證: RADIUS 架構

圖片
對於使用公眾 WiFi 的使用者, 連上網路之後第一件事應該就是被導到一個登入的網頁, 輸入帳密之後, 才能開始進行一般的上網瀏覽, 而此處的登入與認證程序, 通常使用 RADIUS 作為認證機制. RADIUS 全稱為: Remote Authentication Dial-In User Service, 初始定義於 RFC 2865:  https://tools.ietf.org/html/rfc2865 是一個基於 UDP 協定的通訊架構 (因此應用層要自行處理連線保證), 負責處理客戶端 (稱為NAP, Network Access Server) 的認證需求, 如下圖所示: 來自:  https://en.wikipedia.org/wiki/RADIUS 在上述的應用情境中, NAS 扮演的定義為: Initial Entry Point to a Network, 換句話說, 扮演類似 router 的角色, 做為對外網路的代理, RADIUS Server (Proxy) 的功能則是對應一分散式網路框架, 當 NAS 分屬不同地區的區域網路 router 時, 可以透過 proxy 的代理, 將各地區域網路的認證導向統一的 RADIUS Server. 事實上, 在一開始敘述的應用環境中, 使用者裝置一共認證兩次: 第一次, 連上 WiFi 網路, RADIUS 會先給予此 MAC 位址准入權限, 並將通訊導向設定的網頁伺服器, 第二次, 透過網頁伺服器送出使用者名稱與密碼 (或其他認證手段), 此時使用者才真正擁有上網的權限, 如下圖所示: 來自:  https://www.watchguard.com/help/docs/help-center/en-US/Content/en-US/Wi-Fi-Cloud/manage_wirelessmanager/configuration/wifi_access/radius_mac_auth.html RADIUS 伺服器的功能不止於此, 還可以包含使用者登入後的計費, 登入時間控管等, 甚至也可以和 VLAN 結合, 動態賦予流量不同的安全設定. 同時, 為了進一步增強 RADIUS 的安全性, RADIUS 也加入了和 EAP (Extensibl...

LTE筆記: SGi interface 和 SGi LAN 在 4G 網路中的應用

圖片
在 LTE 的核網中, 資料透過 PDN (Package Data Network) gateway 連結外部網路, 在過往我的理解中, 資料只要出了 PDN GW, 就是和網際網路 (Internet) 相連, 因此, 不論是封包的轉傳, 或是應用的提供, 應該都要回歸 IP 層的設定. 然而, 事實上, 在 PDN GW 和 Internet 之間, 3GPP 還定義一個通訊界面, 稱為 SGi, 在此介面上, 或者說是在這中間的網路 (SGi LAN), 可以建立不同的應用,  用以提供各式加值服務, 以下是對 SGi 介面的定義: Interface between the PDN-GW and a packet data network. It may be an operator external public or private packet data network or an intra operator packet data network, e.g. for provision of IMS services 在定義中的 IMS (IP Multimedia Subsystem) services, 為電信商所提供的多媒體服務, 像是: VoLTE, 影像電話等, 和一般網際網路的應用不同, IMS 服務可以存取核網資訊 (例如: HSS 資料庫), 並透過其在核心網路出口的優勢, 提供較佳反應時間與頻寬. 另一方面, SGi LAN 也可以用以實作防火牆, DPI (Deep Packet Inspection), 等安全控制功能, 並可透過服務疊加的方式 (service chaining), 提供不同服務組合, 如下圖所示: 來自:  https://blog.advantech.com/tech-blogs/ntg/2017/11/sgi-lan-service-chaining/ 我們可以看到可以利用 SGi LAN 實現的服務可以分成兩類: 電信商的應用服務: 對於此類服務, 一開始的 IP 位址就必須為電信商服務的 IP, 當服務進入 SGi LAN 之後, 可藉由 NAT 實現負載平衡, 並利用資料中心內的資源, 提供服務 網路安全管理: 此類應用可以利用防火牆的設定, 提供 黑名單/白名單 的功能, 也...