2.3-STP生成树
单点失效(signle point of failure)及其解决方法:
当两个Segement之间只有一条物理连接时就有可能出现单点失效→ 单方面的故障导致全网Down;Segement的三种概念:在STP领域表示一段物理介质(网线/光纤)、在封装领域表示经过L4封装的数据、在路由领域表示被L3设备所分割的逻辑子网;
避免单点失效的方法→构建冗余网络。
冗余网络三大问题:
冗余网络的三大问题都由其核心问题也就是网络环路(打环)引起;
多帧复制(Multiple Frame Copies)→未知MAC地址的数据帧在交换机间不断的复制转发复制转发……直到找到该目标地址并成功构建MAC映射,而这时该目标已经收到了N个同样的数据帧了;
MAC表地址跳动(MAC-Adress Instability)→因为几个接口都能够连接同一个PC因此MAC表中该设备的MAC值匹配的接口不断在几个接口间跳动;
广播风暴(Broadcast Storms)→广播会永无休止的发送下去占用越来越多的资源直到资源耗尽网络堵塞交换机Down机;
解决方法:STP。
生成树协议STP(Spaining Tree Protocol):
STP核心:Provides a loop-redundant network topology,by placing certain in the blocking state(在冗余网络中将特定的端口置于阻塞状态,来实现既没有环路,也可以冗余的网络)。
,k
STP的四大原则(越小越好):
lowest root BID ;
lowest path cost to root bridge ;
lowest sender BID ;
lowest port ID 。
生成树协议STP(Spanning-Tree Protocol)的四大结论:
One root brigde per network →每个交换网络,都有一个唯一的根桥RB(根交换机:Brigde-ID最小的交换机或优先级最小的);
One root port per non-root brigde →每个非根桥,都有一个唯一的根端口RP(根端口:去往根桥开销最小的端口);
One designated port per segement →每条网络介质,都必定有一个唯一的指定端口DP(指定端口,根端口都是转发数据包Forwarding状态的);
Nondesignated ports are unused →没有获得任何标记的端口NDP(指定端口、根端口以外的端口),都被禁用,不转发数据包。
注意:交换机开机时认为自己是根桥!根桥上没有根端口,所有端口(参与了STP运算的所有端口,通常是交换机与交换机相连的端口)都是指定端口。
Brigde-ID:
是8BIT的ID,由优先级(Priority/2Bits)+MAC地址(6Bits)组成,优先级一般默认为0x8000(32768)并且只取整;
优先级取值:0x0000(0)、0x1000(4096)、0x2000()、0x3000()、0x4000()、0x5000()、0x6000(24576)、0x7000(28672)、0x8000(32768)、0x9000(36864)。
各种接口的STP默认开销:
link speed Revised IEEE Spec Cost Previous IEEE Spec Cost
10Gbps 2 1
1Gbps 4 1
100Mbps 19 10
10Mbps 100 100
桥接协议数据单元BPDU(Bridge Protocol Data Unit):
在交换网络中由根桥RB(Root Bridge)发送,用于STP的计算和收敛;发送周期为2秒;
BPDU的作用:选举根桥、确定本地是否形成环路、阻塞特定端口防止环路、监控生成树的状态;
BPDU有两类:TC和TCN;TCA是TC的一种,当拓扑变化时检测到变化的交换机会通过RP向根桥发送TCN;而根桥收到TCN后会发送TCA表示收到,同时发送TC要求该交换机把MAC表的age时间改为15秒以学习新的表:由于TC是RB产生的,所以要更改各个计时器时只能在RB上更改。
端口的不同状态:
堵塞(Block,默认20s):丢弃从该接口收到的正常数据帧;不会在该接口上学习mac-address-table;不会从该接口发送正常数据帧;会从该接口接收对端发送的BPDU;不会从该接口发送BPDU;
监听(Listen,默认15s):丢弃从该接口收到的正常数据帧;不会在该接口上学习mac-address-table;不会从该接口发送正常数据帧;会从该接口接收对端发送的BPDU;会从该接口发送BPDU(根桥RB、根端口RP、指定端口DP等的选举在该阶段完成,如果接口没有成为DP则重新回到Block);
同步(Learning,默认15s):丢弃从该接口收到的正常数据帧;会在该接口上学习mac-address-table;不会从该接口发送正常数据帧;会从该接口接收对端发送的BPDU;会从该接口发送BPDU;
转发(Forward,直到down机→TK里面是15、30s的):从该接口接受正常数据帧;会在该接口上学习mac-address-table;从该接口发送正常数据帧;会从该接口接收对端发送的BPDU;会从该接口发送BPDU。
交换机对BPDU的处理:
如果交换机从一个接口接收到优先级高的BPDU,会把该BPDU保存下来并且该接口不再往外发送BPDU;
在收敛时只有根桥产生BPDU,其余交换机只能从RP接收BPDU后才从DP发送出去;这样非根桥可能从DP或者NDP接受到BPDU;
如果交换机从DP接收到优先级低的BDPU会丢弃,并给源MAC发送自己较新的BPDU;如果从NDP收到优先级低的BPDU会只丢弃了事。
STP下的链路失败类别:
直接失败:Block端口立刻进入Listen状态,收敛时间为30秒;
间接失败:要等待20秒后才能判断端口失败。
----------------------------------------------------------------------------
LAB1:四大结论第一(One root brigde per network):
STEP1:察看交换机的网管IP 所对应的那个MAC地址:
每一个STP交换网络都只有一个根桥RB;引用原则1→Lowest Brigde-ID的那个交换机就是RB;
Brigde-ID由本交换机的优先级(2字节)和网管MAC地址(6字节)组成一共8个字节(网管MAC地址:可以理解为被telnet的那个地址);
用#sh ve查看MAC地址得:Base ethernet MAC address:00:0F:FE:2A:80:F6 ;还有sh cdp nei也能察看到MAC地址;
交换机的STP优先级默认是0x8000(32768);
STEP2:查看STP相关信息(本机BID):
用#sh spanning-tree查看,Root-ID就是本STP网络中根桥的Brigde-ID→根据Root-ID找到根桥;
STEP3:通过优先级控制根桥选举:
根桥:sw1(config)#spanning-tree vlan 1 root primary(默认PRI=24576/0x6000);备份根桥:sw2(config)#spanning-tree vlan 1 root secondary(默认PRI=28672/0x7000);
还可以更改优先级:
通过#spanning-tree vlan 1 priority 4096 。
-------------------------------------------------------

