很多事情遲遲沒(méi)有進(jìn)展的原因在于解決思路的錯(cuò)誤,SDN是否就是這樣一個(gè)概念呢?作者認(rèn)為SDN是一個(gè)過(guò)于簡(jiǎn)化設(shè)定的實(shí)現(xiàn),引入網(wǎng)絡(luò)東西向的概念,實(shí)現(xiàn)Network Virtualization才是解決之道。
SDN在這幾年一直是個(gè)熱詞,但冷靜思考一下,似乎業(yè)界并沒(méi)有取得太大的進(jìn)展?;厮莸絊DN產(chǎn)生的契機(jī):數(shù)據(jù)中心虛擬化之后,南北向的數(shù)據(jù)交換或配置走到了傳統(tǒng)網(wǎng)絡(luò)的極限。陳建民(Rick Chen)認(rèn)為SDN所討論的是,如何集中控制平面的設(shè)定到一個(gè)中央處理單元,但對(duì)于轉(zhuǎn)發(fā)的路徑還有物理層上的限制并沒(méi)有針對(duì)性的議題,是一個(gè)過(guò)于簡(jiǎn)化設(shè)定的實(shí)現(xiàn)。他認(rèn)為引入網(wǎng)絡(luò)東西向的概念,實(shí)現(xiàn)Network Virtualization才是解決之道。
以下為原文: 這兩個(gè)月來(lái),不論在公司內(nèi)部還是外部,我都收到一樣類似的老問(wèn)題:SDN和網(wǎng)絡(luò)虛擬化有什么不一樣,你們?yōu)槭裁从镁W(wǎng)絡(luò)虛擬化來(lái)替代SDN? 其實(shí)這是一個(gè)講了很多年的問(wèn)題了,說(shuō)到胡須打結(jié)可能還是說(shuō)不清楚,因?yàn)樵趩?wèn)這個(gè)問(wèn)題的人,他其實(shí)已經(jīng)接收了部分技術(shù)訊息而產(chǎn)生疑惑,所以如果我還用純協(xié)議技術(shù)的角度作為討論的切入,其實(shí)只會(huì)越搞越混亂。
但是我之前還老是想不通用什么更好的方法來(lái)解釋這個(gè)部分,直到有一天看到麻將的東西南北,這才給我了一點(diǎn)啟發(fā)。 現(xiàn)在我們先不講上面那兩個(gè)是什么東西,我們就先討論一下,我們認(rèn)識(shí)20多年的網(wǎng)絡(luò)對(duì)于數(shù)據(jù)交換的路徑是什么型態(tài)?就是我們傳統(tǒng)認(rèn)識(shí)的三層架構(gòu),數(shù)據(jù)從access -> distribution -> core layer做數(shù)據(jù)路徑端到端的交換。 如果你是這樣想,那你完全命中我想問(wèn)的問(wèn)題。
沒(méi)錯(cuò),所以你可以很清楚的了解,今天我們所有的以物理網(wǎng)絡(luò)設(shè)備為基礎(chǔ)的通信路徑都是以南北向?yàn)閿?shù)據(jù)流的方向。 所以L2的通信在跨交換機(jī)的時(shí)后,是南北向透過(guò)ethernet trunking穿過(guò)distrbution layer作為數(shù)據(jù)交換點(diǎn),L3通信在跨subnet的時(shí)候,也是通過(guò)distrbution/core layer作為南北向的數(shù)據(jù)交換點(diǎn),把問(wèn)題在延伸的大一點(diǎn),你的L4的ACL control 也是透過(guò)北向的路由器或是防火墻作為政策過(guò)濾的把關(guān)者,執(zhí)行過(guò)濾之后才回歸到南向去。 所以做出一個(gè)簡(jiǎn)單的總結(jié),你總是需要有什么東西在北向幫你作為數(shù)據(jù)交換/過(guò)濾的點(diǎn),才能完成你的端到端的通信。
作為一般用戶網(wǎng)路存取的架構(gòu),三層式架構(gòu)大概短期也不需要有什么太大的變化。作為數(shù)據(jù)中心內(nèi)部的需求而言,尤其是服務(wù)器虛擬化后的IaaS數(shù)據(jù)中心,這個(gè)問(wèn)題可能就很大了。我別用太復(fù)雜的技術(shù)觀點(diǎn)來(lái)說(shuō)明這其中的問(wèn)題,只提出兩個(gè)問(wèn)題,有實(shí)務(wù)經(jīng)驗(yàn)的人馬上就知道這其中的痛苦。
路徑都是通過(guò)北向作為數(shù)據(jù)交換的點(diǎn),造成多余的配置復(fù)雜和增加數(shù)據(jù)旅行的延遲。 在提供IaaS云服務(wù)的數(shù)據(jù)中心,這架構(gòu)限制的租戶網(wǎng)絡(luò)配置的擴(kuò)展性和之后的一致性。 所以這也是網(wǎng)絡(luò)虛擬化為什么會(huì)在服務(wù)器虛擬化市場(chǎng)成熟后的幾年才被大幅討論,甚至開(kāi)始應(yīng)用起來(lái)。因?yàn)樵谔摂M化后的數(shù)據(jù)中心之內(nèi),南北向的數(shù)據(jù)交換或是配置的確已經(jīng)走到了傳統(tǒng)網(wǎng)絡(luò)配置的極限,越來(lái)越多的營(yíng)運(yùn)問(wèn)題陸續(xù)浮上臺(tái)面,所以才有人開(kāi)始關(guān)注這個(gè)議題。但是網(wǎng)絡(luò)虛擬化對(duì)于南北向的問(wèn)題有什么幫助呢?不就是建立隧道打通物理二層限制,透過(guò)controller實(shí)現(xiàn)SDN的概念嘛?我想網(wǎng)絡(luò)虛擬化和SDN的差別從這里就開(kāi)始有所不同了。
SDN所討論的是,如何集中控制平面的設(shè)定到一個(gè)中央處理單元(Controller),但對(duì)于轉(zhuǎn)發(fā)的路徑還有物理層上的限制并沒(méi)有針對(duì)性的議題,所以我們可以把它想成,這是一個(gè)簡(jiǎn)化設(shè)定的實(shí)現(xiàn),但是如我之前的文章所提及的,他依然在實(shí)際應(yīng)用的規(guī)模上出現(xiàn)的很大的限制。但是網(wǎng)絡(luò)虛擬化也不是隧道這種很膚淺的技術(shù)概念所可以實(shí)現(xiàn)的,或是多加了一個(gè)controller作為策略配置的工具,他所包含的其實(shí)是更多的深層的營(yíng)運(yùn)問(wèn)題需要被解決的技術(shù),這邊我也會(huì)替大家來(lái)解說(shuō)我個(gè)人的想法。
東邊到西邊 這個(gè)部分我過(guò)去沒(méi)有在一般的演講的場(chǎng)合講過(guò)這個(gè)思維,但是隨著越來(lái)越多人詢問(wèn)這方面的問(wèn)題,我想現(xiàn)在因該是最佳的時(shí)機(jī)來(lái)討論這個(gè)概念。網(wǎng)絡(luò)虛擬化另一個(gè)重要的課題就是網(wǎng)絡(luò)功能分散化。過(guò)去網(wǎng)絡(luò)功能都是在南北向被實(shí)現(xiàn),所以造成了上述的兩個(gè)問(wèn)題。但是我們想要相同的結(jié)果,又不要被那些問(wèn)題所困擾,網(wǎng)絡(luò)功能在東西向被實(shí)現(xiàn)成為了一個(gè)契機(jī)。
但是如臺(tái)灣人說(shuō)的,唱的比說(shuō)的好聽(tīng),這種分散式的網(wǎng)絡(luò)處理有這么容易嘛?過(guò)去20年來(lái)這些網(wǎng)絡(luò)大廠為什么沒(méi)有去實(shí)現(xiàn)?我不知道該如何回答這個(gè)問(wèn)題,只能說(shuō)套用老祖宗的經(jīng)驗(yàn)”時(shí)候到了”,沒(méi)有服務(wù)器虛擬化后所造成的網(wǎng)絡(luò)問(wèn)題,這個(gè)東西大概也沒(méi)有機(jī)會(huì)可以誕生。 最早東西向的網(wǎng)絡(luò)概念,就是透過(guò)STT/VxLAN/GRE 所建立的L2 邏輯網(wǎng)絡(luò),或稱為overlay network。在我過(guò)去幾年在這方面的工作經(jīng)驗(yàn),這方式的確解決了部分問(wèn)題,但是對(duì)于產(chǎn)業(yè)或是應(yīng)用環(huán)境上,不是太吸引人。這個(gè)問(wèn)題是整體的,不是片面的。
所以我所屬的公司,在過(guò)去的兩年內(nèi)陸續(xù)開(kāi)發(fā)了分散式的三層路由器,分散式的ACL等網(wǎng)絡(luò)功能分散化,把原本需要在北向被執(zhí)行的功能,全部拉回在本地所屬的hypervisor被執(zhí)行,及透過(guò)隧道的媒介,分散式的運(yùn)算后的結(jié)果可以直接在HV-HV之間發(fā)送,無(wú)需透過(guò)北向作為數(shù)據(jù)交換的點(diǎn),甚至跨 Hypervisor平臺(tái)也可以得到同樣的結(jié)果。分散運(yùn)算后的北向只負(fù)責(zé)提供配置,完全不干涉數(shù)據(jù)的轉(zhuǎn)發(fā)和學(xué)習(xí)。這個(gè)技術(shù)所帶來(lái)的好處就可以更簡(jiǎn)化邏輯網(wǎng)絡(luò)結(jié)構(gòu)上的配置,讓網(wǎng)絡(luò)跟你的大腦的想法更貼近,并且降低南北向數(shù)據(jù)流所帶來(lái)的延遲,管理員不再需要每天在南跟北之間來(lái)回進(jìn)行大腦奔波,最后跟我一樣,需要買特殊眼鏡才能繼續(xù)工作。
所以網(wǎng)絡(luò)虛擬化又被別人稱為下一代的SDN,對(duì)于我來(lái)說(shuō),我還是不想說(shuō)SDN這個(gè)名詞,因?yàn)檫@個(gè)字眼被市場(chǎng)過(guò)度炒作及浮濫,所以當(dāng)別人問(wèn)我在做什么的時(shí)候,我的標(biāo)準(zhǔn)回答都是“Network Virtualization”。 為什么只有Hypervisor的環(huán)境去實(shí)現(xiàn)這個(gè)網(wǎng)絡(luò)虛擬化的議題,物理網(wǎng)絡(luò)為什么不也使用這個(gè)技術(shù)呢? 其實(shí)誰(shuí)要去implement這個(gè)技術(shù)都無(wú)所為,重點(diǎn)在于,業(yè)務(wù)需求在哪里? 如果未來(lái)物理服務(wù)器也會(huì)飛來(lái)飛去的時(shí)候,也會(huì)動(dòng)態(tài)的改變策略的時(shí)候,我相信物理網(wǎng)絡(luò)設(shè)備也會(huì)有這種東西向分散式配置的需求的。
所以當(dāng)下次如果有人在問(wèn)我網(wǎng)絡(luò)虛擬化跟SDN有什么不同的時(shí)候,我認(rèn)識(shí)的人我會(huì)先打他一頓在跟他說(shuō),我不認(rèn)識(shí)的人我會(huì)很有禮貌的請(qǐng)他看看這篇文章。因?yàn)榧夹g(shù)其實(shí)很多時(shí)候是白板筆打架打出來(lái)的,工程師嘴巴爭(zhēng)吵吵出來(lái)的,如此的技術(shù)才有實(shí)戰(zhàn)可用的價(jià)值,沒(méi)有被挑戰(zhàn)過(guò)的技術(shù),也只能是溫室的花朵,一捏就碎。