什 么 是vPC(virtual PortChannel)?從字面上就可以看出,它是一種虛擬化+端口捆綁技術(shù)。端口捆綁技術(shù)大家都很熟悉了,多個(gè)交換機(jī)物理端口被捆綁成一個(gè)邏輯端口,以提高鏈路的可用帶寬,也可以提供一定程度的網(wǎng)絡(luò)鏈路容錯(cuò)能力。
隨著10M以太網(wǎng)發(fā)展到1000M直至10G網(wǎng)絡(luò),人們使用端口捆綁技術(shù)更多的是為了獲得網(wǎng)絡(luò)容錯(cuò)功能。在傳統(tǒng)的PortChannel技術(shù)中,參與捆綁的物理端口必須屬于同一物理交換機(jī)。這樣,PortChannel技術(shù)雖然提供了鏈路容錯(cuò),卻不具備設(shè)備容錯(cuò)能力。
以 后,Cisco在3700和6500交換機(jī)系列平臺(tái)上分別推出了堆疊和VSS技術(shù),這兩項(xiàng)技術(shù)可以將不同的物理交換機(jī)虛擬成一臺(tái)邏輯交換機(jī),在虛擬交換機(jī)上配置PortChannel時(shí),成員端口可以從不同的物理交換機(jī)上選擇,從而在一定程度上解決了設(shè)備容錯(cuò)問題。
圖1 vPC邏輯結(jié)構(gòu)
然而,堆疊和VSS最大的問題是,它們在兩臺(tái)交換機(jī)硬件上運(yùn)行一套IOS,在某臺(tái)交換機(jī)硬件出現(xiàn)宕機(jī)故障時(shí)問題不大,但是當(dāng)IOS控制軟件出現(xiàn)問題時(shí),使會(huì)得整個(gè)虛擬交換機(jī)不可用。例如,某種軟件原因?qū)е碌腃PU利用率過高時(shí)。而恰恰是此類控制層面的軟件故障發(fā)生次數(shù)居多。
vPC技術(shù)的實(shí)質(zhì),是將兩臺(tái)獨(dú)立運(yùn)行的交換機(jī),通過控制層面的相互協(xié)作,在二層功能上虛擬出一臺(tái)邏輯交換機(jī),對外模擬出一臺(tái)二層交換機(jī)的功能(如圖1)。但是,在三層功能上,它們?nèi)允莾膳_(tái)獨(dú)立運(yùn)行的毫無關(guān)聯(lián)的三層設(shè)備。與以前傳統(tǒng)技術(shù)所不同的是,這兩臺(tái)交換機(jī)之間的聯(lián)系相當(dāng)“松散”,不僅僅是三層功能相互獨(dú)立,即使在二層功能上,也只是 PortChannel、STP 對 外展現(xiàn)為一臺(tái)虛擬設(shè)備。其他,比如交換機(jī)端口,依然是在各自設(shè)備上單獨(dú)管理。
具體來說,vPC究竟能給我們帶來哪些好處呢?在傳統(tǒng)的數(shù)據(jù)中心網(wǎng)絡(luò)設(shè)計(jì)中,兩臺(tái)聚合層交換機(jī)互聯(lián)后,接入層交換機(jī)通常使用兩條線分別上連到兩臺(tái)聚合層交換機(jī),這樣就形成了一個(gè)典型的三角環(huán)狀回路。為了避免環(huán)路引起的廣播風(fēng)暴,通常是運(yùn)行STP協(xié)議防止環(huán)路形成,即從控制層面阻斷兩條上連鏈路中的一條來破環(huán)數(shù)據(jù)環(huán)路。
引入vPC技術(shù)后,接入層交換機(jī)的兩條鏈路可以配置成為一條邏輯鏈路,即在聚合層交換機(jī)中,可以使用來自兩個(gè)不同交換機(jī)中的端口,聚合成一個(gè)邏輯端口。這樣,從接入層交換機(jī)的角度看,vPC不僅實(shí)現(xiàn)了設(shè)備容錯(cuò),兩條上聯(lián)鏈路也可以同時(shí)使用而不必被阻斷其中一條,使得可用帶寬增加了一倍。
然而,實(shí)現(xiàn)這些功能也是需要付出代價(jià)的。為了實(shí)現(xiàn)上述功能,Cisco不惜改變傳統(tǒng)二層交換機(jī)的數(shù)據(jù)轉(zhuǎn)發(fā)行為,進(jìn)而引發(fā)了三層數(shù)據(jù)流的一些問題。這也是造成人們對vPC技術(shù)迷惑不解的主要原因。
下面將對vPC技術(shù)的組成原理、防環(huán)路機(jī)制和三層數(shù)據(jù)流特點(diǎn)進(jìn)行探討,以幫助讀者盡快熟悉和掌握這一技術(shù)。