上海:A Fresh Start ..A New Beginning...
如上图所示,当PC0发送一个目标地址为交换机未知的数据帧,交换机0会向1和2广播该数据帧,交换机2和3在自己的MAC地址表中也找不到该表项,同样会向外广播,这样,在这个网络中就形成了双向的广播环,而且该广播永远不会停止,除非切断物理链路。最终,由于这个环路,整个网络会因为广播风暴导致交换机宕机。交换机发生广播风暴的表现是所有端口的指示灯都闪烁,CPU的利用率不断升高,网络中主机不能正常通信。 但是环状的物理链路能够为网络提供备份线路,增强网络的可靠性,是必要的,因此就出现了STP协议,不断掉物理链路,而是在逻辑上断开环路,防止广播风暴的产生。 2.STP协议 STP为生成树协议,就是把一个环形的结构改变成一个树型的结构。STP协议就是用来将物理上存在环路的网络,通过一种算法,在逻辑上断开一些端口,来生成一个逻辑上的树型结构。 3.STP工作原理 生成树协议运行生成树算法,其过程可以归纳为以下三个步骤: 选择根网桥(root bridge) 选择根端口(root ports ) 选择指定端口(designated ports) (1)选择根网桥 选择根网桥实际上就是为网络选出一个树根,选择根网桥的依据是网桥ID,网桥ID由8个字节,前2个字节的十进制数为网桥优先级,后6个字节为网桥的MAC地址。 网桥优先级是用于衡量网桥在生成树算法中优先级的十进制数,取值范围为0---65535,默认为32768。 网桥ID中的MAC地址是交换机的MAC地址之一,当使用命令查看交换机的MAC地址表的时候,显示在最前面的MAC地址就是STP计算用的交换机的MAC地址。 按照生成树算法的定义,当比较某个STP参数的取值时,值小的优先级高,因此,选择根网桥的时候,比较的方法是看哪台交换机的网桥ID的值最小,优先级小的被选择为根网桥,在优先级相同的情况下,MAC地址小的为根网桥。 (2)选择根端口 根端口位于非根网桥上,每个非根网桥上选择一个根端口。 选择根端口的依据按顺序依次是: 到根网桥最低的根路径成本 直连的网桥ID最小 端口ID最小 根路径成本是两个网桥之间的路径上所有链路的成本之和,也就是某个网桥到达根网桥的中间所有链路的路径成本之和。 路径成本用来代表一条链路的带宽高低,一条链路的带宽越大,它传输数据的成本就越低。 端口ID是一个2字节的STP参数,由一个字节的端口优先级和一个字节的端口编号组成。 在STP选择根端口的时候,首先比较交换机端口的根路径成本,根路径成本低的为根端口。当根路径成本相同的时候,比较连接的交换机的网桥ID值,选择网桥ID值小的作为根端口,当网桥ID相同的时候,比较端口ID值,选择较小的作为根端口。 (3)选择指定端口 选择指定端口的顺序有3个: 根路径成本较低(与其他的交换机相比) 所在的交换机的网桥ID的值最小(可能性较低) 端口ID的值较小(可能性较低) 根网桥上的接口都是指定端口,因为根网桥上端口的根路径成本为0。 4.BPDU(桥协议数据单元) 交换机之间通过BPDU来交换网桥ID、根路径成本等信息。交换机从端口发送出一个BPDU帧,使用该端口本身的MAC地址作为源地址。交换机本身并不知道它周围是否还有其他的交换机存在。因此,BPDU帧利用了一个STP组播地址 01-80-C2-00-00-00作为它的一个目的地址,使之能到达相邻的并处于STP侦听状态的交换机。 每隔2S,BPDU报文便向所有的交换机端口发送一次,以便交换机(或网桥)能交换当前最新的拓扑信息,并迅速识别和检测其中的环路。 BPDU有两种类型: 一种是配置BPDU,用于生成树计算 一种是拓扑变更通告(TCN)BPDU,用于通告网络拓扑的变化。 5.生成树端口的状态 在STP运算过程中,交换机的每一个端口都必须依次经历好几种状态。 如果一个端口允许转发数据,它首先从disabled状态开始,经过几个被动状态,最后进入active状态。 Disabled(禁用):由网络管理员设定或因网络故障使系统的端口处于disabled状态,这个状态并不是端口正常的STP状态的一部分。 Blocking(阻塞):既不能接收或发送数据,也不能向它的地址表添加MAC地址。这个端口仅允许接收BPDU报文,选出指定端口后非指定端口也处于此状态。 Listening(侦听):一个交换机的一个端口可选为根端口或指定端口,它就将端口从blocking状态变为listening状态。在此状态,端口仍不能接收或发送数据帧。但可以接收发送BPDU报文,如果该端口失去根端口或指定端口的地位,那么就会回到blocking状态。 Learning(学习):该端口发送和接收BPDU报文,可以学习新的MAC地址,并将该地址加入到交换机的地址表中。 Forwarding(转发):既可以发送和接收数据帧,也可以收集MAC地址加入到它的地址表,还可以发送和接收BPDU报文。 从阻塞到侦听(20S) 从侦听到学习(15S) 从学习到转发(15S) 6.VLAN 与生成树 VLAN与生成树之间的关系有以下几种: IEEE的通用生成树 CST CISCO的每VLAN 生成树 PVST CISCO的能兼容CST的PVST PVST+ CST不考虑VLAN,以交换机为单位运行STP。 PVST是CISCO私有的协议,PVST为每个虚拟局域网运行单独的生成树实例。 7.PVST配置的意义: (1)配置网络中比较稳定的交换机为根网桥。 (2)利用PVST实现网络的负载分担。 (3)配置上行速链路,实现备份的上行链路快速恢复。 企业网络的结构主要包含3个层次:核心层、汇聚层和接入层,其中上行链路主要配置在汇聚层和接入层的交换机上。 配置上行速链路,当接入层或汇聚层的交换机主用的上行链路断开的时候,被阻塞的端口迅速转换到转发状态,不需要经过侦听和学习状态。 (4)配置速端口,使连接终端的端口快速进入到转发状态。 配置速端口不经过侦听和学习状态,直接进入转发状态,速端口只能配置在连接终端的接口上。 8.PVST配置命令 (1)启用生成树命令 交换机默认情况下启用生成树,一般情况下,尽量不要关闭生成树。 switch(config)#spanning-tree vlan vlan-list (2)指定根网桥:如果配置为primary,交换机的优先级变为24576,配置为secondary,优先级变为28672 switch(config)#spanning-tree vlan vlan-list root primary | secondary (3)修改网桥的优先级:配置一个交换机为根网桥,可以通过修改网桥优先级的命令来实现。 switch(config)#spanning-tree vlan vlan-list priority bridge-priority (4)修改端口成本 switch(config)#spanning-tree vlan vlan-list cost cost (5)修改端口优先级 switch(config)#spanning-tree vlan vlan-list port-priority priority (6)配置上行速链路 switch(config)#spanning-tree uplinkfast (7)配置速端口 switch(config-if)#spanning-tree portfast (8)查看生成树的配置 switch#show spanning-tree (9)查看某个VLAN的生成树详细信息 Switch#show spanning-tree vlan vlan-list 9.ethernetchannel (以太网通道) 以太网通道通过捆绑多条以太链路来提高链路带宽,并运行一种机制,将多个以太网通道捆绑成一条逻辑链路。以太网通道最多可以捆绑8条物理链路。 以太网通道必须遵循以下一些规则: (1)参与捆绑的端口必须属于同一个VLAN,如果是在中继模式下,要求所以参加捆绑的端口都是在中继模式下。 (2)如果端口配置的模式是中继模式,那么,应该在链路两端将通道中的所有端口配置成相同的中继模式。 (3)所有参与捆绑的端口的物理参数设置必须相同,应该有同样的速度和全/半双工模式设置。 (4)三层端口不能配以太通道,没有这个命令。 10.实验 实验任务:在交换机上配置VLAN,启用STP,实现不同的VLAN选择不同的根网桥,实现负载分担。在接入交换机上配置上行速链路。配置接入交换机连接主机的端口为速端口。在两台核心交换机之间配置以太网通道。 实验拓扑:
Switch1 F0/15 <----> Switch2 F0/15 Switch1 F0/14 <----> Switch2 F0/14 Switch1 F0/13 <----> Switch3 F0/13 Switch2 F0/13 <----> Switch4 F0/13 Switch1 F0/12 <----> Switch4 F0/12 Switch2 F0/12 <----> Switch3 F0/12 VPCS V0/1 <----> Switch3 F0/1 VPCS V0/2 <----> Switch4 F0/1 实验步骤: 在交换机1上配置VTP域名为benet,VTP模式为SERVER,并且创建2、3、4三个VLAN,保存退出
配置交换机2的VTP 域名为benet,VTP模式为server
如上图所示,在实际的企业环境中,会有多台交换机共同作用,在每台交换机上都会根据部门划分VLAN,为了让处于不同交换机上的VLAN之间能够通信,因此我们使用中继(VLAN TRUNK) VLAN TRUNK的作用:不同交换机上相同ID的VLAN相互通信,传输前加个标识,把标识的方法告诉对方。 1.链路的类型 在交换网络中,有两种类型的链路:接入链路和中继链路。 (1)接入链路 只是VLAN的成员,属于并且只属于一个VLAN的端口。这个端口不能从另外一个VLAN接收或发送信息,除非该信息经过了路由。接入链路通常链接客户机。 (2)中继链路 常用来将一台交换机连接到其他交换机或路由。 2.数据帧通过中继链路的过程 (1)连接在SW0上的VLAN 10的主机A发送数据帧给SW 1上的VLAN 10中的主机B,主机A发送普通的数据帧。 (2)交换机SW 0接收到这些数据帧后,根据接收到的数据帧的端口信息,得知此帧出于何处,并且查看MAC地址表,知道需要转发给SW 1,于是,SW 1就会在这些数据帧上打上VLAN的标记,也就是在数据帧中插入一个字段,将VLAN ID信息写入这个字段。 (3)SW 1接收到这些有VLAN ID标识的数据帧后,根据目标MAC地址,将数据帧转发给VLAN 10中的主机B。 3.VLAN的标识及两种封装类型 在以太网上实现中继,可使用两种封装类型: IEEE802.1Q ISL(INTER SWITCH LINK) (1)IEEE802.1Q工作原理及帧格式 802.1 Q是共有的标记方法,使用了一种内部标记机制。内部意味着标记插入到数据帧内;标记意味着对数据进行修改。中继设备将插入4字节的标记,并重新计算帧校验序列。 IEEE802.1Q标准定义了如下内容: VLAN的架构; VLAN中所提供的服务; 提供这些服务所涉及的协议和算法; 它包括12位的VLAN 标识符(VLAN ID)只有交换机之间才能识别标记。 (2)ISL工作原理及帧格式 ISL是CISCO专有协议,是通过在帧外围增加封装而在中继链路上多路复用VLAN的一种方法,它用来互连多个交换机,当数据流在中继链路上的交换机间传输时,维护VLAN信息。 只有当帧转发到配置为中继链路的端口时,VLAN ID才添加到帧上,如果帧转发到接入链路的端口时,将去掉ISL封装。 ISL将帧标记信息添加在帧的帧头和帧尾,增加一个26字节的帧头和4字节的帧尾,帧尾包含了一个CRC,用来确保新封装的帧数据的完整性。 ISL主要有3部分组成: 头部; 原始以太网帧; 尾部的帧校验序列。 ISL有一个15位的VLAN ID。 (3)IEEE802.1Q和ISL的异同 802.1Q是公有的VLAN TRUNK标记,而ISL是CISCO私有的标记方式; 802.1Q将标记添加到以太网帧的中间,而ISL将标记添加到以太网帧的首尾; ISL标记比802.1Q标记长26个字节,802.1Q标记共4个字节,ISL共30个字节。 4.TRUNK的几种模式和协商 (1)TRUNK的工作模式 动态中继协议(DTP)为cisco专有,只能用于交换机之间的中继链路,不能用于交换机和路由器之间的中继链路,每隔30S发送DTP帧。 快速以太网和千兆以太网中继配置模式如下: 开启:将端口设置为永久中继模式,必须在配置中明确定义封装格式; 关闭:将端口设置为永久非中继模式,并且将链路转变为非中继链路; 企望:让端口主动试图将链路转变成中继链路,如果相邻端口被设置成开启、企望或自动模式,则该端口可以变成中继模式; 自动:使该端口愿意将链路变成中继链路,如果相邻端口设置为开启或者企望模式,则该端口就可以变成中继端口。 接入链路不能设置TRUNK,TRUNK不属于任何VLAN。 实验:在交换机上配置VLAN TRUNK 实验拓扑:
VPCS V0/1 <----> Switch1 F0/1 VPCS V0/2 <----> Switch1 F0/2 VPCS V0/3 <----> Switch1 F0/3 VPCS V0/4 <----> Switch2 F0/1 VPCS V0/5 <----> Switch2 F0/2 VPCS V0/6 <----> Switch3 F0/1 VPCS V0/7 <----> Switch3 F0/2 Switch1 F0/15 <----> Switch2 F0/15 Switch2 F0/14 <----> Switch3 F0/14 连接在三台交换机上的主机能够访问相同VLAN 的主机; 在TRUNK上移除了VLAN 20后,VLAN 20的主机不能跨交换机通信。 实验步骤: 在交换机1上添加VLAN 10 、VLAN 20、VLAN 30保存退出 在交换机2上添加VLAN 10 、VLAN 20保存退出 在交换机3上添加VLAN 10 、VLAN 30保存退出