【IT168 专稿】要保证企业的网络中的关键应用可持续性,就需要对交换网络进行冗余设计,然而这将产生广播风暴、“网络环路”等问题,严重时,将导致整个网络瘫痪?于是,STP生成树解决办法出现了……
网络冗余设计与广播风暴的矛盾
广播风暴的克星:设计STP网络生成树
技术剖析:STP生成树初始化与收敛
案例分析:观察生成树收敛过程
实战剖析:STP生成树如何配置?
技术进化:RSTP快速生成树配置
广播风暴的克星:设计STP网络生成树
网络发展过程中,以太网设备由Hub发展到透明网桥到智能交换机。透明网桥比Hub智能,Hub收到数据包后,向除自己外的其他所有端口进行广播,而透明网桥则记录物理端口上连接设备的MAC,收到数据帧后按照记录的MAC地址向该端口发送数据帧,这样大大减少数据帧冲突。
但是透明网桥由于他的透明性,一旦网络中存在环路,一台透明网桥收到的数据帧,又会在环路中返回,这样数据帧不停在网络中增生,最终形成广播风暴,导致整个网络瘫痪;一种阻止网络环路的协议——生成树协议(STP),IEEE 802.1D标准,生成树模拟自然界树的生长规律,从树根到树梢不会形成环路,生成树协议通过对比环路网络中的设备属性的优先级、链路的开销、端口优先级等来判断环路中链路的优先级,从而逻辑上阻断优先级低的网络链路。
生成树从阻断到转发状态需要经过阻断、监听、学习、转发延迟等阶段,这个阶段大约需要30~50s的时间,对于要求高可靠性的网络来,这是不允许的。快速生成树协议(RSTP)IEEE 802.1W按结构需求产生,RSTP将阻断的端口设置备用端口,一旦检测到主链路中断,备用端口直接进入转发状态,大大加大收敛速度。
生成树的关键概念
解决循环连接的方案就是STP。通过一定算法,STP使任意两个节点间有且只有一条路径连接,而其他的冗余链路则被自动阻塞,作为备份链路,如图8-6所示。只有当活动链路失败时,备份链路才会被激活,从而恢复设备之间的连接,保证网络的畅通。
与EtherChannel技术不同,Spanning-Tree只能保证在两台设备间拥有一条活动链路,因此,也就无法实现带宽加倍和负载均衡。这就好比一棵真实生长树,从树根开始长起,然后是树干、树枝,最后到树叶,从而保证任意两片树叶间只有一条路。而链路选举的标准就是优先级值(Priority)和端口费用(Cost)。
提示:Spanning-Tree的优点是可以在任何端口实现,而不一定是固定的双绞线端口或光纤端口。
网络环路侦测和预防(Network loop detection and prevention)的意义在于任何两个局域网之间应该只有一条路径,否则,网络中将出现环路。如果存在着多于一条的路径,那么生成树算法将会侦测到环路的发生,并自动选择开销值(Cost)最低的那条路径作为可使用的路径(主链路),而阻断其他路径,将它们作为备用路径(备用链路)。
自动拓扑重构(Automatic topology re-configuration)是指当主链路出现故障时,生成树算法将自动启用备用链路,重构网络结构。生成树运算在无环路逻辑拓扑时,使用3个关键概念:网桥ID(Bridge ID)、路径开销(PC)及桥接协议数据单(BPDU)通知功能。
要保证企业的网络中的关键应用可持续性,就需要对交换网络进行冗余设计,然而这将产生广播风暴、“网络环路”等问题,严重时,将导致整个网络瘫痪?于是,STP生成树解决办法出现了…… 1.网桥ID(Bridge ID)
每台网桥都有一个ID表示,Bridge ID称为BID。它是由一个2字节加6字节,总共8字节组成的存储域组成,如图8-7所示。低6字节MAC地址由交换机分配好,高2字节BID为网桥优先级,范围从0~65 535,默认为32 768。
图8-6 生成树技术与端口阻塞(Block)
图8-7 网桥ID
2.路径开销(Path Cost)
IEEE 802.1D早期定义采用1 000Mbps来除以实际的带宽获得的数据作为路径开销值,但由于后来实际带宽超过1 000Mbps,得到了小数,不方便计算;后来IEEE 802.1D修正了新值,目前采用新值,如表8-1所示。
带 宽 | 开销(IEEE修订后) | 开销(IEEE修订前) |
10Mbps | 100 | 100 |
100Mbps | 19 | 10 |
1Gbps | 4 | 1 |
10Gbps | 2 | 1 |
3.桥接协议数据单元(BPDU)
DMA | SMA | L/T | LLC Header | Payload |
提示:IEEE 802.1D指定17个多播地址,范围从0x00180c2000000~0x00180c2000010,用于不同网桥版本,如果交换机端口开启STP,交换机CPU接收目标来地址0x0180C2000000~0x0180C2000010,如果STP被关闭,则认为这些多播地址为未知的。 |
值 域 | 字 节 | 分 配 值 |
Protocol ID | 2 | 总为0 |
Version | 1 | STP为 0 RSTP为2 |
Type | 1 | 0 = 配置 BPDU 1=拓扑改变时发出的BPDU |
Flags | 1 | LSB = 拓扑改变标志位,MSB = 拓扑改变确认标志 |
Root BID | 8 | 当前的根桥ID,根桥的优先级加上MAC地址 |
值 域 | 字 节 | 分 配 值 |
Root Path Cost | 4 | 计算到根桥的路径开销 |
Sender BID | 8 | 本地网桥ID,也叫指定网桥ID |
Port ID | 2 | 网桥的端口ID |
Message Age | 2 | 端口保存BPDU的一个生存期 |
Max Age | 2 | BPDU 老化时间 |
Hello Time | 2 | 周期发送BPDU的间隔时间 |
Forward Delay | 2 | 网桥从监听到学习状态的时间 |