STP故障02-镜像问题

背景介绍,如上图所示: 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防止临时环路的一种方法。