下面以圖6所示的網(wǎng)絡(luò)結(jié)構(gòu)為例,說明數(shù)據(jù)幀在vPC環(huán)境中是如何轉(zhuǎn)發(fā)的。
網(wǎng)絡(luò)環(huán)境設(shè)定為兩臺7K組成vPC domain,并通過兩個vPC連接兩臺接入交換機(jī)SW1和SW2,通過孤端口連接交換機(jī)SW3。所有vPC鏈路為trunk鏈路,VLAN10為 vPC VLAN,Host A、B和孤端口均屬于VLAN10。現(xiàn)在假設(shè)Host A ping Host B,實(shí)線箭頭表示請求包路徑,虛線箭頭表示應(yīng)答包路徑(所示路徑只是數(shù)據(jù)包的一種可能路徑)。
1.Host A 構(gòu)造數(shù) 據(jù) 幀, 源MAC為1111.1111.1111.aaaa(下稱 MAC A),目 的 MAC:1111.1111.1111.bbbb(下稱MAC B),并發(fā)送到交換機(jī)SW1。
2.Host A的數(shù)據(jù)包到達(dá)交換機(jī)SW1,SW1不知道MAC B該發(fā)往哪個端口,flooding,在發(fā)送給po10時(shí),假定算法選擇了連接7K1的鏈路。以后 SW1學(xué)習(xí)到了MAC A的地址。
圖6 基本數(shù)據(jù)轉(zhuǎn)發(fā)模式
3.7K1接收到數(shù)據(jù)幀后,同樣flooding,包括peer link。在發(fā)往vpc 11時(shí),遵循本地轉(zhuǎn)發(fā)原則,只能選擇圖中所示路徑。以后7K1學(xué)習(xí)到了MAC A的地址,并知道該MAC來自一個vpc 10成員端口;
4.7K2收到幀后,同樣原因flooding。但因數(shù)據(jù)幀來自peer link,只能發(fā)送到所有的非vPC成員端口,包括孤端口。同時(shí),7K2學(xué)習(xí)到MAC A來自peer link。
5.7K1發(fā)送一個CFS消息,告知7K2,MAC A來自vpc 10的成員端口,7K2修改自己的MAC轉(zhuǎn)發(fā)表。
6.SW2收到數(shù)據(jù)幀,flooding,Host B收到該數(shù)據(jù)包。同時(shí),SW2學(xué)習(xí)到了MAC A地址。
7.Host B構(gòu)造應(yīng)答包,源MAC為MAC B,目的MAC為MAC A,并發(fā)送到交換機(jī)SW2。
8.SW2知道MAC A來自po11,采用均衡算法,假定選擇了圖示路徑。
9.7K2收到數(shù)據(jù)幀,查表得知需要轉(zhuǎn)發(fā)到vpc 10端口,遵循本地轉(zhuǎn)發(fā)原則,按圖示路徑轉(zhuǎn)發(fā)到SW1。
10.SW1將數(shù)據(jù)幀轉(zhuǎn)發(fā)給Host A。
在步驟7~9中,Host B應(yīng)答包經(jīng)過的設(shè)備同樣學(xué)習(xí)到MAC B的地址,這樣,Host A的第二個請求包,就不會再被flooding處理了。
特別注意步驟5,只有CFS發(fā)送消息,vPC交換機(jī)才會知道某個MAC是否來自vPC,才能確定能否本地轉(zhuǎn)發(fā)該數(shù)據(jù)幀。如果說某個MAC來自vPC VLAN的孤端口,則去往該MAC的數(shù)據(jù)幀仍會通過peer link轉(zhuǎn)發(fā)。
一定要記住,vPC中發(fā)往vPC domain的上行數(shù)據(jù)流,根據(jù)普通的PortChannel算法均衡數(shù)據(jù)幀的出端口;下行數(shù)據(jù)流則首先遵守本地轉(zhuǎn)發(fā)原則,如本地有同一vPC的多條成員端口,才會根據(jù)算法均衡確定數(shù)據(jù)幀的具體出端口。