一生成树的概述 生成树协议工作在第二层,通过一定技术将网络的结构变成树形结构。原因【防止网络中出现环路】;出现环形的网络拓扑时存在的问题【信息无法到达对方,信息在网络中始终循环】 参考1: https:baike。baidu。comitemE7949FE68890E6A091E58D8FE8AEAE1309781?fromtitleE7949FE68890E6A091fromid10284070fraladdin 参考2:https:blog。51cto。comdengqi1253320 二生成树网络中的接口类型【注意的问题:所有的端口都是需要进行学习{优先级,MAC,带宽}】 (1)根端口:【首先必须找到根桥,根桥所对应的端口均为根端口】【由优先级061440 和MAC地址来决定】【优先级0是最高级别,61440是最低级别的,4096为倍数;即0,4096,8192。。。。。。。】 (2)指定端口:【根桥上的所有端口均为指定端口】 (3)阻塞端口:【根据MAC地址和到达根桥花费值来决定】 (4)可以通过修改端口的优先级,来调整该端口是指定端口还是阻塞端口;0240的参数,0的优先级最低,240的优先级最高;是以16位倍数进行调整,即0,16,32。。。。。。; 三生成树的基础实例 分析: 1由两台交换机和4台PC机构成的一个简单的局域网; 2两台交换机之间由两条链路连接在一起;即在两台交换机之间形成了一个环路;其中的一个接口将处于监听状态;则该链路不参与数据的传输,只作为备份的链路存在; 3看到在两条链路上的四个节点之间,有一个节点处于监听状态【在交换机上默认启动了生成树协议】 4所有PC机在同一个VLAN下,所有只规划了192。168。10。024的C类标准网络; 5在交换的网络中,每个VLAN都能够构成一个生产树;即有自己的树根、根端口、指定端口和阻塞端口等; 验证:四台PC机在同一个局域网中,在默认情况下,可以相互通信; 实例1:在没有关闭生成树协议的情况下,PC0到PC1【没有经过环路,是SW1上的设备】 C:ping192。168。10。2 Replyfrom192。168。10。2:bytes32time5msTTL128 Replyfrom192。168。10。2:bytes321msTTL128 Replyfrom192。168。10。2:bytes321msTTL128 Replyfrom192。168。10。2:bytes321msTTL128 实例2:在没有关闭生成树协议的情况下,PC0到PC2【经过环路,是SW1到sw2】 C:ping192。168。10。3 Replyfrom192。168。10。3:bytes32time1msTTL128 Replyfrom192。168。10。3:bytes321msTTL128 Replyfrom192。168。10。3:bytes321msTTL128 Replyfrom192。168。10。3:bytes321msTTL128 实例3:在关闭生成树协议的情况下,PC0到PC1【没有经过环路,是SW1上的设备】 (1)关闭sw1的生成树协议 Sen Switchconft Switch(config)hostsw1 sw1(config)关闭生成树 sw1(config)nospanningtreevlan1关闭VLAN1的生成树协议 (2)关闭sw2的生成树协议 Sen Switchconft Switch(config)hostsw1 Sw2(config)关闭生成树 Sw2(config)nospanningtreevlan1关闭VLAN1的生成树协议 (3)现象:两台交换机之间链路的监听端口不存在了;即存在环路; C:ping192。168。10。4 Requesttimedout。 Replyfrom192。168。10。4:bytes32time23msTTL128 Requesttimedout。 Requesttimedout。 PC0与PC4【跨交换机之间的连接就出现了断点;是由于网络中存在环路的原因。】 (4)结论,当网络中存在环路时,无论是跨交换机通信还是不跨交换机通信,网络设置之间的连接都将存在一定的问题,有不规则的断点存在。 四根桥的选取 1。根桥的选举: (1)选择方法1:根据优先级(061440)来选择,优先级最小的为根;若优先级相同,则看交换机背板的基本MAC地址,MAC地址最小的为根,MAC最大的就必定有一个端口为阻塞端口; 注意:交换机的背板MAC地址的查看方法【sw1showversion】 (2)选取方法2:通过直接修改交换机设备的优先级,来决定生成树的根;默认情况下,所有交换机的优先级都是【32768】;由于默认情况下所有交换机上只有一个VLAN1,所以在查看生成树信息时,只能看到VLAN1优先级信息。命令: sw1(config)spanningtreevlan1priority0设置VLAN1的优先级为0,0为最高优先级; (3)选取方法3:通过命令直接定义主根和副根; 定义主根的命令:spanningtreevlanrootprimary配置为主根 定义副根的命令:spanningtreevlanrootse配置为福根 实例1:正常状态下的根桥选择实例【即未对交换机做任何的配置】 如何来确定SW1是否为根桥?通过【sw1showspanningtree】命令后,查看在结果中是否存在【Thisbridgeistheroot】,如果有存在,则SW1是根桥,否则,SW1不是根桥; sw1showspanningtree查看生成树协议信息 VLAN0001vlan的编号信息 S表示交换机使用的生成树协议是PVST,这也是思科默认的生成树协议。 RootIDPriority32769根桥的优先级【生成树的默认优先级VLAN的编号】 Address0001。4237。CEAB根桥的基本MAC地址 Cost19从SW1都根桥的花费值 HelloTime2MaxAge20secForwardDelay15BPDU发送间隔默认2秒,最大存在时间是20秒,转发延时是15秒。 BridgeIDPriority32769sw1的优先级【生成树的默认优先级VLAN的编号】 Address0030。A351。C7CESW1的MAC地址 Interface【接口】Role【角色】Sts【状态】Cost【花费】Prio。NbrType Fa04DFWD19128。4P2p Fa03DFWD19128。3P2p Fa02ABLK19128。2P2p Fa01RFWD19128。1P2p 角色:Desg:指定端口;Root:根端口;Altn:替换端口 状态:FWD:转发状态,BLK:阻塞状态,LRN:学习状态 类型:P2P:点到点【指的是接口的类型】 花费:19【说明sw1与sw2之间的链路带宽是100M】 sw2showspanningtree查看生成树协议信息 VLAN0001显示VLAN1的相关生成树的信息 Spanningtreeenabledprotocolieee表示交换机使用的生成树协议是PVST,这也是思科默认的生成树协议。 RootIDPriority32769根桥的优先级【生成树的默认优先级VLAN的编号】 Address0001。4237。CEAB根桥的基本MAC地址 T指出该交换机是根桥 HelloTime2secMaxAge20secForwardDelay15BPDU发送间隔默认2秒,最大存在时间是20秒,转发延时是15秒。 BridgeIDPriority32769(priority32768sysidext1)sw1桥ID的优先级 Address0001。4237。CEABsw2的MAC地址 HelloTime2secMaxAge20secForwardDelay15secAgingTime20BPDU发送间隔默认2秒,最大存在时间是20秒,转发延时是15秒。 InterfaceRoleStsCostPrio。NbrType Fa02DesgFWD19128。2P2p Fa03DesgFWD19128。3P2p Fa04DesgFWD19128。4P2p Fa01DesgFWD19128。1P2p sw2 实例2:通过改变优先级来确定SW1为VLAN1的根桥 sw1(config)spanningtreevlan1priority0设置VLAN1的优先级为0 sw1showspanningtree VLAN0001 Spanningtreeenabledprotocolieee RootIDPriority1优先级0VLAN的编号 Address0030。A351。C7CE T指定当前的交换机为根交换机 HelloTime2secMaxAge20secForwardDelay15sec BridgeIDPriority1(priority0sysidext1) Address0030。A351。C7CE HelloTime2secMaxAge20secForwardDelay15secAgingTime20 InterfaceRoleStsCostPrio。NbrType Fa04DesgFWD19128。4P2p Fa03DesgFWD19128。3P2p Fa02DesgFWD19128。2P2p Fa01DesgFWD19128。1P2p 实例3:通过命令来确定SW2为VLAN1的根桥 sw2(config)spanningtreevlan1rootprimary指定当前的交换机为主要根交换机 sw2showspanningtree VLAN0001 Spanningtreeenabledprotocolieee RootIDPriority1通过rootprimary命令后,设备的优先级变为0 Address0001。4237。CEAB Thisbridgeistheroot HelloTime2secMaxAge20secForwardDelay15sec BridgeIDPriority1(priority0sysidext1) Address0001。4237。CEAB HelloTime2secMaxAge20secForwardDelay15secAgingTime20 InterfaceRoleStsCostPrio。NbrType Fa02DesgFWD19128。2P2p Fa03DesgFWD19128。3P2p Fa04DesgFWD19128。4P2p Fa01DesgFWD19128。1P2p 实例4:根据拓扑图完成根交换机的配置 配置要求: (1)创建vlan (2)将相应的接口划分到指定的vlan中 (3)设置trunk链路(8条) (4)启用生成树协议STP (5)配置主副根 M1作为vlan2和vlan1的主根,vlan3的副根 M2作为vlan3的主根,vlan2和vlan1的副根 (6)配置实例 spanningtreevlanrootprimary配置为主根 spanningtreevlanrootse配置为福根 (7)查看配置情况【showspanningtree】 配置过程: 1创建VLAN信息及设备的主机名 Sen Switchconft Switch(config)vlan2 Switch(configvlan)vlan3 Switch(configvlan)hostnameS1 2将接口划分到指定的VLAN中 S1(config)intf04 S1(configif)switchportmodeaccess S1(configif)switchportaccessvlan2 S1(configif)intf05 S1(configif)switchportmodeaccess S1(configif)switchportaccessvlan3 3设置设备间的TRUNK链路 M1(config)intrangef014 M1(configifrange)switchporttrunkencapsulationdot1q封装DOT1Q协议 M1(configifrange)设置接口的工作模式为trunk M1(configifrange)switchporttrunkallowedvlan13只允许vlan13的信息通过该链路 M2(config)intrangef01,f034,f07 M2(configifrange)switchporttrunkencapsulationdot1q M2(configifrange)switchportmodetrunk M2(configifrange)switchporttrunkallowedvlan13 S1(config)intrangef013,f07 S1(configifrange)switchportmodetrunk S1(configifrange)switchporttrunkallowedvlan13 S2(config)intrangef013,f06 S2(configifrange)switchportmodetrunk S2(configifrange)switchporttrunkallowedvlan13 4检查VLAN的划分情况 5查看TRUNK链路的配置情况 6启动生成树协议 M2(config)spanningtreemodepvst 7配置主根和副根 (1)配置M1作为vlan2和vlan1的主根,vlan3的副根 M1(config)spanningtreevlan12配置M1为vlan1和vlan2的主根 M1(config)spanningtreevlan3配置M1为vlan3的副根 (2)M2作为vlan3的主根,vlan2和vlan1的副根 M2(config)spanningtreevlan3配置M1为vlan3的主根 M2(config)spanningtreevlan12rootsecondary配置M1为vlan1和vlan2的副根 8检查主根和副根的配置情况 9改变端口的带宽,从而改变端口的花费值,观察端口的状态,以f06为例 M2(config)intf06 M2(configif)speed10 S2(config)intf06 S2(configif)speed10 说明:发现F06接口在VLAN13上的状态均变成了【阻塞状态】,且花费值变成了100; 10改变端口的优先级,观察端口的状态变化情况 S1(config)intf01 S1(configif)spanningtreevlan13portpriority240 M1(config)intf01 M1(configif)spanningtreevlan13portpriority240 说明:发现FO1的优先级变成240了; 五最佳路径 1。最佳路径的选择是根据“开销路径”来选择;【开销路径路径上各发送端口的开销之和】【10G2;1G4;100M19;10M100】 2。阻塞端口的选择【1。根据路由的花销,最大的花销被设置阻塞端口】【如果说花销是相同的,通过优先级别来判断,优先级别的数字越小,则该端口被设置阻塞端口】【如果花销相同,优先级也相同,MAC地址最大的被设置为阻塞端口】【当在一个交换机上BID(桥ID)和MAC地址是相同的,则通过两个接口的PID号来决定,PID号最大的被设置为阻塞端口】 六说明 STP通过以下四步使网络收敛为无环拓扑 (1)每广播域选出唯一一个根桥 (2)每非根桥产生唯一一个根端口 (3)每网段有且只有一个指定端口 (4)既不属于根端口也不是指定端口的端口将被阻塞。 七配置方法 1。通过命令直接指定主根和副根 spannningtreevlanrootprimary指定该交换机为某个vlan的主根〔通过这种方式设置的主根,一般不会发生变化〕 spannningtreevlanrootsecondary指定该交换机为某个vlan的副根〔通过这种方式设置的副根,一般不会发生变化〕 2。通过设置优先级来指定主根和副根 061440以4096的倍数设置生成树的优先级,0的优先级最高〔通过这种方式设置的主根副根,一般不稳定〕 3。通过修改接口的speed来控制端口的状态〔阻塞、监听〕 speed〔10100auto〕 4。通过修改接口的参数来控制端口的状态〔根端口、阻塞、监听〕 Switch(configif)spanningtree? DtacceptBPDU启用BPDU保护功能 Csspanningtreeguardmode启用根保护功能,防止其他交换机抢占根桥 S设置端口的连接类型:全双工模式端口被认为是有点对点链接;半双工端口被认为是有一个共享链接。 Enableaninterfacetomovedirectlytoforwardingonlinkup VLANSwitchSpanningTree设置VLA下端口的优先级别,0240,0的优先级别最低,240的优先级别最高,16位倍数 八。带宽的花费值说明 (1)10M的花费为100 (2)100M的花费为10 (3)1G的花费为4 (4)10G的花费为2 九结论 1。根桥的选举: (1)选择方法1:根据优先级(061440)来选择,优先级最小的为根;若优先级相同,则看交换机背板的基本MAC地址,MAC地址最小的为根,MAC最大的就必定有一个端口为阻塞端口; 注意:交换机的背板MAC地址的查看方法【sw1showversion】 (2)选取方法2:通过直接修改交换机设备的优先级,来决定生成树的根;默认情况下,所有交换机的优先级都是【32768】;由于默认情况下所有交换机上只有一个VLAN1,所以在查看生成树信息时,只能看到VLAN1优先级信息。命令: sw1(config)spanningtreevlan1priority0设置VLAN1的优先级为0,0为最高优先级; (3)选取方法3:通过命令直接定义主根和副根; 定义主根的命令:spanningtreevlanrootprimary配置为主根 定义副根的命令:spanningtreevlanrootsecondary配置为福根 2。根桥的所有端口都为指定端口【Desg】;根桥所对应的端口原则上都是根端口【Root】; 3。默认状态下所有的交换机均开启生成树协议; 4。生成树的作用之一是防止环路的产生; 5。原则上每一个VLAN属于一个生成树,该生成树的根是根据优先级和交换机的背板MAC地址来决定。每一个VLAN具有一个独立的根。也可以多个VLAN使用一个根; 6。在设置生成树的优先级时,是以4096的倍数为基础进行设置【0,4096,8192。。。。。。。】; 7。当优先级为0时,该交换机也不一定是根桥【如果在同一个VLAN的网络中有设置某一个交换机为“primary”,则此交换机为该VLAN的根】; 8。在一个VLAN中可以设置主根和副根,副根只有在主根出现问题时才启用; 9。在查看生成树配置时,如果为根交换机将提示“thisisbridgeistheroot”,且ROOTID和“BRIDGEID的MAC地址是相同的; 10。在一个VLAN中只能有一个主根和一个副根;