SDN(Software Defined Network),NFV(Network Function Virtulizaiton),NV(Network Virtulization),三個網絡名詞是電信界與IT界的熱點詞匯,它們與運營商網絡、云計算,虛擬化密切相關,所以頻繁的在不同領域,不同場合出現,以致于很多人對它們混為一談,在此,就自己前一段的學習與體會,談談所理解的SDN,NFV與NV。
漫談SDN
SDN即軟件定義網絡,開放網絡基金會(ONF)將軟件定義網絡定義為三個特征:
控制平面與轉發平面分離
控制平面集中化
網絡可編程
了解現有網絡的人一看就明白,我們現在的網絡無論運營商骨干網,城域網,接入網,數據中心網絡以及企業的園區網,辦公網,都是非SDN的,即硬件定義的網絡,特點是:
控制部件與轉發部件一體化,形態上體現為廠家專用的、封閉的、控制與轉發平面緊耦合的設備;
控制平面工作方式是分布式的,每臺設備獨立通過二層,三層的協議學習網絡拓撲,形成轉發表與路由表,報文轉發自主決定。
不可編程,網絡的部署通過設備廠家的特有命令行,命令行各家不一,沒有標準。
SDN描繪的理想網絡應該是這樣的:
轉發平面通用化(Openflow的目標),轉發設備的研發,生產,制造不再有門檻,制造商僅需要將通用芯片組裝成設備即可,廠家設備差異化消失。轉發設備受控于控制器,轉發信息由控制器下發。
控制器即Controller,要性能強(控制相當規模的網絡),可部署復雜業務(高級服務),支持高可用。Controller能形成集群組,支持更大規模網絡。
公開的北向接口,應用或云平臺可以通過這個接口調用控制器,實現業務所需的網絡服務。
在這里啰嗦大家熟悉的SDN的定義以及SDN實現的理想網絡,是因為業界對SDN有不同的解讀,有種說法是SDN重在第三項特征可編程,第一,二特征沒這么重要。我的看法是,如果控制不集中,在現有設備商上是可以實現一定程度的可編程,可其帶來的好處是有很大局限的,局限之處在于:
無全局拓撲
配置上下文一致性沒保證
無統一的網絡運行狀態信息
因此,SDN的三個特征是互為補充的,只有這三者之間的有機結合才能真正解決硬件定義網絡的束縛,上層業務才能隨心所欲調用網絡,使其為之服務。
Google的B4以及Facebook最新的數據中心都證明了這一點,其核心建設思想都在強調Controller對網絡的全面掌控。可見,強調滿足一、二特征還是必須的。
談SDN需提及Openflow(盡管它表面上只是一個南向接口協議),因為它們被同時提出并緊密相關,在此,說說我理解的Openflow。
從SDN提出第一天起,以斯坦福大學Nick教授為代表的學術界就一直在致力于轉發平面的通用化,Openflow充分體現了這一設想。但大家都了解,Openflow的進展到目前為止并不順利,原因有三點:一:目前的商業芯片無法有效支持Openflow定義的多字段匹配;二:商業芯片對匹配、動作多級流水線的支持也很有限;第三點倒是與Openflow沒有直接關系,業界各廠家推出的controller+switch方案與現網的互通性過于簡單,不滿足生產要求,使得所建的網絡成為孤島,只能用于特定場合(如研究與測試),并非可以全面推廣的通用方案。
盡管現狀如此,但Openflow實現轉發層面通用化的努力還是有非常大的意義。假設Openflow的標準固定下來,基于Openflow的商業芯片量產,對于網絡界的意義不亞于x86對于服務器行業的意義。
漫談NFV
NFV是ETSI(即歐洲電信標準化協會)旨在通過采用通用硬件及在其上流行的虛擬化技術,來取代目前由電信設備廠商給運營商提供的專用硬件設備,從而降低網絡建設的昂貴成本支出。NFV背后的支持者是電信業界的各大巨頭。
IT業者不大了解電信網絡,以為NFV的目標是拿通用服務器代替數據中心的交換機、路由器等設備。實際上,NFV所涵蓋的范圍要廣泛的多,電信網絡中除了數據網絡外還有固定網絡,移動網絡以及傳輸網絡,涉及的網元類型達百十種之多(電信業內的專家都難準確說出電信網絡究竟有多少種網元),都在NFV所涵蓋的范圍。
既然NFV的目標是通用服務器替代專用電信設備,那就需要了解它們各自的特點。專用電信設備的特點是性能強,可靠性高,有較強的可擴展能力。而通用服務器的長處是計算能力強,標準化,有成熟、開放的虛擬化技術支持。
上面講到電信網絡中的網元類型很多,功能上有側重計算密集型的(以處理信令為主),也有側重轉發性能的。NFV應該發揮通用服務器的強項,目標先鎖定那些計算密集型的網元,之后再隨著CPU處理網絡報文性能的提高,再逐步覆蓋那些側重轉發的網元。
這里以數據通信設備為例,講講NFV可能的發展路徑。數據通信中的常見設備有交換機,路由器,防火墻,深層監測及應用交付設備等。交換機與路由器基本工作在OSI定義的二層到三層,而深層監測與應用交付設備工作在OSI定義的四層到七層。越往上層走,芯片需要處理的報文字段就越多,計算的工作負荷就越大;越往下層,芯片需要處理的字段就越少,計算資源的需求就越小。
拿業界最有代表性的三類芯片CPU,NP(Network Processor)與ASIC(Application Specific Integrated Circuit)作性能分析:NP比CPU快一個數量級,ASCI又比NP快一個數量級。拿最新的數據參考,NFV領先的某公司剛發布了性能測試報告,采用的雙路服務器實現的最大三層轉發性能為80Gbps(注意:該服務器工作在裸設備模式,還沒作虛擬化,虛擬化后必然有一定程度的性能降低),可是,交換機領域量產的單顆芯片的轉發性能已經是1.28T。
所以,NFV如果要大行其道的話,CPU必須在性能方面大大縮短與NP及ASIC之間的差距。
漫談NV
隨著云數據中心里計算虛擬化的趨勢,數據中心中業務快速部署、自動化以及自服務成了必然的需求,這在公有云,大規模私有云里體現的最為明顯。對網絡提出了以下幾個方面新的要求:
云平臺無法操縱現有網絡設備,無法根據應用的要求配置網絡。
多租戶之間要實現隔離。
單租戶的不同應用之間安全性要保障。
虛擬機遷移的要求打破了原有網絡的邊界,配置的網絡策略需要隨動遷移。
上述要求使得現有網絡無所適從,所以NV應運而生。
NV的方法是在現有網絡之上構建了一個疊加(Overlay)的,虛擬的網絡,這個網絡直接支持業務,由云平臺操控。而現有網絡只作為傳輸通道,只在特定情況下支持業務(如需要虛機與物理機之間互通)。
NV的體系架構大致如下:
服務器Hypervisor上安裝轉發部件,接收Controller下發的轉發指令,形成轉發表,轉發數據報文。
Controller控制其下的Hypervisor們,準確的說是控制其上的轉發部件;管理整個虛擬網絡。
Controller提供API接口給云平臺,云平臺部署業務時只跟Controller打交道。
對于東西向流量,由Controller控制下的Hypervisor之間(以下稱虛擬機集群)轉發實現,而南北向流量,需要部署專門的虛擬路由器或物理網絡設備作為虛擬機集群的出口。
南北向流量處理需要多提一點的是,不論專門的虛擬路由器還是物理設備,上面運行的是傳統路由協議,Controller要與其互通,需要支持相同的協議。
疊加網絡是這樣形成的,Hypervisor之間建立隧道,通用的協議是VXLAN或NVGRE(隧道協議后續還有發展,這里不作探討)。虛擬機之間的流量封裝在Hypervisor地址內傳送。物理網絡設備只看到Hypervisor地址,不會看到虛擬機地址。
了解傳統網絡設備的就會意識到,這個架構似曾相識,虛擬機集群像一臺機架式路由器或交換機,Controller就是主控,Hypervisor就是接口卡,每臺虛擬機連接到接口卡上。Hypervisor之間通過VXLAN連接,VXLAN相當于機架式設備的背板或交換引擎(當然VXLAN報文不能跑在空氣中,由物理網絡設備轉發)。這里,Controller負責控制平面,Hypervisor們組成轉發平面。
在此回答NV是如何解決前面提到的計算虛擬化挑戰問題的:
云平臺通過Controller控制虛擬網絡,滿足應用部署要求。
隧道建立時,有隧道標識,VXLAN封裝有VNI字段,24位,1千6百萬個。每個VXLAN就是一個廣播域,VXLAN之間二層隔離。為單個租戶建立獨有的虛擬路由器,租戶VXLAN終結到自己的路由器,自然也實現了三層隔離。
Hypervisor上的轉發部件可以為虛擬機配置ACL實現安全控制,也可以與第三方安全模塊集成,實現更復雜的安全功能。
云平臺在遷移虛擬機時同時調用Controller接口,配置的網絡策略實現隨動遷移。
最后談談SDN,NFV,NV三者之間的關系:
就之前對三者的描述,大家可以了解到,三者間絕不等同,但又互有交集。
SDN, NFV, NV之間的區別:
三者各自提出的背景不同,解決的問題也不同。SDN解決的是加快網絡部署的問題,面向的是整張網。而NFV的訴求是通用服務器對專用網元的替代,針對的是單個的網元。形象的說,SDN關注的是面的問題,NFV關注的是點的問題。有電信界專家稱SDN注重降低OPEX,NFV注重降低CAPEX,不無道理(當然,SDN的推動轉發平面通用化成為現實,CAPEX也會大大降低)。
再講講SDN與NV的區別,相比SDN,NV解決的只是虛擬化數據中心的網絡問題,SDN面向的網絡更廣泛,只要有網絡靈活多變,業務部署復雜,就是SDN的目標所在。NV采用疊加網絡解決虛擬化數據中心的方案只能用在數據中心,沒法用到園區網,運營商城域網,骨干網等其他網絡。所以,NV相比SDN,所針對的只是虛擬機網絡,只適用于數據中心內,面向的網絡范圍要小的多。上一段將SDN與NFV比作面與點的關系,那NV針對的就是整個網絡版圖里的一塊塊小角。
總結一下,SDN,NV,NFV分別對應網絡的面,角,點。
SDN, NFV, NV之間的交集:
NV是虛擬機世界的網絡解決方案,我的理解是它采用了SDN的思想,NFV的方式滿足數據中心云化的特定網絡需求。之前的NV架構中,Controller與Hypervisor轉發部件之間就是控制與轉發分離,控制平面集中化的體現,Controller又有接口供云平臺調用,實現可編程,不是完全符合SDN的三個特征嗎?
在介紹NV時提到的處理南北向流量的虛擬路由器,與物理路由器功能上沒有什么不同,只是運行在物理服務器上的一臺虛擬機,實現了路由器功能,這不就是NFV的實際應用!
SDN與NFV訴求不同,前者面向面,后者面向點,但它們盡管不同,但有關聯,而且關聯關系會隨著這兩項技術的發展會越來越密切。先拋開SDN說NFV,現網中如果拿通用服務器替代專用網絡設備,就是NFV的實現。而網絡中實現SDN可以通過現有的專用設備,只要滿足開篇提到的三特征即可。這么說,好像SDN與NFV無關。那為什么又說SDN與NFV會越來越密切?通用服務器替換專用設備,可能會更便于實現SDN定義的三特征,而且SDN與NFV都是大勢所趨,未來會出現在Controller控制下用通用服務器作為網元形成的網絡,既實現了SDN,又是NFV。如果發展到這一步,SDN與NFV就是完美的融合了。
關于作者:薛保平,曙光信息產業公司網絡架構師,分別在曙光,愛立信,世紀互聯從事網絡架構,網絡設計與設施等工作,在數據通信行業有超過15年的從業經驗。
評論