您的位置:首页 > 其它

802.1W 感悟以及和802.1D对比

2016-03-09 23:40 281 查看
上次说了STP的感悟,这次讲讲我个人对与RSTP的感悟。(学校坑爹的开题报告,没时间写微博了) RSTP的出现的原因:就是因为传统的STP是基于被动的收敛时间,收敛时间太慢,根本无法满足真正的生产网络,网络震荡一次,就得等30S-50S,才能上网,估计谁也忍不了吧! 对于如何对RSTP下手呢?我总结如下两点,STP也可以这么考虑①如何形成一棵树②如何维护这个树(随时检测树的状态,当树根被拔了,当树干断了,如何用新的树根和新的树干来再次形成这棵逻辑的树)
802.1D: 形成树:先选举root bridge,再选取RP(形成树,不能转发数据),再选取DP和NDP(防止初期数据环路和BPDU环路),然后经过2倍的forward delay时间,端口的状态才会进入forwarding或者blocking状态。此时才可以转发数据。 维护树:当拓扑变更时候,下游交换机从根端口向上游发送TCN BPDU,上游交换机接收到TCN BPDU就回复一个TCA位置位的配置BPDU,并且转发给上游,然后一直到根桥,根桥收到后发送TC位置位的配置BPDU,来告诉整个的生成树,有拓扑发生变化了,然后所有收到TC置位的BPDU的交换机会将自己的MAC地址表的老化时间改成和forward dealy,以此来刷新mac地址表,准备学习新的拓扑,防止错误的mac地址表的转发还会形成环路.这样发生拓扑改变的端口的最终经过两个forward delay 时间,到达forwrding 状态。 其实你可以想想,一棵树的拓扑发生了变更,对于STP的做法是将这一消息要递送给根桥,然后让根桥来告知整个树,虽然这个方法很好,但是这样就会产生那两个被动的两个forward delay,这也是严重影响生成树收敛速度的原因之一。 802.1W形成树:同802.1D维护树:①当链路失效,不会造成环路,RSTP只要能找到合适的堵塞端口来替代该端口就行了(RSTP使用TC置位的BPDU来表示拓扑的变更,但是为了和802.1D保持协调,RSTP可以产生和处理TCN bpdu) ②当有新的链路的时候,可能会发生环路,此时的检查机制就是P/A机制。
深入剖析阶段:选举过程:①根桥的选举



一开始都会认为自己是根桥,从每个指定端口发送BPDU,就以C为例子。





C会认为我自己是根桥,A收到C的BPDU,比较ROOT ID 会认为A自己是根桥 B收到C的BPDU,会认为C是根桥,这时候B,C 都是rootbridge




A发送BPDU,形成的结果如上图,这时候才能真正选出来,而不是所谓的一句笼统的大家互发 BPDU选举就完事了也就是说一个交换机想要成为根桥,他的 ROOT ID字段必须比所有指定端口能接收到BPDU的ROOT ID字段都要小,这时候他才能成为根桥,一旦他接收到到了更好的,立马脱离根桥的身份.

RSTP更加明确的规定了端口角色和端口状态,更加依赖的是端口角色
STP端口角色:RP DP NDP
RSTP端口角色:RP DP AP(备份根端口) BP(备份指定端口)






字节字段
2Protocol ID
1Version
1Message Type
1Flag
8Root ID
4Cost of path
8Bridge ID
2Port ID
2Message Age
2Maximum Time
2Hello Time
2Forward Delay
1
version 1 length
收到劣质BPDU的不同反应(X为NDP)




当S1和S2之间的链路失效的时候

STP:S2认为自己根桥,开始发送劣质BPDU,S3的NDP接口将等待20S的超时时间,然后再经过learning →listening→forwarding 约50s的时间
RSTP:S2认为自己根桥,开始发送劣质BPDU,S3的Alternate接口收到后,会告诉S2,S1才是跟,然后经过learning →listening→forwarding 约30s的时间

STP收敛依靠计时器被动进行收敛

RSTP快速收敛边缘端口机制(Cisco的portfast

特性:

①连接PC不需要等待转发延迟直接进入转方状态) ②接口状态的改变不会影响生成树的拓扑变更 ③跟端口的快速切换时,不会堵塞边缘端口 ④tc置位的配置BPDU不会通过边缘端口转发 ⑤ 收到tc置位的配置BPDU,边缘端口的mac地址表项的计时器不会改变 ⑥边缘端口收到BPDU,会立即还原成普通接口)
根端口快速切换机制(上述说到的,某个端口down了,立马找堵塞端口替代,立即进入转发状态,其实就是Cicso的uplinkfast【级联快速】,并且会向上游发送不带数据部分的伪帧来刷新mac地址表,一般用于接入层交换机)

Proposal/Agreement机制(使指定端口快速进入转发状态,接口两端必须是全双工的点到点链路,否则P/A报文无法相互交互,就只能借助STP的2倍forward delay时间了)

P/A机制

P/A机制即Proposal/Agreement机制。其目的是使一个指定端口尽快进入Forwarding状态。其过程的完成根据以下几个端口变量:A)Proposing。当一个指定端口处于Discarding或Learning状态的时候,该变量置位。并向下游交换传递Proposal位被置位的BPDU。B)Proposed。当下游交设备端口收到对端的指定端口发来的携带Proposal的BPDU的时候。该变量置位。该变量指示上游网段的指定端口希望进入Forwarding状态。C)sync。当Proposed被设置以后,收到Proposal置位信息的根端口会依次为自己的其他端口置位sync变量。如果端口是非边缘的指定端口是则会进入Discarding状态。(这个过程的堵塞状态就是完全的防环)D)synced。当其它端口完成转到Discarding后,会设置自己的synced变量(Alternate、Backup和边缘端口会马上设置该变量)。根端口监视其他端口的synced,当所有其他端口的synced全被设置,根端口会设置自己的synced,然后传回BPDU,其中Agreement位被置位。E)agreed。当指定端口接收到一个BPDU时,如果该BPDU中的Agreement位被置位且端口角色定义是“根端口”,该变量被设置。Agreed变量一旦被置位,指定端口马上转入Forwarding状态。提示:RSTP的端口角色的同步是指根端口信息的同步,因为在一台交换机上只能有一个根端口(堵塞的是非边缘指定端口)某位大神举的一个例子实线为百兆链路,虚线为后加的千兆链路,圆圈为根端口


加上千兆虚线之后的拓扑如下



此时SW6和SW2之间新加的一条千兆链路,马上进行端口角色选举,毫秒附近,SW6 2口根端口确定,如图。立即进入转发状态,此时SW2 2口也立即进入转发状态,SW6根端口和指定端口选举之间肯定会有空隙,SW6的1口还是转发状态此时,图中明显右侧出现临时环路。所以P/A机制出现了SW6根端口选举完毕,立即进入转发状态,但是SW2连接SW6的端口处于Discarding状态,并且向SW6发送一个P置位的配置BPDU,sw6会堵塞所有的非边缘指定端口,进行根端口角色的同步,100%无环路,然后依次向下游传递。

Cisco的PVST,PVST+,RPVST+ pv:per-vlan
ieee定义的STP,RSTP都是无法基于vlan的,cisco将BPDU的BID 八个字节进行了划分
priority
vlan ID
MAC
4bit
12bit
48bit
开启了 PVST :在中继链路用ISL封装,ISL封装思科自己不怎么用了
PVST+ :在中继链路用dot1q封装 RPVST+: 在中继链路用dot1q封装为什么优先级设置成4096的倍数,我认为是一共16bit,前12位被占,后面的只能4bit只能以4096的倍数增加了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: