第四章:网络交换机主要技术
本章将具体阐述网络交换机的两个灵魂技术:STP和VLAN。对于现在所有的网络交换机而言,如果没有STP和VLAN这两个技术在里面,那么这个交换机就不能称之为交换机,这样的交换机就等价于HUB,没有任何的可管理性,就属于低档产品了。由于现有的一些交换机技术的国际标准都是源用于网桥,所以本章在阐述中将以网桥来进行描述。
4.1生成树协议(STP)
生成树是一个交换网络中检测消除冗余链路以防止出现环的一个协议。如果不运行STP,帧有可能会在网络中循环发送,流量极剧升高,最后使整个网络彻底瘫痪。STP最初是一个较慢的基于软件实现的一个桥接规范(IEEE802.1D),现在已经是一个相当成熟的协议了,可以在一个具有多VLAN、大量交换机、多厂商的复杂环境中很好的实施。在现在的每台交换机上,生成树算法是一个最为基本,也是最为关键的一个技术!在交换机中靠软件实现完成。
4.1.1 基本概述
生成树算法,最早是1984年由Digital公司Radia Perkman开发的一个协议,是用在桥接技术上的,用它来为某个扩展局域网找出生成无环的树。在Radia Perkman所著的《An Algorithm for Distributed Computation of a Spanning Tree in an Extended LAN》一书提出了该概念。在1993年的ANSI/IEEE 802.1 STD标准中第一次引入正式成为了一个协议。后来在1998年的IEEE 802.1D中完善了该协议。在2000年版的IEEE 802.1-d-D4中又增加了一个基于STP的改进的新协议RSTP(Rapid STP,快速生成树算法),在最近2年内又有了一个新的概念叫做MSTP(Multi STP,多生成算法),同时相应的标准草案为IEEE 802.1S。
生成树的基本思想:把形成环路的一些端口屏蔽掉,不进行转发帧。
首先,选择具有最小标时的网桥作为生产树的根(Root)。根网桥总能在它所有端口上转发分组。
接着,每个网桥计算到根的最短路径并记下路径经过它的那些端口。这个端口也被选作网桥到根的优先路径,叫做根端口(Root Port)。
然后,所有连接到给定的局域网中的网桥选出一个负责向根网桥转发帧的指派网桥(Designated Bridge)。
这样就选择出了一条到根网桥的路径,如果存在2条以上的路径则其中一条必将被算法规定为冻结状态。从而,使这个网络看起来就像是一颗树,只有分支而没有回路。下图4-1的右图就是左图实现生成树算法后的一个拓扑结构简图。
图4-1
要实现STP算法,对于交换机或网桥需要提供以下的参数:
1,唯一的网桥标时(Bridge ID),是由网桥的优先级(Bridge Priority)和MAC地址一起组成的,主要用来的在桥接网络中表明自己,选根网桥和
指定网桥时可用。
2,网桥端口标时(Port ID),是由网桥端口的优先级 (Port Priority)和端口号一起组成的,用来唯一地表明各个网桥端口,选择指定端口和根
端口时可用。
3,网段的花费(Path Cost),是指各个网段的路径花费
以上这些参数是可以管理和进行相关配置的。
4.1.2 花费(Cost)
STP的算法最根本都是基于一个网段的花费,也可以理解为开销,不管是在选择和固定拓扑结构还是在拓扑发生变化需重新恢复的时候,都是依靠花费来决定的。
在STP中花费的定义,有以下三种:
根路径花费(Root Path Cost):是指到根网桥的路径开销,由STP计算可得。
指定路径花费(Designated Path Cost):是指某个网段所在指定网桥到根的开销。
路径花费(Path Cost):是指与某个端口相连接时所所需要的开销,一般由链路状态所决定。
一般对于某个特定的网桥,该网桥的根路径花费=指定路径花费+路径花费.
花费的计算在IEEE 801.D的标准中有如下规定,见图表4-2:
图表4-2
4.1.3 根网桥(Root Bridge)
所谓的根网桥,就是生成树中的根,所有其他的网桥都要以它为核心和源头,一般都是由网络中网桥标时最小的网桥作为根。
算法选择根网桥的时候,首先比较的是网桥标时里的优先级,选优先级最小的作为根;如果当两个网桥的优先级相同的时候,会选择MAC地址小的那个作为根。
法则:Min(Pr1, Pr2,……,PrN)||
(Pr1=Pr2=……=PrN)&& Min(Mac1, Mac2,……,MacN)
注:Pr:Priority; Mac:MAC ADDRESS
4.1.4 根端口(Root Port)
所谓的根端口,并不是指在根网桥上的端口,而是在某个LAN中,到达根网桥的花费最少的那个端口,也就是说与离根网桥直接相连或是离根最近的那个端口。
算法选择根端口的时候,首先选择的是该端口到根网桥花费最少的那个口;当有两个或两个以上的端口到根网桥的花费一样的时候,接着比较指定网桥的网桥标时(Bridge ID),选择与该端口相连的指定网桥标时小的那个口作为根端口;如果指定网桥标时也一样,就会选择与该端口相连的指定端口标时(Designated Port ID)较小的那个口;如果指定端口标时也相同的时候,就会最后比较该端口的(Port ID),选择端口标时小的那个。
法则:Min(RPC1,RPC2,……RPCN)||
(RPC1=RPC2=……=RPCN)&&Min(DB1,DB2,……,DBN)||
(RPC1=RPC2=……=RPCN)&&(DB1=DB2=……=DBN)&&Min(DP1,DP2,……,DPN)||
(RPC1=RPC2=……=RPCN)&&(DB1=DB2=……=DBN)&&(DP1=DP2=……=DPN)&&Min(PD
1,PD2,……PDN)
注:RPC:Root Path Cost DB:Designated Bridge;
DP:Designated Port PD:Port ID
4.1.5 指定网桥(Designated Bridge)
所谓的指定网桥,就是在生成树中某个LAN中指定端口所属于的那个网桥,用来进行转发BPDU,也就是说在该LAN中,一般只有该网桥离根网桥最近。
4.1.6指定端口(Designated Port)
所谓的指定端口,就是在生成树中某个LAN中指定转发BPDU(Bridge Protocol Data Unit)的端口。一般和另一个网桥的根端口相连接或直接与Host或Pc station相连接。
4.1.7冻结端口(Blocked Port)
所谓的冻结端口,就是必定在生成树中形成环路的端口中产生,它是由STP算法计算而得到的。被屏蔽或者说冻结的端口,就不再属于网络活动拓扑结构中,不能进行任何的网