SDN(Software-defined networking,軟體定義網路)是一個相當大的架構,字面上雖然簡單,但這一切最有問題的地方是在於「如何實作軟體定義網路」。要學會實作 SDN ,最重要的是瞭解 SDN 整體的架構,也因為 SDN 並非單一單元,如果缺失其中一個單元的瞭解,在最後的設計上,將會綁手綁腳、無從下手。在此,我將 SDN 分為三個單元,分別為:
-
Switch(連接設備,屬於 Data Plane)
-
協定(Switch 的運作規則、Switch 與 Controller 之間的溝通)
-
Controller(定義 Switch 的運作規則及整體網路邏輯,屬於 Control Plane)
在學習的項目上又分為四個部分(依順序排列):
- 什麼是 OpenFlow?:SDN 設備間溝通的方式
- 安裝 OVS:為實際執行 OpenFlow 做準備
- 利用 OVS 熟習 OpenFlow:手動當 Controller 的角色
- 安裝 Mininet:建立模擬環境,及與 Controller 連結做準備
- 熟悉 Mininet:瞭解 Mininet 在做什麼
- 以程式碼建立 Mininet 環境:學習虛擬環境連結 Controller 的方式
- 安裝 Ryu Controller:為學習 Controller 做準備
- 撰寫第一隻 Controller 程式
- 學習利用 Controller 規劃轉送邏輯
- 比較像樣的路徑配置方式:Shortest Path
其餘章節,讀者可以依需求閱讀。每個項目都會有一個目錄(如:Ryu)讀者可以透過目錄,找尋自己有興趣的內容閱讀。
此部分的文章,主要談論實驗環境的建立方式。
- Mininet(虛擬網路環境)
- Open vSwitch(虛擬 Switch)
- Ryu(SDN Controller)
- Vagrant(建立虛擬系統環境)
- GtkTerm(連接週邊硬體)
- Pica8 P-3297