注:之前做一个项目,测试部使用2个公司的交换机,H3C和H公司的,H公司的交换机是OEM H3C的交换机,正常来说两者使用没有区别。

但是使用中发现,如果设备的多个对外业务网口连接的交换机的聚合网口,启动过程中设备的业务网口尚未配置聚合,此时使用H3C交换机正常,但是使用H公司的交换机就出现网络风暴。

最后确认是因为H公司的交换机没有开启STP协议导致的回环。

交换机 STP 协议 (使用冗余交换机时,防止网络中出现环路造成广播风暴。Active/Standby 模式)

转自 http://sunxuewei.blog.51cto.com/902684/978573

需求

在大型局域网中,为了维护网络的健壮性和可靠性,在核心层会采取多台设备进行冗余备份,而在汇聚层也会采取双归属或者环路来达到负载分担和冗余备份。因此在此类网络中从一点到达另一点可能会有多条路径可达。因而在报文转发时不可避免的会产生广播风暴。 STP的计算将错综复杂的物理网络整合成一棵逻辑转发树,将那些没有必要的链路阻塞。而当某些当前在用的链路发生故障时,又可以快速启用被阻塞的的链路来代替,保证网络的连通性。简单地说,想做冗余又怕环路所以用 STP 解决。

作用:

交换机内的生成树算法(STA)使你可以创建一条备用链路(当网络中存在多台交换机时)。在主链路正常工作时,备用链路处于空闲状态(不工作);只有在主链路出现问题时,备用链路才不需要任何人工干预自动地接替主链路。这种自动重构的功能,使得网络上的用户能够最大限度地与网络保持正常的连接。

STP协议在逻辑上断开网络的环路,防止广播风暴的产生,而一旦正在使用的线路出现故障,逻辑上被断开的线路又被连同,起到了冗余备份的作用。

原理

什么是STP协议?

STP(Spanning Tree Protocol)生成树协议

举例:当网络存在环路的时候,A查找MAC地址,不存在,那么它向B、C广播,B、C也不存在,那么它们也向外广播,这样一来,就会形成双向广播环,广播风暴最终会导致网络资源耗尽,交换机死机。

在这个时候,STP就起到作用了

stp协议是逻辑上断开环路,防止广播风暴的产生 当线路出现故障,断开的接口被激活,恢复通信,起备份线路的作用

STP将一个环形网络生成无环拓朴的步骤: 选择根网桥(Root Bridge) 选择根端口(Root Ports) 选择指定端口(Designated Ports)

网桥ID(BID) 网桥ID是唯一的,交换机之间选择BID值最小的交换机作为网络中的根网桥

取值范围:0 ~ 65535 缺省值:32768

交换机A的BID只最小(000d.2800.b100),所以它将被选为根网桥(root bridge)

下一步选择跟端口,

在非根网桥上选择一个到根网桥最近的端口作为根端口

选择根端口的依据是: 根路径成本最低  直连的网桥ID最小 端口ID最小

根路径成本-是网桥到根网桥的路径上所有链路的成本之和

链路带宽(Mb/s) 路径成本 10                            100 16                             62 45                             39 100                           19 155                           14 622                           6 1000                         4 10000                       2

我们只需要记住3个路径成本就够了(100,19,4)这是比较常用的三个

指定端口

在每个网段上,选择1个指定端口

根桥上的端口全是指定端口

非根桥上的指定端口: 根路径成本最低 端口所在的网桥的ID值较小 端口ID值较小

接下来我做一个经过stp计算,最终形成无环拓扑结构的过程,看图

A很明显是根网桥

图没截好,BC上面的根端口 也已经出来了 (因为与根网桥直连的端口是根端口)

接下来,指定端口的选择

A是根网桥,所以它上面的所有端口都是指定端口

如图所说,B的网桥ID较小,所以B上面的端口为指定端口,

这样,经过stp计算,无环拓扑网络结构就出来了

好了 过程大家看明白了吧,但是有没有想过,交换机怎么知道其他交换机的网桥ID?怎么知道哪个端口的根路径成本最小?

这就涉及到BPDU(桥协议数据单元)

交换机之间使用BPDU来交换STP信息 BPDU Bridge Protocol Data Unit -桥协议数据单元 使用组播发送BPDU,组播地址为: 01-80-c2-00-00-00 BPDU分为2种类型: 配置BPDU - 用于生成树计算 拓朴变更通告(TCN)BPDU - 用于通告网络拓朴的变化

BPDU所包含的关键字

1,交换机启动时,假定自己是根网桥,在向外发送的BPDU中,根网桥ID字段填写自己的网桥ID,

2,当接收到其他交换机发出的BPDU后,比较网桥ID,选择较小的添加到根网桥ID中

3,当全网所有的交换机接收到全部的BPDU并作比较后,就可以选择出唯一的一个根网桥

4,根网桥发送根路径成本为0的BPDU

5,其他交换机接收到根网桥的BPDU后,在根路径成本上添加接收接口的路径成本,然后转发

交换机的5种stp状态

状态                                 用途 转发(Forwarding) 发送和接收用户数据 学习(Learning) 构建网桥表 侦听(Listening) 构建“活动”拓朴 阻塞(Blocking) 只接收BPDU 禁用(Disable) 强制关闭

