當前位置:
首頁 > 科技 > 雲計算網路時代,必須掌握的網路基本功

雲計算網路時代,必須掌握的網路基本功

由於工作需要,最近在學習SDN相關知識,首先把網路基礎補習了一下,學習過程中發現一些有用的學習視頻,講解細緻且深入,今天把視頻鏈接分享給大家,網路基礎薄弱的讀者可以學習參閱。

關注「架構師職業圈」微信號收聽最新內容,視頻內容持續更新中...

在數據網路中,如果交換機之間存在環路,泛洪數據幀將在環路中循環交換轉發產生廣播風暴,佔用所有網路資源,以致整個網路沒有資源傳送其他有效數據幀而癱瘓。

環路的由來

二層交換網路的核心問題就是環路問題以及由此產生的廣播風暴問題,如果是一個單設備和單鏈路組成的樹型二層網路,它是沒有任何環路和因環路引起的廣播風暴問題。

但是這種網路的可靠性是非常差,因為它沒有任何的備份設備和備份鏈路,一旦某個設備或者鏈路發生故障,那麼故障點下的所有主機就連不上網路了。

為了提高網路可靠性,通常會採用冗餘設備和冗餘鏈路,這樣就不可避免的形成環路。紅色鏈路構成一個環路,藍色鏈路也構成一個環路,事實上,在相對複雜的二層網路中,物理上的環路幾乎無處不在。

二層網路雖然隔離了衝突域,但是處於同一個廣播域下,廣播數據幀在環路中會反覆持續傳送轉發,而且二層數據幀轉發沒有TTL機制限制,一個數據幀可以無限循環下去就會形成廣播風暴,瞬間即可導致埠阻塞和設備癱瘓。

環路如何解決

為了解決泛洪和廣播風暴問題,二層網路中所採取的技術主要有以下兩方面。

通過劃分VLAN來縮小廣播域

VLAN技術可以把一個大的物理二層域劃分成許多小的邏輯二層域,這種邏輯二層域被稱為VLAN。同一個VLAN內可以進行二層通信,不同VLAN之間是二層隔離的,這樣廣播的範圍就被局限在一個VLAN內,不會擴散到整個物理二層域。

通過破環協議來防止環路

這種方法則是從廣播風暴形成的根本原因入手防止環路出現,將冗餘設備和冗餘鏈路變成備份設備和備份鏈路。即冗餘的設備埠和鏈路在正常情況下被阻塞掉,不參與數據報文的轉發。只有當前轉發的設備、埠、鏈路出現故障,導致網路不通的時候,冗餘的設備埠和鏈路才會被打開,使得網路能夠恢復正常。

實現這些自動控制功能的協議就被稱為破環協議,其中最常用的就是STP(Spanning Tree Protocol,生成樹協議)以及升級版的RSTP和MSTP等,我們統稱為xSTP協議。也有其他一些破環協議,比如SEP、RRPP等等,其本質思想和xSTP協議是一致的。

傳統的數據中心網路架構

傳統的數據中心通常都是二層+三層網路架構,接入層工作在二層、匯聚層向上提供路由能力、向下提供交換能力,核心路由層提供三層路由能力。

這種網路架構是目前非常成熟的架構,相關的二層VLAN+xSTP、三層路由都是成熟的技術,可以很容易的進行部署,也符合數據中心分區分模塊的業務特點。但是,由於VLAN個數限制、xSTP對性能影響等原因,這並不是雲計算業務架構下要求的大二層網路。

雲計算大二層網路

為了滿足雲計算業務彈性要求,大二層網路技術得到了迅速的發展,如VxLAN、Trill、M-Lag、SVF、CSS等技術,今天,我們聚焦討論下Trill技術。

TRILL(Transparent Interconnection of Lots of Links)中文名為多鏈接透明互聯,是一種在二層網路上基於鏈路狀態計算的路由協議,它通過擴展IS-IS協議來實現,使用最短路徑優先演算法進行路由計算。

TRILL Campus :通過運行TRILL 協議構建的二層交換機網路雲。

RB(Router Bridge ):TRILL Campus 里的一台交換機,也可稱其為路由交換機

