STP学习笔记

Stp基础

  1. 交换环路与广播风暴,解决交换环路的技术汇总

交换机认知:交换机收到任何一个帧,都会认为此主机链接在该接口上,并记录帧中的源mac地址,将接收接口、smac、vlan汇总成cam表项。

出现环路的原因

1、设计网络时有冗余备份。

2、交换机的认知(根本原因)

PCA——SW1—(两根冗余链路)—SW2——PCB

假设AB属于同一个网络,通信之前需要ARP解析B的mac地址,此时A会发送arp报文,SW1会记录主机A的mac地址和接收接口,并拷贝两份泛洪发送,当SW2收到ARP报文会记录主机A的mac地址,同时泛洪给下面的接口和右边链接PCB的接口,此时SW1重新学习到SW2泛洪回来的数据,会重新学习关于主机A的mac地址表项,此时关于SW1会认为主机A链接在右下角的接口上,覆盖掉原来的表项,(此时出现交换环路)SW2右下角的接口接收到流量又会将cam表项翻动,再次拷贝两份泛洪,导致两端的cam表项不停翻动,此时当B回包给主机A时,交换机就会将流量通过左下角的接口发出,此时SW1收到后由于CAM表已经改变,又会将流量从右下角的接口发送给SW2,SW1又会将流量通过左上角 发送回 SW2(实际情况哪个接口并不可控反正到不了主机A)此时数据会来来回回,永无止境的发送下去,直到消耗完交换机的资源为止。(这就是广播风暴)

解决方式:

  1. 不设计冗余(有单点故障,一般不会使用的)
  2. 运行交换的路由协议(需要启用大二层协议,要求高,需要交换机支持大二层)
  3. 堆叠(分为横向堆叠和纵向堆叠,现网中用的特别多)
  4. 运行生成树协议(比较浪费资源,堵塞端口,牺牲了交换机的转发能力)

Spanning tree protocol(生成树协议)

防环原理:

  1. 确定交换机间无环最优路径,阻塞所有冗余次优路径
  2. 实时监控链路状态,一旦拓扑变更,立即重新收敛

IEEE

802.1D stp生成树协议

802.1W rstp快速生成树协议

802.1S mstp 多进程生成树协议

思科的1D和1W叫做PVST和RPVST(基于vlan的生成树协议和基于vlan的快速生成树协议,可以做基于vlan的负载均衡)

华为叫做cst和rcst(通用生成树协议和快速通用生成树协议,相比于思科可以减少资源消耗,但是华为和思科的私有生成树协议是不兼容的,所有其他厂商都是使用cst只有思科使用pvst)

802.1D由于从监听到转发需要经过30S时间,所以当主机插上交换机接口也是需要30S才能进行上网,发现拓扑变更最长需要20s,最短立即发现,重新收敛也需要两倍forwarding time,1W使用分段收敛,从运行到选举完毕到能够转发数据,是可以实现毫秒级收敛的。发现拓扑变更最多只需要6s,从发现到能够转发数据基本上零延迟。1S底层机制是1W的,但是解决了兼容性问题,在混合厂商的网络环境中使用也不会有任何压力。

运行生成树后进行选举

  1. 选举根桥
  2. 在每一台非根桥上选举唯一的根端口
  3. 在交换机间选举唯一的指定端口

前两部可以确定最优路径,第三步选举是为了通过指定端口来转发bpdu报文,通过BPDU实时监听链路状态。(只能在中继链路传递)

BPDU(网桥协议数据单元):三步选举都是通过此报文进行选举的

交换机默认行为:一台交换机没有收到任何的bpdu我就认为自己是根桥,接口没有收到任何的bpdu我就认为自己是指定端口

根桥:网络中优先级最高的交换机,根桥可以通过启用STP的所有接口来周期性的发送bpdu(配置bpdu)还有一种叫做TCN-bpdu(只有在拓扑更新的时候才会发送)周期为2S一次,上来每台交换机都会认为自己是根桥,所以一开始大家会交换bpdu:包含bridge id(BID网桥标识符)一共8字节,前两个字节是优先级(默认为32768,只能4096,4096的改)拿背板mac地址中最小的值来做他的mac地址)所以每台交换机的BID是全球唯一的

Bpdu包含字段

  1. protocol id:描述生成树协议
  2. version:描述生成树版本
  3. massage type:描述bpdu类型(如果是配置bpdu为0,如果是tcn-bpdu就是0x80)
  4. flag:携带一些特殊标记实现特殊功能
  5. route-id:描述根桥的bid
  6. cost of path:(根路径代价)描述一个非根桥的交换机到根桥的度量值是多少(使用带宽来判断)如果一台交换机收到一个bpdu并认为对方是根桥,会根据接收bpdu的接口带宽算出自己的度量值累加再发送给其他非根桥。(控制层面bpdu的接收接口来累加度量值)每传一次都会改变为接收接口的度量值累加。
  7. bridge id:转发者bridge id,描述我的bid,(route-id)不会改变,这个字段会改变,每传一跳都会改变为转发者的bid
  8. prot id:描述接口id,前一个字节是优先级,后一个字节是端口编号(优先级只能16,,16的改。)每传一次都会改变为发送端口的pid
  9. message age:bpdu产生时间(以跳数为计时器,不能超过20,超过20则丢弃)</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值