生成树协议(STP_第1页
生成树协议(STP_第2页
生成树协议(STP_第3页
生成树协议(STP_第4页
生成树协议(STP_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第四章:网络交换机主要技术本章将具体阐述网络交换机的两个灵魂技术:STP和VLAN。对于现在所有的网络交换机而言,如果没有STP和VLAN这两个技术在里面,那么这个交换机就不能称之为交换机,这样的交换机就等价于HUB,没有任何的可管理性,就属于低档产品了。由于现有的一些交换机技术的国际标准都是源用于网桥,所以本章在阐述中将以网桥来进行描述。4.1生成树协议(STP) 生成树是一个交换网络中检测消除冗余链路以防止出现环的一个协议。如果不运行STP,帧有可能会在网络中循环发送,流量极剧升高,最后使整个网络彻底瘫痪。STP最初是一个较慢的基于软件实现的一个桥接规范(IEEE802.1D),现在已经是

2、一个相当成熟的协议了,可以在一个具有多VLAN、大量交换机、多厂商的复杂环境中很好的实施。在现在的每台交换机上,生成树算法是一个最为基本,也是最为关键的一个技术!在交换机中靠软件实现完成。4.1.1 基本概述生成树算法,最早是1984年由Digital公司Radia Perkman开发的一个协议,是用在桥接技术上的,用它来为某个扩展局域网找出生成无环的树。在Radia Perkman所著的An Algorithm for Distributed Computation of a Spanning Tree in an Extended LAN一书提出了该概念。在1993年的ANSI/IEEE

3、802.1 STD标准中第一次引入正式成为了一个协议。后来在1998年的IEEE 802.1D中完善了该协议。在2000年版的IEEE 802.1-d-D4中又增加了一个基于STP的改进的新协议RSTP(Rapid STP,快速生成树算法),在最近2年内又有了一个新的概念叫做MSTP(Multi STP,多生成算法),同时相应的标准草案为IEEE 802.1S。生成树的基本思想:把形成环路的一些端口屏蔽掉,不进行转发帧。首先,选择具有最小标时的网桥作为生产树的根(Root)。根网桥总能在它所有端口上转发分组。接着,每个网桥计算到根的最短路径并记下路径经过它的那些端口。这个端口也被选作网桥到根的

4、优先路径,叫做根端口(Root Port)。然后,所有连接到给定的局域网中的网桥选出一个负责向根网桥转发帧的指派网桥(Designated Bridge)。这样就选择出了一条到根网桥的路径,如果存在2条以上的路径则其中一条必将被算法规定为冻结状态。从而,使这个网络看起来就像是一颗树,只有分支而没有回路。下图4-1的右图就是左图实现生成树算法后的一个拓扑结构简图。 图4-1要实现STP算法,对于交换机或网桥需要提供以下的参数:1, 唯一的网桥标时(Bridge ID),是由网桥的优先级(Bridge Priority)和MAC地址一起组成的,主要用来的在桥接网络中表明自己,选根网桥和指定网桥时可

5、用。网桥标时(Bridge ID):8 Bytes网桥优先级(Priority)MAC 地址 16 Bit48 Bit2, 网桥端口标时(Port ID),是由网桥端口的优先级 (Port Priority)和端口号一起组成的,用来唯一地表明各个网桥端口,选择指定端口和根端口时可用。网桥端口标时(Port ID): 2 Bytes端口的优先级 (Priority)端口号(Number)8 Bit8 Bit3, 网段的花费(Path Cost),是指各个网段的路径花费 以上这些参数是可以管理和进行相关配置的。4.1.2 花费(Cost)STP的算法最根本都是基于一个网段的花费,也可以理解为开销,

6、不管是在选择和固定拓扑结构还是在拓扑发生变化需重新恢复的时候,都是依靠花费来决定的。在STP中花费的定义,有以下三种:根路径花费(Root Path Cost):是指到根网桥的路径开销,由STP计算可得。指定路径花费(Designated Path Cost):是指某个网段所在指定网桥到根的开销。路径花费(Path Cost):是指与某个端口相连接时所所需要的开销,一般由链路状态所决定。一般对于某个特定的网桥,该网桥的根路径花费=指定路径花费+路径花费.花费的计算在IEEE 801.D的标准中有如下规定,见图表4-2:端口速度(Port Speed)链路类型(Link Speed)花费(Cos

7、t)10M半双工100全双工95100M半双工19全双工181G全双工410G全双工2图表4-24.1.3 根网桥(Root Bridge)所谓的根网桥,就是生成树中的根,所有其他的网桥都要以它为核心和源头,一般都是由网络中网桥标时最小的网桥作为根。算法选择根网桥的时候,首先比较的是网桥标时里的优先级,选优先级最小的作为根;如果当两个网桥的优先级相同的时候,会选择MAC地址小的那个作为根。法则: Min(Pr1, Pr2,PrN)|(Pr1=Pr2=PrN) & Min(Mac1, Mac2,MacN)注:Pr:Priority; Mac:MAC ADDRESS4.1.4 根端口(Root P

8、ort)所谓的根端口,并不是指在根网桥上的端口,而是在某个LAN中,到达根网桥的花费最少的那个端口,也就是说与离根网桥直接相连或是离根最近的那个端口。算法选择根端口的时候,首先选择的是该端口到根网桥花费最少的那个口;当有两个或两个以上的端口到根网桥的花费一样的时候,接着比较指定网桥的网桥标时(Bridge ID),选择与该端口相连的指定网桥标时小的那个口作为根端口;如果指定网桥标时也一样,就会选择与该端口相连的指定端口标时(Designated Port ID)较小的那个口;如果指定端口标时也相同的时候,就会最后比较该端口的(Port ID),选择端口标时小的那个。法则:Min(RPC1,RP

9、C2,RPCN)| (RPC1=RPC2=RPCN)&Min(DB1,DB2,DBN)| (RPC1=RPC2=RPCN)&(DB1=DB2=DBN)&Min(DP1,DP2,DPN)| (RPC1=RPC2=RPCN)&(DB1=DB2=DBN)&(DP1=DP2=DPN)&Min(PD1,PD2,PDN)注:RPC:Root Path Cost DB:Designated Bridge; DP:Designated Port PD:Port ID 4.1.5 指定网桥(Designated Bridge)所谓的指定网桥,就是在生成树中某个LAN中指定端口所属于的那个网桥,用来进行转发BPD

10、U,也就是说在该LAN中,一般只有该网桥离根网桥最近。4.1.6 指定端口(Designated Port) 所谓的指定端口,就是在生成树中某个LAN中指定转发BPDU(Bridge Protocol Data Unit)的端口。一般和另一个网桥的根端口相连接或直接与Host或Pc station相连接。4.1.7冻结端口(Blocked Port) 所谓的冻结端口,就是必定在生成树中形成环路的端口中产生,它是由STP算法计算而得到的。被屏蔽或者说冻结的端口,就不再属于网络活动拓扑结构中,不能进行任何的网络通信,也就是不进行转发帧。4.1.8BPDU所谓BPDU(Bridge Protocol

11、 Data Unit),就是网桥用来相互传递STP协议的信息以及各类参数值,可以相互了解对方的拓扑角色并而决定自己在拓扑中的 角色和状态。一共由35Bytes组成,具体格式见图4-3:图4-3 STP BPDUProtocol ID:就是协议标时,默认为0,1B。Protocol Version Idenfitier:协议版本标时,默认为0,1B。BPDU Type:该BPDU的类型,0x00为配置BPDU;0x80为TCN BPDU,拓扑变化通知信息。拓扑变化回应拓扑变化Topology Flags:拓扑标志位,1B。Root ID:根网桥的标时,8B。(Root priority: Roo

12、t MAC)Root Path Cost:到根网桥的花费,4B。如果是根发出的BPDU,则该值为0。Designated Bridge ID:指定网桥的标时,8B。如果是根发出的,则该值等于Root ID。Port Id:就是发该BPDU的端口号,一般就是网桥的指定端口。Message Age:消息时间,用来记录该BPDU的生存期,如果该值超过Max Age,则该BPDU就算过期无效了,将被网桥丢弃。Max Age:该值可以保证BPDU的有效性,该值只能由根的Max Age来决定。Hello Time:发BPDU的间隔时间,该值由根的Hello Time来决定。Forward Delay:端口

13、进入转发状态延时时间,该值也由根Forward Delay来决定。注:2*(Forward Delay-1)=Max Age=2*(Hello Time+1)4.1.9 端口状态(Port State) 端口状态的引入,也是生成树的一个重要组成,它保证了在网络拓扑结构形成之前,没有环路,并给生成树的形成提供了足够的时间。一共有五个状态:冻结状态(Blocking),监听状态(Listening),学习状态(Learning),转发状态(Forwarding),无效状态(Disabled)。冻结状态(Blocking): 当一个端口进入这个状态之后,就不再进行帧的转发,从而可避免环路的形成,避免

14、帧的重复转发与过多复制。在这个状态下的端口不能转发任何的数据帧,不论是广播,多播,还是单播,也不能发送BPDU;同时也不能进行地址的学习,也就是说当这个口收到数据帧的时候,它不经任何处理就丢弃,除了BPDU之外。它能够收BPDU,也通过收到BPDU来确定自己属于环路的冻结状态,一旦该端口在一定时间(这个时间一般为Max Age)内收不到任何BPDU或者收到的BPDU所携带的信息比自己存在的BPDU还要差,例如Root没自己的好,那么这个端口将进入Listening状态,并开始发送相关的BDPU。这样就保证了当网络拓扑结构发生变化或原先的某条链路发生故障的时候,那么这条冗余的链路便可重新活跃了。

15、监听状态(Listening)当一个端口进入该状态的时候就期待着进入转发状态,也就是进入转发之前的准备,一般是由Blocking状态转入。在这个状态下的端口不能转发任何的数据帧,不论是广播,多播,还是单播,也不能进行地址的学习,但开始发送BPDU,从而来确定自己在STP中的角色;在经历一定时间(一般为Forward Delay)之后,如果没有收到比自己发送的更好的BPDU,那么该端口将进入Learning状态。但如果一旦在该状态下受到比自己所发送的更好的BPDU(例如比自己到根花费更少的BPDU),则该端口将立即进入Blocking状态。学习状态(Learning)当一个端口进入该状态的时候就

16、期待着进入转发状态,也就是进入转发之前的准备,一般都是由Listening状态转入。在这个状态下的端口不能转发任何的数据帧,不论是广播,多播,还是单播,但能够进行地址的学习,也就是说对于收到的数据帧不再只是简单的丢弃,而是把MAC地址添加到地址表里之后再丢弃该帧。进入该状态后,该端口下可以收发BPDU(Root Port 只收BPDU, Designated Port只发BPDU),从而来巩固自己在STP中的角色。在经历一定时间(一般为Forward Delay)之后,如果没有收到比自己发送的更好的BPDU,那么该端口将进入Forwarding状态。但如果一旦在该状态下受到比自己所发送的更好的

17、BPDU(例如比自己根更好的BPDU或者是到达根的花费比自己少),则该端口将立即进入Blocking状态。转发状态(Forwarding)当一个端口进入该状态的时候就可算STP已经完成到了其最后的结果,就是网络开始进入正常的通信方式了。在这个状态下的端口能转发任何的数据帧,不论是广播,多播,还是单播,也能够进行地址的学习,就是说对于收到的数据帧不再丢弃,而是把MAC地址添加到地址表里之后转发该帧。进入该状态后,该端口下可以收发BPDU(Root Port 只收BPDU, Designated Port只发BPDU),从而来巩固和监视自己在STP中的角色变化。对于任何端口,如果在Max Age内

18、收不到BPDU,都将进入Blocking状态。无效状态(Disabled)该端口状态是由人为地去配置的,就是关闭该端口,而不是生成树中的自动演变状态。在该状态下的端口,不能转发任何的数据帧,不论是广播,多播,还是单播,也不能进行地址的学习,同样不能收发BPDU,生成树算法对与这样的端口是无任何作用的,该端口也不会归于拓扑结构中。图4-4 Port State所有的状态的变化可能图4-4:(1),端口被配置成有效(2),端口被配置成无效(3),端口在Max Age内收不到BPDU(4),端口不被选作根端口或者指定端口,即收到更好的BPDU(5),端口的Forward Delay到时 4.1.10

19、 实例讲解 下面以一个实例,来阐述具体的生成树的实现。 图4-5 在图4-5所述拓扑结构中,假设每条链路的花费都是一样的,而且各个网桥的Max Age、Hello Time、Forward Delay参数分别设定为默认的值:20s、2s、15s。 当这个结构刚建立,所有网桥同时起来的时候,每个Bridge都会发一个携带有表明自己是根的BPDU。B1将在LAN A和LAN B上发送Root ID=10/00-10-B5-99-88-77的BPDU;B2将在 LAN B和LAN C上发送Root ID=128/00-10-B5-11-66-22的BPDU;B3将在LAN A和LAN D上发送Roo

20、t ID=128/00-10-B5-33-44-66的BPDU;B4将在LAN C和LAN D上发送Root ID=128/00-10-B5-11-11-99的BPDU。而各个网桥上的各个端口将进入Listening状态。1st BPDU后B1将收到分别来自B2和B3的BPDU,而后和自己所发的BPDU进行比较,发现B2和B3所携带的Root ID中的优先级都是128,没有自己的优先级小,所以将在一个Hello Time继续向B2和B3发送携带有表明自己是根的BPDU。同时,把端口1和2的角色定为指定端口。B2将收到分别来自B1和B4的BPDU,而后和自己所发的BPDU进行比较,发现B1所携带

21、的Root ID中的优先级是10,比自己的优先级小,所以在下一个Hello Time不在向B1发送BPDU;而B4所携带的Root ID中的优先级是128,比现在该网桥所认定的根(B1)的优先级大,所以在下一个Hello Time将向B4发送携带有表明B1是根的BPDU。同时,把端口1的角色定为根端口,端口2的角色定为指定端口。B3将收到分别来自B1和B4的BPDU,而后和自己所发的BPDU进行比较,发现B1所携带的Root ID中的优先级是10,比自己的优先级小,所以在下一个Hello Time不在向B1发送BPDU;而B4所携带的Root ID中的优先级是128,比现在该网桥所认定的根(B

22、1)的优先级大,所以在下一个Hello Time将向B4发送携带有表明B1是根的BPDU。同时,把端口1的角色定为根端口,端口2的角色定为指定端口。B4将收到分别来自B2和B3的BPDU,而后和自己所发的BPDU进行比较,发现B2和B3的Root ID都没有自己的好,所以将继续向B2 和B3发送携带有表明自己是根的BPDU。同时,把端口1和2的角色定为指定端口。各个网桥的各个端口保持Listening状态。 2nd BPDU后 B1将收不到任何的BPDU,而是继续想B2和B3发送携带有表明自己是根的BPDU。 B2能收到B1所发的BPDU,也将收到B4所发的表明B4是根的BPDU,而B2将仅向B4发送表明B1是根的BPDU。B3能收到B1所发的BPDU,也将收到B4所发的表明B4是根的BPDU,而B2将仅向B4发送表明B1是根的BPDU。 B4将收到来自B2和B3的都指明B1为根的BPDU,此时B4就会发现网络中有环路的存在,B4必须决定屏蔽一个端口。由于收到的BPDU指明的根B1比B4自己的要好,所以B4将依据根端口的选择依据来进行选择,由于B4上的端口1和2收到的BPDU表明到根的花费都一样,则将比较BPD

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论