因STP计算错误导致OSPF无法成功建立邻居故障案例

举报
highwin 发表于 2019/01/27 19:56:11 2019/01/27
【摘要】 本人亲身处理过的一个关于二层生成树STP+三层OSPF协议组网环境下的比较常见的故障处理案例。

一、故障现象

两台服务器ServerA、ServerB采用二层华为交换机S3928接入汇聚层华为交换机S3300。汇聚层交换机与上行核心层三层交换机跑OSPF动态路由协议,两台S3300交换机互连起用OSPF协议,以作网络主备切换。这样交换机S3928与上行S3300组成了一个三角环形的网络拓扑了。

11.jpg

某日接到人员的报障,称无法访问服务器。在个人终端上上Tracert服务器地址,发觉路由只能到达汇聚层交换机S3300。同时,经检查,下挂在汇聚交换机3300下的服务器都是都无法PING通3300-2的接口地址。

二、故障排查及分析

1、第一步:排查物理层原因

经排查,两台互连的交换机3300的OSPF无法建立邻居,OSPF一直都是INIT状态:

[S3300-02]dis ospf peer

 

         OSPF Process 1 with Router ID 192.168.149.13

                 Neighbors

 Area 0.0.0.0 interface 192.168.149.162(Vlanif3994)'s neighbors

 Router ID: 192.168.149.2     Address: 192.168.149.161   GR State: Normal    

   State: Full  Mode:Nbr is  Slave  Priority: 1

   DR: None   BDR: None   MTU: 0   

   Dead timer due in 8   sec

   Neighbor is up for 170:32:40   

   Authentication Sequence: [ 21505794]

 

                 Neighbors

 Area 0.0.0.0 interface 192.168.149.202(Vlanif4000)'s neighbors

 Router ID: 192.168.149.12    Address: 192.168.149.201   GR State: Normal    

   State: Init  Mode:Nbr is  Slave  Priority: 1

   DR: None   BDR: None   MTU: 0   

   Dead timer due in 11  sec

   Neighbor is up for 00:00:00    

   Authentication Sequence: [ 613975]

两台3300互连的VLAN是4000,互连地址为192.168.149.201 ;192.168.149.202.

于是,在3300交换机上互ping对端地址。但还是ping不通对端端口地址。据此,可以初步判断OSPF无法建立的原因为互连端口或物理链接出现问题,所以更换以太网线及互连端口重新连接,并重新配置相同的数据,但问题还是得不到解决。

2、第二步:排查数据链路层原因

在更换两台设备的互连端口及物理链路的情况下,都无法排除故障。在3300交换机上用dis mac-address命令:

[S3300-01]dis mac-add

MAC Address    VLAN/VSI      Port                      Type           Lsp  

-------------------------------------------------------------------------

0025-9e2e-e5d0 3994          GigabitEthernet0/0/4      dynamic        0/0

0080-4218-eaff 1000          Ethernet0/0/1             dynamic        0/0

0080-421c-3c15 1000          Ethernet0/0/1             dynamic        0/0

001e-df03-3b5f 1001          Ethernet0/0/2             dynamic        0/0

000f-e25e-b318 1001          Ethernet0/0/2             dynamic        0/0

001e-df65-62e8 1001          Ethernet0/0/2             dynamic        0/0

0019-c61c-8c25 600           Ethernet0/0/3             dynamic        0/0

0004-23bb-ebd4 600           Ethernet0/0/3             dynamic        0/0

0004-23bb-ebd5 600           Ethernet0/0/3             dynamic        0/0

0023-3ed5-fb34 505           Ethernet0/0/5             dynamic        0/0

0023-3e42-2bea 505           Ethernet0/0/5             dynamic        0/0

0023-3ed5-b788 505           Ethernet0/0/5             dynamic        0/0

Total matching items displayed = 13

上述数据可以看到互连端口所属VLAN4000无法获取相关的相应动态MAC地址,由此可见两台互连3300根本没有OSPF报文数据包传递。

由此可以判断,两台3300交换机无法建立OSPF邻居的原因为,互连端口无数据包发送。

在大量交换网络中,一般造成端口堵塞,无法交换报文数据包的原因多为生成树协商计算错误出现问题,于是查看了两台3300交换机与下行交换的生成树配置及端口状态:

11.jpg

如上图,按照要求,S3300-01是stp的主根,S3300-02是备根,S3900为用户接入。

按照这个组网配置的话,各台设备的端口角色应该如下:

S3300-01:

G0/0/3   Designated Port         FORWARDING

ETH0/0/3  Designated Port       FORWARDING

S3300-02

G0/0/3  Root Port          FORWARDING

ETH0/0/3  Designated Port       FORWARDING

S3900

ETH0/0/47 Root Port          FORWARDING

ETH0/0/48 Alternate Port        DISCARDING

 

但是经核对实际网络状态为:

 

但是现在

S3300-01:

G0/0/3   Designated Port           DISCARDING

S3900

ETH0/0/47 Designated Port        FORWARDING

ETH0/0/48 Designated Port          FORWARDING 

ETH0/0/3  root port         

 

两台互连的3300端口却是DISCARDING,堵塞状态所以,两台交换机无法交换OSPF报文,OSPF邻居无法建立。而且S3900的eth0/0/3绝对不应该是根端口。

