- 交换机/路由器及其配置
- 石硕 邹月主编
- 375字
- 2020-08-27 09:41:25
第2章 交换机的结构与基本功能
本章提要
交换机用做网络集中设备,其端口连接网络中的主机。在转发数据帧时,端口带宽能够独享。
交换机按其工作在OSI参考模型的对应层次,包括第二层、第三层和第四层交换机,可管理的交换机内置了操作系统软件。
第二层交换机采用帧交换转发数据,帧交换的方式有3种,即存储转发、伺机通过和自由分段。
交换机通过学习进入自己端口的数据帧源MAC地址,记下地址与端口的对应关系,生成MAC地址与交换机端口的对应关系表——MAC地址表;通过MAC地址表,交换机可以实现数据帧的单播转发。
使用备份连接是提高网络可靠性的常用方法,但所形成的环路可能会导致广播风暴和引起多帧副本问题。STP协议的应用可消除环路问题,使冗余备份得以实现。
【学习目标】
(1)了解以太网交换机的基本结构与功能;
(2)学会查看MAC地址表;
(3)理解链路冗余的作用和环路的危害,学会生成树协议STP的配置。
2.1 交换机的作用与组成
本章所指的交换机若无特别说明,均指以太网交换机。在以太网络中,交换机起的是信息中转站的作用,它把从某个端口接收到的数据从其他端口转发出去。不同厂家、不同型号的交换机,其外观和内部组成有一定的差异。
2.1.1 交换机的外观
交换机前面板上的多个RJ45接口是以太网口,用来连接计算机或其他交换机。后面板或前面板上的串口是交换机的配置口,用串口线缆(Console线)将其与计算机的串口连接起来,可实现对交换机的配置操作。
前面板上有若干个指示灯,其亮、灭或闪烁可以反映交换机的工作状态是否正常,此外还有电源插口、电源开关等。
可上机架(柜)式交换机的标准长度为48.26cm(19in)。如图2-1所示的是Cisco Catalyst 4500和Cisco Catalyst 2900系列交换机的外观。
图2-1 交换机的外观
2.1.2 交换机的内部组成
交换机的内部组成包括以下几部分:
CPU:交换机使用特殊用途集成电路芯片ASIC,以实现高速的数据传输。
RAM/DRAM:主存储器,存储当前运行的配置文件。
NVRAM:存储备份配置文件等。
FlashROM:存储系统软件、映像文件等,是可擦可编程的ROM。
ROM:存储开机诊断程序、引导程序和系统软件。
接口电路:交换机各接口的内部电路。
2.2 交换机的分类
可按多种方式对交换机进行分类,若参照开放系统互联参考模型OSI,则交换机属于第2~4层的设备。
2.2.1 OSI参考模型与数据通信设备
开放系统互联参考模型OSI分为7层,其层次及其相应设备如表2.1所示。
根据OSI参考模型,每一层都使用相应的协议实现特定的功能,完成数据交换。每一层数据逻辑地在源主机与目标主机对应层之间进行传输,屏蔽下层的细节。而数据实际的传输过程则是:在发送端,应用层数据经过下面各层,依次被各层进行封装,最后通过物理层下的传输介质完成物理层比特流的传输,到达接收端的物理层;在接收端,各层依次拆封并向上层提交数据,最后送达应用层。
表2.1 OSI参考模型的层次及其相应设备
交换机可以工作在第2~4层,对应的技术称为第二层、第三层和第四层交换技术,第二层和第三层交换机是目前使用最多的交换机。
本书主要介绍第二层交换技术和第二层交换机的应用,同时介绍涉及工程应用的第三层交换机的配置和应用。
2.2.2 交换机的简单分类
这里对以太网交换机按配置是否可以改变或者按在OSI参考模型中的对应层次来进行简单的分类。
1.模块式与固定配置式
按交换机的配置可否改变,可把交换机分为模块式和固定配置式交换机。
模块式交换机的模块可以拔插,模块通常是100Mbit/s或1000Mbit/s光纤接口模块、1000Mbit/s RJ45接口模块,或者是堆叠模块。交换机上设有相应的插槽,使用时,将模块插入插槽之中。模块式交换机的配置灵活,模块可按需要购买。一般来说,模块式交换机的档次较高,模块插槽结构可最大程度的保护模块。
固定配置式交换机的接口固定,硬件不可升级。
2.第二层、第三层与第四层交换机
第二层交换机工作在OSI参考模型的第二层,它的每个端口拥有自己的冲突域。如果第二层交换机具有虚拟局域网(Virtual Local Network,VLAN)功能,则每一个VLAN称为一个广播域。第二层交换机采用3种方式转发数据帧,即直通(Cut Through)、存储-转发(Store and Forward)和自由分段(Fragment Free)。
第三层交换机根据目的IP地址转发数据包,与路由器一样,它也必须创建和动态维护路由表。但是,第三层交换机能做到“一次路由,多次交换”,即第三层交换机能够把报文转发到不同的子网,并在后续的通信中采用比路由更快的交换方式转发数据包。
第四层交换机可以解释第四层的传输控制协议(TCP)和用户数据报协议(UDP)信息,允许设备为不同的应用(使用端口号区分)分配各自的优先级。这样,第四层交换机可以“智能化”地处理网络中的数据,最大限度地避免阻塞,提高带宽利用率。
2.3 交换机在网络中的连接及作用
2.3.1 交换机的端口
交换机的端口又称接口,是8个引脚的RJ45电接口或SC、ST、FC等光纤接口。其电接口种类通常有10Base-T、10Base-F、100Base-TX、100Base-T4、1000Base-T、1000Base-CX等,光纤接口种类通常有100Base-FX和1000Base-FX等。
其中,Base指的是采用基带传输技术,10、100 和1000 分别代表传输速率为10Mbit/s、100Mbit/s和1000Mbit/s,通常把对应的技术分别称为以太网、快速以太网和千兆位以太网。
交换机的各种端口如表2.2所示。
表2.2 交换机的各种端口
2.3.2 共享式与交换式网络
采用双绞线或光纤作为传输介质的网络,使用集线器或交换机作为网络的中心。计算机之间的通信,通过集线器或交换机进行数据的转发。
1.集线器与共享式局域网
集线器通常称为Hub,按其使用的技术可分为被动式与主动式两种。前者只提供简单的集中网线转发数据的工作,后者可对数据做一定的处理。
集线器按端口的传输速率(或称带宽)来分,有10Mbit/s和100Mbit/s两种。通常所说的集线器是指的共享式集线器,其带宽是所有端口共享的。例如,一台16端口的100Mbit/s集线器,当全部端口都使用时,每一端口的带宽就只有100Mbit/s的1/16。由集线器作为中心设备的局域网和总线型拓扑的局域网称为共享式局域网。
集线器的全部端口属于同一个冲突域,集线器在端口之间转发数据帧时采用向所用端口广播的方式进行,因此其全部端口又属于同一个广播域。单一的冲突域和广播域使网络在通信繁忙时容易产生阻塞和广播风暴。可以使用多台集线器连接或堆叠起来以增加总的端口数,但不能用此方法来延伸网络的距离。
随着交换机价位的降低,共享式集线器正逐渐淡出局域网领域。
2.交换机与交换式局域网
交换机可以看做是功能增强型的集线器,有时也称为交换式集线器。它采用了许多新技术,如其端口之间的通信可全双工进行,能实现数据的线速转发等。其最显著的特点之一是端口带宽的独享。
例如,一台100Mbit/s交换机,在使用时每一个端口的数据传输速率都是100Mbit/s,数据传输速率不会随着使用端口数的增加而减少,即所说的端口带宽独享。
应当注意的是,在网卡和交换机端口、或交换机和交换机端口相连时,只有当相连接的两者的带宽为同一值时,才能实现以该速率传输数据。例如,只有网卡和交换机都是1000Mbit/s时,才能实现1000Mbit/s的传输速率;否则只能按两者中较小的速率传输,这一特性称为带宽的自动协商或者带宽的自适应。
光纤能支持1000Mbit/s以上的传输速率,但使用光纤的网络未必都是千兆位以太网,最初的光纤以太网就是10Mbit/s的以太网。
通常把由交换机作为中心设备的局域网称为交换式局域网。
交换机的端口按其带宽可分为10Mbit/s、100Mbit/s、10/100Mbit/s自适应和1000Mbit/s(1Gbit/s),10Gbit/s。现在市面上的交换机端口带宽一般都有自适应功能,有的交换机上只有以上端口之一,更多的则是兼有两种或多种端口,而具有10Gbit/s端口的交换机则在大型公司网络或ISP网络使用。
交换机的每一个端口都独立转发数据(各属不同的冲突域),只要背板带宽足够宽,就不会因端口的使用数增加而降低端口的传输速率。但交换机的所有端口仍属于同一个广播域,当网络中的广播信息增多时,也会导致网络传输速率的降低。
如果采用虚拟局域网VLAN技术,则每一个VLAN具有各自的广播域,这样交换机就有了多个广播域。广播数据帧被局限在各自的域内,可有效地防止广播风暴的发生。
与集线器一样,也可使用多台交换机连接或堆叠起来增加总的端口数。然而,交换机的连接却可以用来延伸网络的距离,如图2-2所示的连接可使网络距离扩展至400m。
最廉价的交换机可能不支持网络管理功能,只用于简单的网络环境。支持网络管理功能的交换机称为可管理或可配置的交换机。
若用在小型、简单的网络中,可管理的交换机也不需配置(实际是使用了默认配置)即可工作;而当网络规模较大或者较为复杂时,就需要对其进行配置和管理。
图2-2 连接交换机以扩展网络距离
2.4 ARP协议与MAC地址表
2.4.1 ARP协议
连接在交换机端口上的主机通过ARP地址解析协议查询目标网卡IP地址所对应的物理地址(又称数据链路层地址或MAC地址,即Media Access Control地址),以便进行相互间数据帧的传输。
MAC地址是固化在网卡内部用于唯一确定网卡身份的标识,是网卡在生产时被永久写入芯片的固定值。全球的网卡生产厂商按照其MAC地址范围制造网卡,因此不会有相同MAC地址的网卡。这样,MAC地址就可用做唯一标识设备的地址。
网络层中的数据包在主机查得目标的链路层地址后被封装成数据帧,在链路层交给交换机,交换机则通过帧头的MAC目标地址找到目标主机。
由于交换机在数据传输过程中不用检查第三层(网络层)的包头信息,而是直接由第二层帧结构中的MAC地址来决定数据的转发目标,因此,数据的交换过程几乎没有软件的参与,从而大大提高了交换进程的速率。
2.4.2 MAC地址表
在交换式网络中,各主机的MAC地址是存储在交换机的MAC地址表(也称MAC地址数据库)中的。MAC地址表记录的是各主机MAC地址与对应的交换机端口号,所以有时也称为MAC地址-端口表。简单地说,MAC地址表记录了哪台或哪些主机连接在了哪台交换机的哪个端口上。交换机在工作过程中,会向MAC地址表不断写入新学到的MAC地址,一旦交换机掉电,或连接交换机的各主机在一定时间(地址表的老化时间)内没有相互访问,则其MAC地址表会被自动清除。
1.MAC地址表的建立
在如图2-3所示的网络中,若PC1首次访问PC3,则交换机的MAC地址表建立过程如下:
图2-3 MAC地址表的建立
(1)发送ARP请求帧。PC1向PC3发送查询其MAC地址的消息帧,该消息帧包含PC1(源)MAC地址、IP地址和PC3的IP地址等信息。该帧经交换机Switch的F0/0端口先发送到交换机上。该帧是要查询IP地址为某个值的目标主机的MAC地址,是由地址解析协议ARP构造而成的,故也称为ARP请求帧。
(2)交换机生成第一条地址表记录。交换机Switch在端口F0/1收到该查询消息帧后,从该帧的MAC地址信息得知PC1的MAC地址,就将该端口和该MAC地址记录在自己的MAC地址表中,这样就有了第一条记录。
(3)交换机广播ARP请求帧。由于交换机Switch此时还没有PC3的MAC地址表记录,不确定PC3连接在哪个端口上,于是就向除F0/0端口外的其他所有端口转发(广播)该ARP请求帧。
(4)ARP应答帧。PC3接收到该ARP请求帧后,发现自己是被查询对象(询问的是自己的IP地址所对应的MAC地址),就会应答该帧。从该帧中,PC3得知了PC1的MAC地址和IP地址并写入自己的ARP表中;同时,构造并发送以PC1的MAC地址为目标,以自己的MAC地址为源,还包含PC1和PC3的IP地址等信息的ARP应答帧。该帧经交换机Switch的F0/7端口先发送到交换机上。
(5)交换机生成第二条MAC地址记录。交换机Switch从F0/7端口接收到ARP应答帧后,从该帧的源MAC地址信息得知PC3的MAC地址,就将该端口和该MAC地址记录在自己的MAC地址表中,这样就有了第二条记录。
(6)交换机转发ARP应答帧。由于交换机此时已经有了PC1的MAC地址表记录,故此次转发不再需要广播,而是查看MAC地址表,得知该帧的目标MAC地址主机位于F0/1端口,就会把该应答帧从该端口转发出去,送达PC1。PC1收到该ARP应答帧,从该帧得知PC3的MAC地址和IP地址并写入自己的ARP表中。
经过以上过程,交换机中生成了MAC地址表,而PC1和PC3中生成了记录目标IP地址和MAC地址的ARP表。
在交换机Switch广播查询消息帧时,PC2也会收到。PC2从该消息帧查询的目标IP地址得知自己不是被查询对象(与自己的IP地址不符合),就会丢弃该帧,不予以响应。
2.计算机之间的通信
此后PC1和PC3根据ARP表由IP地址查找MAC地址进行链路层的通信,交换机按照接收到数据帧的MAC地址查找地址表中对应的端口,把数据转发出去。
3.MAC地址表更新
如果主机在一定时间(称为老化时间)内未进行通信,交换机将会清除相应端口对应的MAC地址记录,再次通信时需重新通过步骤(1)~(6)生成MAC地址记录,这一过程称为MAC地址表的更新。
如果是主机之间第一次通信,或者超过MAC地址表更新时间后继续通信,交换机都会广播ARP表进行查询,所以,以太网中有的广播是不可避免的,也是必需的。
任务2-1 MAC地址表的查看与人工指定地址表项
【主要设备】
Cisco 2960交换机2台,计算机3台。
【网络拓扑】
用网线连接计算机和交换机,如图2-4所示,此任务使用Switch1的f0/1端口连接Switch0的f0/4端口。
图2-4 连接计算机和交换机
【操作步骤】
1.查看MAC地址表
(1)在计算机间无访问时查看MAC地址表。给交换机上电,用超级终端或Telnet方式登录交换机,使用show mac-address-table命令查看,其中Switch1的MAC地址表显示如下:
Switch#show mac-address-table Mac Address Table -------------------------------------- Vlan Mac Address Type Ports ---- ---------- -------- ----- 1 00e0.b057.d004 DYNAMIC Fa0/1 Switch#
该表中有一项记录,表示的意义是交换机Switch1的f0/1端口上所连接的设备(Switch0的f0/4端口)的MAC地址是00e0.b057.d004。f0/1端口属于Vlan1(默认)。该记录的Type为DYNAMIC,表示该表项是交换机动态学习到的,关于动态的含义会在以后的内容中介绍。
读者可以自己设想,此时Switch0的MAC地址表应该是怎样的。
相互连接的交换机之所以启动完成后即会有MAC地址表记录,是因为交换机要彼此发送桥协议数据单元(BPDU,Bridge Protocol Data Unit)进行联系,所以会查询出对方端口的MAC地址。
(2)计算机间访问后MAC地址表的查看。让3台计算机相互访问,如在PC0上分别ping PC1和PC2,然后查看Switch1和Switch0的MAC地址表。
Switch1的MAC地址表如下:
Switch#show mac-address-table Mac Address Table -------------------------------------- Vlan Mac Address Type Ports ---- ---------- -------- ----- 1 0002.4ad5.5bb5 DYNAMIC Fa0/1 1 0005.5ea9.0c91 DYNAMIC Fa0/3 1 0010.1145.1004 DYNAMIC Fa0/2 1 00e0.b057.d004 DYNAMIC Fa0/1 Switch#
Switch0的MAC地址表如下:
Switch#show mac-address-table Mac Address Table -------------------------------------- Vlan Mac Address Type Ports ---- ---------- -------- ----- 1 0002.4ad5.5bb5 DYNAMIC Fa0/1 1 0005.5ea9.0c91 DYNAMIC Fa0/4 1 0010.1145.1004 DYNAMIC Fa0/4 1 00e0.a3b9.d601 DYNAMIC Fa0/4 Switch#
读者可以先判断表中的MAC地址是属于谁的,然后使用命令ipconfig/all查看计算机的MAC地址,验证自己的判断。
(3)MAC地址表的老化时间。MAC地址表建立后,如果计算机之间在一定的时间内不通信,则相应的表项就会被自动删除,当新的访问开始时再建立,这称为MAC地址表的自动更新,也是表项中动态(Dynamic)的含义之一。
表项从建立到自动删除的时间间隔称为老化时间。默认动态的MAC地址表项老化时间是300s,其值可以修改。查看和修改老化时间的命令如下:
Switch#show mac-address-table aging-time //查看老化时间 Switch(config)# mac-address-table aging-time 150 //修改老化时间为150s
2.人工配置MAC地址表项
有时基于安全或排他性的考虑,在交换机的某些端口上,我们可能不希望交换机自动学习MAC地址,而是由网络管理员人工配置,这称为端口-MAC地址绑定。这样的地址表项不会自动刷新,故与动态(Dynamic)表项对应,也称为静态(Static)MAC地址表项。例如,为交换机Switch1的f0/3端口绑定MAC地址0005.5ea9.0c99的命令如下:
Switch(config-if)#switchport port-security mac-address 0005.5ea9.0c99
注意,交换机只允许在Access或Trunk上绑定且默认只允许绑定一个MAC地址。要进行绑定操作,需要设置端口模式为Access或Trunk(Cisco3560交换机默认为动态协商)并且必须激活端口安全。
在大型网络中,端口数量成千上万,如果让管理员手动将每一台计算机的MAC地址绑定到端口,将是一项十分烦琐、低效的工作;而且对于网络的需求复杂,这样做也缺乏足够的灵活性。可以使用端口的sticky(粘连)特性来解决这个问题,sticky让交换机在某端口动态学习MAC地址并固定下来,命令如下:
Switch(config-if)#switchport port-security mac-address sticky
保存配置并重启交换机,则不需要再对已经固定下来的地址交换机端口重新学习,这些地址称为sticky MAC地址。它类似于管理员手动配置的静态地址,却不用管理员逐条去配置,大大提高了工作效率。sticky同样只能在Access或Trunk接口配置并且要激活端口安全。
特别要注意的是,在交换机激活端口安全后,动态学习到的MAC地址类型也显示为静态,但是与人工配置静态MAC或sticky MAC地址不同的是,该地址会在老化时间到来时或重启交换机后被清除。
2.4.3 局域网的帧交换方式
以太网交换机在传送数据时,数据被封装成帧,采用帧交换(Frame Switching)技术。该技术包括3种主要的交换方式,即存储转发(Store and Forward)、伺机通过(Cut Through)和自由分段(Fragment Free)。
1.帧交换方式
(1)存储转发方式是最基本的交换技术之一。在进行转发数据帧前,该数据帧将被完全接收并存储在缓冲器中,数据帧从头到尾全部接收完毕才进行转发。其间,交换机需要解读数据帧的目的地址与源地址,以根据MAC地址表进行正确的转发。
在存储转发过程中还要进行高级别的冗余错误检测(CRC)工作,如果所接收到的数据帧存在错误、太短(小于64B)或太长(大于1518B),最终都会被抛弃。
采用这种转发方式的交换机在接收数据帧时延迟较大,且越大的数据帧延迟时间越长,但是对错误的检测能力强。
(2)伺机通过(也称fast forward或real time模式)技术是交换机在接收整个数据帧之前读取数据帧的目的地址到缓冲器,随后在MAC地址列表里查询目的地址所对应的端口,转发该帧。简而言之,它读取到帧的目标地址以后就立即进行转发。
采用这种转发方式,在整个数据帧完全接收之前就会转发。这种方法减少了传输的延迟,但由于不对帧进行错误检测,传送到目标主机帧的误码率(码元错误发生率)可能较高。
还有些交换机可以把存储转发与伺机通过两种技术合并在一起使用。它们首先在交换机里设置一个错误检测的门限值,当误码率低于该值时使用伺机通过的交换方法以减少数据的传输延迟;当误码率高于该门限值时,交换机将自动改为存储转发交换方式,从而保证数据的正确性,在链路恢复正常后,误码率下降到低于该门限值后,系统将再次回到伺机通过方式工作。
(3)自由分段(也称modified cut-through模式)技术是在伺机通过交换方式的基础上调整而成的。自由分段在转发数据帧之前,检测可能有错误发生的冲突分段(长度为64个字节)。这是因为通常数据帧的错误发生在刚开始的64个字节内的概率最大。简而言之,它读取到帧数据字段前的64个字节,然后进行转发。自由分段交换方式的错误检测级别要高于伺机通过交换方式。
2.Cisco交换机交换方式的设置
Catalyst 1900系列交换机用switching-mode命令设置工作是存储-转发方式还是自由分段方式,如下所示:
C1912(config)#switching-mode ? fragment-free Fragment Free mode store-and-forward Store-and-Forward mode
2.5 VLAN技术
2.5.1 第二层交换式网络的缺点与VLAN技术
1.第二层交换式网络的缺点
由于整个网络属于同一个广播域,因此任何一个广播帧或多播帧(Multicast Frame)都将被交换机广播到整个局域网中的每一台主机。在网络通信中,广播帧是普遍存在的,这些广播帧将占用大量的网络带宽,导致网络速度和通信效率的下降,并额外增加了主机为处理广播信息所产生的负荷。而蠕虫病毒和其他一些类似的网络攻击相当泛滥,如果不进行有效的广播域隔离,一旦病毒发起泛洪广播攻击,将会很快占用完网络的带宽,导致网络阻塞和瘫痪。概括地说,第二层交换式网络存在如下缺点:
✧ 全网属于一个广播域,每一次广播的数据帧无论是否需要,都会到达网络中的所有设备,这就必然会造成带宽资源的极大浪费。
✧ 全网属于一个广播域,极易引起广播碰撞和广播风暴等问题。
✧ 网络的安全性不够高,在这种网络结构中,所有用户都可以监听到服务器及其他设备端口发出的广播数据帧,因此是极不安全的。
2.VLAN技术
为了解决存在的问题,早期采用使用路由器从第三层来分隔广播域的技术,即通过把网络中的主机设置不同的子网,广播包传送范围被限制在各自的子网里,不同子网间的访问则通过路由器的端口进行转发。在第三层实现广播域分隔技术的成本高,路由器每个端口的价格远远高于相同速率的交换机,因此很快被基于交换机的VLAN(虚拟局域网,Virtual Local Area Network)技术取代。
VLAN是将局域网从逻辑上按需要划分为若干个网段,在第二层实现分隔广播域,分隔开用户组的一种交换技术。这些网段物理上是连接在一起的,但逻辑上已经分离,即原来一个局域网被划分成了多个局域网,故名虚拟局域网。
VLAN允许一组不限物理位置的用户群共享一个独立的广播域,可在一个物理网络中划分多个VLAN,即可使不同的用户群属于不同的广播域。这样,通过划分用户群、控制广播范围等方式,VLAN技术能够从根本上解决网络效率与安全性等问题。
VLAN对广播域的划分是通过交换机软件完成的。它通过对用户分类来规划用户群,如按项目组、部门或管理权限等来进行VLAN划分。划分VLAN时能够超越地域的界限,做到真正意义上的逻辑分组。在划分VLAN的交换机上,每个端口都能被赋予一个VLAN号,相同VLAN号的用户同属于一个独立的广播域。广播被限制在各自的VLAN之内,因此,VLAN能够控制广播的影响范围,减少由于共享介质所造成的安全隐患。
划分VLAN后的网络如图2-5所示,Client1和Client3属于VLAN1,Client2和Client4属于VLAN2。在同一个VLAN内,计算机之间可以正常访问;而不同VLAN间的单播帧和广播帧都不能直接到达对方的区域。不同VLAN的计算机之间的访问需通过三层设备,如路由器或三层交换机来实现。从图中可看到,虽然计算机所处的物理位置不同,但却可以划归在同一个VLAN中。
图2-5 划分VLAN后的网络
2.5.2 划分VLAN的好处
(1)广播控制(Broadcast Control)。通过将一个网络划分成多个VLAN,可以实现广播范围的控制,能够有效减少广播风暴、广播冲突和网络带宽资源的浪费等问题。
(2)灵活性(Flexibility)。VLAN技术能够在逻辑上将不同地理位置的计算机划分在同一个广播域内,而无VLAN技术时,在更改一台主机的所属组时,必须将此主机直接接到该组所在的交换机上。这样,VLAN可以非常灵活地添加或删除域内的主机而不受主机物理位置的限制,这为网络管理带来了极大的方便,如对网络流量的均衡性(Scalability)控制就会很容易实现。
(3)安全性(Security)。不同VLAN之间是不能够直接相互访问的,因此,按职责权限把用户(主机)划归在不同的VLAN里,就可使各自的内部信息得到保护,从而增强了安全性。
任务2-2 在单台交换机上划分VLAN
【主要设备】
Cisco 2960交换机1台,计算机3台。
【网络拓扑】
网络拓扑如图2-6所示,PC1、PC2和PC3分别连接在交换机的端口f0/1、f0/2和f0/3上,把f0/1划分为VLAN 10,f0/2和f0/3划分为VLAN 11。
图2-6 网络拓扑
【任务要求】
一个简单的VLAN配置,只需设置VLAN号并把端口加入相应的VLAN即可。验证方法:可查看VLAN信息,还可在PC1、PC2和PC3上互ping,属于同一个VLAN的PC能够ping通,否则不能ping通。
【操作步骤】
1.增加相应的VLAN并验证
在交换机Switch上划分VLAN 10和VLAN 11,假如VLAN 10属于技术部,VLAN 11属于财务部,可以给相应的VLAN命名,以便于记忆和管理。
Switch1(config)#vlan 10 //在全局配置模式下增加一个VLAN,编号为10, //并进入VLAN配置模式 Switch1 (config-vlan)#name TECH //在VLAN配置模式下,将VLAN命名为TECH Switch1 (config-vlan)#exit //退出VLAN配置模式 Switch1 (config)#vlan 11 //在全局配置模式下增加一个VLAN,编号为11, //并进入VLAN配置模式 Switch1 (config-vlan)#name FINANCE //在VLAN配置模式下,将VLAN命名为FINANCE Switch1 (config-vlan)#exit //退出VLAN配置模式 Switch1 (config)#end Switch1# Switch1#show vlan brief //显示交换机当前VLAN配置的简要信息 VLAN Name Status Ports ---- -------------------- ---------- ------------------------- 1 default active Fa0/1, Fa0/2, Fa0/3, Fa0/4 Fa0/5, Fa0/6, Fa0/7, Fa0/8 Fa0/9, Fa0/10, Fa0/11, Fa0/12 Fa0/13, Fa0/14, Fa0/15, Fa0/16 Fa0/17, Fa0/18, Fa0/19, Fa0/20 Fa0/21, Fa0/22, Fa0/23, Fa0/24 10 TECH active 11 FINANCE active 1002 fddi-default active 1003 token-ring-default active 1004 fddinet-default active 1005 trnet-default active
可以看到交换机Switch1上已经增加了两个VLAN,分别是VLAN 10名称为TECH,VLAN11名称为FINANCE。最后一列Ports显示交换机上的端口分别属于哪个VLAN,默认情况下,以太网交换机所有的端口都属于VLAN1。
2.将交换机的相应端口加入VLAN并查看配置结果
第1台计算机连接到交换机的F0/1,属于技术部TECH;第2、3台计算机分别连接到交换机的F0/2和F0/3,属于财务部FINANCE,配置命令如下:
Switch1(config)#interface f0/1 //进入端口f0/1 Switch1(config-if)#switchport mode access //配置此端口的模式为Access模式(默认为Dynamic动态协商模式) Switch1(config-if)#switchport access vlan 10 //将此端口加入VLAN10 Switch1(config-if)#interface range f0/2-3 //进入端口f0/2和f0/3 Switch1(config-if)#switchport mode access //配置这两个端口的模式为Access模式 Switch1(config-if)#switchport access vlan 11 //将这两个端口加入VLAN11 Switch1(config-if)#end Switch1# Switch1#show vlan brief //显示交换机当前VLAN配置的简要信息 VLAN Name Status Ports ---- -------------------- ---------- ------------------------- 1 default active Fa0/4, Fa0/5, Fa0/6 Fa0/7, Fa0/8, Fa0/9, Fa0/10 Fa0/11, Fa0/12, Fa0/13, Fa0/14 Fa0/15, Fa0/16, Fa0/17, Fa0/18 Fa0/19, Fa0/20, Fa0/21, Fa0/22 Fa0/23, Fa0/24 10 TECH active Fa0/1 11 FINANCE active Fa0/2,Fa0/3 1002 fddi-default active 1003 token-ring-default active 1004 fddinet-default active 1005 trnet-default active
完成以上配置后,不同部门的计算机就会被隔离,可以尝试将这3台计算机配置为同一个IP子网,然后用ping命令测试它们是否能互相通信,结果一定是PC2和PC3之间可以ping通,而PC1与PC2、PC3之间不能ping通。
3.另外一种配置交换机VLAN的方法
可以通过VLAN数据库配置模式完成,配置实例如下:
(1)进入VLAN数据库配置模式。
Switch1#vlan database % Warning: It is recommended to configure VLAN from config mode, as VLAN database mode is being deprecated. Please consult user documentation for configuring VTP/VLAN in config mode.
以上提示信息推荐在全局配置模式而不是在该模式下配置VLAN。
(2)新建VLAN并命名。
Switch1(vlan)#vlan 10 nameTECH //新建一个VLAN10名称为TECH,下面两行为屏幕提示 VLAN 10 added: Name:TECH Switch1(vlan)#vlan 11 name FINANCE //新建一个VLAN11名称为FINANCE,下面两行为屏幕提示 VLAN 11 added: Name: FINANCE Switch1(vlan)#exit //退出并自动应用配置 APPLY completed. Exiting....
这种在VLAN数据库配置模式下配置的方式现在用得比较少,大部分VLAN的配置都是在全局配置模式下完成的。
在全局配置模式下想要删除已创建的VLAN,可参照以下配置实例:
Switch1(config-if)#no switchport access vlan 10//将端口从VLAN10退出 Switch1(config)#no vlan 10 //删除ID号为10的VLAN
2.6 链路冗余与生成树协议
2.6.1 冗余备份与环路
在许多交换机组成的大/中型网络环境中,通常都使用一些备份连接,以提高网络的稳定性。备份连接也称备份链路、冗余链路等,如图2-7所示,交换机Switch1的端口Port7与交换机Switch3的端口Port6之间的链路就是一个备份连接。在主链路(图中Port1与Port3之间的链路)出故障时,备份链路将自动启用,从而提高网络的整体可靠性。
但是备份连接会使网络存在环路,图2-7 中的交换机和连接链路就构成了一个环路。环路问题是备份连接面临的所有负面影响中最为严重的问题,它在网络中直接导致广播风暴、出现多个帧副本、MAC地址表混乱。
图2-7 备份连接
1.广播风暴
在一些较大型的网络中,当大量广播流(如MAC地址查询信息等)同时在网络中传播时,便会发生数据包的冲突,随后,网络试图缓解这些冲突并重传更多的数据包,广播流量会充斥网络,这一现象称为广播风暴。在网络存在环路的情况下,如无特别的措施,广播风暴必然发生。其结果导致全网的可用带宽阻塞,并最终使得网络失去连接而瘫痪。
网络中,一台设备能够将数据包转发给网络中所有其他站点的技术称为广播。由于广播能够穿越由于交换机连接的多个局域网段,因此,几乎所有局域网的网络协议都优先使用广播方式来进行管理与操作。广播使用广播帧来发送、传递信息,广播帧没有明确的目的地址,它所发送的对象是网络中的所有主机,也就是说网络中的所有主机都将接收到该数据帧。它一般用来发送网络中的公共信息,如服务通告、地址查询等信息。
广播是引起广播风暴的主要原因。但是,在正常的网络环境中,网络广播是无所不在的,MAC地址查询、路由协议通信、ICMP控制报文及大量的服务通告等信息都属于网络中正常的广播。因此,需要在保证网络正常使用广播的情况下,有效减少广播风暴的发生。
广播风暴的形成:
在如图2-7所示的网络中,本来是要提供冗余备份,增加一条Switch3到Switch2的通路,但若不采取其他措施,这样做的结果会导致不能正常工作,因为这是一个存在循环的连接,如果Switch1收到一个广播帧,下面的过程(a)~(f)会被反复执行。
(a)Switch1通过f0/1转发广播帧。
(b)Switch2通过f0/2收到广播帧。
(c)Switch2通过f0/3转发广播帧。
(d)Switch3通过f0/4收到广播帧。
(e)Switch3通过f0/5转发广播帧。
(f)Switch1通过f0/6再次收到原来的广播帧。
上述过程周而复始,同样的广播帧被不断复制,最后形成广播风暴,耗尽网络资源。
在一个较大规模的网络中,由于拓扑结构的复杂性,会造成许多大大小小的环路产生,由于以太网的第二层协议没有控制环路数据帧的机制,各环路产生的广播风暴将不断扩散到全网,进而造成网络瘫痪。
与广播概念相类似的还有组播(Multicast,或称多播),组播是一点对多点的通信,是一种比较有效的节约网络带宽的方法。例如,在视频点播等多媒体应用中,当把多媒体信号从一个节点传输到多个节点时,采用广播方式会浪费带宽,重复采用点对点传播也会浪费带宽,而组播能够把帧发送到组地址,而不是单个主机,也不是整个网络。由于它的发送范围明显小于广播,因而减少了对网络带宽的占用。
网络运行时,应当了解网络里所运行的所有协议及这些协议的主要特点,这样才能更有利于对广播流量的控制。通常,交换机对网络中的广播帧或组播帧不会进行任何数据过滤,因为这些帧的地址信息不会出现在MAC层的源地址字段中。交换机总是直接将这些信息广播到所有端口,如果网络中存在环路,这些广播信息将在网络中不停地转发,直至导致交换机出现超负荷运转(如CPU过度使用、内存耗尽等),最终耗尽所有资源,阻塞全网通信。
Cisco第二层交换机支持广播风暴控制功能,它定义交换机端口的广播门限值,当端口接收的广播帧数量超过了该值时,该端口便会立刻处于挂起状态,不再接收广播数据帧,从而避免出现循环广播状态。该功能默认为禁用,需要通过手动配置打开。而在第二层实现控制广播风暴的有效方法则是使用生成树技术和VLAN技术,前者能够从逻辑上消除环路,后者则可限制广播的范围。
2.多个帧副本
网络中如果存在环路,目标主机可能会收到某个帧的多个副本,而正常情况下,除非收到的帧有错误而要求重传外,是不会有同一帧的多个副本到达目标主机的。多个帧会导致上层协议在处理这些数据帧时无从选择。
3.MAC地址表混乱
当交换机有环路连接,将会出现通过不同端口接收到同一个广播帧的多个副本的情况。这样,在MAC地址表里,同一个MAC地址将出现在同一个交换机的不同的端口上,使得MAC地址表混乱,导致不能正常转发数据帧。同时,这一过程也会同时导致MAC地址表的多次刷新。这种持续的更新、刷新过程会耗用资源,影响该交换机的交换能力,降低整个网络的运行效率。严重时,将耗尽整个网络资源,并最终造成网络瘫痪。
2.6.2 STP协议简介
要实现冗余备份,提高网络的可靠性,必须解决环路拓扑结构为网络带来的致命的负面影响。
1.生成树协议的功能
生成树协议(Spanning Tree Protocol,STP)的主要功能就是为了解决由于备份连接所产生的环路问题。本节将介绍基本的STP机制,实际工程应用的配置将在第3章中介绍。
STP协议的主要思想就是当网络中存在备份链路时,只允许主链路激活,如果主链路因故障而被断开后,备用链路才会激活。
STP的基本做法就是生成“一棵树”,树的根是一个称为根桥的交换机。以根为参考,所有运行STP协议的交换机都执行生成树算法(Span Tree Algorithm,STA),使得交换机的所有链路在逻辑上形成树状结构,这棵树就是生成树。树上的链路处于工作状态,其他的链路都将被暂时阻塞。
根据设置不同,不同的交换机会被选为根桥,但任意时刻只能有一个根桥。由根桥开始,逐级形成一棵树,根桥定时发送配置数据包,非根桥接收配置数据包并转发,如果某台交换机能够从两个以上的端口接收到配置数据包,则说明从该交换机到根桥的路径不止一条,这样便构成了循环回路。此时该交换机就会选出一个端口并把其他的端口阻塞,消除循环。而当某个端口超过一定时间不能接收到配置数据包时,交换机认为该端口的配置超时,网络拓扑可能已经改变,此时就重新计算网络拓扑,重新生成“一棵树”。
2.STP相关的概念
为了理解STP,必须熟悉以下几个概念,即网桥ID(交换机早期的名称下叫做网桥)、路径开销、Port ID、BPDU。
(1)网桥ID(包括网桥优先级和MAC地址):生成树算法的第一个参数。STP用网桥ID来标识网络中的交换机,其值最小者称为根网桥。网桥ID的数据结构共8个字节,高位的2个字节是交换机的STP优先级,取值范围为0~65535,默认值为32768;其余6个字节的部分为交换机的MAC地址。
(2)路径开销:生成树算法的第二个参数。路径开销是从非根交换机到根交换机的方向按链路叠加的。通路径开销是确定非根交换机到达根交换机最短路径选择的首要参数。早期的路径开销等于参考带宽1000Mbit/s除以当前链路的带宽。如100Mbit/s的链路路径开销是10,10Mbit/s的链路路径开销是100。这种计算方法后来遇到了问题,因为如果一个网络链路是10Gbit/s,这个链路的路径开销将不再是整数。所以对这种算法做了一定的修订,按802.1D计算,100Mbit/s的链路路径开销是19,1000Mbit/s的链路路径开销是4,即带宽越大,路径开销越小。
(3)Port ID(包括端口优先级与端口号):生成树算法的第三个参数,也是决定到达根交换机路径选择的参数。端口优先级与端口号长度都是1个字节,端口优先级取值为0~255,默认值为128;端口号取值为1~255(交换机接口不编0号)。
(4)BPDU:BPDU即桥协议数据单元(Bridge Protocol Data Unit),运行STP的交换机之间通过交换BPDU消息,完成无环路的树状结构生成。BPDU可以帮助运行STP的交换机选出整个生成树的根,探测到冗余链路并阻塞端口。根选出来之前,所有参与选择的交换机都发送配置BPDU,配置BPDU包含网桥ID、路径开销和端口ID等信息,都宣称自己是根;根选出来之后,只有根交换机才能发送配置BPDU,默认是每隔2s就会发送最新的配置BPDU。
3.STP端口状态
运行STP的交换机,每个端口都会处于某种STP端口状态下。STP端口状态有以下几种类型,即禁用状态、阻塞状态、侦听状态、学习状态和转发状态,如表2.3所示。
表2.3 STP端口状态
除禁用状态需人工设置外,其余状态和顺序即是交换机的某个端口从不可用状态转变成工作状态的过程。在有冗余链路的网络中,当交换机完成初始化后,为避免形成环路,STP会使一些端口(冗余链路的端口)直接进入阻塞状态。当网络中的主链路发生故障时,网络的拓扑结构即会发生变化,处于阻塞状态的端口就会通过BPDU了解(侦听)到变化,端口的状态就会立刻从阻塞状态转变到学习状态,学习并完成MAC地址表的更新,随后端口进入转发状态,转为正常的工作状态。
一个端口从阻塞状态到转发状态通常需要经过约50s,这样才能保证STP拥有足够的时间来了解整个网络的拓扑结构。稳定之后,所有端口要么进入转发状态,要么进入阻塞状态。
4.生成树协议的工作过程
树状网络的形成过程需经历以下几个阶段:
首先需要选定一个根交换机,根交换机是整个生成树的根,是网络中交换机判断是否存在环路的起始点。选定根交换机的依据是网桥ID的数值大小,数值越小的交换机就会优先被选为根交换机。交换机之间会先比较网桥ID中的优先级部分,如果两个交换机的优先级相同,则比较交换机的MAC地址,MAC地址数值越小,则优先级越高。这个选择过程是通过交换机之间交换BPDU来完成的,BPDU中包含了交换机的网桥ID。
根网桥是整个交换网络流量最集中的地方,所以根网桥一般都被规划为企业网的核心交换机。可以通过改变优先级来使需要的交换机成为根交换机。
选择完根网桥之后,第二步是选择根端口,网络中每台非根交换机都需要选择一个根端口,根端口是非根交换机到达根交换机的最短路径。当所有的非根交换机都确定了根端口后,下一步就是选择指定端口。指定端口是在每一个网段上选择的,连接了设备的交换机的所有端口对(即网段)必有一个端口被选为指定端口,在根交换机和非根交换机上都要选定。根端口和指定端口的选择都是根据如下参数确定的,即到达根交换机的路径代价值、发送方的网桥ID、端口优先级、端口ID和接收方的端口ID。每台交换机的每个端口依次比较这些参数,值越小的端口越优先被选中;值相同时则比较下一个参数值。连接计算机或路由器的交换机端口(与计算机网卡接口和路由器以太网接口构成端口对,即网段)则全被选为指定端口。
如果一个端口既不是根端口也不是指定端口,那么这个端口称为未指定端口,将会被阻塞。这样,选中的根交换机、根端口和指定端口及其连接会形成一棵树。
生成树协议的工作过程概括如下:
(1)选择根交换机;
(2)每台非根交换机上选择一个根端口;
(3)每网段交换机上选择一个指定端口;
(4)阻塞未指定端口。
任务2-3 配置生成树协议
【主要设备】
Cisco 3560交换机1台,2960交换机2台,计算机3台。
【网络拓扑】
按照如图2-8所示接口连接网络。
图2-8 配置生成树协议
【任务要求】
设置核心交换机为根,通过修改其网桥优先级实现;设计2条备份链路,一条位于核心Switch0和Switch1之间,另外一条位于Switch2和Switch1之间。核心交换机和Switch1与Switch2之间使用两条Gbit/s链路和一条100Mbit/s链路,使该100Mbit/s链路成为备份链路。
分析:设置核心交换机为根交换机后,因为Gbit/s链路路径开销小,G 1/1和G 1/2会被选择为根端口;根交换机Switch0 上的4 个端口自然会被选为指定端口;Switch1和Switch2连接计算机的端口亦被选为指定端口,其余端口的选择和状态需要查看相关参数后判断。
【操作步骤】
1.STP协议的默认配置
Cisco交换机的STP协议默认是启用的,STP所有参数取默认值,选择根交换机、根端口和指定端口,生成树状网络。但使用默认配置就不一定能选择到我们想要的根交换机,如在图2-8中,用默认配置选择出的根交换机是Switch2。
Switch2#show spanning-tree //查看生成树的相关信息 VLAN0001 Spanning tree enabled protocol ieee Root ID Priority 32769 Address 0001.4218.CAE5 This bridge is the root //这台交换机是根交换机 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32769 (priority 32768 sys-id-ext 1) Address 0001.4218.CAE5 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 20 Interface Role Sts Cost Prio.Nbr Type ---------- ---- --- --------- -------- ----------------------- Fa0/1 Desg FWD 19 128.1 P2p Fa0/2 Desg FWD 19 128.2 P2p Gi1/1 Desg FWD 4 128.25 P2p
2.指定根交换机
要想核心交换机Switch0成为根交换机,可把其网桥优先级改得比默认值小,其STP配置如下:
Switch0(config)# spanning-tree vlan 1 priority 16384 //配置核心交换机VLAN1的STP优先级为16384
或者,使用如下命令直接指定其为根交换机:
Switch0(config)#spanning-tree vlan 1 root primary Switch 0(config)#end Switch0 # Switch0#show spanning-tree vlan 1 //查看VLAN 1的生成树信息 VLAN0001 Spanning tree enabled protocol ieee Root ID Priority 16385 Address 0001.6322.CEBC This bridge is the root //这台交换机是根交换机 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 16385 (priority 16384 sys-id-ext 1) //此处网桥ID的优先级数值扩展了1,为原优先级值+VLAN号 Address 0001.6322.CEBC Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 20 Interface Role Sts Cost Prio.Nbr Type ---------- ---- --- --------- -------- ----------------------- Fa0/2 Desg FWD 19 128.2 P2p Fa0/1 Desg FWD 19 128.1 P2p Gi0/1 Desg FWD 4 128.25 P2p Gi0/2 Desg FWD 4 128.26 P2p
最后的生成树信息表各列依次为接口、角色、端口状态、路径开销、端口ID和类型,由此可见,根交换机的端口角色均为Desg(指定端口),端口状态均处于FWD(转发状态)。
3.非根交换机的配置
非根交换机Switch1和Switch2采用默认配置,分别查看其STP信息如下:
Switch1#show spanning-tree VLAN0001 Spanning tree enabled protocol ieee Root ID Priority 16385 Address 0001.6322.CEBC Cost 4 Port 25(GigabitEthernet1/1) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32769 (priority 32768 sys-id-ext 1) Address 0001.4218.CAE5 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 20 Interface Role Sts Cost Prio.Nbr Type ---------- ---- --- --------- -------- ----------------------- Fa0/1 Desg FWD 19 128.1 P2p Fa0/2 Desg FWD 19 128.2 P2p Gi1/1 Root FWD 4 128.25 P2p
可见G1/1端口被选为了根端口。
Switch2#show spanning-tree VLAN0001 Spanning tree enabled protocol ieee Root ID Priority 16385 Address 0001.6322.CEBC Cost 4 Port 26(GigabitEthernet1/2) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32769 (priority 32768 sys-id-ext 1) Address 0060.706B.9648 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 20 Interface Role Sts Cost Prio.Nbr Type ---------- ---- --- --------- -------- ----------------------- Fa0/1 Desg FWD 19 128.1 P2p Fa0/2 Altn BLK 19 128.2 P2p Fa0/3 Altn BLK 19 128.3 P2p Gi1/2 Root FWD 4 128.26 P2p
可见G1/2端口被选为了根端口。被阻塞了的端口是F0/1和F0/2,其角色为Altn(替换端口),一旦现有的一个根端口失效,二者中必有一个接替成为根端口;如果现有的两个根端口都失效,则这两个端口都会接替成为根端口。
4.端口开销和端口优先级的修改
如果需要修改某个端口开销,可使用如下命令:
Switch(config)#interface G1/1 //进入G1/1端口 Switch(config-if)# spanning-tree vlan 1 cost 1 //修改G1/1端口的端口开销为1
如果需要修改端口优先级,可使用如下命令:
Switch(config-if)#interface range f0/1-4 //批量配置端口f0/1~f0/4 Switch(config-if-range)#spanning-tree vlan 1 port-priority 32 //设置这些端口的优先级为32 Switch(config-if-range)#^Z Switch# Switch#show spanning-tree VLAN0001 Spanning tree enabled protocol ieee Root ID Priority 16385 Address 0001.6322.CEBC Cost 1 Port 25(GigabitEthernet1/1) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32769 (priority 32768 sys-id-ext 1) Address 0001.4218.CAE5 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 20 Interface Role Sts Cost Prio.Nbr Type ---------- ---- --- --------- -------- ----------------------- Fa0/1 Desg FWD 19 32.1 P2p Fa0/3 Desg FWD 19 32.3 Shr Fa0/2 Desg FWD 19 32.2 P2p Fa0/4 Desg FWD 19 32.4 Shr Gi1/1 Root FWD 4 128.25 P2p
可见端口优先级变成了32。
思考与动手
1.交换机内部由哪些硬件构成?
2.简述第二、第三和第四层交换机的工作特点。
3.简述第二层交换机MAC地址表的建立过程。
4.简述帧交换的3种方式及其特点。
5.什么是广播风暴?简述广播风暴的形成机制。
6.简述生成树协议STP的作用及STP端口的状态特征。