PortChannel對于生成樹協(xié)議來說,是單條線路,因此,所有的PortChannel的成員端口,STP狀態(tài)是一致的。觀察典型的vPC接入網(wǎng)絡(luò)結(jié)構(gòu),接入交換機(jī)和兩臺vPC對等交換機(jī)之間,通過vPC和vPC peer link形成了一個三角環(huán)狀回路,并且所有的鏈路都是轉(zhuǎn)發(fā)狀態(tài)。那么,在不阻斷任何一條鏈路的情況下,是如何避免出現(xiàn)環(huán)路的呢?
首先,vPC對等交換機(jī)的轉(zhuǎn)發(fā)原則是盡可能在本地轉(zhuǎn)發(fā),即盡量不讓數(shù)據(jù)幀穿越vPC peer link。
其次,支持vPC的交換機(jī)在硬件層面上實現(xiàn)了一條特殊的轉(zhuǎn)發(fā)原則:對于一臺vPC對等交換機(jī)來說,從vPC peer link接收的數(shù)據(jù)幀,禁止轉(zhuǎn)發(fā)到任一個vPC member port端口,只可以轉(zhuǎn)發(fā)到孤端口或者三層接口,如圖3所示。
需要注意的是,這個轉(zhuǎn)發(fā)原則只適用于vPC VLAN數(shù) 據(jù) 幀,nonvPC VLAN數(shù)據(jù)幀仍然沿用傳統(tǒng)的二層轉(zhuǎn)發(fā)模式。
如何理解這個轉(zhuǎn)發(fā)原則呢?請牢記典型的vPC網(wǎng)絡(luò)結(jié)構(gòu),每一個通過vPC上聯(lián)的接入層交換機(jī),在正常情況下(即所有vPC member port端口都正常工作),到兩臺vPC交換機(jī),一定存在至少一條二層直連的數(shù)據(jù)鏈路。那么對交換機(jī)B來說,所有通過vPC peer link從A轉(zhuǎn)發(fā)過來的數(shù)據(jù)幀(大部分是無轉(zhuǎn)發(fā)MAC的單播、廣播或組播幀),也必定通過vPC member port的直連鏈路轉(zhuǎn)發(fā)到了交換機(jī)SW1和SW2,因此如果交換機(jī)A再次向本地vPC member port轉(zhuǎn)發(fā)這些數(shù)據(jù)幀,邏輯上相當(dāng)于對vPC PortChannel發(fā)送了兩次同樣的數(shù)據(jù)幀,這樣,必將在交換機(jī)SW1和SW2上產(chǎn)生重復(fù)幀。
圖3 vPC的防環(huán)路機(jī)制
圖4 特殊的孤端口
vPC loop avoidance rule states that traffic coming from vPC member port, then crossing vPC peer-link is NOT allowed to egress any vPC member port;however it can egress any other type of port (L3 port, orphan port, …).
即:從vPC member port端口接收的數(shù)據(jù)幀,跨越了vPC peer link后,禁止轉(zhuǎn)發(fā)到任何vPC member port端口,但是,可以轉(zhuǎn)發(fā)到孤端口或者三層接口……
由此可見,這里限定了從vPC member port端口接收的數(shù)據(jù)幀才適用該原則,不過很明顯,從孤端口接收的廣播幀,如果不適用該轉(zhuǎn)發(fā)原則,同樣會有重復(fù)幀問題。
注:Cisco的官方文檔《Best Practices for Virtual Port Channels(vPC) on Cisco Nexus 7000 Series Switches 》中,描述防環(huán)機(jī)制的的原文如下:
vPC防環(huán)路機(jī)制對所有的二層、三層流量都適用,惟一例外的是non-vPC VLAN流量。因此,在設(shè)計網(wǎng)絡(luò)時要十分小心,當(dāng)存在流量不管是什么原因需要跨越vPC peer link,并且流量是屬于vPC VLAN的時候,我們一定要意識到,這些流量不能被轉(zhuǎn)發(fā)到正常工作狀態(tài)下的vPC成員端口,但可以轉(zhuǎn)發(fā)到其他三層或孤端口。
這里存在兩種特殊情況下的孤端口:
一是正常的vPC,假如有兩個成員端口,那么當(dāng)其中一個端口狀態(tài)不可用時,另一個可用端口就由vPC成員端口轉(zhuǎn)變?yōu)楣露丝凇?/p>
二是當(dāng)一臺下聯(lián)交換機(jī)通過正常的兩條鏈路分接兩臺vPC交換機(jī),且接入端口屬于vPC VLAN,同時通過STP協(xié)議其中一條鏈路被阻斷,那么處于轉(zhuǎn)發(fā)狀態(tài)的端口也屬于孤端口。如圖4所示,vPC交換機(jī)A上的兩個端口成為孤端口。