十、CCNA-生成树协议STP

10.1  环路问题

10.1.1  广播风暴

  • 多路径冗余链路切换,但是需要避免二层环路;
  • 三层路由TTL跳转限制,可以避免环路。
  • HOSTX发送消息是,交换机针对帧进行转发,学习帧的原地址,查看MAC地址表,根据目标MAC地址查找MAC地址表,如果存在,就进行相应转发。如果不存在,就泛洪查找。
  • 交换机不能隔绝广播域,交换机A收到广播帧后,经广播进行转发。到交换机B后,交换机接着广播,

不停的广播,形成了广播风暴。

10.1.2  多帧复制

因为环路导致一个设备收到多分拷贝帧,虽然会收一个,丢弃一个,但还是消耗了资源。

10.1.3  MAC表絮乱

  • MAC地址泛洪攻击,导致MAC地址表填满,充斥垃圾信息。
  • 从多个地方学到同一条MAC地址;

10.2  STP

通过某种方式进行选举,选择一个软关闭,避免环路;

10.2.1  STP机制

选举一个,软关闭;实时监控,一旦拓扑发生变化,可以随时打开:

  • 在交换域或者广播域选择一个根桥(交换机)root,设置为生成树的根;
  • 每台非root交换机,每台交换机选择一个根端口root port,距离root交换机开销最小的端口;
  • 每个链路有两个接口,选择一个指定端口designated port,(root交换机上的接口不能被阻塞,所以root交换机上的接口都是DP端口;其余离root交换机最近的端口);
  • 剩下的设置为非指定端口,被阻塞。

注意:RP收BPDU包,DP发BPDU包。

10.2.2  选举步骤

BPDU:网桥协议数据单元;BPDU为STP协议的数据包;通过BPDU泛洪,泛洪STP选取参数,便于生成树计算;

第一步:选择根桥,即root交换机,交换机ID最小的为root交换机。

  • 交换机ID,每台运行STP协议的都有,8个字节,2个字节的桥优先级可以认为设定,默认为32768;后六位为交换机的MAC地址,是交换机背板的MAC,不是端口MAC地址。
  • 先比较根桥的桥优先级,比小的,相同的情况下,比MAC地址,也比小。

最开始所有交换机都认为自己是root,通过泛洪BPDU,不停的比较和计算,最后得出root交换机。

  • 选择完根桥后,已根桥为参考点计算。
  • 非根桥的设备,只有一个根端口:
  • 同一台交换机不同端口,距离根路由器最近的、或者开销最小的选为root prot;
  • 当开销都一样的情况下,比较发送BPDU者的桥ID,小的成为RP;当桥IDID也一样,则比较发送者的端口ID。

选取DP

阻塞非DP

总结:

  • 刚运行的交换网络,所有交换机都会认为自己是root,并且向各个方向泛洪BPDU包;
  • BPDU包就包含自己的桥ID,经过义序列的泛洪,得到root;
  • 接着选择RP,DP,将非DP阻塞接口。
  • 剩下的就是root不断的发BPDU,非root不断的转发,阻塞端口不会转发,最终形成无环树。

10.2.3  案例

10.2.3.1 案例1

  • sw1为root,因为桥ID最小;
  • RP:SW2和SW3连接SW1的端口;
  • DP:SW的所有端口,SW2和SW3连的端口,到根开销一样,比较桥ID;
  • SW3和SW2连的端口为阻塞。

10.2.3.2 案例2

  • Root不变;
  • RP:SW2和SW1连接的RP,SW3和SW2连接的RP;
  • DP:SW1的接口,SW2和SW3相连的是DP;一般情况下和RP相连的是DP
  • RP是收,DP是发BPDU包

10.2.3.3 案例3

假设带宽一样

  • SW4上的RP看SW2和SW3的桥ID,小的方向为RP;
  • DP中,和RP相连的设置为DP。

10.2.3.4 案例4

SW1达到SW2的开销一样,桥ID也一样,最后比较SW1的端口ID。

10.2.4 STP端口状态

  • BLOCKING:经过选举后,被列为阻塞状态,不转发帧,接受BPDU,当处于阻塞状态超过了计时器最大计时20S,没有收到BPDU包时,就开始不安分;
  • LISTENING:侦听数据帧,不转发帧,也不学习,持续15秒;
  • LEARNING:学习帧MAC地址,维护MAC地址表,持续15秒;
  • FORWARDING:RP和DP的状态;

阻塞端口都会努力转为转发端口。

发表回复