背景介绍,如上图所示:
1、 SW1、SW2、SW3运行MSTP,SW1为MSTP的根桥;
2、 FW1上策略全开,在FW1上做镜像,将GE1/0/1端口入流量镜像到GE0/0/1端口进行分析;
3、 地址分配如下:SW1与FW1使用三层对接,地址为192.168.1.0/24(交换机为1,防火墙为2),SW2模拟二层交换机,放通SW1与FW1对接使用的VLAN10;SW3与FW1使用192.1682.0/24对接,使用vlan20;
测试及定位过程:
1、 先在SW1及SW3上ping测试FW1防火墙上对接地址,确认三层对接无故障,测试SW1访问SW3无故障;
2、 通过上面测试可以发现设备之间互访没有问题,现在我们在FW1防火墙上配置镜像后,再测试互通性;
3、 通过上面测试可以发现,SW1无法访问FW1防火墙地址,问题应该就在SW2和FW1上面,可以通过在SW2与FW1互连的接口上抓包查看;
4、 可以看到有两台设备发了STP的BPDU,但是防火墙是不支持STP的,那么另一台发送STP的设备是哪台呢?
5、 可以看到在SW2和FW1互连接口收到了SW3发送的BPDU报文,难道是STP导致SW1访问FW1地址不通的?
6、 可以看到是SW2连接FW1防火墙的端口变为discarding状态了,为什么会有这种情况产生呢?就因为防火墙把SW3的BPDU报文镜像过来了?
7、 可以看到,SW2收到SW3发送的 认为自己是根桥的BPDU,但 SW2发现SW1发送的才是最优的(优先级为0),那么他先将自己的端口状态改为discarding,同时向对端发送更优的BPDU,但是却一直无法改变对端状态,所以本地端口状态就一直是discarding,这也是STP防止临时环路的一种方法。
原文地址:http://blog.51cto.com/9480916/2339949
时间: 2024-10-09 06:16:31