【儀器儀表商情網(wǎng) 解決方案】眾所周知,SDN軟件定義網(wǎng)絡(luò),核心思想就是所謂的“轉(zhuǎn)發(fā)、控制分離”,正所謂一談SDN必談“轉(zhuǎn)發(fā)、控制”,一傳十十傳百,口口相傳。當(dāng)我們這些產(chǎn)品經(jīng)理到客戶現(xiàn)場(chǎng)交流SDN時(shí),或許客戶也能娓娓道來(lái)“轉(zhuǎn)發(fā)、控制、分離”。
SDN,也許你能想到這些:
歸結(jié)起來(lái)是這樣幾大特征:
Controller控制器集中控制:集中式/分布式控制器無(wú)非是把原本網(wǎng)絡(luò)設(shè)備從孤立的單點(diǎn)做了橫向的擴(kuò)張,將所有SDN化的網(wǎng)絡(luò)設(shè)備統(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“甭管”。
通用硬件:這里和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è)備。
把SDN抽象出來(lái)看,其實(shí)包括了這樣五個(gè)部分:
SDN網(wǎng)絡(luò)設(shè)備:網(wǎng)絡(luò)設(shè)備(硬件網(wǎng)絡(luò)設(shè)備或x86里面的軟件網(wǎng)絡(luò)設(shè)備)+SDN能力(可以是SDN芯片或開(kāi)啟SDN功能)
SDN控制器:能處理SDN功能的控制器,可以是軟件方式或軟件嵌入硬件的方式。
SDN APP:這更像是我們熟悉的網(wǎng)絡(luò)上層功能,
南向控制協(xié)議:這里場(chǎng)景的控制協(xié)議是Openflow,但絕非僅僅Openflow??梢詫?shí)現(xiàn)控制功能的協(xié)議其實(shí)很多。
北向API:此API的主要作用在于提供SDN控制器及其以下部分(南向控制協(xié)議、網(wǎng)絡(luò)設(shè)備)能夠作為網(wǎng)絡(luò)驅(qū)動(dòng)供上層應(yīng)用調(diào)用。
SDN抽象的模型
通常情況下,啟用SDN的交換機(jī)可以分成兩種模式:純SDN交換機(jī)和混雜模式交換機(jī)。
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或者流水線處理
交換機(jī)針對(duì)SDN有一個(gè)比較重要的消息類型:Packet-In,主要針對(duì)未知數(shù)據(jù)流無(wú)法命中流表的時(shí)候,作上送控制器的操作。
同樣,SDN控制器也有一個(gè)比較重要的消息類型:Packet-Out,主要針對(duì)下游SDN被管理設(shè)備,用于控制器指定從交換機(jī)的特定端口發(fā)送數(shù)據(jù)包,或者用于轉(zhuǎn)發(fā)通過(guò)Packet-in消息接收到的數(shù)據(jù)包。Packet-Out報(bào)文中包含明確的Action動(dòng)作。