第四节课 交换技术
杜飞
2009-06-28
咱们今天来看一下局域网交换技术,也称为层2交换技术,内容主要包括层2交换的工作原理、网络环路、如何利用Spanning-Tree Protocol 来解决网络环路、VLAN及VTP技术,闲话少说,书归正传。我们在介绍交换技术之前不得不提一下传统的共享以太网的工作方式,了解一下冲突域,广播域以及网络分段是怎么回事,这些知识在网络基础里大家应该有所了解,我在这里再简单介绍一下:
大家都知道传统共享以太网使用的是CSMA/CD机制,即载波侦听多路访问/冲突检测。我们来详细分析一下:
CSMA/CD是一种分布式介质访问控制协议,网络中的各个节点都能独立地决定数据帧的发送与接收。每个节点在发送数据帧之前,首先要进行载波监听,只有介质空闲时,才允许发送帧。这时,如果两个以上的节点同时监听到介质空闲并发送帧,则会产生冲突现象,这使发送的帧都成为无效帧,发送随即宣告失败。每个节点必须有能力随时检测冲突是否发生,一旦发生冲突,则应停止发送,以免介质带宽因传送无效帧而被白白浪费,然后随机延时一段时间后,再重新争用介质,重发送帧。
最早由Inter,施乐,DEC三家公司提出以太网标准,后来IEEE组织制定了802.3标准规定了以太网的物理层和数据链路层的MAC子层,主要就是定义了10BASE-2、10BASE-5、10BASE-T、10BASE-F等,规定了介质,带宽,距离等。同时还定义了一个802.2标准,规定以太网数据链路层的LLC子层,即逻辑链路控制子层,主要是提供了一个数据链路层与网络层的接口,如图所示
网络层有很多协议,数据链路层提供了很多协议之间的区分,使用网络层的哪一个协议,这就是为什么数据帧要封装一个LLC的头部信息。但传统以太2帧中不是使用LLC封装而是在数据帧中有一个2个字节的type来表明上网所使用的协议,如下图所使用的网络层协议是ARP。
下面来看一下冲突域,广播域
冲突域:共享式以太网中的所有节点在需要与其他节点通讯时是可以发送数据的,但是CSMA/CD的机制却在确保在某个时刻只有一个节点可以发送数据,那如果肉个同时发送数据了,出现这种情况会导致冲突,那么在这个共享式网络中可能产生冲突的这么一个范围,我们就称为冲突域。
广播域:广播域是指在一个网络中广播包所能到达的范围。也就是说如果在一个网络上一个节点发送了一个广播包,这个广播包可以到达的范围,我们称为广播域,
作为一名专业的网络工作人员,具有识别冲突域和广播域的能力是所需要的一项重要技能。第一层设备的加入是扩大了冲突域,只有加入第二层设备或三层设备才可以分隔冲突域,也就是说如果加入了网桥、交换机和路由器可以将冲突域分割成较小的部分,从面降低对带宽的竞争,减少冲突。路由器还有一个好处,可以划分更小的广播域。这就叫网络分段。而用二层设备来减少冲突域的范围叫做“微分段”,也就是说不是正真意义的分段。真正意义的分段是网段号不同,不可能进行直接通讯。所以二层设备可以实现分段,但不能真正将网络进行分段,而路由器是可以实现真正网络分段的。这句话,大家好好理解一下!给出一个表借大家参考。
那么咱们的交换技术毫无疑问使用的就是交换机,我们来看一个交换机的功能:
交换机的三大功能:
MACA地址的学习
数据帧的转发或者是数据帧的过滤
利用生成树协议防止网络环路
首先我们来看第一个交换机MAC地址的学习功能,交换机是通过MAC表来进行交换转发工作的,所以MAC地址表是交换工作的核心,网络与交换机的不同之处就在于网桥使用软件来创建和管理MAC地址表的,而交换机使用ASIC来创建和管理MAC地址表。
交换机的MAC地址学习功能:
交换机初始化时,要学习进入交换机的数据帧的源地址,并且把源地址及其对应的交换机的端口号记录在MAC地址表。在MAC地地址表形成之后,交换机要学习进入交换机数据帧的目的地址,并且与MAC地址表中的条目进行比较,完成相应的转发。
交换机开机初始化时,MAC地址表是空的,因为MAC地址表是存储在内存中的。
如果计算机A发送数据帧到计算机C,此时交换机的E0口接收该数据帧,交换机记录下该数据帧的源地址C的对应关系及E0口的对应关系。如图所示:
由于交换机并不知道C的MAC地址,所以将此数据帧对除了E0口以外的其他端口进行转发。
如果是计算机D发送数据帧到计算机C,此时交换机的E3口接收该数据帧,交换机记录下该数据帧的源地址D的地址与端口的对应关系。此时交换机仍然不知道C的地址,所以还是要对除了E0口以外的其他端口上进行转发。
交换机不断记录每个接口上接收到的数据帧的地址,一段时间以后所有的端口所连接的MAC地址都会记录到MAC地址表中。此时计算机A再向计算机C发送数据时,就直接查MAC地址表进行转发即可,不会再转发到其他端口上。
在这个图中计算机A和计算机B通过HUB连接到Switch的E0口上,所以在MAC地址表中记录两个MAC地址对应同一个端口,此时如果A与B通讯,则交换机不会转发该数据帧,因为源和标MAC都在同一个接口上。这就是交换机的地址学习功能以及数据包的转发过滤。
交换机的交换方式一般有三种:直通转发、片断转发和存储转发
直通转发:交换机检测到目录地址后即转发数据帧,也就是说只要读到目标地址以后就开始转发,大家分析一下数据帧的格式就知道了,加上前导位和目标地址也就是14个字节左右,不需要再往后分析了。这样减少延时,但是不适合高错误率的网络。因为有一些数据碰撞帧,是小于64字节的,也会一起转发!
片断转发:与直通转发相似,只是在转发的时候会检测帧的前64个字节,这前64个字节中会包含一小部分数据,好处是可以把可以把小于64字节的坏帧抛弃掉,以节约带宽。
存储转发:这是延时最大的一种转发,在进行数据转发之前要将收到的帧进行完整性校验,确认没有错误才进行转发,如果有错误就不转发。好处是可以丢弃任何小于64字节和受损的数据包,但是缺点是延迟大。
下面咱看一下网络环路及如何利用Spanning-Tree 协议来解决网络环路。
网络环路
大家看下面这个图,
在这个拓扑图中,交换机就成了一个单点故障,如果交换机坏了,此时的几个模块之间都无法进行正常的工作,客户机不能访问服务器,不能连接internet,不能访问打印机,反之都一样。所谓单点故障,也就是一点发生故障,则整网络无法正常工作。所以在一般的交换式网络中,我们都需要对交换机进行冗余,但是引入冗余又会发生一个问题,一个很严重的问题,就是网络环路。下面我们来看看环路对我们的网络到底造成了什么影响,影响主要有三:
1 Broadcast storms 广播风暴
2 Multiple Frame Copies 多重复数据帧
3 MAC Database Instability MAC地址表不稳定
咱们一一来看
广播风暴:我们看一个图,大家就明白什么是广播风暴了:
分析:如果主机X希望跟网络上的其他主机通讯,将数据报传给交换机A,但交换机仍然会将此报再一次传给交换机A,依次类似,构成了一个环,而且这个环后面比较严重,为什么?我们在讲网络基础的时候,我们讲了数据帧的格式,大家可以回忆一下,但在这个格式中,没有类似于三层IP报头中TTL机制,所以数据帧在网络中将被无限次数的传递,从面造成了广播风暴,如果是单播的数据还要好一些,如果是广播或者组播数据在这样一个环路网络中传递则广播风暴更加明显。
多重数据帧:也称为重复数据帧
分析:主机X准备发一个单播帧给路由器Y,数据报发出后,发现有两条路可以到达路由器Y,一个是直接发过去,还有一条就是通过交换机A转给交换机B,然后再交给路由器Y,此时路由器Y就收到了两位一模一样的数据帧。
还有一个就是MAC地址表的不稳定:
分析:还是主机X发送数据帧给路由器Y,路由器的MAC地址表还没有被交换机学习到,数据帧沿链路发送到交换A和交换机B的端口0,那么交换机A和交换机B都将主机X的MAC地址记录在port 0。因为是通过port 0收到的数据帧,所以会通过两个交换机的port 1向外泛洪,交叉来到相互交换机的 port 1 口,又认为主机X的MAC地址所对应的端口是port1,即从交换机A发出来的数据帧来到了交换机B的port 1端口。然后交换机 B收到后又通过Port 0口再次泛洪,依次类推,数据帧在环路里重复执行上述过程,交换机A和交换机B重复的在port 1 以及 port0上不断的学习主机X的MAC地址,造成MAC地址表的不稳定。
那么大家可以看到网络环路的问题确实不小,那么解决方法就是利用生成树协议:
Spanning-Tree Protocol:
简称为STP,该协议可应用于环路网络,通过一定的算法实现路径冗余,同时将环路修剪成无环路的树型网络,从而避免报文在环路网络中“长生不老”。
以太网交换所所实现的快速生成树协议RSTP (Rapid Spanning Tree Procotol)是生成树协议的优化版,其“快速”体现在根端口和指定端口进入转发状态的延时在某种条件下大大缩短,从而缩短了网络拓扑稳定所需要的时间。
MSTP(Multiple Spanning Tree Procotol)是多生成树协议的缩写,该协议兼容STP和RSTP。
咱们来详细介绍一下STP:STP是为克服冗余网络中透明桥接的问题而创建的,目的是通过协商一条到根网桥的无环路径来避免和消除网络中的环路,它通过判定网络中存在环路的地方并动态阻断冗余链路来实现这个目的。通过这种方式,它确保到每个目的地都只有一个路径,所以永远都不会产生环路。
将环路中的一个次优接口设置在Block(阻止)状态,从而将环路打破。注意,仅仅是该接口设置为Block状态,仅仅是一个状态,而不是真正的将此接口关闭。因为一旦网络中其他链路出现了问题,这个被block的接口还可以还原为forwarding(转发)状态。如图所示:
基本思想:在此把每个交换机称为网桥,所以我们在介绍的时候,如果讲到网桥,就知道是指的交换机就可以了。每个交换机在启动的时候,都认为自己是根桥,那么就讨论开始竞争到底谁当根,大家定义好一个游戏规则,在网桥之间传递特殊的消息BPDU(bridge procotol data unit)网桥协议数据单元,包含足够的信息做以下工作:从网络中的所有网桥中,选出一个作为根网桥,然后再计算本网桥到根网桥的最短路径。而且根桥是每2秒钟发送一次BPDU。BPDU数据帧中包括了很多内容,如图所示:
我们在这里只关系网桥ID(包括两个字节的优先级和6个字节的MAC地址)。
选择根桥的方法是比较每一个交换机的Bridge ID也就是桥ID,这个桥ID的格式是:
有两部分组成:一个是桥优先级,一个是MAC地址,但是思科的交换机优先级默认都是32768,如果优先级相同,再比较后面的MAC地址,MAC肯定是不同的,所以小的就是根桥,
在一个网络中,只能有一个根网桥,其他的网桥就称为非根桥;根桥上的每一个端口都称为指派端口,也可以说根桥上的每个端口都是根端口,但是非根桥上的端口叫法就不同的,非根桥有一个端口叫根端口,其他端口叫非指派端口。
刚才我们说了,如果有多个交换机,选择根网桥使用的是bridgeID,那这里在非根桥上我怎么知道哪个是根端口,哪个是非指派端口呢,这里也有一个准则,就是依次比较每个端口到达根网桥所花代价+优先级+MAC地址+端口号(从左到右依次比较软小者),这里又可以分为是一个交换机的多个端口和多个交换机的多个端口之间如果选择。
如果是同一个交换机,那么起决定作用的就是到达根桥代价最小的端口是根端口,关键是这里怎么知道哪个端口代价最小呢,这是根据带宽定义的,我们
其中这个代价指的就是开销,开销越小就说明连接速率越大,速度越快。我们再看上面的那个图,有两个链路,一个是100BASET,一个是10BASE-T,一个开销是100,一个开销是19,明显选择上面的那个端口作为根端口。那么下面的那个端口就是非指派端口,就会将它指定为BLOCK,不可用状态,直到根端口不可用时,它才会“翻身”。但是要注意的是这个端口怎么Block了,不能发送用户数据,但可以继续接收BPDU。
那么如果是多个非根网桥希望选择一个根端口,则先比较代价,如果代价相同再比较优先级,如果优先级也相同再比较MAC地址,这肯定是不同的。
针对这个图来说,处理Block状态的端口应该是交换机Y的端口1,因为两边的链路代价是一样的,优先级默认也相同,所以就比较MAC地址,但因为交换机X的MAC地址小,所以它的端口都是forwarding状态。但是交换机y的端口1就Block了。
以上是我们所分析的根桥以及根端口和指派端口和非指派端口的选择问题。那么一个端口从开机到正常工作会处于四种状态,分别是block,listening,learning,forward,我们来分析一下:
Block ------为了防止网桥发生loop,所有的端口开始都处于Block状态。如果交换机在其他端口收到了同一个BPDU,那么交换机就认为有另一条链路可到达根桥,如果生成树决定其他链路是到根桥更好的路径,那么这个端口继续保持block,那么如果本端口被交换机认为是最好的端口,那么进入到下面的状态。这个时间是20秒,称为最大生存周期。
listening-----端口从block状态转为listening状态,它利用这段时间来listening是否还有到根桥的其他路径。在此状态,端口可以倾听到配置消息,但是不能转发或接收用户数据。也不允许端口将它所听到的任何信息放到地址表中,这有15秒的时间。在这一段时间里的listening状态实际上就是用来说明端口已经准备好进行传输,但是它愿意再倾听一下以确认它不会产生loop.
learning -------学习状态与倾听状态非常相似,除了端口可以将它所学到的信息添加到地址表这一点之外,它依然不可以发送和接收用户数据。这个过程也是15秒。
forward -----这个状态意味着可以发送和接收用户数据。
那么如果一个非根交换机在20秒内没有收到任何配置信息,也就是没有收到BPDU就会认为该端口连接的链路发生了故障,于是就重新计算STP。再一次选择根桥,根端口,指派端口以及非指派端口。
以上就是关于生成树协议的比较详细的介绍,当然我们哆哩哆嗦的讲了这么多,真正要我们配置的命令并不多,因为思科默认就已经开启了生成树协议,在本节的结尾我会附上相关的实验来验证stp的作用。
还要注意STP只是针对二层的环路起作用,对于物理层的环路是不起作用的,一层环路可以说纯粹是人为的原因!!!
下面开始进入下一相课题:VLAN
VLAN:虚拟局域网
我们在前面讲到交换机原理的时候,我们知道交换机是二层设备,不能分隔广播,如果交换机端口过多的话,那么这些端口都在同一个广播域中,这样网络的性能受到影响,现在我们使用VLAN技术,可以把一个大的广播域划分为多个小的广播域来提高网络的性能。
我们先从一个图入手看一下Vlan的特点,
在这张图中,我们可以看到一个大楼有三层,最下面的一个交换机肯定是一个核心交换机,然后连接三个接入层交换机,每个接入层交换机又分别接入一些PC机,这些PC机有销售部,人事部,以及工程部,
VLAN的特点就是可以实现网络分段,网络管理更加灵活,相对比较安全,我们先看第一个实现网络分段:
网络分段就是分割网络广播,我们以前讲到交换机所有的端口都在一个VLAN里,也就是同一个广播域中,而我们使用了VLAN技术以后,VLAN的数目增加了,广播域增加了,但每一个广播域的范围缩小了。一个交换机可以分成两个VLAN,三个VLAN,甚至更多的VLAN。那么就实现了只能是同一个VLAN中的节点才可以通讯。那如果不同VLAN中的节点如果想通讯,就需要借助路由。
第二个特点就是灵活,大家从图上可以看到不论哪一个部门都会跨越三个楼层,如一楼有销售部员的电脑,二楼也有,三楼还有,其他两个部门也一样,但我们又需要实现同一个部门之间的PC机可以通讯,这使用VLAN也可以实现,那如果没有VLAN的话,就需要一个部门只能在同一个楼层,接在同一个交换机上,但现在有了VLAN,即使大家不在同一个交换机上,但只要在同一个VLAN上也可以进行通讯。我们后面会详细介绍。
至于第三个特点安全:就“明白人不用细说”,你把网络分段了,同一个VLAN是一个广播域,默认跟其他VLAN不能通讯,也就是说我这个部门与其他部门的PC默认是通讯不了的,相对来说就要安全许多!
下面咱们来看一下VLAN的运行过程:
我们已经知道了在同一个交换机里所有的端口默认属于VLAN1,但我们可以分成若干个VLAN,每一个VLAN都相当于是一个物理的交换机,也就是说只能是同一个VLAN中的节点可以通讯,并且同一个VLAN可以跨越多个交换机,怎么理解,我们来看一个图:
大家可以看到这个图中,有两个交换机,每个交换机中又为了三个VLAN,一个是红色VLAN,一个是黑色VLAN,一个是绿色VLAN,每个交换机中只能是同一个VLAN中的节点可以通讯,但是只要中间加了一个“道路”,我们就可以实现A交换机的红色VLAN和B交换机的红色VLAN通讯,黑色和绿色也同理,相当于红色VLAN跨了两个交换机。在这里需要引入两个术语:
Access-link:接入端口,普通的交换机端口用于连接终端设备,连接到这个端口上的设备完全不知道存在着一个VLAN,它不需要知道VLAN的信息,它就认为只存在它一个VLAN即可!
Trunk-link:称为干道链路,只有快速以太网口(或更高)才可以配置成干道链路,承载的是多个VLAN之间的信息,即一个交换机的一个VLAN如果想与另一个交换机的相同VLAN之间进行通讯就必须要经过这个Trunk-link.任何一个VLAN都是一样,我们这张图中有三个VLAN,那么这三个VLAN就可以通过这个trunk-link链路与另一个交换机中的相同VLAN进行通讯。这样的话,不论有多少VLAN,在两个交换机中只要有一条干道链路就可以进行通讯。那肯定有人要问了,我这个交换机中的红色VLAN传一个数据到对方去,对方怎么知道就是和对方的红色VLAN进行通讯呢。在这里,主干会使用一种特殊的封装模式来对不同的VLAN进行封装,也就是对不同的VLAN打上一个标记。
注: 一个交换机的任何端口都必须属于且只能属于一个VLAN,但如果某个端口被配置成TRUNK后,该端口就失去了它原来的VLAN标识,不属于任何VLAN,只是起到为所有的VLAN传输数据。
交换机对不同的VLAN进行标记只要有两种不同的方法:
ISL--------------------- 思科私有的标记方法,只适合于思科交换机
IEEE802.1Q-----------一种IEEE标准方法,可以连接不同厂家的交换机
我们首先来看一下ISL标记
ISL:Inter Switch Link ,属于Cisco私有,即指两设备间的一条点对点的连接线路,与8021.Q一样作用于第2层,所不同的是,ISL协议头和协议尾封装了整个第2层的以太帧。正因为此,ISL被认为是一种能在交换机间传递第2层任何类型的帧或上层协议的独立协议。ISL所封装的帧可以是令牌环或快速以太网,在原数据帧的基础上加入了26字节的头和一个4字节的尾。这样总共是加入了30字节,如果是一个不认识ISL的设备(非思科)那么就认为这是一个巨帧,所以如果不是思科的设备不能使用ISL。ISL封装如下图所示:
这里大家可以看的很清楚,20个字节中包含了很多东西,但别的大家没有必须知道,我也没有细研究过,但是最主要的两个大家要知道,一个就是VLAN,另一个就是BPDU,
VLAN:表明属于VLAN在通讯,不同VLAN有相应的VLAN号,是一个数字,多达1024
BPDU:如果是STP数据帧,则此位为1
或者比较形象的可以表示为下图:一个标准的二层数据帧加下ISL标记后就多了30个字节。
我们来针对下面这个图看一下同一个VLAN是如何跨之外交换机工作的。
一个PC机发出的数据在传给交换机时在进入trunk干道之间会加上ISL的标记,然后就可以在干道上传输,到在对方的交换机后,交换机通过查看数据帧知道这个数据包是传给哪个VLAN的于是去掉相应的VLAN标识,再传给相应的VLAN内的PC。
另一种封装标记是:IEEE标准委员会制定的802.1Q:主要用于不同厂家的交换机来建立多个VLAN,操作原理和ISL一样,也是在进入TRUNK之前打上一个标记,到达对方的交换机后再去掉这个标记。但这个标记,就不是在两边加,而是在中间加上一个标记,我们来看一下
IEEE802.1Q所附加的VLAN识别信息,位于数据帧中“发送源MAC地址”与“类别域(Type Field)”之间。具体内容为2字节的TPID和2字节的TCI,共计4字节。在数据帧中添加了4字节的内容,那么CRC值自然也会有所变化。这时数据帧上的CRC是插入TPID、TCI后,对包括它们在内的整个数据帧重新计算后所得的值。
其中TPID是IEEE定义的新类型,表明这是一个加了802.1Q标签的帧。
TCI:tag control information 标签控制信息,共有两个字节,其中12位是VLANID,取值从0-4095,共4096个,3位为优先级,规定了8种优先级,还有1位是cfi,在总线型以太网,FDDI,令牌环网等网络交换数据时使用。
而当数据帧离开trunk链路时,TPID和TCI会被去除,这时还会进行一次CRC的重新计算。
以上就是两种标记的分析!下面咱们来看一下VLAN的具体配置:
对于VLAN进行配置,思科使用两种方法:第一种config-vlan 第二种 vlan database
现在使用比较多的是vlan database,但是思科所推荐的,以后以后发展的趋势将是第一种config-vlan方式,vlan database有点老了,使用vlan database的配置方式,所以的配置信息是存放在vlan.dat文件中,所以有时你删除一个配置文件后重启发现VLAN的信息还在,这就是因为VLAN的配置信息不是存放在NVRAM中的,必须去手动删除vlan.dat文件才可以。而config-vlan不会有此问题。下表中我给出两种方法的相关配置语句。
config-vlan | vlan database |
1全局配置模式下:vlan vlan_id 创建vlan 2 name 名称 给vlan 取名(可选) 3 interface 端口 进入相应端口 4 switchport mode access 表明此端口为access 5 switchport access vlan vlanid 把端口加入vlan 6 switchport trunk encapsulation {isl|dot1q|negotiate} 设置中继模式一般手动指定 7 switchport mode trunk 开启中继端口 8 show vlan brief 或 show vlan 验证 | 1 特权模式下:vlan database 2 vlan id 创建vlan 3 interface 端口 4 switchport access valn id 将端口加入到vlan 5 switchport mode trunk 将指定端口设置为trunk 6 switchport trunk allowed vlan all 允许所有vlan通过 |
在本节结束的时候,会结合一个实验来进行验证。
再往下就是CCNA中交换技术的最后一个知识点:VTP
VTP:全称是VLAN Trunking Protocol:VLAN干道协议,是VLAN出现之后出现的一种技术,那么为什么会出现这么一个协议,它是干什么用的?那么我们先来看一下没有它的时候是什么情况?如果现在有一个很大的网络,如现在ITET校园网中有100个交换机,而且每一个交换机都需要划5个VLAN如分别是vlan 10,20,30,40,50,希望每个交换机都相同,那么就希望在100个交换机上工作。工作量还是很大的,所以引入了VTP之后就发现了,我们可以只在一台交换机上进行设置,然后相同的设置会自动复制到其他的交换机上。这就是VTP出现的意义!
所以在这里给了总结VTP的作用:在一个共有域中通过主干端口宣告VLAN的配置信息以维护VLAN配置信息的一致性。
这里需要注意的是,要求所有的交换机必须在一个共有域中,也就是说所有的交换机域名必须一致,但这个域名和我们平时所说的域名是不一样的,没有联系,只是一个名称代号而已,如可以是dufei 也可以是 dufei.com,只要是字符就行,嘻。。。不过可别用汉字:就像它不认识“杜飞”一样!然后通过VTP来实现VLAN配置的一致性,也就是说其中一台交换机有几个VLAN,其他的交换机就有几个。这就是相同一致,而且只能在TRUNK链路上宣告VLAN信息,这毫无疑问,因为如果是一台交换机就没有必要要求实现VLAN的一致性了。当然也不是说任何一个修改了,其他的都能复制过去,这是有条件的,这个条件是什么呢?首先这中间就涉及到一个VTP角色的问题,有的资料中也称为VTP模式。因为角色不同,也就决定了该交换机能否修改VLAN的配置,是能修改还是能复制。
VTP域中有三个角色,分别是:
server:默认情况下,每一个交换机都是server模式,这一点是必须要注意的,为什么,因为处理server模式的交换机可以创建,个性,删除vlan,发送并且转发VTP宣告信息,并将vlan信息保存在nvram中。看到这儿大家就明白了,哦原来它可以做vlan的所有操作,并且会将这个信息发给其它的交换机.
client:大家一听这个名字就知道这是一个功能很弱的角色,没有server叫起来这么震慑。此角色不能建立,改变或删除VLAN,不能发送但是可以转发VTP宣告,同步VLAN数据,但不会将VLAN信息保存在NVRAM中。那有的朋友要问了,如果我希望在此交换机上增加一个VLAN怎么办?没有办法,只能在server上创建,然后再同步过来。
transparent:透明模式,这是一个比较特殊的角色,就像是军队一样,可以和外界交流,但自己又是独立的区域,和其他区域不同。那么如果交换机处于透明模式,则可以建立,修改,删除VLAN,不能发送自己的VLAN信息,但是可以转发VTP宣告但是它自己不会同步只是相当于我替你转过去,但是我自己不信任你,并且自己的VLAN配置保存到NVRAM中。我们前面介绍说VLAN号范围是2的12次方应该是4096个,但是我们不能使用1005-4096之间的号码,是因为这一部分是扩展VLAN号,必须要处于transparent角色才可以设置。 所以一般透明模式使用的不多。
在整个VTP域中,每5分钟或者是发生变化时会自动宣告VTP信息,并且一旦服务器对VLAN进行了更改,它的经验值增加,并且当客户机将VTP信息同步过去之后,经验值也会同步。所以总结一下就会发现以下规律:server可以修改vlan ,修改vlan后经经验值增加,谁的经验值高听谁的,乍一看似乎没有问题,但是如果客户机的经验值高,同样也会修改VLAN的信息,这一点一定要注意!那有人说不可能,client不能修改,但是会存在这么一种情况,它原来是server,里面有vlan信息,经验值也高,现在加进入之后改为client的,就会出现这种情况,当然可以通过给domain加一个口令来避免出现这种情况。
VTP修剪
目的:通过阻止不必要的数据的泛洪传送来增加可用的带宽。
大家一看这句话就很简单,没有过多的需要解释的地方,我们来简单看一下,我们以一个图为例:
例如:主机A发出广播,广播仅仅泛洪到已有端口被分配到红色VLAN的所有交换机。当主机A发一个广播,仅仅限于红色VLAN中的设备可以收到,但默认不是的。设置是数据包到达交换机2后传给我交换机3,再往上到达交换机4之后传给交换机5再传给交换机6,那这样的话对于交换机3,交换机5,交换机6所收到的广播包是没有意义的,浪费了网络带宽,而VTP修剪就可以解决这个问题。其实,我个人认为这个VTP修剪做也可,不做也可,毕竟五分钟才发一个宣告,而且VTP宣告数据包又不是很大。所以意义不是很大,但是如果做当然更好,如果启用的话,就在server上启用即可,client角色上不需要启用。启用命令:vtp pruning
下面咱们就来看一下VTP的配置:
1 vtp domain 域名
2 vtp 模式名 模式可以是server,client,transparent
3 vtp password 设置VTP域密码,可选项,如果设置的话,就要求所有密码必须一致。长度是8到64个字符
4 vtp pruning 启用 vtp修剪
vtp常用的命令就这么多,所以大家看看还是很简单的。
至今交换部分的理论我们就介绍到此,下面咱们通过两个实验来结束今天的学习!
实验目的:了解生成树协议的作用,以及网络中有冗余环路的情况 下不开生成树协议的危害。
实验设备:两台 Cisco 系统交换机,一台pc机,两条以太网交叉线,一条以太网直连线。
拓扑图:
Lab1: 生成树协议(spanning-tree)
实验目的:了解生成树协议的作用,以及网络中有冗余环路的情况 下不开生成树协议的危害。
实验设备:两台 Cisco 系统交换机,一台pc机,两条以太网交叉线,一条以太网直连线。
拓扑图:
在两台交换机上都关闭生成树协议:
Switch(config)#no spanning-tree
验证方法:在两台交换机上都关闭生成树协议之后很快就能发现两台交换机互连的接口灯狂闪,这就是产生广播风暴了,这时候大家可以打开PC机上的性能监视器发现CPU的利用率也非常高。
可以使用show spanning-tree查看生成树协议的一些信息,如图所示:
可以看到这个交换机是根桥,还可以通过命令show spanning-tree interface 端口号,来查看端口信息!
Lab2 交换机的VLAN的划分、trunk链路的配置
实验目的:为交换机划分VLAN并使用不同交换机的相同VLAN间可以通讯。
实验设备:两台Cisco系统交换机,两台PC,一条交叉线,两条直连线
注意:1 VLAN的优点
2 Trunk的封装格式:ISL及IEEE802.1Q
3 所有在VLAN里的配置,只有在退出VLAN database时才生效
拓扑图:
Switch0:
Switch>enable
Switch#config terminal
SW1(config)#exit
SW1#vlan database
SW1(vlan)#vlan 10
VLAN 10 added:
Name: VLAN0010
SW1(vlan)#vlan 20
VLAN 20 added:
Name: VLAN0020
SW1(config)#interface fastEthernet 0/1
SW1(config-if)#switchport access vlan 10
SW1(config)#interface fastEthernet 0/24
SW1(config-if)#switchport mode trunk
SW1(config-if)#switchport trunk allowed vlan all
Switch#config terminal
SW1(config)#exit
SW1#vlan database
SW1(vlan)#vlan 10
VLAN 10 added:
Name: VLAN0010
SW1(vlan)#vlan 20
VLAN 20 added:
Name: VLAN0020
SW1(config)#interface fastEthernet 0/1
SW1(config-if)#switchport access vlan 10
SW1(config)#interface fastEthernet 0/24
SW1(config-if)#switchport mode trunk
SW1(config-if)#switchport trunk allowed vlan all
Switch1:我们先将 fastethernet0/1划分 vlan20下
Switch>enable
Switch#configure terminal
Switch(config)#hostname SW2
SW2(config)#EXit
SW2#vlan database
SW2(vlan)#vlan 10
VLAN 10 added:
Name: VLAN0010
SW2(vlan)#vla
SW2(vlan)#vlan 20
VLAN 20 added:
Name: VLAN0020
SW2(vlan)#exit
SW2#configure terminal
SW2(config)#interface fastEthernet 0/1
SW2(config-if)#switchport access vlan 20
SW2(config-if)#exit
SW2(config)#interface fastEthernet 0/24
SW2(config-if)#switchport mode trunk
SW2(config-if)#switchport trunk allowed vlan all
SW2(config-if)#exit
Switch#configure terminal
Switch(config)#hostname SW2
SW2(config)#EXit
SW2#vlan database
SW2(vlan)#vlan 10
VLAN 10 added:
Name: VLAN0010
SW2(vlan)#vla
SW2(vlan)#vlan 20
VLAN 20 added:
Name: VLAN0020
SW2(vlan)#exit
SW2#configure terminal
SW2(config)#interface fastEthernet 0/1
SW2(config-if)#switchport access vlan 20
SW2(config-if)#exit
SW2(config)#interface fastEthernet 0/24
SW2(config-if)#switchport mode trunk
SW2(config-if)#switchport trunk allowed vlan all
SW2(config-if)#exit
验证,我们在PC0上ping PC1,结果如下:
我们再次到Sw2上将fa0/1重新划到VLAN10下,然后再做测试:
SW2(config)#interface fastEthernet 0/1
SW2(config-if)#switchport access vlan 10
SW2(config-if)#exit
SW2(config)#exit
SW2(config-if)#switchport access vlan 10
SW2(config-if)#exit
SW2(config)#exit
然后再次在PC0上ping PC1,结果如下:
实验成功!
我们也可以使用命令show vlan brief查看VLAN的信息,如图所示:
Lab3:交换机的VTP配置
实验目的:正确的配置和认识VTP的作用
实验设备:两台Cisco系统交换机,两台PC,一条交叉线,两条直连线
注意:1 server才有权修改,client只有接受和转发的能力。
2 VTP的域名和版本号一定要相同
3 如果配置了密码,则密码也一定要相同。
4 所有的VLAN database里面的配置必须退出 vlan才能生效
拓扑图:
Switch0:
SW1#configure terminal
SW1(config)#interface fastEthernet 0/24
SW1(config-if)#switchport mode trunk
SW1(config-if)#switchport trunk allowed vlan all
SW1#vlan database
SW1(vlan)#vtp server
SW1(vlan)#vtp domain dufei
SW1(config)#interface fastEthernet 0/24
SW1(config-if)#switchport mode trunk
SW1(config-if)#switchport trunk allowed vlan all
SW1#vlan database
SW1(vlan)#vtp server
SW1(vlan)#vtp domain dufei
Switch1:
SW2#configure terminal
SW2(config)#interface fastEthernet 0/24
SW2(config-if)#switchport mode trunk
SW2(config-if)#switchport trunk allowed vlan all
SW2#vlan database
SW2(vlan)#vtp client
SW2(vlan)#vtp domain dufei
SW2(vlan)#exit
SW2(config)#interface fastEthernet 0/24
SW2(config-if)#switchport mode trunk
SW2(config-if)#switchport trunk allowed vlan all
SW2#vlan database
SW2(vlan)#vtp client
SW2(vlan)#vtp domain dufei
SW2(vlan)#exit
然后我们在server这个机器上增加一个vlan,测试能否同步到client上:
SW1:
SW1#VLan database
SW1(vlan)#vlan 100
SW1(vlan)#exit
SW1(vlan)#vlan 100
SW1(vlan)#exit
然后我们再到SW2上测试:
OK,实验成功!
我们还可以通过Show vtp status命令查看vtp的相关信息:如图所示:
可以看到当前交换机的角色,版本号,经验值,当前域名等等信息!
至此交换技术结束,这一篇写了我整整两天!我的天呀!睡了。。。。。。。。。
本文转自 dufei 51CTO博客,原文链接:http://blog.51cto.com/dufei/171028,如需转载请自行联系原作者