环境:Windows XP 、GNS3.0.7
目的:了解STP并干预STP选举。
说明:
STP(Spanning Tree Protocol)叫做生成树协议。它能避免局域网中的网络环回,解决成环以太网网络的“广播风暴”问题。它的工作原理是在一个有环路的网络环境中选举一台交换机作为根桥,由根桥开始,逐级形成一棵树,根桥定时发送配置报文,非根桥接收配置报文并转发,如果某台交换机能够从两个以上的端口接收到配置报文,则说明从该交换机到根有不止一条路径,便构成了循环回路,此时交换机根据端口的配置选出一个端口并把其他的端口阻塞,消除循环。当某个端口长时间不能接收到配置报文的时候,交换机认为端口的配置超时,网络拓扑可能已经改变,此时重新计算网络拓扑,重新生成一棵树。
STP的选举和依据:
1、选举根网桥:具有最低的根ID(默认为32768)或MAC地址
2、选举根端口:最小的根路径成本或直连的网桥ID最小又或者端口ID最小
3、选举指定端口:根路径成本较低或所在的交换机网桥ID比较小又或者端口ID较小
STP的各种状态:
阻塞状态(Blocking)-----不转发数据帧;接收BPDU。
侦听状态(Listening)----不转发数据帧;侦听数据帧。
学习状态(Learning)----不转发数据帧;学习地址。
转发状态(Forwarding) ----转发数据帧,学习地址。
禁止状态(Disabled)----不转发数据帧,不接受BPDU。
步骤:
1、打开GNS建立工程,拓扑如下:
为SW1模拟设备添加交换模块:(SW2和SW3也要进行下图操作)
进行设备连接如下图:
记下每台设备的console端口号进行telnet登录(右键单击设备选择“修改console端口“)
SW1:2003
SW2:2004
SW3:2005
2、登录设备SW1,打开cmd命令行输入“telnet 127.0.0.1 2003“进行操作:
Router>en
Router#conf t
Router(config)#host SW1
SW1(config)#exit
SW1#sh spanning-tree
3、登录设备SW2,打开cmd命令行输入“telnet 127.0.0.1 2004“进行操作:
Router>en
Router#conf t
Router(config)#host SW2
SW2(config)#exit
SW2#sh spanning-tr
4、登录设备SW3打开cmd命令行输入“telnet 127.0.0.1 2005“进行操作:
Router>en
Router#conf t
Router(config)#host SW3
SW3(config)#exit
SW3#sh spanning-tr
5、从上面的分析可以得到下图:
其实在设备启动后STP协议就自动启动了,当它发现有环路存在的时候,它会选举出一个设备作为根网桥,这时根网桥所有端口成为指定端口并处于转发状态。然后在其他分非根网桥设备上选举根端口,而这个根端口是从非根网桥到根网桥最低成本的路径它一般处于转发状态。接着再在非根网桥设备上选举出指定端口,而这个端口是非根网桥上到达根网桥的最低成本端口,指定端口也是处于转发状态。最后网桥决定哪一个设备上的端口作为非指定端口也就是阻塞端口,这个端口不转发流量但接收流量从而达到防止环路而且在转发链路出现问题时,阻塞端口会转变为转发状态,让链路重新工作。在上图可以看出根网桥为SW1,作为非根网桥的是SW2和SW3,而且SW2和SW3之间的链路是阻塞的,因为SW3的fa0/1口处于阻塞状态不转发数据的,此时整个网路的就不存在环路了。
6、干预STP选举根网桥,通过修改设备的优先级达到指定设备成为根网桥,可以把SW2选举成根网桥。
登录SW2进行如下操作:
SW2>en
SW2#conf t
SW2(config)#spanning-tree vlan 1 priority 4096 //设置在STP协议中valn 1的优先级为4096,在这里没有配置vlan所以用vlan 1.
SW2(config)#exit
SW2#sh spanning-tr
登录SW3查看变化:
显然STP选举已经改变了,所以可以通过修改优先级来实现指定设备成为网桥。至此实验完成