Hybrid端口引发单播泛洪
2015-12-03■
■
某企业要求所有员工间的电脑不能互访,但都可以访问OA服务器。企业成立初期员工不多,于是为每个用户端口划分一个VLAN,将交换机各端口配置为Hybrid模式,实现了每个员工都能访问OA服务器, 但又相互隔离的要求。网络连接示意图如图1所示。
交换机配置如下:
图1 网络拓扑结构
图2 PC2抓包结果
故障现象
网络建成初期运行正常,但随着员工数量不断增加,服务器访问量不断增大,用户反映高峰期访问服务器很慢,甚至出现无法访问的现象。根据用户反馈的问题,首先怀疑网络出现了环路导致风暴,但排查后排除了存在环路的可能,于是在PC2上进行抓包分析(如图2)。
从抓包结果看,PC2收到了服务器发往PC1的单向报文,同样在PC1上抓包也收到了服务器至PC2的单向报文。
查询交换机上的MAC表项(如图3),服务器、PC1及PC2的MAC地址均学习正确,并且根据抓包结果判断服务器至每个用户的单向报文都会转发到其他用户端口,这明显不符合交换机报文转发的原理。
故障分析
我们现在以PC1为例来分析用户访问服务器时的数据转发流程。
1.PC1访问OA服务器,报文进入交换机端口g0/0/1后,交换机查询MAC地址表项,由 于 PC1在 VLAN10,而 服务器在VLAN100中,交换机在VLAN10中没有发现服务器MAC地址(虽然交换机的MAC地址中已经有服务器的MAC地址,但它是在VLAN100中),因此交换机会在VLAN10对报文进行泛洪,因为g0/0/3工作在Hybrid模式且允许VLAN10报文通过,因此g0/0/3端口会收到该报文,并将它转发到OA服务器。
2.OA服务器回复PC1的报文进入交换机的g0/0/3端口,因为OA服务器在VLAN100中,PC1在VLAN10中,交换机的VLAN100中没有PC1的MAC地址表项,因此交换机会在VLAN100对该报文进行泛洪,因g 0/0/2端口允许VLAN100的报文通过,因此PC2会收到该报文,实际上交换机所有用户端口都能收到该报文。PC1和OA服务器完成了一次通信。
3.PC1后续与服务器间的报文同前面一样,服务器回复PC1报文会继续泛洪,因此这就是为什么PC2抓包能看到几乎所有的单播报文。
图3 交换机MAC地址表
4.当用户的业务量大的时候,泛洪到各端口的流量就会叠加起来,假设一个端到端的流量在100M,那么十个这样的互访流量就会将端口流量增大到1G。单播泛洪正是网络变慢的根本原因。
故障解决
根据企业目前业务现状,使用交换Hybrid端口特性已无法满足用户要求。我们可以采取两种方法对交换机进行重新设置。
第一种方法是使用端口隔离。将交换机各端口划分至一个VLAN中,除服务器外的所有用户端口都配置为端口隔离。交换机配置如下:
第二种方法是使用MUX VLAN。将服务器划分至MUX VLAN 100中,将用户划分至从VLAN的Separate VLAN 10中。交换机的配置如下:
经验总结
虽然Hybrid端口特性应用灵活,实现简单,但我们在做网络规划时如果只考虑组网结构、技术实现,而忽视业务流量、数据流向等问题,就会给网络带来安全隐患。