首页 > 编程知识 正文

stp协议虽然能够解决环路问题,stp协议通过传递配置消息

时间:2023-05-05 06:48:22 阅读:266435 作者:1611

1、什么是Stp技术?

   spanning-tree protocol :生成树协议

@概述

--该协议是公有标准的协议,在任何厂商的设备都支持,称之为 802.1d ;

--该协议是用来解决2层交换网络的环路的(不是路由网络的环路),是一种2层交换技术,只在交换机上运行

@核心作用:

--在交换设备之间提供冗余链路的同时,防止2层交换网络环路的发生。【1.提供冗余链路;2.防止环路发生】

@具体的核心工作任务是:

--在交换机之间的多个链路中间,“任何一个交换机”都选择一个去往“特定”交换机时最短的链路,保持该链路是通的。其他的所有链路都是不通的,

那么,此时就保证了“任何交换机”与“特定”交换机之间的链路,永远只有1个是通的。从而,就没有了环路。

2、为什么要使用Stp技术?用在哪里?

传统的交换网络中,经常存在一种故障:单点故障。

即,网路中通信的两个设备之间只有一个通的线路。如果这个线路断开了,那么设备之间就无法通信了。

所以, 为了解决网络的“单点故障”,我们提出的解决方案是:

-增加备份的冗余线路

-增加备份的冗余设备            

但是,带来的新的问题:容易形成数据转发的环路。

比如: 交换机在接收到终端设备发送过来的广播数据帧的时候,

基于交换机的工作原理,交换机针对广播数据帧而言,是没有办法在自己的 MAC 地址表中查找到对应的转发条目的,所以这种广播帧只能进行在所有端口上转发出去。任何一个交换机都是如此处理,那么这些交换机互相连接起来后,并且每个互联链路都是通的,所以就会出现“广播数据环路”,

这种广播数据越来越多,就会在交换机组成的网络中,形成广播风暴,从而耗尽交换机的资源,可能导致交换机死机/重启,影响公司的正常业务。

   所以,针对上述的“交换网络环路”问题,我们提出的解决方案:  STP (spanning-tree protocol :生成树协议)

3、STP是如何实现防止环路发生的?如何优化?

1>确定交换机的角色

@根交换机,在一个VLAN(冲突域)中,有且只有一个根交换机

@非根交换机,在一个VLAN中,除了根交换价以外,其他所有的交换机都被称之为“非根交换机”

特点:每一个非根交换价,永远在计算去往根交换机最短的那个路径,且保持畅通

@交换机角色的确定原则:

[比较 BID的大小,越小越好 (BID=优先级+MAC地址)] {BID-bridge ID,网桥的名字}

--首先比较交换机的优先级,默认是 32768,越小越好;[长度为2个字节]

--其次比较交换机的MAC地址,越小越好 ;[长度为6个字节]

2>确定端口角色

@根端口, 在非根交换机上,有且只有1个,距离根交换机最近的口 [最终状态:转发]

@指定端口, 在任何一个“冲突域”中(网段),有且只有1个,距离根交换机最近的口  [最终状态:转发]

@非指定端口,除了根端口和指定端口以外,其他接口都叫做非指定端口

在上述的接口定义中,有一个很关键的参数,即“到根交换机”的 “距离”,该参数呢我们在 STP 中 是通过“ cost ” 表示, cost也称之为“开销”。

默认情况下, STP 协议在交换机上启用之后,为每个端口都分配了一个“cost”,接口带宽不同,那么 cost 也就不同:

1000M带宽 --- cost ---- 20000

100 M带宽 --- cost ---- 200000

在确定端口角色的时候,比较的是 BPDU 报文中的以下参数(比较顺序-从上到下,比较原则:越小越好)

-cost , 发送该BPDU的交换机,到达根交换机的距离;

-BID , 发送该BPDU的交换机的名字 - BID (优先级+MAC地址)

-PortID,发送该BPDU的出接口的信息 - 端口ID(优先级+端口号) [端口优先级默认是128]

3>确定端口状态

@disable:禁用

@listening:侦听,该状态下交换机的接口正在尽可能的接收所有的BPDU,从而进行交换机角色和端口角色的确定 (收集BPDU是为了比较BPDU)

@learning:学习,该状态下交换机为了在正式转发数据报之前,提前学习好 MAC 地址表,为后续的“转发”状态做准备。

@forwarding:转发 {最终状态}

@blocking:阻塞   {最终状态}  

4>STP报文

BPDU(bridge protocol data unit : 桥接  协议 数据 单元 )

@配置BPDU,根交换机通过该类型的BPDU用于建立和维护一个无环的数据转发路径;

@拓扑变更BPDU(TCN BPDU),当交换机发现链路的状态变化之后,才会产生该BPDU,用于向根交换机进行汇报(即:该BPDU是用来报错的)

@STP 计时器:

--hello ,根交换机发送 配置BPDU的周期,即多长时间发送一次。默认是 2s ;

--forward-delay,转发延迟,默认的时间是 15s 。

当接口的状态在 listening 状态时候,会停留 15s

当接口的状态在 learning 状态时候,会停留15s

--max age ,最大 存活时间,即 STP 的BPDU在一个接口上的最大存活时间。默认是20s。                                

  在运行 STP 协议的网络中,如果连通的链路出现了故障,那么备份的链路需要:

30s ------- 50s

才可以从 blocking 状态,变为 forwarding 状态,

所以, STP 的最大缺点是:  慢!!!

4>STP的基本命令

display stp -> 查看设备上运行的 STP 的状态信息,比如 STP 的模式以及交换机的BID

display stp brief -> 查看交换机上运行的 STP 的每个接口的角色 和 状态 

display stp interface gi0/0/1  -> 查看 gi0/0/1 接口上的 STP 相关信息,比如 cost

[SW]stp mode {stp/rstp/mstp}  // 修改交换机当前运行的 STP的模式,默认是 MSTP

[SW]stp priority  **  // 修改交换机的 STP 优先级,默认是 32768 。该数值只能是 4096的倍数

[SW]interfae gi0/0/1

[SW-GI0/0/]stp cost *** // 修改接口的 STP cost ,默认是 20000 (前提是 该接口是千兆接口)

 

      

  

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。