那么,现在我们可以把问题归结为:两台3300交换机与下行业务交换机的生成树计算出现错误,导致两台3300交换机互连端口堵塞,无法交换OSPF报文,建立不成邻居!


三、排除故障

在3300下行设备3900上开启标准生成树协议MSTP,并在3900下行所连接的设备端口下关闭生成树协议。令3900只有与3300互连端口起生成树协议。

1、配置3300的下行设备:

[Switch3900]stp enable

[Switch3900] stp mode mstp
[Switch3900]quit

2、开启生成树后,查看两台3300与3900的端口状态为:

S3300-01:

G0/0/3   Designated Port        FORWARDING

ETH0/0/3  Designated Port       FORWARDING

S3300-02

G0/0/3  Root Port               FORWARDING

ETH0/0/3  Designated Port       FORWARDING

S3900

ETH0/0/47 Root Port             FORWARDING

ETH0/0/48 Alternate Port        DISCARDING

3、查看互连端口是否有OSPF报文交换:

[S3300-01]dis mac-add

MAC Address    VLAN/VSI      Port                      Type           Lsp  

---------------------------------------------------------------------------

0025-9e2b-e7c0 4000          GigabitEthernet0/0/3      dynamic        0/0

0025-9e2e-e5d0 3994          GigabitEthernet0/0/4      dynamic        0/0

0080-4218-eaff 1000          Ethernet0/0/1             dynamic        0/0

0080-421c-3c15 1000          Ethernet0/0/1             dynamic        0/0

001e-df03-3b5f 1001          Ethernet0/0/2             dynamic        0/0

000f-e25e-b318 1001          Ethernet0/0/2             dynamic        0/0

001e-df65-62e8 1001          Ethernet0/0/2             dynamic        0/0

0019-c61c-8c25 600           Ethernet0/0/3             dynamic        0/0

0004-23bb-ebd4 600           Ethernet0/0/3             dynamic        0/0

0004-23bb-ebd5 600           Ethernet0/0/3             dynamic        0/0

0023-3ed5-fb34 505           Ethernet0/0/5             dynamic        0/0

0023-3e42-2bea 505           Ethernet0/0/5             dynamic        0/0

0023-3ed5-b788 505           Ethernet0/0/5             dynamic        0/0

Total matching items displayed = 13

4、查看两台3300的OSPF建立状态:

[S3328-01]dis ospf peer

         OSPF Process 1 with Router ID 192.168.149.12

                 Neighbors

 Area 0.0.0.0 interface 192.168.149.106(Vlanif3994)'s neighbors

 Router ID: 192.168.149.1     Address: 192.168.149.105   GR State: Normal    

   State: Full  Mode:Nbr is  Slave  Priority: 1

   DR: None   BDR: None   MTU: 0   

   Dead timer due in 8   sec

   Neighbor is up for 268:21:45   

   Authentication Sequence: [ 21857608]

                 Neighbors

 Area 0.0.0.0 interface 192.168.149.201(Vlanif4000)'s neighbors

 Router ID: 192.168.149.13    Address: 192.168.149.202   GR State: Normal    

   State: Full  Mode:Nbr is  Master  Priority: 1

   DR: None   BDR: None   MTU: 0   

   Dead timer due in 10  sec

   Neighbor is up for 97:47:50    

   Authentication Sequence: [ 966345]

 

至此,33003900之间的stp计算正确。两台3300OSPF邻居建立,网络恢复正常。

四、问题分析及总结

在本例中,由于3300下行设备没有开启标准的MSTP所引起根网桥选举错误造成生成树计算没有成功,造成端口相关端口堵塞。生成树有很多种标准,不同的厂商默认采用协议不同,例如思科采用的是PVST,华为不同系列的交换采用的协议又是不同的。所以,引起不同交换机组网时会出现生成树计算错误的现象,从而影响到网络的正常通信。

运营商内部IP网络是个大型交换网络结构。在这样的交换网络环境下,三层交换机与二层接入交换机之间明显地存在着交换网络中最典型生成树协商问题。存在着不同厂商交换机之间启用不同生成树协议标准的问题;存在着交换机与交换机协商根端口的问题;存在着相同设备之间的MAC地址大小,优先级不一致的问题引起选举根端口的问题;存在着因为生成树影响三层动态路由的问题,就如本次故障中的生成树计算错误造成端口堵塞无法交换报文,导致OSPF无法建立邻居。这些因素都会直接影响到三层交换的稳定性。

所以,在维护大型运营商内部IP网络的时候,一定要搞清楚设备之间的启用的生成树协议,建议采用国际标准的MSTP协议。 MSTP相对于之前的种种生成树协议而言,优势非常明显。MSTP具有VLAN认知能力,可以实现负载均衡,可以实现类似RSTP的端口状态快速切换,可以绑定多个VLAN到一个实例中以降低资源占用率。最难能可贵的是MSTP可以很好地向下兼容STP/RSTP协议。而且,MSTP是IEEE标准协议,推广的阻力相对小得多。

经过此故障,对运营商内部IP网络进行了一次的详细设备配置排查。发现多个安全区域的交换机采用的生成树协议标准都不一致,或者有些交换机没有启用生成树协议。这些的情况是因为安全区域中的没有存在环路的网络结构,所以没有出现问题。但为了防止日后网络扩容造成因生成树的问题而影响网络,现已在运营商内部IP网络所有交换设备上均启用了标准的MSTP生成树协议。

 


【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

举报
请填写举报理由
0/200