現(xiàn)實世界的SDN遠(yuǎn)多于這個系列的介紹倡鲸,這個系列只是選取了開源的,并且與OpenStack相關(guān)的SDN做介紹黄娘。還有各種沒有與OpenStack做集成的峭状,或者是廠商閉源的SDN。一個個去分析似乎也不太現(xiàn)實逼争,我們這次來看看SDN的共性优床。畢竟掌握了本質(zhì)再來看個體更有效。
有關(guān)軟件控制網(wǎng)絡(luò)的想法很早就提出了誓焦,在上世紀(jì)90年代胆敞,網(wǎng)絡(luò)可編程(programmable network)的概念就在Active Networking中提出。而控制層面(control plane)的分離在2004年也由IETF ForCESWorking Group提出。但是在OpenFlow提出之前移层,這些都只是小范圍的研究討論仍翰,發(fā)展并不快。雖然說OpenFlow不能代表SDN观话,但是不可否認(rèn)予借,OpenFlow的出現(xiàn)了加速了SDN的發(fā)展。現(xiàn)在的SDN體系也是由早期的OpenFlow Controller發(fā)展而來频蛔。之后發(fā)展成SDN Controller灵迫,也就是說SDN的范圍不再局限于OpenFlow。近期的SDN發(fā)展晦溪,更多提的是SDN platform和SDN operating system瀑粥,講的都是基于SDN構(gòu)建平臺,構(gòu)建生態(tài)尼变。這兩者有什么區(qū)別利凑,目前我也很難從字面上給出解釋嫌术。不過這兩者都更進(jìn)一步度气,不再局限于網(wǎng)絡(luò)磷籍,而是以網(wǎng)絡(luò)為中心,做更多的事情够吩。
SDN的發(fā)展時間與OpenStack的發(fā)展時間有一定的重合强法。而Cloud Networking是SDN的主要場景之一饮怯,兩者的碰撞不可避免蓖墅。一方面于樟,OpenStack的流行能帶動SDN的發(fā)展迂曲,另一方面路捧,SDN的演進(jìn)可以提升OpenStack集群的規(guī)模杰扫。以后一定能看到更多的OpenStack + SDN的應(yīng)用章姓。
這個系列之前介紹了幾種SDN凡伊,細(xì)心的朋友估計也能看出SDN的架構(gòu)大致來了系忙,下面我來總結(jié)一下吧。
Application & Orchestration Tier
傳統(tǒng)的SDN架構(gòu)里面沒有這一層蛹疯,在SDN platform里面新增了這一層捺弦。而OpenStack也在這一層羹呵。SDN想要接入到OpenStack冈欢,必須要在這一層完成適配太示,將OpenStack的請求轉(zhuǎn)換成SDN的請求类缤。在這一層不需要關(guān)心SDN底層的具體實現(xiàn)餐弱,因為SDN已經(jīng)將底層網(wǎng)絡(luò)抽象成純軟件的概念膏蚓。
Northbound Interface是SDN將底層網(wǎng)絡(luò)抽象成軟件概念驮瞧,并暴露出來的接口。
Application & Orchestration Tier通過Northbound Interface接入SDN Controller狂魔。這個接口通常是毅臊,但不局限于是RESTful API。像ODL還提供了OSGI接口朗鸠,而OVN和Dragonflow直接提供DB讀寫的接口烛占。
換一個角度忆家,不論底層的SDN是什么芽卿,單看OpenStack提供的networking服務(wù)卸例,Neutron server也可以看成是一個Northbound Interface筷转。因為它提供了相應(yīng)的網(wǎng)絡(luò)數(shù)據(jù)模型的RESTful API呜舒。
SDN的最核心部分店乐。又分成了幾個部分:
SDN自己是一個集群內(nèi)運行的軟件眨八。有自己的狀態(tài)和數(shù)據(jù),因此必須要有一個Database來存儲相關(guān)的數(shù)據(jù)篓足。而SDN主要是進(jìn)行網(wǎng)絡(luò)運算连舍,網(wǎng)絡(luò)運算的要求就是高速索赏,低延時。因此對Database的性能要求也比較高融涣⊥梗基于內(nèi)存的NoSQL數(shù)據(jù)庫通常具有更好的性能忽你,更快的響應(yīng)速度筋粗,這個系列前面介紹的幾乎所有的SDN都是采用的這類數(shù)據(jù)庫娜亿。在這類數(shù)據(jù)庫中买决,Cassandra是選用最多的數(shù)據(jù)庫吼畏,OpenContrail,Midonet,Dragonflow都支持Cassandra没卸。并且有報告表明,Cassandra的性能的確優(yōu)于同類的其他數(shù)據(jù)庫煤蚌。
鑒于Database的重要性,通常會將Database部署在獨立的節(jié)點细卧,并且考慮到HA和水平擴展尉桩,Database節(jié)點也會部署成一個集群。
由于SDN是一個集群內(nèi)運行的軟件酒甸,因此SDN需要定義自己的消息通訊機制魄健,以供集群內(nèi)的各個節(jié)點之間通訊。像ODL和Midonet采用的是RPC作為消息機制插勤,OpenContrail則是參考MPLS VPN自己制定的消息通訊機制,OVN和Dragonflow則是簡單的消息發(fā)布訂閱機制革骨。
終于到了SDN Controller筑凫,根據(jù)ONF(Open Networking Foundation)的定義,SDN Controller是一個邏輯集中的控制器。邏輯集中的控制器纬朝,那物理上就不一定集中了哆致。實際上哪怕是集中式SDN控制器胞此,出于HA和水平擴展的考慮,也不會部署成物理集中丸升。而SDN控制器也朝著分布式的方向發(fā)展岭皂。像OpenContrail揉阎,Midonet烙如,OVN,Dragonflow都有不同程度的分布式。有關(guān)集中式剖张,分布式控制器的特點吨枉,我在之前的SDN閑聊中有過介紹,這邊就不再多說拘央。
SDN控制器包含了各個網(wǎng)絡(luò)功能的實現(xiàn)栏账。也就是一個個Network service茶鹃。具體的來說,Network service就是將Northbound的抽象數(shù)據(jù)和Southbound的具體網(wǎng)絡(luò)協(xié)議做了適當(dāng)?shù)霓D(zhuǎn)換和翻譯。也就是這樣寇蚊,原本生硬晦澀的network element,經(jīng)過Network Service可以靈活的通過軟件來定義。
SDN Controller還包括了數(shù)據(jù)層面(Data plane)的接口念链,當(dāng)然,這個接口一般不會太具體降瞳。
各類控制協(xié)議和網(wǎng)絡(luò)協(xié)議搓侄。雖然感覺上很多瞄桨,但是最常見的還是OpenFlow和NetConf话速。這是network elements暴露出來的接口讶踪,只有支持相應(yīng)協(xié)議的網(wǎng)絡(luò)設(shè)備才有可能成為SDN的一部分。
這一層就是實際的網(wǎng)絡(luò)設(shè)備層泊交,包含各種網(wǎng)絡(luò)設(shè)備乳讥。網(wǎng)絡(luò)設(shè)備本身也分為physical device和virtual device。Physical device就是支持OpenFlow或者NetConf或者其他控制協(xié)議的交換機廓俭,路由器和其他的網(wǎng)絡(luò)設(shè)備云石。這些硬件設(shè)備目前占據(jù)SDN市場的最大份額,也是各大傳統(tǒng)網(wǎng)絡(luò)設(shè)備廠商的地盤研乒。Virtual device汹忠,就是支持OpenFlow或者其他控制協(xié)議的虛擬網(wǎng)絡(luò)設(shè)備。像OVS雹熬,OpenContrail的vRouter宽菜。Virtual device被認(rèn)為是最有發(fā)展前景的,并且在成本上也優(yōu)于physical device竿报。
雖然Cloud computing對SDN的意義非常大铅乡,但是SDN并非是為了Cloud computing而誕生的。SDN的提出是為了簡化日趨復(fù)雜的網(wǎng)絡(luò)架構(gòu)烈菌,降低網(wǎng)絡(luò)管理的難度和成本阵幸。隨著SDN和Cloud computing的發(fā)展,數(shù)據(jù)中心趨于虛擬化芽世。SDN的初衷倒也是契合Cloud networking的目的挚赊。從發(fā)展趨勢上看,SDN具備了以下功能才能算是功能完善济瓢。
Cloud Networking:為數(shù)據(jù)中心和云提供虛擬化的網(wǎng)絡(luò)服務(wù)荠割。這是所有SDN的標(biāo)配,要是沒有這個功能葬荷,都不好意思跟別人說自己是SDN涨共。
NFV: 作為虛擬網(wǎng)絡(luò)界的另一股發(fā)展力量。NFV在電信運營商場景非常受歡迎宠漩。借助SDN可以更好的實現(xiàn)NFV举反。像ODL和OpenContrail明確表示了支持NFV場景,而ONOS主打SP場景扒吁,在NFV領(lǐng)域也當(dāng)仁不讓火鼻。在OpenStack環(huán)境下室囊,還可以借助networking-sfc項目實現(xiàn)NFV,Dragonflow目前在這方面有所動作魁索。
Container Network:容器這幾年的發(fā)展是如火如荼融撞,容器網(wǎng)絡(luò)作為容器技術(shù)的一部分,也是各個SDN發(fā)展的重點粗蔚。在OpenStack環(huán)境下尝偎,可以借助kuryr項目實現(xiàn)容器網(wǎng)絡(luò)和SDN的結(jié)合。Midokura和Huawei作為kuryr項目的發(fā)起者和最大貢獻(xiàn)者鹏控,對應(yīng)的Midonet和Dragonflow自然借助kuryr項目實現(xiàn)容器網(wǎng)絡(luò)與SDN的集成致扯。OVN自己也在做一些容器網(wǎng)絡(luò)集成的嘗試ovn-kubernetes。OpenContrail自己實現(xiàn)了容器網(wǎng)絡(luò)的集成当辐。從容器的發(fā)展來看抖僵,基于CNI的kubernetes網(wǎng)絡(luò)模型接受程度更高。
Physical provider Network:SDN雖然管理的是虛擬網(wǎng)絡(luò)缘揪,但是有些應(yīng)用場景也要求與物理網(wǎng)絡(luò)的連通耍群。
開源只是技術(shù)的開發(fā)手段,與SDN并非強相關(guān)找筝。一些閉源的SDN市場和口碑都不錯蹈垢,例如VMware的NSX。但是從OpenStack的發(fā)展來看呻征,SDN的開源之路似乎是趨勢耘婚。OpenStack通過開源,統(tǒng)一了IaaS層面的標(biāo)準(zhǔn)陆赋,為整個云計算帶來了新的發(fā)展°宓唬現(xiàn)在SDN仍然沒有一個壓到一切的方案,雖然ODL和ONOS背景強大攒岛,但是似乎也并沒有讓其他SDN臣服赖临。開源SDN仍然是一條漫漫長路。
SDN被認(rèn)為是Next generation networking灾锯。傳統(tǒng)的IT兢榨、BFSI(銀行金融服務(wù))、電信等領(lǐng)域顺饮,都在積極探索SDN吵聪。在移動服務(wù)和大數(shù)據(jù)分析場景下,對SDN也有一定的訴求兼雄。根據(jù)Allied Market Research的研究吟逝,在2022年,SDN的市場將達(dá)到1.3億美金赦肋。過段時間專門分析一下這個研究報告块攒。
就像隨著數(shù)據(jù)中心的發(fā)展励稳,Cloud computing也隨著發(fā)展一樣,隨著網(wǎng)絡(luò)技術(shù)的發(fā)展囱井,SDN的發(fā)展只會越來越成熟驹尼,應(yīng)用越來越廣。
本文轉(zhuǎn)載自:https://zhuanlan.zhihu.com/p/26002521