觀察vPC domain二層結構會發現,對于一個vPC VLAN來說,只要vPC的成員端口狀態是正常的,那么兩臺vPC交換機的MAC轉發表是一致的,因此,當只涉及到二層數據轉發時,正常的流量是不會穿越peer link的。只有當某臺vPC交換機上有成員端口狀態為Down時,或存在孤端口時,才會有流量穿越peer link,但這些流量又不違反vPC的防環路機制。因此,對于二層流量,不用擔心數據幀丟失問題。
但是,當涉及到三層,例如vPC交換機上配置了 vPC VLAN 的 SVI,和HSRP同樣的原因,接入層交換機看來,SVI的IP對應的MAC來自PortChannel,均衡算法會導致一部分流量穿越peer link,如果數據包的下一跳IP位于vPC連接的三層設備,毫無疑問會被丟棄。
Cisco的官方文檔給出了一些不支持的vPC三層網絡結構,這里挑選幾個典型的進行分析。分析三層問題時請牢記vPC的防環路機制,以及接入層設備的上行數據流會通過PortChannel均衡算法,在兩條vPC成員鏈路上分配上行流量。

圖7 不支持的三層結構

圖8 特殊設備應答行為
如圖7所示的三種三層結構,與vPC混用都會出現問題。先說(a),R1(可以是三層交換機)通過vPC與兩臺vPC交換機形成動態路由(比如OSPF)鄰居關系。在R1看來,它有兩個等值鄰居,分別是7K1和7K2,無論數據包下一跳選擇哪個路由器,必然會有一部分流量穿越peer link,由此導致這部分流量不能被發送到vPC中。當然,如果數據包的目的主機不在vPC后面,會一切正常。
圖(b),三層設備通過vPC VLAN和STP連接到 vPC domain,STP 會阻斷其中一條鏈路,如虛線所示。在這種情況下運行動態路由協議,同樣會出現問題。在R1看來,在R1看來,它同樣有兩個等值鄰居,分別是7K1和7K2,如果動態路由協議采用負載均衡算法,必然會有一部分流量從7K1穿越peer link到 達 7K2。……