生成树协议应用的原因是从逻辑上阻塞交换机在物理上形成的环路。大家都知道交换机工作在二层,也就是数据链路层,根据mac地址识别主机,对三层网络无法识别,因此交换机不能隔离广播。但是在日常的工作中,为了达到数据链路的可靠性,通常都会冗余备份链路,也即是物理环路。为了避免广播风暴的产生,同时又能提高链路的可靠性,就需要在现有的环路上使用生成树协议。而生成树协议的本质就是生成树算法,只要学会了生成树算法,就学完了生成树协议。
大家都知道交换机实质上就是多端口的网桥,由于网桥是通过软件来隔离冲突域,因此在转发时会有瓶颈出现。而交换机是通过硬件来隔离冲突域,背板带宽大,通过一定的算法来转发数据,所以性能远远大于网桥,从而到最后完全取代网桥。还有就是随着交换机的发展,到最后直接收购网桥,由于对网桥使用的习惯,好多知识点还是按着网桥来定义的。生成树协议的三个步骤是:1,根网桥的选定;2,根端口的选定;3,指定端口的选定.其中根网桥指的就是根交换机的意思。
根网桥的选定实际上是最低网桥ID(BID Bridge ID)
-每个网络只能有一个根桥,根桥具有最低的桥ID,根桥上的所有端口都是指定端口,网桥ID组成:
所有交换机出厂的优先级缺省值都是32768,所有交换机出厂都只有全球唯一的一个Mac地址,根据交换机的优先级和Mac地址确定根网桥,第一步到此已经完成。
从图可见,交换机A为根桥,B、C交换机为非根桥
接下来说第二步,根端口的选定。
根端口实际上就是非根桥与根桥进行数据交换的端口,存在与非根桥上。根端口的选定由三点确定:1,首先是根路径成本最低(cost值);2,直连网桥的网桥ID最小(BID);3,直连网桥的端口ID最小(端口ID)
根路径成本cost是根据单链路宽带大小来确定的,我们一般规定1g带宽根路径成本为4,100M根路径成本为19,10M根路径成本为100,根路径成本是所有链路路径成本的总和。
如上图,交换机B的2端口为根端口,交换机C的2端口也为根端口
如上图所示,交换机A为根桥,其余交换机为非根桥,根据根路径成本大小,可知B交换机和C交换机的3端口为根端口。D交换机的根路径成本相同,则比较直连网桥的BID,优先级相同,则Mac地址小的交换机连接的端口为根端口,由此可知D交换机的3端口为根端口。
如上图所示,交换机A为根网桥,交换机B为非根桥,交换机B的根路径成本相同,直连网桥的桥ID也相同,这时需要比较直连网桥的端口ID,端口ID较小的为根端口,由图可知交换机B的2端口为根端口。
上面已经确定了根网桥,根端口,接下来最后一步,找出指定端口。
在每个网段上都有一个指定端口,根端口和指定端口一般处于forwarding状态,非指定端口一般是blocked状态。
指定端口的选择分为4种情况:1,根桥上的端口全是指定端口;2,非根桥上的指定端口又分为3种情况,一,根路径成本最小;二,端口所在的网桥的ID值较小;三,直连网桥的端口ID值较小
由图可知,A交换机的端口2、3为指定端口,B交换机的3端口为指定端口,C交换机的3端口既不是指定端口也不是根端口,故堵塞。其中B交换机的指定端口的确定是先比较根路径成本,因为根路径成本相同,故比较端口所在网桥的ID值,因为B交换机的3端口的所在的桥ID较小,故B交换机3端口为指定端口。