首頁(yè) > 信通在線(xiàn) > 通信新聞 > SDN中“軟件”如何定義“網(wǎng)絡(luò)”
SDN(Software Defined Network)軟件定義網(wǎng)絡(luò),字面釋義都說(shuō)了是“軟件”來(lái)定義“網(wǎng)絡(luò)”,但有心之人會(huì)想:這個(gè)“軟件”到底是如何定義了我們所熟知的“網(wǎng)絡(luò)”?字字珠璣,今天就來(lái)扒一扒,這“軟件”到底是如何定義這“網(wǎng)絡(luò)”。
眾所周知,SDN軟件定義網(wǎng)絡(luò),核心思想就是所謂的“轉(zhuǎn)發(fā)、控制分離”,正所謂一談SDN必談“轉(zhuǎn)發(fā)、控制”,一傳十十傳百,口口相傳。當(dāng)我們這些產(chǎn)品經(jīng)理到客戶(hù)現(xiàn)場(chǎng)交流SDN時(shí),或許客戶(hù)也能娓娓道來(lái)“轉(zhuǎn)發(fā)、控制、分離”。但事實(shí)是怎么樣呢,不妨我們以SDN為題做個(gè)頭腦風(fēng)暴,看看談到SDN我們都想到了哪些關(guān)鍵詞,并以此來(lái)總結(jié)出SDN幾大特征庫(kù)。
SDN,也許你能想到這些:
歸結(jié)起來(lái)是這樣幾大特征:
Controller控制器集中控制:集中式/分布式控制器無(wú)非是把原本網(wǎng)絡(luò)設(shè)備從孤立的單點(diǎn)做了橫向的擴(kuò)張,將所有SDN化的網(wǎng)絡(luò)設(shè)備統(tǒng)一被控制。這就好比將N臺(tái)SDN小交換機(jī)“揉”成一臺(tái)SDN大交換機(jī),統(tǒng)一管理,統(tǒng)一配置。
標(biāo)準(zhǔn)協(xié)議接口化:控制器與SDN設(shè)備之間的南向協(xié)議的標(biāo)準(zhǔn)化以及控制器北向API接口的標(biāo)準(zhǔn)化都是強(qiáng)調(diào)了SDN畢竟還是處理“網(wǎng)絡(luò)”的工作,應(yīng)用的事SDN“甭管”。可以類(lèi)比到OSI七層模型,每層對(duì)應(yīng)了每層的工作,彼此調(diào)用互不干涉。
通用硬件:這里和NFV(Network Function Virtualization,網(wǎng)絡(luò)功能虛擬化)沒(méi)有關(guān)系。這里的SDN通用硬件指的是帶有SDN處理芯片的網(wǎng)絡(luò)設(shè)備或者是能實(shí)現(xiàn)SDN功能的網(wǎng)絡(luò)設(shè)備。并非NFV所強(qiáng)調(diào)的x86取代ASIC的設(shè)備。
正如下圖所示,把SDN抽象出來(lái)看,其實(shí)包括了這樣五個(gè)部分:
SDN網(wǎng)絡(luò)設(shè)備:網(wǎng)絡(luò)設(shè)備(硬件網(wǎng)絡(luò)設(shè)備或x86里面的軟件網(wǎng)絡(luò)設(shè)備,如vSR/vFW等)+SDN能力(可以是SDN芯片或開(kāi)啟SDN功能)
SDN控制器:能處理SDN功能的控制器,可以是軟件方式或軟件嵌入硬件的方式。常見(jiàn)的有:floodlight、POX、NOX、OpenDaylight、Ryu、NSX等
SDN APP:這更像是我們熟悉的網(wǎng)絡(luò)上層功能,例如QOS、路由功能、Overlay功能等等。相比于傳統(tǒng)網(wǎng)絡(luò),原本孤立的管理/配置如今被SDN統(tǒng)一化了,一個(gè)APP代表了整個(gè)SDN管理域內(nèi)的所有此APP功能。好處就好比,網(wǎng)絡(luò)出口要防DDOS攻擊,調(diào)用了一個(gè)APP就能自動(dòng)做黑洞引流操作;又好比,領(lǐng)導(dǎo)要開(kāi)視頻會(huì)議,調(diào)用一個(gè)QOS的APP就能全局做帶寬質(zhì)量保障;又例如,通過(guò)SDN負(fù)載均衡APP,可以實(shí)現(xiàn)根據(jù)不同業(yè)務(wù)/參數(shù)進(jìn)行負(fù)載輪詢(xún)。
南向控制協(xié)議:這里場(chǎng)景的控制協(xié)議是Openflow,但絕非僅僅Openflow??梢詫?shí)現(xiàn)控制功能的協(xié)議其實(shí)很多,除了最知名的Openflow以外,還有:Netconf、PCEP、LISP、MP-BGP、SNMP等等。
北向API:此API的主要作用在于提供SDN控制器及其以下部分(南向控制協(xié)議、網(wǎng)絡(luò)設(shè)備)能夠作為網(wǎng)絡(luò)驅(qū)動(dòng)供上層應(yīng)用調(diào)用。此上層應(yīng)用可以是各種APP,同樣也可以是Openstack、vCloud等云管理平臺(tái)。
SDN抽象的模型
通常情況下,啟用SDN的交換機(jī)可以分成兩種模式:純SDN交換機(jī)和混雜模式交換機(jī)。
純SDN交換機(jī):交換機(jī)無(wú)腦工作,所有處理過(guò)程均依賴(lài)于Openflow或類(lèi)似南向控制協(xié)議,主流的有:BGP/LISP/SNMP/NETCONF等。此時(shí)的交換機(jī)也叫做白盒交換機(jī),其中交換機(jī)簡(jiǎn)化很多芯片功能,但增強(qiáng)了流表轉(zhuǎn)發(fā)的功能,其中流表主要由ACL的TCAM芯片提供。只有這類(lèi)TCAM能匹配SDN里面的十五元組,可以根據(jù)組特性進(jìn)行轉(zhuǎn)發(fā)。
混雜模式交換機(jī):顧名思義,混雜模式交換機(jī)就是帶有OPENFLOW功能的傳統(tǒng)交換機(jī),可以根據(jù)需要將交換機(jī)的一部分轉(zhuǎn)換成SDN,而其實(shí)質(zhì)是傳統(tǒng)交換機(jī),有所有相關(guān)的轉(zhuǎn)發(fā)、控制ASIC芯片。
Openflow標(biāo)準(zhǔn)定義了控制器與交換機(jī)之間的交互協(xié)議,以及一組交換機(jī)操作。這個(gè)控制器—交換機(jī)協(xié)議運(yùn)行在安全傳輸層協(xié)議(TLS)或無(wú)保護(hù)TCP連接之上。Openflow使用TCP端口6633或6653。
每個(gè)流表中每個(gè)流條目包括三個(gè)部分:
(1) 匹配match—使用ingress port,packet header以及前一個(gè)flow table傳遞過(guò)來(lái)的metadata;
(2) 計(jì)數(shù)counter---對(duì)匹配成功的包進(jìn)行計(jì)數(shù);
(3) 操作instruction—修改action set或者流水線(xiàn)處理
交換機(jī)針對(duì)SDN有一個(gè)比較重要的消息類(lèi)型:Packet-In,主要針對(duì)未知數(shù)據(jù)流無(wú)法命中流表的時(shí)候,作上送控制器的操作。
同樣,SDN控制器也有一個(gè)比較重要的消息類(lèi)型:Packet-Out,主要針對(duì)下游SDN被管理設(shè)備,用于控制器指定從交換機(jī)的特定端口發(fā)送數(shù)據(jù)包,或者用于轉(zhuǎn)發(fā)通過(guò)Packet-in消息接收到的數(shù)據(jù)包。Packet-Out報(bào)文中包含明確的Action動(dòng)作。
接下來(lái),通過(guò)兩個(gè)例子來(lái)展示“SDN新網(wǎng)絡(luò)”如何利用“軟件”解決傳統(tǒng)網(wǎng)絡(luò)中的問(wèn)題。同樣,可以幫助產(chǎn)品經(jīng)理能夠在跟客戶(hù)交流SDN的過(guò)程中,更深入的闡述SDN的大致工作過(guò)程,以“軟件定義”的角度來(lái)闡釋傳統(tǒng)網(wǎng)絡(luò)中常見(jiàn)的拓?fù)浒l(fā)現(xiàn)、ARP通訊等問(wèn)題。
SDN Controller通過(guò)Openflow和LLDP發(fā)現(xiàn)整網(wǎng)拓?fù)?/strong>
整網(wǎng)拓?fù)淙缟蠄D所示
背景闡述:
那對(duì)于傳統(tǒng)交換機(jī)而已,正常情況他們是通過(guò)LLDP等類(lèi)似的鄰居發(fā)現(xiàn)協(xié)議發(fā)現(xiàn)彼此網(wǎng)絡(luò)設(shè)備,形成整網(wǎng)拓?fù)?。而在SDN環(huán)境中,設(shè)備是無(wú)腦的,此時(shí)需要借助Openflow和LLDP同時(shí)工作,來(lái)保障Controller環(huán)境下能夠?qū)θW(wǎng)進(jìn)行拓?fù)浒l(fā)現(xiàn)。
工作流程介紹:
SDN控制器對(duì)于ARP報(bào)文的處理
背景闡述:
網(wǎng)絡(luò)拓?fù)湟寻l(fā)現(xiàn)
整個(gè)解析過(guò)程
可以看到,最關(guān)鍵的應(yīng)該是第三步,即Controller發(fā)送偽裝ARP報(bào)文給全局同網(wǎng)段交換機(jī),以此來(lái)實(shí)現(xiàn)ARP廣播的同樣效果。但也正是這樣一個(gè)看似合理的安全行為,帶來(lái)了很多不安全的隱患。可以想象,Controller有幾種方式可以獲取終端主機(jī)的MAC情況:1.通過(guò)免費(fèi)ARP的方式、2.定時(shí)申請(qǐng)下游終端的MAC方式,都可以保證對(duì)下游終端MAC的始終更新。
但同樣,集中Controller的方式也帶來(lái)了單點(diǎn)安全的風(fēng)險(xiǎn)考慮,一旦一臺(tái)下游主機(jī)中毒,不斷變化自己的MAC不斷做出更新動(dòng)作,此時(shí)會(huì)極大消耗Controller的資源,形成DOS攻擊。同樣,Controller的安全如果不是很堅(jiān)固,則一旦被攻破,所有終端信息一覽無(wú)余。
拋磚引玉,SDN的安全還有很多路要走。
附:SDN Controller哪個(gè)最受歡迎
http://www.sdnap.com/sdnap-post/485.html