Opensync 管理器 (Managers) 簡介
OpenSync由十九個獨立的程式組成,每個程式有其獨立的功能。由於功能上的相關性,可以分為以下四組,並且依照順序啟動。當然如果熟悉了之後,可以有選擇地不要啟動列為”Optional”的管理程式。這取決於完整系統定義的功能。
下面就是這些程式的簡單說明,之後每一個Manager會有專章進行討論:
1. OpenSync 的基礎程式
1-a. Diagnostics Manager (DM)
DM (診斷經理)是第一個需要啟動的程式。它負責啟動其餘的OpenSync管理器,並有選擇性監控它們。這裡說的選擇性是DM有兩個程式介面,可以在啟動與停機時,呼叫廠商掛上的監控程式。
DM除了啟動其他管理程式外,如果這些管理程式掛了,他還會產生 Crash Report,裡面會記錄當機時間、程式的PID、當掉的理由等等;這些報告會透過MQTT送到雲端的系統中。除了本機之外,DM也可以收集網路節點的當機資訊(例如何時當機、當機頻率等等)。
1-b. Connection Manager (CM(2))
CM2負責建立主幹(Backhaul)連接,並通過IPv4或IPv6保持與雲端管理系統的連接。CM使用以下步驟來與雲端管理系統連接:
1. 上行網路(Uplink)的選擇,依照設備類型(Gateway or Extender)有不同的方法):
− Gateway: 對於網關設備,上行鏈路始終是電纜端口(以太網,光纖,同軸電纜等)。在這種情況下,不使用特殊邏輯,僅監視與控制器的連接。
− Extender: 在這種情況下,CM要選擇適當的上行鏈路端口,也許是有線端口(RJ45)或Wi-Fi Backhaul。
2.從AWLAN_Node OVS表中的redirector_addr得到 host name的IP地址。
3.建立與 redirector的連接。
4.通過 redirector 得到雲端管理系統的IP地址。
5.將CM連接到雲端管理系統。
6.監視鏈路穩定性 (會不會一直重複發生斷線的狀況)。
c. Captive Portal Manager (CPM)
這個功能叫做Guest Network,就是家裡面如果有客人來,例如客人、佣人、褓姆臨時要上網,你不想把家裡密碼給客人使用,就可以用這個功能。
Captive Portal是一個啟動頁面,會在訪客用戶設備上自動打開,提示他們通過開放的訪客Wi-Fi登錄,登錄成功之後就可以上網。由於此功能在應用程程層次上執行,因此節點(Node)和控制器(Controller)必須包括在較低層上建立適當連接方法。此節點獲得用戶憑據後,即可使用AAA Server來做客戶端管理。
CPM在OpenSync設備上扮演代理服務的角色,該服務可對在Wi-Fi網路切割獨立的部分,對第三方(來賓)的客戶端裝置上進行身份驗證。來賓客戶端設備通過外部Captive Portal服務器進行身份驗證。
CPM具有以下角色:
− 識別需要進行身份驗證的流量。
− 將流量路由到代理服務。
− 將代理服務從收到的HTTP port 80流量傳遞到雲端系統中運行的UAM (Universal Access Method) / NAS服務。
如果對於這裡運作有疑問,下面連接有不錯的範例與解釋:
https://help.keenetic.com/hc/en-us/articles/360000501439-Captive-portal
CPM 預設是關閉的。
1-d. WAN Orchestrator (WANO)
WAN Orchestrator(WANO)負責裝置的Internet連線。WANO啟用設備WAN Port,並啟動必要的服務以啟用Internet連接。
以下是WANO連接網路的步驟:
(1). 建立連接界面:WANO支持以下接口:以太網、VLAN和PPPoE。
(2). 端口角色檢測和WAN探測:
a. WANO自動配置Ethernet Port,並設定Port角色,這裡會啟用自動檢測功能,找出以下三種角色的其中之一:WAN 連接、Ethernet 主幹、Ethernet的延伸。
b. 在WAN設置之前,啟動保全機制,並啟用防火牆規則。
C. 在可用的WAN接口上,啟動的WANO probing (探針):
- 在設備上沒有對WAN進行的設定的話,WANO會預設為DHCP探測。
- 如果裝置設定為靜態IP地址,WANO探測已知的互聯網主機。
- WAN設定為PPPoE或VLAN。
(3).網路配置:WANO負責在設備上進行WAN後續設定。
2.基本的網路架構設定
2-a. Wireless Manager (WM2)
WM2負責Wi-Fi子系統(例如VAP (Virtual Access Point)、SSID /密碼、主幹(Backhaul)、Channel等)的設置和配置。WM2還負責監視Wi-Fi狀態和客戶端連接/斷開連接。
一開始啟動的時候,WM2會讀取當前設備的配置,並更新相關的Config和State表。雲端管理系統使用型號名稱的無線頻率與介面接口,來正確設置無線裝置的參數。WM2具有以下角色:
- 在以下表中的資訊不匹配時,呼叫Target API來進行設備設定:
- Wifi_Radio_Config與Wifi_Radio_State
- Wifi_VIF_Config與Wifi_VIF_State
- 通過Wifi_Associated_Clients Table,報告已連接的Client與其Metadata。
- 每當STA VIF 連接狀態改變的時候,更新Wifi_Master_State表中的port_active欄位,並通知CM。這功能用於Wi-Fi Extender的啟動和上行網路連接設定。
2-b. Network Manager (NM)
NM負責管理所有與網路相關的配置和網路狀態報告,這是功能比較多的Manager。主要功能包含:
- 管理IPv4 / IPv6地址(Static、DHCP)
- 創建和終結網絡接口(Wi-Fi接口除外,請參閱WM(Wireless Manager))
- 配置網路接口的參數(MTU、Up / Down State)
- 管理DNS和DNSMASQ服務
- 管理防火牆規則(filtering, port forwarding)
- 啟動/停止各種網路服務 (UPnP、DHCP Server and Client)
- 管理GRE隧道(GRE Tunnels)
- 管理橋接的接口(Bridge Interface)
- 關聯Client端的DHCP fingerprint reporting
- 管理DHCP保留的IP
NM可以管理OVS 橋接器、傳統橋接器 (缺少HomePass™之類的功能)、網絡接口及其配置、Wi-Fi接口 (Access Point 和 Station)。
Cloud schema是使用擴充的OVSDB schema,該schema已經提供了配置OVS橋接器的所有必要方法。但有時Bridge裝置的上傳介面是Wi-Fi,但如果不與Wi-Fi層進行互動,則無法完全配置Wi-Fi接口。NM在Wi-Fi管理部分必須要與WM偕同一致以提供完整的功能。
2-c. Netfilter Manager (NFM)
Netfilter 一個User Space的Linux公用程式,使用iptable來控制封包與流向(Data Flow)。NFM藉由 Netfilter 提供以下功能:
− 封包過濾(Packet filtering),防火牆功能(Firewalling)
− 封包的紀錄(Packet logging)
− 封包的排隊(Packet queueing)
− 封包的處理)Packets mangling) (例如依照封包的標頭和標記做一些特別的處理)。
− 網路和端口地址轉換(Network and port address translation)
− 讀取、解析NFLOG數據包,然後用JSON格式,透過MQTT發送給雲端系統。
2-d. QoS Manager - QoSM
QoS 設定網路封包的處理先後順序,例如語音、視訊要有優先通過,以維持比較好的用戶體驗。這些設定包含:
− Queue的先後順序(Queue priorities)。
− 保留給Queue的最大頻寬(Maximum queue bandwidth)。
− 封包的優先順序(Packet prioritization)。
3. Optional, needed for additional features
3-a. Queue Manager (QM)
QM負責緩衝來自SM、BM和FCM的MQTT訊息。即使Up Link連接斷開(例如主幹網路瞬時故障、ISP服務中斷等等),也嘗試不丟棄任何訊息。訊息使用Google的protocol buffers進行編碼。報告內的多條訊息將合併為一條訊息。 其他管理器使用Unix Socket與QM進行通信。
Google的protocol buffers 請參考一下連結:
https://developers.google.com/protocol-buffers/docs/proto
3-b. Statistics Manager (SM)
統計管理器(SM)負責處理所有有關於無線網路的統計請求(Request),並將結果發送到雲端管理系統。當MQTT用於數據平面時,配置通過OVSDB完成。
以下用一個收集客戶端的頻率為例,來說明說明收集和發送統計信息的過程(不是真實的統計數據,僅是用來舉例說明用的):
雲端管理系統可以設置了一個計時器,以10秒的頻率,收集一次客戶端的頻率信息,另一個計時器用於每120秒發送一次客戶端報告。如果發生Timeout,便呼叫Target Layer(API) 測量客戶端裝置的頻率。
Target Layer(API) 也許會呼叫Kernel API讀取相關數值。Target Layer(API)還負責將其測量的數據資料結構轉換為SM期望的格式(格式定義於OpenSync的Data Pipeline(簡寫為DPP) Library中)。
各種量測值會存儲到報告中,也會與其他量測的數據合併在一起,並可進行進一步處理和操作。當報告的計時器timeout時,該報告被發送到QM (Queue Manager),QM 將來自不同管理器的報告合併為一個報告,透過MQTT發送到雲端管理平台。
3-c. Band steering Manager (BM)
負責根據每個客戶端的配置、Wi-Fi信號/雜訊的強度和雲端管理系統提供的觸發條件(Trigger),將Wi-Fi裝置引導到不同的頻段(2.4GHz or 5GHz稱之為band steering)或不同的AP(稱之為Client Steering)。這是Smart Mesh之中最基本的功能。
3-d. Log Manager (LM – deprecated, included as a part of PM plugin)
Log Manager負責根據Cloud請求(logpull)收集和上載裝置的日誌和系統信息,並依照日誌的嚴重性設定處理的模組。
3-e. Platform Manager (PM)
PM負責:
- 設備GUI和雲端管理系統之間的暱稱同步。
- 雲端管理系統通知設備凍結(Parental Control功能)(OpenFlow must disabled)
- 通過調節風扇轉速來進行設備的熱度管理
- 設備的LED管理。
3-f. Exchange Manager (XM)
Exchange manager 主要執行OVSDB 與其他管理系統之中交換資料(例如與 TR-069/369 之間)。基本上這是一個雙向的同步功能(e.g., OVSDB <-> TR-181)。
3-g. Upgrade Manager (UM)
收到來自雲端管理系統的觸發後,UM確保設備韌體升級過程完成。 雲端管理系統為所選客戶位置上的所有節點精心安排了韌體升級過程。
雲端管理系統使用以下命令啟動更新:
- - 可用的韌體image URL
- - 雲端管理系統期望韌體下載的下載時間(例如半夜三點開始下載升級)。
- - 韌體密碼(如果韌體image已加密) (可選)
每次韌體image下載成功之後,設備都會通過OVSDB AWLAN_Node Table的upgrade_status欄位報告成功。此時,雲端管理系統將更新升級計時器。計時器更新之後,設備開始升級韌體過程。
如果升級成功,則設備將通過upgrade_status 欄位再次報告成功。雲端管理系統隨即進行設備重啟。
3-h. LTE Manager (LTEM)
LTE管理器(LTEM)負責在檢測到Internet中斷後,將網路流量從WAN切換到LTE備份。LTEM會監視WAN Link是否發生L2或L3中斷,並在發生WAN中斷時向LTE接口添加預設路由。當WAN接口恢復聯機時,LTEM刪除LTE路由,網路流量再次回到WAN接口。
LTEM還負責在網路切換的時候,為LTE接口添加和刪除DNS Entry。
沒有留言:
張貼留言