APP下载

三层数据流

2017-11-22武孟军

网络安全和信息化 2017年2期
关键词:数据流交换机数据包

观察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。图(c)中不难看出,两个单臂路由有类似问题。

Cisco推荐设计三层网络时,在7K1和7K2之间可以单独连接一条三层专用链路,不要使用peer link传输三层数据包。

实际上,只要避免外接的三层设备,比如防火墙、路由器或三层交换机,通过peer link与vPC交换机形成动态路由邻居关系,就能避免80%的三层问题。

peer gateway

有一些存贮设备,在回包时会改变自己的IP路由行为。比如,应答包的目的MAC地址,会采用原数据包进入时所使用的源MAC地址,而不是通过ARP获取缺省网关的MAC。这种情况在非vPC环境中没有任何问题,但在vPC中,问题出现了。

观察图8,假设服务器B为存贮设备。当主机A访问服务器B时,一切正常,最终经过7K1或7K2将数据包路由VLAN10到VLAN11,然后假定由7K2将数据包转发给了服务器B。注意,7K2转发包时使用的源MAC地址是它自己的物理MAC,这里是2222.2222.2222.2222。那么,当B回包时,它会直接使用这个物理MAC作为回包的MAC,而不是通过ARP去解析缺省网关的MAC。回包在选择vPC路径时,有可能首先到达7K1,而数据帧的目的MAC是7k2,又带来了穿越peer link数据流的老问题。

为解决这类问题,Cisco增加了一个特性peer gateway。通过在vPC交换机启用这个特性,每个本地交换机,当收到的数据帧的目的MAC属于对端交换机,且目的IP不属于对端交换机时,将本地转发该数据包,而不是通过peer link转发给对端交换机。也就是说,只要收到的数据包不是发给对端交换机本身的,即在本地转发该数据包。这个行为类似于HSRP,但HSRP仅仅针对虚拟HSRP组的MAC地址。

那 么, 启 用peer gateway特性能不能解决原来提到的三层路由问题呢?也许可以,但有一点副作用:原来7K1和7K2之间与外接三层设备是二层连接,三者形成路由邻居没任何问题。启用该特性后,这个连接变成了三层连接,因大部分路由协议邻居发现过程中数据包的TTL被设置为1,所以外接设备只能与两个7K之间的一个能形成邻居关系。

猜你喜欢

数据流交换机数据包
二维隐蔽时间信道构建的研究*
汽车维修数据流基础(上)
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
汽车维修数据流基础(下)
基于地铁交换机电源设计思考
SmartSniff
修复损坏的交换机NOS
使用链路聚合进行交换机互联
基于数据流聚类的多目标跟踪算法
北医三院 数据流疏通就诊量