數據中心分解實驗(五)--abricPath

這個實驗有點長,看官慢慢看!

傳說中用來取代生成樹(Spanning-tree)的FabricPath(這個還真不太好翻譯,就簡稱FP吧),到底是啥?先別急,首先回顧一下生成樹協議,作爲二層網絡的防環路機制,生成樹確實有積極的一面,不過缺點也是一大堆啦:

1.    收斂很慢,論秒計的速度;

2.    運算機制也比較複雜,配置管理和維護也相對複雜;

3.    網絡裏有接口被BLOCK,才能形成無環路的樹;

在數據中心網絡裏,這些缺點都會進一步被放大,設想:一臺服務器連接到網絡上,需要若干秒才能開始轉發數據,這個速度太慢了;一個巨大的二層網絡的生成樹維護,想想也是醉了的;花了大價錢買來的10G、40G甚至是100G端口,卻被置於BLOCK狀態,那可真是叔可忍嬸兒也不能忍啊!

小小的吐槽了一下生成樹,當然是爲了顯示出社會主義制度,哦,不對,是FabricPath的巨大優越性:

1.    收斂速度大大加快,FP的底層協議是ISIS,ISIS作爲一個路由協議的收斂速度可以達到毫秒級;

2.    雖然原理並不那麼簡單,不過配置起來那就… 哈哈哈,容我大笑五分鐘;

3.    一個二層網絡,居然不用BLOCK任何端口也不會產生環路,好神奇,對比生成樹,最起碼帶寬的利用率高了不少;

實驗邏輯拓撲:

wKioL1XNvHni4MuVAAQRxmsilEY615.jpg

實驗目標:四臺設備互聯的標記爲綠色的線路上運行FabricPath協議

如果不是運行FabricPath,這樣一個二層網絡如果不BLOCK掉一部分接口,那環路是不可避免的了,接踵而來的就是廣播風暴,最後網絡癱瘓,這裏用了FabricPath,情況就完全不一樣了~

Showtime,實驗開始

第一步,允許設備運行FabricPath

wKiom1XNuoqBaFD9AACK4cy3UIY536.jpg

DefaultVDC裏開啓FabricPath這個特性集,然後到需要運行FP的VDC裏去開啓FP

wKiom1XNusvTUiXWAABzPt7AxLE856.jpg

wKioL1XNvOXxnvddAABvgudIs6M754.jpg

N5K也類似,

wKiom1XNvATAGuT_AACq-84T7fY858.jpg

wKiom1XNvBaDVqgnAACdWItg49g308.jpg

第二步,定義FP模式的VLAN,

wKiom1XNvCzyuy6BAAF6jw7iJjQ096.jpg

可以看出VLAN的模式有兩種CE和FabricPath,關於這個模式是啥意思,最後詳細說明下 (每臺設備上配置VLAN的方式是一樣的,我這裏就只貼一個圖了)

第三步,把互連接口配置成FP模式

wKiom1XNvEjCtQqCAAExxdxVl4A516.jpg

wKioL1XNvtWTtOSxAAFtf_dCCSc093.jpg

wKioL1XNvoqgk8wLAAJv7LsHyKQ297.jpg

wKioL1XNvxTRTHMcAAJzXhP3wbk210.jpg

好吧,事情發展到了這個地步,我必須告訴你們,FP的實驗已經做完了…

wKioL1XNv6OzMwTAAAI0EgT0O2I339.jpgwKiom1XNvbqR-Jy2AAJmtUsVcRM161.jpg

鄰居建立成功,控制層面開始計算,生成FabricPath路由表和MAC地址表之後,數據層面該怎麼轉發就怎麼轉發啦~

FabricPath的基本操作就是這麼簡單,

 

細心的同學可能會問,爲啥兩臺N7K之間的鏈路沒有運行FabricPath呢,這個留個大家去思考一下咯?小提示,結合實驗一里面的“主幹、枝葉”結構去思考~

根據以上實驗,補充一些關於FabricPath的知識點,不關心理論的,請直接忽視啦

wKiom1XNvePz48rRAAPISQVNzQQ052.jpg

傳統生成樹網絡中,Server A要訪問Server B,過程是這樣的:基於數據幀頭部裏的Destination MAC信息,ServerB的MAC地址是MAC B

幀頭部包含的信息

Destination MAC

MACA)

Source MAC

MACB)
… …

DC2-N5K-1交換機上去查CAM表

設備MAC端口
DC2-N5K-1MAC A
E1/15
MAC BE1/21-22

通過E1/21-22轉發給DC2-N7K-3,

於是,逐跳逐跳的,數據幀從DC2-N5K-1 -> DC2-N7K-3 ->DC2-N5K-2 最後到達Server B,是傳統網絡中的二層交換過程。其核心的思路是轉發是逐跳的,每一跳都要根據地址進行表項查找,這種執行效率是比較低下的。

FabricPath原理相對於二層交換,非常類似於MPLS相對於傳統路由的關係,FabricPath在原有數據幀的前面增加了一個新的二層頭部(MAC in MAC),於是網絡的選路不再基於MAC信息,而是基於新頭部中的信息 - - - Switch ID。

