STP导致链路中断问题
使用STP协议,为的是解决环路问题,然而在特殊情况下,反而会导致链路被阻断,业务中断。
某日,一用户反应,两台核心之间出现异常现象,直连时不通,但是通过一台交换机中转就通了。
上图中,二层交换机本来是作为核心A的下级交换机,接了大量服务器,网关都在核心A上,核心A与核心B之间为三层连接,互指路由通讯。改造前的结构明显不合理,客户决定将核心直接互联,但是互联后,直连接口无法PING通。线缆,接口配置都已检查过均没有问题。
到达现场,首先依旧从线缆及接口配置检查开始,将笔记本配置为核心A地址与核心B互联,通;反之也通。排除线缆及接口配置问题。
第二步,在核心A上检查ARP表,空白,没有对端的ARP表项。
第三步,接口下无任何针对对端MAC的限制策略,没有IP+MAC绑定
第四步,检查STP状态,发现STP将核心A与核心B的互联口阻断。
直接原因找到,但是从眼前的拓扑结构来说,不应该阻断接口,换一种情况,如果核心A与核心B之间确实还有一条没有找到的线路,那么线路中间串一个二层交换机,为什么就不会阻断接口了,而且业务是正常的,没有出现被环路影响的情况。核心A与核心B之间是三层互联,使用路由通信,本身也就不会有二层环路。
下面再举个例子说明一下
两台交换机两个线互联,两边的G0/0/1口属于vlan10,两边的G0/0/2口属于vlan20,这种情况下是否是环路,如果开启STP会出现什么情况。
从实际效果来说,这不是环路,vlan10和vlan20内的广播报文是不会传到对方vlan内的,这也是划分vlan的主要目的之一。但是开启了STP后,是会阻断一个口的。
这里最关键的一点就是,STP报文与vlan无关,它是协议报文,不论接口下划分什么类型,放行或阻断什么vlan都不会阻碍它的传递。这也就解释了上图的现象。
那么返回最初的问题,接口被阻断的原因知道了,为什么中间串了二层交换机就正常了,其实也狠简单,那台二层交换机没有开启STP协议,收到STP报文后就直接丢弃了,所以核心A与核心B在STP这个层面里感知只有一条线路是互联的。
最后,那条不知道隐藏在哪里的线路依旧没有找到,也许那中间又串了几台交换机。这个故障其实是可以避免的,在进行网络设计及改造的时候,交换机之间在逻辑上应该要保证只有一条线路,可以多口进行捆绑。合理、规范的设计可以为后期的网络运维避免很多的疑难杂症,切记切记。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
supervisor工具实现自动化docker服务运行
Supervisor工具实现自动化docker服务运行 一、使用 Supervisor 来管理进程 Docker 容器在启动的时候开启单个进程,比如,一个 ssh 或者 apache 的 daemon 服务。但我们经常需要在一个机器上开启多个服务,这可以有很多方法,最简单的就是把多个启动命令放到一个启动脚本里面,启动的时候直接启动这个脚本。 例如:docker run –d 镜像 /run.sh 另外就是安装进程管理工具。 本节将使用进程管理工具 supervisor 来管理容器中的多个进程。使用 Supervisor 可以更好的控制、管理、重启我们希望运行的进程。 Supervisor是一个进程控制系统. 它是一个C/S系统(注意: 其提供WEB接口给用户查询和控制), 它允许用户去监控和控制在类UNIX系统的进程。 在这里我们演示一下如何同时使用 ssh 和 apache 服务。 配置 首先创建一个 Dockerfile,内容和各部分的解释如下。 创建一个dockerfile的目录 dockerfile文件内容 supervisor 配置文件内容 第一段 supervsor...
- 下一篇
rhel7如何添加永久静态路由
一:使用route 命令添加 1、使用route 命令添加的路由,机器重启或者网卡重启后路由就失效了 例如: //添加到主机的路由 # route add –host 11.11.1.11 dev eth0 # route add –host 11.11.1.11 gw 11.11.1.1 //添加到网络的路由 # route add –net 11.11.1.11 netmask 255.255.255.0 dev eth0 # route add –net 11.11.1.11 netmask 255.255.255.0 gw 11.11.1.1 # route add –net 11.11.1.0/24 dev eth1 //添加默认网关 # route add default gw 11.11.2.1 //删除路由 # route del –host 11.11.1.11 dev eth0 2、还可以使用ip命令来添加、删除路由 ip route add default via 172.16.10.2 dev eth0 ip route add 172.16.1.0/24...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7安装Docker,走上虚拟化容器引擎之路
- SpringBoot2全家桶,快速入门学习开发网站教程
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Red5直播服务器,属于Java语言的直播服务器
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS关闭SELinux安全模块
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果