三层数据流
2017-11-22武孟军
观察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。……
