CCNA2.0笔记_STP
STP介绍
STP的主要任务是阻止在第二层网络(网桥或交换机)上产生网络环路(通过将特定的端口选为 Blocking state),来实现无环的拓扑 ;
STP交换机之间使用Trunk连接 ;
Cisco Catalyst交换机默认开启pvst;所有接口默认启用STP.
STP采用生成树算法(STA),它首先创建一个拓扑数据库,然后搜索并破坏掉冗余的链路.
STP协议:
1.CST(公有协议) 不支持单Vlan(stp进程) ;
2.PVST(思科私有协议) 支持64个Vlan实例 ;
3.PVST+(思科增强的私有协议) 支持128个实例,支持扩展系统ID.
STP的操作
STP将一个环形网络生成无环拓扑的步骤:
1.每个广播域选择一个根桥(Root Bridge)
2.每个非根桥上选择一个根端口(Root Ports)
3.每个网段(链路)选择一个指定端口(Designated Ports)
4.阻塞非指定端口(NDP)
*网桥是交换机的前身,由于STP是在网桥基础上开发的,因此现在在交换机中仍然沿用网桥这一术语
1,每个STP域(广播域)内选举一台Root Bridge(根交换机/根桥)
最初广播域中的每台交换机都会认为自己是Root Bridge,并向其他所有交换机发送BPDU(每个BPDU都包含一个BID),所有参与 STP 的交换机互相交换 BPDU 帧,以确定网络中哪台交换机的BID最小。选出Root Bridge之后,只有Root Bridge可以周期性地发送BPDU,所有NRoot Bridge(非根桥)停止发送BPDU. BPDU组播地址:01-80-C2-00-00-00
在根桥上,不会有被阻塞的接口
选择根网桥依据:
BID(桥ID)最小的交换机为根桥(Root Bridge);
*BID:(网桥ID号)
BID是由 桥优先级+网桥mac地址 的组合来决定的;
优先级出厂时都是一样的,都是32768,范围0~65535;但是mac地址必然不同
先比较优先级,优先级小的直接选为根桥
如果优先级相同,则选取MAC地址最小的为根桥
用 show spanning-tree 可以查看优先级
启用系统扩展ID:
(config)#spanning-tree extend system-id
//低端交换机默认开启;高端交换机需要手动开启
//启用扩展系统ID,以支持1024 个MAC 地址
校验是否启用系统扩展ID:
Switch# show spanning-tree summary | include Extended
Extended system ID is enabled.
手工配置vlan10 桥优先级
(config)#spanning-tree vlan priority //只能改为4096的整数倍
手动设置为Vlan10的主根桥
(config)#spanning-tree vlan root primary
手动设置为Vlan10的次根桥
(config)#spanning-tree vlan root secondary
*改变默认优先级是选举根桥的最佳方式
*将优先级设置为0意味着该交换机将始终是根桥
*每个VLAN都可以有不同的根桥,通过改变交换机vlan的默认优先级,以迫使交换机成为STP网络中的根桥
*对于网络中的每个VLAN,如果你想将某台交换机设置为根桥,那么必须改动每个VLAN的优先级
*PVST+可以控制每个Vlan流量的走向,将不同的VLan流量分担到不同路径,既实现了负载均衡,又通过STP避免了环路
选择根桥举例
2,在所有 非根桥 上选举一个唯一的Root Port(根端口)
除了根桥外,其他所有的交换机都是 非根桥(NRoot Bridge);
根端口是指 直连到根桥的链路 所在的端口,或者到根桥的路径最短的端口;
如果有多条链路连接到根桥,就检查每条链路的 端口开销(由链路带宽来决定),开销最低的链路所在的端口就成为根端口;
如果多条链路的开销相同,就使用 (除根桥外)BID最小的那台交换机 上的链路端口作为根端口。
如果多条链路来自同一台设备,就使用 端口号 最小的端口作为根端口。
*端口号:(端口ID)
选择根端口的依据
根路径成本(端口/路径开销)最低
直连网桥的BID最小
直连网桥的端口号(Port ID)最小
选择根端口举例
配置端口开销(Cost)
(config)#interface gigabitethernet 0/4
(config-if)#spanning-tree cost 40
重置端口开销(Cost)
(config)#interface gigabitethernet 0/4
(config-if)#no spanning-tree cost
配置端口优先级(包含在port id中)
(config)# interface gigabitethernet /
(config-if)# spanning-tree port-priority //能被16整除
3,选完 根端口 之后,在 每两台交换机之间 的 每条链路两端 选举一个指定端口(Designated port)
---在那条链路上的端口提供到根桥最大的带宽
在每个 链路 上,选择一个指定端口(有最低开销的端口就是指定端口)
★根桥上的每个端口都是指定端口
RP(根端口)对端一定是DP(指定端口);DP对端可能是RP,也可能是NDP(非指定端口)
第一步,比较链路两端的发送者(出站方向)的Cost of path(路径成本)值,谁小谁就是DP
第二步,比较链路两端的发送者(出站方向)BID,谁小谁就是DP
第三步,(除非交换机自己连自己,否则不采用)比较链路两端的发送者(出站方向)的Port-ID,谁小谁就是DP
*NDP,非指定端口将被置为阻塞状态。
*转发端口(Forwarding port)指能够转发帧的端口。
*阻塞端口(Blocked port)是指不能转发帧的端口,这样做是为了防止产生环路。但被阻塞的端口将始终监听帧。
选择指定端口的依据
根路径成本最低
端口所在交换机的BID值最小
端口号最小
选择指定端口举例
STP端口状态
对于运行STP的网桥或交换机来说,其端口状态会在下列5种状态之间转变:
阻塞(Blocking) 被阻塞的端口将不能转发帧,它只监听BPDU。设置阻塞状态的意图是防止使用有环路的路径。当交换机加电时,默认情况下所有的端口都处于阻塞状态。
侦听(Listening) 端口都侦听BPDU,以确信在传送数据帧之前,在网络上没有环路产生。处在侦听状态的端口,在没有形成MAC地址表时,就准备转发数据帧。
学习(Learning) 交换机端口侦听BPDU,并学习交换式网络中的所有路径。处在学习状态的端口形成了MAC地址表,但不能转发数据帧。转发延迟意味着将端口从侦听状态转换到学习状态所花费的时间,默认时设置为15秒,可以用命令show spanning-tree显示出来。
转发(Forwarding) 在桥接的端口上,处在转发状态的端口发送并接收所有的数据帧。如果在学习状态结束时,端口仍然是指定端口或根端口,它就进入转发状态。
禁用(Disabled) 从管理上讲,处于禁用状态的端口不能参与帧的转发或形成STP。处于禁用状态下,端口实质上是不工作的。
说明:只有在学习状态或转发状态下,交换机才能填写MAC地址表;
被阻塞的端口仍然能接收BPDU,它们只是不能发送任何帧。
STP收敛
当网桥或交换机上的所有端口都转变到转发或阻塞状态时,就产生了收敛;
在收敛完成之前,交换机不能转发任何数据。在重新转发数据之前,所有的设备都必须更新;
交换机开机需要等待30秒时间开始转发数据;
从阻塞状态转变到转发状态通常要花50秒.
端口快速(Port Fast)
跳过STP计算,直接进行转发,通常用于交换机直连(接入层)工作站/PC/服务器(如果连接交换机则会造成环路);
Access口和Trunk口都可以配置PortFast功能;
只能在接入层的交换机上配置此命令,用户是直接连接到接入层交换机的,在核心交换机上,不能配置此命令。
BPDU防护
在开启ProtFast和BPDU防护的接口上,如果检测到该端口连接的是交换机,则该端口会被Shutdown(为了防止环路);
BPDU防护只对配置了PortFast的端口起作用;
某端口配置Portfast和BPDU防护:
(config)#interface fastEthernet 0/1
(config-if)#spanning-tree portfast
(config-if)#spanning-tree bpduguard enable
在全局非Trunk口上启用Portfast,并为所有支持Portfast的端口启用BPDU防护
(config)#spanning-tree portfast
(config)#spanning-tree bpduguard default
相关命令:
手动启用生成树:
(config)#spanning-tree mode pvst
启用某VlanSTP:
(config)#spanning-tree vlan
关闭某Vlan的STP:
(config)#no spanning-tree vlan
端口单独配置Vlan开销(Cost):
(config)#interface gigabitethernet /
(config-if)#spanning-tree vlan cost
查看VlanSTP信息 :
Show spanning-tree vlan
检验端口和路径开销 :
Show spanning-tree active
STP要记住六点:
1.根桥负责维护网络拓扑,根桥的所有端口都是指定端口
2.选择根端口和制定端口的BPDU帧总是从根桥的所有端口向外发
3.选举指定端口,站在链路上比较所有端口发送的BPDU
4.选举根端口,站在桥上比较所有端口接收的BPDU(接收的BPDU+本接收端口线路带宽的cost)
5.交换机接收BPDU时开销值增加,发送BPDU时开销值不变
6.选举过程:选举根桥——>根端口——>指定端口——>其余为阻塞端口
CCNA2.0笔记_STP的更多相关文章
- CCNA2.0笔记_WAN技术-帧中继
帧中继 -使用虚电路进行连接: -提供面向对象的服务 -帧中继 PVC 由 DLCI 标识,PVC 的状态通过 LMI 协议报告 Frame Relay NBMA连接引起的路由协议问题: -水平 ...
- CCNA2.0笔记_WAN技术-专线
WAN拓扑 Routers.CSU/DSU.WAN switches.Core routers.Modems 使用 数据链路层协议(二层) 来建立对端连接 WAN的三种连接方式 广域网链路类型: ·V ...
- CCNA2.0笔记_NAT
NAT:园区网内的PC是私有地址,整个园区网共享一个公有IP,如果园区网内的PC不做NAT,那么在发数据包给外网的时候会出现传输问题 NAT的原理:改变IP包头,使目的地址.源地址或两个地址在包头中被 ...
- CCNA2.0笔记_ACL
要点: 1.按顺序执行,一旦某条语句匹配,后续语句不再处理. 2.默认ACL 结尾语句是deny any,所以你要记住的是在ACL 里至少要有1 条permit 语句. 3.记得创建了ACL 后要把它 ...
- CCNA2.0笔记_OSPF v3
OSPF v3 是可以在ipv6上实现路由的一种路由协议 OSPF v2(for IPv4),OSPF v3(for IPv6)在一台路由器中互相独立运行 OSPF v3与v2有很多类似的功能: - ...
- CCNA2.0笔记_OSPF v2
OSPF(开放最短路径优先)协议概述: - 链路状态路由协议 - 无类路由协议 - 要点:RouterID.区域ID - 触发更新 .以传播 LSA 代替路由表更新 - 快速响应变更(比距离矢量路由协 ...
- CCNA2.0笔记_ipv6的EIGRP
IPv6的eigrp特征: 邻居发现 增量更新 快速收敛 负载均衡 三个表 -邻居表 -拓扑表 -路由表 配置ipv6的eigrp Router(config)#ipv6 unicast-routin ...
- CCNA2.0笔记_EIGRP
EIGRP特征: •高级距离矢量路由协议 •快速收敛——路由条目不过期,拥有备份路由 •负载均衡 •无类路由 -支持 VLSM 和不连续子网,可关闭自动汇总(建议关闭) •占用带宽小 -触发更新(当拓 ...
- CCNA2.0笔记_动态路由
动态路由协议: 向其他路由器传递路由信息 接收(学习)其他路由器的路由信息 根据收到的路由信息计算出到每个目的网络的最优路径,并由此生成并维护路由表 根据网络拓朴变化及时调整路由表,同时向其他路由器宣 ...
随机推荐
- Oracle之数据库安全
密码破解,大部分其实是通过枚举的方式,列出可能的密码,然后逐个尝试,直到找到真正的密码,有时也叫暴力破解.接下来,我们将举几个密码破解的例子. n 密码破解例1--- OrakelCrackert ...
- 流畅的python第七章函数装饰器和闭包学习记录
本章讨论的话题 python如何计算装饰器句法 python如何判断变量是不是局部的(通过函数内部是否给变量赋值过来判断是否是局部变量) 闭包存在的原因和工作原理(闭包是一种函数,它会保留定义函数时存 ...
- vue中引入第三方字体图标库iconfont,及iconfont引入彩色图标
iconfont字体图标使用就不多说了,大致是几部: 1.在iconfont官网选图标,加入购物车,加入项目,下载到本地,解压 2.在项目assets目录新建目录iconfont,用于存放刚才下载解压 ...
- KMP字符串模式匹配详解(zz)
刚看到位兄弟也贴了份KMP算法说明,但本人觉得说的不是很详细,当初我在看这个算法的时候也看的头晕昏昏的,我贴的这份也是网上找的.且听详细分解: KMP字符串模式匹配详解 来自CSDN A_B_ ...
- atitit.提升开发效率---使用server控件生命周期 asp.net 11个阶段 java jsf 的6个阶段比較
atitit.提升开发效率---使用server控件生命周期 asp.net 11个阶段 java jsf 的6个阶段比較 例如以下列举了server控件生命周期所要经历的11个阶段. (1)初始 ...
- Cocos2dx&Lua - UI显示优化之怎样解决解析大量json文件
GUIReader中有个widgetFromJsonFile的方法,此方法是用于解析json文件(cocostudio生成的UI的)并返回该文件的父节点(Widget),然后便于进一步的UI操作(如获 ...
- Java程序的结构
1.由一个或多个独立的类组成: 2.最多一个公有类 3.源代码文件名必须与类名相同 4.类由一个或多个方法组成,其中公有类中的main()方法作为程序的入口. 注:javaSE中一定有main方法. ...
- ionic搜索头部
<div class="item-input-inset bar"> <form action="javascript:;" style=&q ...
- CosmosEngine - Unity3D /2D 轻量级游戏开发框架
CosmosEngine https://github.com/mr-kelly/CosmosEngine 快速入门 简介 特性 约定 整体架构图 使用经验 工作流 未来功能 快速入门 1.将NGUI ...
- Codeforces 385 C Bear and Prime Numbers
题目链接~~> 做题感悟:这题属于想法题,比赛时直接做的 D 题.可是处理坐标处理的头晕眼花的结果到最后也没AC. 解题思路: 由于查询的时候仅仅考虑素数,so~我们仅仅考虑素数就能够,这就须要 ...