首頁 > 信通在線 > 通信新聞 > SDN中“軟件”如何定義“網絡”
SDN(Software Defined Network)軟件定義網絡,字面釋義都說了是“軟件”來定義“網絡”,但有心之人會想:這個“軟件”到底是如何定義了我們所熟知的“網絡”?字字珠璣,今天就來扒一扒,這“軟件”到底是如何定義這“網絡”。
眾所周知,SDN軟件定義網絡,核心思想就是所謂的“轉發、控制分離”,正所謂一談SDN必談“轉發、控制”,一傳十十傳百,口口相傳。當我們這些產品經理到客戶現場交流SDN時,或許客戶也能娓娓道來“轉發、控制、分離”。但事實是怎么樣呢,不妨我們以SDN為題做個頭腦風暴,看看談到SDN我們都想到了哪些關鍵詞,并以此來總結出SDN幾大特征庫。
SDN,也許你能想到這些:
歸結起來是這樣幾大特征:
Controller控制器集中控制:集中式/分布式控制器無非是把原本網絡設備從孤立的單點做了橫向的擴張,將所有SDN化的網絡設備統一被控制。這就好比將N臺SDN小交換機“揉”成一臺SDN大交換機,統一管理,統一配置。
標準協議接口化:控制器與SDN設備之間的南向協議的標準化以及控制器北向API接口的標準化都是強調了SDN畢竟還是處理“網絡”的工作,應用的事SDN“甭管”??梢灶惐鹊絆SI七層模型,每層對應了每層的工作,彼此調用互不干涉。
通用硬件:這里和NFV(Network Function Virtualization,網絡功能虛擬化)沒有關系。這里的SDN通用硬件指的是帶有SDN處理芯片的網絡設備或者是能實現SDN功能的網絡設備。并非NFV所強調的x86取代ASIC的設備。
正如下圖所示,把SDN抽象出來看,其實包括了這樣五個部分:
SDN網絡設備:網絡設備(硬件網絡設備或x86里面的軟件網絡設備,如vSR/vFW等)+SDN能力(可以是SDN芯片或開啟SDN功能)
SDN控制器:能處理SDN功能的控制器,可以是軟件方式或軟件嵌入硬件的方式。常見的有:floodlight、POX、NOX、OpenDaylight、Ryu、NSX等
SDN APP:這更像是我們熟悉的網絡上層功能,例如QOS、路由功能、Overlay功能等等。相比于傳統網絡,原本孤立的管理/配置如今被SDN統一化了,一個APP代表了整個SDN管理域內的所有此APP功能。好處就好比,網絡出口要防DDOS攻擊,調用了一個APP就能自動做黑洞引流操作;又好比,領導要開視頻會議,調用一個QOS的APP就能全局做帶寬質量保障;又例如,通過SDN負載均衡APP,可以實現根據不同業務/參數進行負載輪詢。
南向控制協議:這里場景的控制協議是Openflow,但絕非僅僅Openflow??梢詫崿F控制功能的協議其實很多,除了最知名的Openflow以外,還有:Netconf、PCEP、LISP、MP-BGP、SNMP等等。
北向API:此API的主要作用在于提供SDN控制器及其以下部分(南向控制協議、網絡設備)能夠作為網絡驅動供上層應用調用。此上層應用可以是各種APP,同樣也可以是Openstack、vCloud等云管理平臺。
SDN抽象的模型
通常情況下,啟用SDN的交換機可以分成兩種模式:純SDN交換機和混雜模式交換機。
純SDN交換機:交換機無腦工作,所有處理過程均依賴于Openflow或類似南向控制協議,主流的有:BGP/LISP/SNMP/NETCONF等。此時的交換機也叫做白盒交換機,其中交換機簡化很多芯片功能,但增強了流表轉發的功能,其中流表主要由ACL的TCAM芯片提供。只有這類TCAM能匹配SDN里面的十五元組,可以根據組特性進行轉發。
混雜模式交換機:顧名思義,混雜模式交換機就是帶有OPENFLOW功能的傳統交換機,可以根據需要將交換機的一部分轉換成SDN,而其實質是傳統交換機,有所有相關的轉發、控制ASIC芯片。
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動作。
接下來,通過兩個例子來展示“SDN新網絡”如何利用“軟件”解決傳統網絡中的問題。同樣,可以幫助產品經理能夠在跟客戶交流SDN的過程中,更深入的闡述SDN的大致工作過程,以“軟件定義”的角度來闡釋傳統網絡中常見的拓撲發現、ARP通訊等問題。
SDN Controller通過Openflow和LLDP發現整網拓撲
整網拓撲如上圖所示
背景闡述:
那對于傳統交換機而已,正常情況他們是通過LLDP等類似的鄰居發現協議發現彼此網絡設備,形成整網拓撲。而在SDN環境中,設備是無腦的,此時需要借助Openflow和LLDP同時工作,來保障Controller環境下能夠對全網進行拓撲發現。
工作流程介紹:
SDN控制器對于ARP報文的處理
背景闡述:
網絡拓撲已發現
整個解析過程
可以看到,最關鍵的應該是第三步,即Controller發送偽裝ARP報文給全局同網段交換機,以此來實現ARP廣播的同樣效果。但也正是這樣一個看似合理的安全行為,帶來了很多不安全的隱患。可以想象,Controller有幾種方式可以獲取終端主機的MAC情況:1.通過免費ARP的方式、2.定時申請下游終端的MAC方式,都可以保證對下游終端MAC的始終更新。
但同樣,集中Controller的方式也帶來了單點安全的風險考慮,一旦一臺下游主機中毒,不斷變化自己的MAC不斷做出更新動作,此時會極大消耗Controller的資源,形成DOS攻擊。同樣,Controller的安全如果不是很堅固,則一旦被攻破,所有終端信息一覽無余。
拋磚引玉,SDN的安全還有很多路要走。
附:SDN Controller哪個最受歡迎
http://www.sdnap.com/sdnap-post/485.html