生成树计时器

交换机开机需要等待30秒时间开始转发数据 当某个正在使用的链路断掉,阻塞的端口需要50秒时间开始转发数据

0--------------20-----------15-----------15

阻断              倾听            学习              转发

OK,比较乱,认真看就明白了

[转载]交换机STP协议的更多相关文章

  1. CISCO交换机STP实验(生成树协议)

    目录 一.前言:生成树协议(STP) 二.CISCO交换机STP命令汇总 三.运用STP搭建简单拓扑 四.实战:STP综合实验 五.结语 一.前言:生成树协议(STP) 计算机网络中,我们为了减少网络 ...

  2. OSI模型第二层数据链路层-STP协议

    1.stp协议的由来. 在二层网络中,交换机起到了很重要的作用,如果有一台交换机出现故障会影响网络的使用,为了避免存在单点故障,在实际的二层链路中会采用链路冗余,也就是采用交换设备之间多条联络连接,即 ...

  3. STP协议

    STP协议的作用: 第一, 可以避免网络环路和广播风暴. 二层数据包是没有TTL(time to live)的,如果不加以限制,可能会无限的传播下去.二层设备间如果存在环路,大量的广播包就可能导致广播 ...

  4. STP协议树配置

    STP协议树作用 为了提高网络可靠性,交换网络中通常会使用冗余链路. 然而,冗余链路会给交换网络带来环路风险 并导致广播风暴以及MAC地址表不稳定等问题进而会影响到用户的通信质量. 生成树协议STP( ...

  5. STP协议与MSTP协议

    STP协议与MSTP协议 目录 一.STP概述 1.1.交换网络环路的产生 1.2.STP简介 二.生成树算法 2.1.生成树算法的步骤 2.2.网桥 ID 2.3.选择根端口 2.4.选择指定端口 ...

  6. 二层协议--STP协议总结

    生成树协议的技术实现与配置注意点 一.stp协议的用途 二.stp协议的运行机制 三.stp协议规范

  7. LLDP协议、STP协议 笔记

    参考: 数据链路层学习之LLDP 生成树协议 LLDP协议.STP协议 笔记 LLDP 提出背景: 随着网络技术的发展,接入网络的设备的种类越来越多,配置越来越复杂,来自不同设备厂商的设备也往往会增加 ...

  8. (转载)RTMP协议中的AMF数据 http://blog.csdn.net/yeyumin89/article/details/7932585

    为梦飞翔   (转载)RTMP协议中的AMF数据 http://blog.csdn.net/yeyumin89/article/details/7932585 这里有一个连接,amf0和amf3的库, ...

  9. 华为交换机STP常用命令

    STP配置和选路规则 stp enable 在交换机上启用STP stp mode stp dis stp 查看stp配置 dis stp brief 查看接口摘要信息 stp priority 40 ...

随机推荐

  1. 使用ConcurrentLinkedQueue惨痛的教训

    服务端原本有个定时任务对一个集合ArrayList 中的消息做处理. 因为考虑到处理消息是先进先出原则,所以优化的时候考虑改用ConcurrentLinkedQueue 当时没仔细深入研究过这个集合就 ...

  2. 一些官方的github地址

    阿里巴巴开源github地址:https://github.com/alibaba 腾讯开源github地址:https://github.com/Tencent 奇虎360github地址:http ...

  3. <<Hadoop基础教程》之初识Hadoop【转】

    Hadoop一直是我想学习的技术,正巧最近项目组要做电子商城,我就开始研究Hadoop,虽然最后鉴定Hadoop不适用我们的项目,但是我会继续研究下去,技多不压身. <Hadoop基础教程> ...

  4. SpringBoot:竟然has no explicit mapping for /error

    异常:This application has no explicit mapping for /error, so you are seeing this as a fallback. 出现这个异常 ...

  5. spring3: 表达式5.2 SpEL基础

    5.1  概述 5.1.1  概述 Spring表达式语言全称为“Spring Expression Language”,缩写为“SpEL”,类似于Struts2x中使用的OGNL表达式语言,能在运行 ...

  6. cenOs7安装redis

    1.安装redis redis 目前没有官方 RPM 安装包,我们需要从源代码编译,而为了要编译就需要安装 Make 和 GCC. 如果没有安装过 GCC 和 Make,那么就使用 yum 安装 -- ...

  7. poj3181 背包+大数

    http://poj.org/problem?id=3181 Dollar Dayz Time Limit: 1000MS   Memory Limit: 65536K Total Submissio ...

  8. 《The Cg Tutorial》阅读笔记——环境贴图 Environment Mapping

    本文为大便一箩筐的原创内容,转载请注明出处,谢谢:http://www.cnblogs.com/dbylk/p/4969956.html 环境贴图 Environment Mapping 一.简介 环 ...

  9. js获取一周的日期范围

    function getWeek() { this.nowTime = new Date(); this.init = function() { this.dayInWeek = this.nowTi ...

  10. ZOJ 3204 Connect them(最小生成树+最小字典序)

    Connect them Time Limit: 1 Second      Memory Limit: 32768 KB You have n computers numbered from 1 t ...