什 么 是vPC(virtual PortChannel)?从字面上就可以看出,它是一种虚拟化+端口捆绑技术。端口捆绑技术大家都很熟悉了,多个交换机物理端口被捆绑成一个逻辑端口,以提高链路的可用带宽,也可以提供一定程度的网络链路容错能力。
随着10M以太网发展到1000M直至10G网络,人们使用端口捆绑技术更多的是为了获得网络容错功能。在传统的PortChannel技术中,参与捆绑的物理端口必须属于同一物理交换机。这样,PortChannel技术虽然提供了链路容错,却不具备设备容错能力。
以 后,Cisco在3700和6500交换机系列平台上分别推出了堆叠和VSS技术,这两项技术可以将不同的物理交换机虚拟成一台逻辑交换机,在虚拟交换机上配置PortChannel时,成员端口可以从不同的物理交换机上选择,从而在一定程度上解决了设备容错问题。
图1 vPC逻辑结构
然而,堆叠和VSS最大的问题是,它们在两台交换机硬件上运行一套IOS,在某台交换机硬件出现宕机故障时问题不大,但是当IOS控制软件出现问题时,使会得整个虚拟交换机不可用。例如,某种软件原因导致的CPU利用率过高时。而恰恰是此类控制层面的软件故障发生次数居多。
vPC技术的实质,是将两台独立运行的交换机,通过控制层面的相互协作,在二层功能上虚拟出一台逻辑交换机,对外模拟出一台二层交换机的功能(如图1)。但是,在三层功能上,它们仍是两台独立运行的毫无关联的三层设备。与以前传统技术所不同的是,这两台交换机之间的联系相当“松散”,不仅仅是三层功能相互独立,即使在二层功能上,也只是 PortChannel、STP 对 外展现为一台虚拟设备。其他,比如交换机端口,依然是在各自设备上单独管理。
具体来说,vPC究竟能给我们带来哪些好处呢?在传统的数据中心网络设计中,两台聚合层交换机互联后,接入层交换机通常使用两条线分别上连到两台聚合层交换机,这样就形成了一个典型的三角环状回路。为了避免环路引起的广播风暴,通常是运行STP协议防止环路形成,即从控制层面阻断两条上连链路中的一条来破环数据环路。
引入vPC技术后,接入层交换机的两条链路可以配置成为一条逻辑链路,即在聚合层交换机中,可以使用来自两个不同交换机中的端口,聚合成一个逻辑端口。这样,从接入层交换机的角度看,vPC不仅实现了设备容错,两条上联链路也可以同时使用而不必被阻断其中一条,使得可用带宽增加了一倍。
然而,实现这些功能也是需要付出代价的。为了实现上述功能,Cisco不惜改变传统二层交换机的数据转发行为,进而引发了三层数据流的一些问题。这也是造成人们对vPC技术迷惑不解的主要原因。
下面将对vPC技术的组成原理、防环路机制和三层数据流特点进行探讨,以帮助读者尽快熟悉和掌握这一技术。