---------------------
LAB2:四大结论第二(One root port per non-root brigde):
STEP1:查看Cost:
每个非根桥NRB都有一个唯一的根端口RP;不是RB的交换机都是NRB;引用原则2→Lowest path cost to root bridge的那个交换机接口就是RP;
用#sh spanning-tree查看,得知当前的RP是9,Cost为19 (当前去往根桥的cost值);
STEP2:控制RP的选举:
用(c-i)#speed 10(单位是Mbps);
可以用#sh in status →sh spanning-tree detail查看;
也可以通过直接调试Cost值来控制:(c)#spanning-tree cost 50 。
----------------------------------------------------------------------------
LAB3:四大结论第三(One designated port per segement):
STEP1:查看Cost:
每一个网段有一个指定端口DP;引用原则3→Lowest sender Brigde-ID;
STEP2:控制DP的选举:
SW1(c)#spanning-tree vlan 1 priority 36864(优先级Prio=0x9000)。
----------------------------------------------------------------------------
LAB4:四大结论第四(Nondesignated ports are unused ):
STEP1:查看Cost:
没有获得任何标记的端口NDP被禁用;引用原则4→Lowest port ID;用#sh spanning-tree in f0/22 detail查看;→断后NDP是SW2的Fa0/7!→BPDU入口不能堵的啊!!!
STEP2:控制NDP的选举:
SW3(c-i)#spanning-tree port-priority 32 (这个值必须是16的整倍数);再查看。
STEP3:SW2与SW1的连接恢复后会怎样?
先堵7后堵8→SW2被堵死了……把SW2改为RB后再恢复呢?
s
----------------------------------------------------------------------------
LAB5:观察STP的转发延时:
STEP1:直链检测错误 (35秒):
PC1 ping sw3的网管IP,shutdown SW3 23口观察:
让SW1成为根桥,即把优先级改为最低(c)#spanning-tree vlan 1 prilrity 0 ;然后PC3 ping PC1的同时shutdown掉SW2的Fa0/23,因为SW2的Fa0/8是阻塞的,所以down之前是从SW2的Fa0/23口发送数据到PC1的;
STEP2:非直链检测错误(50秒):
PC3 ping sw3的网管IP,shutdown SW3 9口观察:
SW1/SW2的链路带宽由原来的100M改为10M后Cost值变为100,而SW1/SW3和SW2/SW3为100M,那么Fa0/23是阻塞的;ping的同时shutdown掉SW2的Fa0/8后观察时间。

