【儀器儀表商情網 解決方案】眾所周知,SDN軟件定義網絡,核心思想就是所謂的“轉發、控制分離”,正所謂一談SDN必談“轉發、控制”,一傳十十傳百,口口相傳。當我們這些產品經理到客戶現場交流SDN時,或許客戶也能娓娓道來“轉發、控制、分離”。
SDN,也許你能想到這些:
歸結起來是這樣幾大特征:
Controller控制器集中控制:集中式/分布式控制器無非是把原本網絡設備從孤立的單點做了橫向的擴張,將所有SDN化的網絡設備統一被控制。
標準協議接口化:控制器與SDN設備之間的南向協議的標準化以及控制器北向API接口的標準化都是強調了SDN畢竟還是處理“網絡”的工作,應用的事SDN“甭管”。
通用硬件:這里和NFV(Network Function Virtualization,網絡功能虛擬化)沒有關系。這里的SDN通用硬件指的是帶有SDN處理芯片的網絡設備或者是能實現SDN功能的網絡設備。
把SDN抽象出來看,其實包括了這樣五個部分:
SDN網絡設備:網絡設備(硬件網絡設備或x86里面的軟件網絡設備)+SDN能力(可以是SDN芯片或開啟SDN功能)
SDN控制器:能處理SDN功能的控制器,可以是軟件方式或軟件嵌入硬件的方式。
SDN APP:這更像是我們熟悉的網絡上層功能,
南向控制協議:這里場景的控制協議是Openflow,但絕非僅僅Openflow。可以實現控制功能的協議其實很多。
北向API:此API的主要作用在于提供SDN控制器及其以下部分(南向控制協議、網絡設備)能夠作為網絡驅動供上層應用調用。
SDN抽象的模型
通常情況下,啟用SDN的交換機可以分成兩種模式:純SDN交換機和混雜模式交換機。
Openflow標準定義了控制器與交換機之間的交互協議,以及一組交換機操作。這個控制器—交換機協議運行在安全傳輸層協議(TLS)或無保護TCP連接之上。Openflow使用TCP端口6633或6653。
每個流表中每個流條目包括三個部分:
(1) 匹配match—使用ingress port,packet header以及前一個flow table傳遞過來的metadata;
(2) 計數counter---對匹配成功的包進行計數;
(3) 操作instruction—修改action set或者流水線處理
交換機針對SDN有一個比較重要的消息類型:Packet-In,主要針對未知數據流無法命中流表的時候,作上送控制器的操作。
同樣,SDN控制器也有一個比較重要的消息類型:Packet-Out,主要針對下游SDN被管理設備,用于控制器指定從交換機的特定端口發送數據包,或者用于轉發通過Packet-in消息接收到的數據包。Packet-Out報文中包含明確的Action動作。