DRB (Designated Router Bridge ) :廣播網中一種特殊的RB,一個廣播網中只存在一個。DRB負責與網路中每台設備進行通信,並負責發送CSNP實現LSDB的同步。

Nickname:RB的IS-IS ID,用來唯一標識一台RB。

在TRILL中,原來的網橋由Rbridges(路由橋)替換。在Rbridges之間運行鏈路狀態協議(ISIS TRILL),獲得足夠信息來計算單播最優路徑,以及組播生成樹,用於幀的轉發。同時為了減輕臨時環路的問題,Rbridges幀頭中增加躍點計數來避免。

由RB組成的區域稱為TRILL區域,當乙太網幀進入TRILL區域,原始的乙太網幀碰到的第一個RBridge - RB1,它把收到的幀打上一個TRILL頭,並指定最後一個RBridge—RB3,該幀在該RB上解封裝。RB1被稱為「入口RBridge」,RB3稱為「出口RBridge」。

如上圖所示,RB1和 RB2同時互相發送IIH給對方,當各自收到對方的IIH時,都會將對方創建為鄰居,此時的狀態為detect,各自只檢測到鄰居存在,但是還沒有握手成功,然後又互相發送IIH並將各自的mac地址放入在IIH中,當各自再次收到IIH時,解析IIH發現報文中包含自己的MAC地址,於是將各自的鄰居狀態置為2-way。然後只要其中一邊發送MTU探測,各自都會收到都會收到MTU-ack,則MTU協商成功,此時各自的狀態為report,然後周期性發送IIH。

1、鄰居狀態達到Report之後,將通知LSDB組件發布NBR link信息,協商成功的MTU值將作為nbr的一個屬性一起發布在lsp中

2、如果發送了N次(默認3次,可配置)MTU-probe之後沒有收到MTU-ack,則認為MTU協商失敗,如果此前鄰居已經Report,則需要將鄰居狀態置位2-way,同時通知LSDB組件刪除NBR link。

3、介面只要UP,就會周期性的(默認10秒)發送IIH,如果在Holding time(默認30秒)內收不到鄰居發來的IIH,則將鄰居置down,同時通知LSDB組件刪除NBR link。


下面以單播報文轉發說明下報文轉發流程。在入口RB1上,對於從客戶Host-A接收到的已知目的地址單播幀,通過查找本地MAC地址表,確定該MAC在TRILL網路中的出口是RB3。

入口RB1將客戶接收到MAC幀打上TRILL頭,指定TRILL頭中的入口RB(ingress Rbridge)為RB1,出口RB(EgressRbridge)為RB3。

同時查詢nickname列表(TRILL路由表)知道到達RB3的下一跳為RB2,於是將TRILL報文的外層目的地址(Outer.MacDA)設置為RB2的MAC地址,外層源MAC地址(Outer.MacSA)設置為RB1自己的MAC地址。封裝好的TRILL報文經過與RB2相鄰的出介面發送。

中間RBridge轉發TRILL幀式,外層L2報頭在每一跳被替換,攜帶適合於下一跳的L2頭,同時跳計數也遞減,同時保持原始的客戶數據幀以及VLAN標籤不變。RB2作為中間RB,接收到RB1發送的TRILL報文,根據TRILL路由表查找到RB3的下一跳出口,並修改Outer MacDA為RB3的MAC地址,Outer.MacSA為RB2自己的MAC地址,同時將HopCount計數減1,通過與RB3相鄰的介面發送。

當TRILL報文到達出口RB3時,通過檢查TRILL報文中Egress Rbridge欄位,它發現自己就是該TRILL幀目的地,因此將報文解封裝,在本地的二層MAC地址轉發表中查詢原始MAC幀的目的MAC地址的出埠,將解封裝的MAC幀轉發到對應的出埠。這樣客戶數據幀內容保持不變,被轉發到目的網路。在轉發過程中,會逐跳校驗TRILL幀中的TTL欄位,當其為0時會被丟棄,避免臨時環路時出現廣播風暴。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 架構師技術聯盟 的精彩文章:

通俗科普光通信技術
架構師必讀,實用架構的搭建思路

TAG:架構師技術聯盟 |