FP網絡中每個節點都有一個唯一的Switch ID(類似於路由協議的router-id),協議會分配,也可以手工指定Switch ID,但必須保證唯一性;FP的底層協議是IS-IS,IS-IS根據Switch-ID來做二層路由計算,在二層路由中用到的表項有兩個FabricPath IS-IS路由表、 FabricPath路由表和mac address-table,

FabricPath IS-IS routing table,到任何一個Switch-ID應該從哪個接口轉發,

例如下圖紅框:60是通過Port-Channel200可達,

wKiom1XNv2DSUBQEAAGkLrQUaqA849.jpg

Mac address-table,除了MACVLAN 等信息之外,還有SWID/SSID/LID,例如40/0/210

wKioL1XNwYGBpt2FAALTZSnCT5A981.jpg

SWIDSwitch-ID,FabricPath環境中設備的標識符,必須唯一不衝突
SSIDSubSwitch-ID,沒有vPC+,這個值始終爲0
LID

FabricPath頭部裏的Port-ID,用來標識交換機上的具體接口,

(這個值看起來會很奇怪,不過交換機知道是指的哪個接口啦)

wKioL1XNwjCRJlukAAOnVyD39KA263.jpg

那麼這個時候,Server A 到Server B的訪問是怎麼樣的呢?

首先,數據幀到達DC2-N5K-1之後,會被加上一個新的FabricPath 頭部

wKiom1XNwDzBWUTyAAYmltdNPjg872.jpg

<---           Outer DA           --><---           Outer SA           -->  

Switch IDSub Switch IDPort IDSwitch IDSub Switch IDPort IDFtag......
400430630043061

從進入FabricPath的域開始,設備的路由都是基於Switch ID,所有Switch ID該如何到達,在FabricPath路由表和FabricPath IS-IS路由表裏可以查到。

並且數據包是直接要求發送往具體某個Switch ID上的某個PortID對應的接口的,End-to-End的方式,(非常類似於MPLS的標籤查找,完全區別於基於MAC的逐跳查找)

wKiom1XNwN3BvzojAANS0A3gokU978.jpg

最後我們來看看,FabricPath跟vPC強強聯合的情景吧,這種工作場景被稱之爲vPC+(一般的vPC的二層網絡都是運行Spanning-Tree生成樹協議的)

wKioL1XNwwChzNs3AAM2Ax6GeEM003.jpgwKiom1XNwQrjJSrqAAQc82-wiM4315.jpg

vPC跟FabircPath兩個傢伙,想要一起工作,除了前面實驗四里面演示過的vPC配置和實驗五上半部分介紹過的FabricPath配置之外,vPC的配置要做如下改動

wKioL1XNwyeQjxhjAALRfVl67Zc828.jpg

FabricPath工作在vPC+的環境下只所以有些特殊,原因是:SwitchID跟設備應該是一一對應的,但是vPC的Peer Switch兩臺可以看做是一臺設備在工作,所以,

vPC+的情況下,vPC的PeerSwitch會增加一個虛擬的節點,這個節點有一個虛擬的Switch ID,稱之爲VirtualSwitch ID。

 

接入層Switch通過vPC20發送數據,目的地址不是DC2-N5K-1或DC2-N5K-2的Switch ID,而是這兩臺PeerSwitch虛擬出來的Virtual Switch ID,至於這個流量是從Port7發送還是Port6發送,這個會HASH算法運算之後進行負載均衡。

 

當數據要發往Switch的時候,情形也類似,數據包的目的地址其實是而是這兩臺PeerSwitch虛擬出來的Virtual Switch ID,數據包到底是從DC2-N5K-1還是DC2-N5K-2走?其實是誰都不重要,最終都會從vPC PeerSwitch共同管理的vPC20走,至於最終是哪臺設備來做處理,會用HASH算法計算後做負載均衡。

wKiom1XNwTyAeLSUAAPY5YFDOqo316.jpg

FabricPath IS-IS routing table,會增加一個virtualSwitch ID的條目

Mac address-table,除了MAC、VLAN、老化時間等信息之外,還有SWID/SSID/LID,例如: 70/0/0

wKioL1XNw1uRFw5gAAGZDauIdcs430.jpg

Mac address-table,除了MAC、VLAN、老化時間等信息之外,還有SWID/SSID/LID,例如: 70/0/0

SWIDvPC+環境裏,是vPCdomain裏配置的virutal Switch-ID
SSID

用來標識vPC+下的一個Port-Channel,

可以這麼理解,在vPC+環境中,這個值標識出接口,只不過這個出接口是個virtualPort-Channel
LID無意義

wKioL1XNw7-Sy5GeAAT9RxKLWAc941.jpgwKiom1XNwdfxHi9xAARUEmv0Qls760.jpgwKiom1XNwf6QJDKJAAKn1x67GjQ025.jpgwKiom1XNwgvwRorFAALUuPXSTOc794.jpg

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章