今天,數據中心通過網絡將觸角伸向了世界各個角落,使得人們可以坐在世界任意一個地方,享受互聯網帶來的便利。而在數據中心內部,通過復雜的局域網技術將成千上萬臺設備連接在一起,完成所有設備互聯互通就要靠網絡技術。局域網網絡中,以太網技術使用最廣,基本代表著局域網技術的標準,所以說局域網技術歷史基本就是在講以太網的歷史。以太網技術雖然才發展四十幾年,卻早就成為局域網中的網絡協議標準。數據中心內部的網絡就是一個局域網,即便數據中心步入云計算時代,數據中心實際仍是由很多個處于不同地區的機房組成,在機房內部依然要采用局域網技術。那么,數據中心的網絡協議有哪些特點呢,本文將娓娓道來。
數據中心的設備之間要互通并傳遞數據,就必須要有一套通信標準才行。這就像交通系統,指示燈在什么時候什么位置的燈亮紅燈,燈要亮多久都要設計好,所有的汽車都要遵守,如果汽車都不去遵守這些規則,交通系統就陷入癱瘓。網絡也是這樣,通過設計各種各樣的協議,實現不同設備之間的數據交互。既然要所有設備都遵守,這必然是一個公有的開放協議。翻開網絡協議標準,不難發現其定義了很多協議的報文格式,報文的每個字段都有其特定含義,以便接收和發送的設備能夠理解其中的含義。在這里,不去詳細介紹每種協議的特點和使用,感興趣的直接去查RFC即可得到答案。這里要講一講網絡協議的最大特點,所有協議共性的東西,提煉出來就兩大點:動態和靜態,一個網絡協議要么是動態協議,要么就是靜態協議。
靜態協議,顧名思義是協議不隨網絡波動而變化的協議。最常見的就是靜態路由協議,靜態路由協議是通過手工配置在網絡設備上下發,特性穩定,不會隨網絡變化而變化,不會增加網絡設備開銷,簡單有效,在小型數據中心里應用非常普遍。實際上,靜態協議不僅指路由協議,像靜態ARP、靜態MAC、靜態組播組、靜態RP(Rendezvous Point,組播協議中的匯聚點)等等,在網絡協議中都有太多的可以配置為靜態的東西,雖然使用上并不靈活,但簡單好用,不容易出問題,同時節省網絡設備的CPU 計算資源,要知道很多網絡設備的CPU根本沒法和服務器相比的。在網絡發展初期,這種靜態協議極受歡迎,當需要進行組網時連接到網絡設備上,輸入一堆的靜態配置協議,就完成了。然而,隨著數據中心規模的不斷擴大,這種方法就顯得效率低下了,尤其涉及到網絡擴容或變更,靜態協議的更改就非常費力費時了,稍不注意還會配置錯誤引發網絡故障。排查故障時,靜態協議也帶來了麻煩,根本不知道網絡設備上哪個協議是真正生效的,哪個協議卻已經失效。當看到網絡設備上千行的配置文件,頭都大了,所以動態協議開始走進人們的視線。
動態協議,引入了狀態機的概念,由網絡設備自主完成相關網絡表項的學習,減少大量人工配置,減少操作配置出錯的機會。比如三大動態路由協議OSPF、BGP、RIP,在網絡設備上只要使用相關協議,配置上最簡單的設備標識和需要學習和發布的路由,設備就可以自動完成路由學習,并通過周期性發送一些監測報文,確保網絡正常,一旦發現有變化及時對路由進行調整。這些協議都有自己的狀態機,網絡設備處于不同的狀態的行為是不同的,從而達到自動學習和管理網絡協議的目的。同樣不止是路由,像NTP、DHCP、ARP等等有太多的協議都有自己的狀態機,這些協議都可以動態學習,當監測報文出現異常時,狀態機隨之切換到其它狀態。動態協議將人從繁瑣的網絡配置工作中解放出來,在進行網絡變更和擴容時,只要調整幾個關鍵配置即可完成,整個網絡協議自己進行計算。這樣在出現網絡故障時,恢復起來就很容易,只要調整幾個配置就可以完成,大大縮短故障處理的時間。動態協議在后來的網絡協議標準中占據了很大篇幅,百分之八十的網絡協議現在都有動態方式。不過,動態協議雖然可以省去手工輸入配置的麻煩,卻增加了網絡設備的計算負擔,為了維持各種協議的狀態機正常運行,設備要周期性地接收和發送各種協議的監測報文,以便確認狀態機是否正常,這大大增加了設備運行負擔。再比如OSPF協議,如果在設備上啟用了500個鄰居,就需要在一個發包周期發送500個監測報文,如果周期是1秒,就相當于1秒鐘要處理1000個報文(收和發),這還只是一種協議,并且在正常時發送的頻率,如果有OSPF路由震蕩,這類協議報文數量會大幅增加,很多網絡設備會扛不住這么多報文的收發,設備會癱掉。如果網絡設備上配置的協議類型再多一些,需要處理的報文數目將會更多。所以,要根據每個網絡設備的實際能力,每臺設備都有一些推薦的動態協議數量指標,根據這些指標再去使能一定數量的動態協議,確保設備運行在安全范圍之內。同時要動態和靜態協議結合使用,在一些重要配置,不經常需要改動的地方使用靜態協議,對于那些經常要做變更和擴容的應用,盡量采用動態協議。一般中小型的數據中心采用靜態協議多一些,大型超大型的數據中心采用動態協議多一些。
不管是多么復雜,也不管是多么簡單的數據中心網絡中,靜態協議和動態協議兩者必有其一,更多的時候是兩者共同存在于同一個數據中心網絡中,甚至是同一個網絡設備上,優劣互補,實現靈活的網絡互通。