- CCNA 之 九 STP生成树协议
STP生成树 在上一次实验中,使用了单臂路由是两个不同的VLAN之间进行通信,而单臂路由的这种网络拓扑,当一条链路或者路由设备出现故障的时候,整个网络就会瘫痪. 称此网络为:不健壮的,无冗余的网络环境 ...
- STP生成树的一些笔记
一.STP概述 1.1.STP简介 交换网络环路主要由广播风暴.多帧复制和MAC地址表紊乱造成. 广播风暴:一个数据帧或包被传输到本地网段 (由广播域定义)上的每个节点就是广播:由于网络拓扑的设计和连 ...
- STP 生成树协议 RSTP 快速生成树
STP(Spanning Tree Protocol)是生成树协议的英文缩写 该协议可应用于在网络中建立树形拓扑,消除网络中的环路,并且可以通过一定的方法实现路径冗余,但不是一定可以实现路径冗余.生成 ...
- STP生成树协议在二层环境中的应用
一 STP简介 1.单词: rstp快速生成树协议 filter过滤 protection保护 2.作用: 通过阻塞特定接口来防止二层交换环路,从而做到既可以提高网络可靠性的同时又能避免环路带来的问题 ...
- STP生成树协议
STP主要作用 1.消除环路:通过阻断冗余链路来消除网络中可能存在的链路 2.链路备份:当活动那个路径发生故障时,激活备份链路,及时恢复网络连通性. 根桥选举 每个交换机启动STP后,都认为自己是根桥 ...
- 交换机基础配置之stp生成树实验
实验的要求是以上面的拓扑图为例,查看当前根桥的所在并把三成交换机switch1指定为根桥 我们可以用show spanning-tree来查看stp的信息 输入后会显示两部分 上面一部分为当前交换机自 ...
- STP生成树理解
1.STP的功能 a. 防止二层环路 b .实现网络冗余备份 2.STP的选择机制 目的: 确定阻塞的端口 STP 交换机的角色: 根交换机,非根交换机 STP的选票: BPDU Ro ...
- 交换机广播风暴,STP生成树协议,端口聚合
交换机(工作在数据链路层)具有学习功能: 一台刚重启的交换机上的mac地址表为空,根据数据包的来源,目的地来学习MAC地址与端口的映射关系映射关系,对于MAC地址表之中已有的就不管了,对未知端 ...
- STP生成树协议原理与算法解析
转:https://wenku.baidu.com/view/2e52b91d866fb84ae45c8d34.html
随机推荐
- skiing 暴力搜索 + 动态规划
我的代码上去就是 直接纯粹的 暴力 . 居然没有超时 200ms 可能数据比较小 一会在优化 #include<stdio.h> #include<string.h ...
- jsp: ServletContext
WEB容器在启动时,它会为每个WEB应用程序都创建一个对应的ServletContext对象,它代表当前web应用. ServletConfig对象中维护了ServletContext对象的引用,开发 ...
- Android生命周期回顾
先回顾生命周期 Activity一共有3中状态 运行中 Activity位于前台,并具有用户焦点 暂停 另一个Activity位于屏幕前台并具有用户焦点,但此Activity仍可见.也就是说,另一个A ...
- Android项目实战_手机安全卫士流量统计
## 1.抽屉控件SlidingDrawer:一定要配置android:handle(把手)和android:content(内容),并在子View中添加把手和内容的布局```java <Sli ...
- C#——工厂模式
之前我们接介绍了简单工厂,这次我们介绍一种更为常用的模式——工厂模式. 工厂方法模式Factory Method,又称多态性工厂模式.在工厂方法模式中,核心的工厂类不再负责所有的产品的创建,而是将具体 ...
- [Windows Server 2012] Filezilla安装方法
★ 欢迎来到[护卫神·V课堂],网站地址:http://v.huweishen.com ★ 护卫神·V课堂 是护卫神旗下专业提供服务器教学视频的网站,每周更新视频. ★ 本节我们将带领大家:FileZ ...
- jsessionid什么时候生成并传递到前端的?
jsessionid什么时候生成并传递到前端的? 如果客户端请求的cookie中不包含JSESSIONID,服务端调用request.getSession()时就会生成并传递给客户端,此次响应 ...
- Java编译器、JVM、解释器
Java虚拟机(JVM)是可运行Java代码的假想计算机.只要根据JVM规格描述将解释器移植到特定的计算机上,就能保证经过编译的任何Java代码能够在该系统上运行.本文首先简要介绍从Java文件的编译 ...
- 2016.01.07 DOM笔记(二) DOM节点
node节点属性 nodeName属性 oneBox= document.getElementsById('box');var s = oneBox.nodeName; //nodeName与tag ...
- 浅谈SOCKS5代理与HTTP代理的应用区别
[1]什么是SOCKS5协议. SOCKS是一种网络传输协议,主要用于客户端与外网服务器之间通讯的中间传递.SOCKS是"Sockets”的缩写. 当防火墙后的客户端要访问外部的服务器时,就 ...