SDN 學習筆記(二): OpenFlow 1.0 介紹
前言 想要深入了解一個協定的內容,看規格書是最快的,因為剛開始學習 SDN 相關的知識,所以目前正在讀OpenFlow1.0相關的內容,這篇文章會先主要介紹OpenFlow 1.0的架構,以及一些 spec 的整理.
之後也會整理一些 OpenFlow 1.3版本的內容,並且簡單描述跟 OpenFlow 1.0的差異。
為什麼會著重在1.0與1.3兩個版本呢? 1.0版本與之後的版本不兼容,所以1.0要最先介紹。 1.0以及1.3版本被選為長期支持的穩定版本 1.3為目前的主流版本,多數支持OpenFlow的硬體是支援OpenFlow1.3
參考資料: OpenFlow 協定演進
OpenFlow 1.0 架構 OpenFlow 1.0 spec 架構圖
Flow Table 在 OpenFlow Switch 中存放轉發規則的表稱之為 Flow Table
OpenFlow 1.0 中每個Switch只能存放一個Flow Table
Flow Table中每個項目被稱為 Flow Entry 在 OpenFlow 1.0 中,每個 Flow Entry 中都包含三個部份
Header Fields Counters Actions Header Fields OpenFlow 1.0 協定中共有12種可供匹配的條件, IP部份只支援IPv4。
分別如下,僅列出條列,細節說明請參考 OpenFlow 1.0 spec
L1 Ingress Port: 封包進入 Switch 的Port L2 Ether source: 來源Mac Address Ether dst: 目標Mac Address Ether type: 乙太類型 VLAN ID VLAN priority L3 IPv4 source: 來源IP Address IPv4 dst: 目標IP Address IPv4 proto: IP協定表 IPv4 Tos bits: Type of service L4 TCP/UDP source port TCP/UDP dst port Counters Counter 會針對每張 Flow Table, 每條 Flow entry, 每個 switch 上的 port 以及每個佇列分別紀錄一些相關資訊。