项目3 对企业各部门的网络进行 隔离及广播风暴控制 1. 项目描述 公司网络经常因为有电脑中病毒而导致整个网络中有大量的广播数据存在,使得网络的正常使用受到一定的影响,为此公司决定为各个部门划分不同的VLAN,减少广播风暴对整个网络的影响。 2. 项目目标  理解VLAN的概念和作用;  理解VLAN的帧格式;  理解VLAN的端口类型;  掌握VLAN的创建方法;  掌握向VLAN中添加接口的方法;  掌握VLAN中Trunk端口的使用。 3.1预 备 知 识 在交换机的管理与配置中,VLAN技术是一个必须要熟悉和掌握的技术。VLAN技术既是交换机配置与管理的重点,也是交换机管理与配置的难点。在交换机的管理与配置中,关键是要理解VLAN的创建和端口类型的设置。 3.1.1VLAN概述 VLAN(Virtual Local Area Network)的中文名为“虚拟局域网”。虚拟局域网(Virtual Local Area Network,VLAN)技术的出现,主要是为了解决交换机在进行局域网互联时无法限制广播的问题。VLAN技术可以把一个局域网划分成多个逻辑的而不是物理的网络,也就是VLAN。VLAN有着和普通物理网络同样的属性,除了没有物理位置的限制,其他和普通局域网都相同。在同一个VLAN中的工作站,不论它们实际与哪个交换机连接,它们之间的通信就好像在独立的交换机上一样,同一个VLAN中的广播只有VLAN中的成员才能收到,而不会传输到其他的VLAN中去,这样可以很好地控制不必要的广播风暴的产生。同时,若没有路由,不同VLAN之间不能相互通信,这样加强了企业网络中不同部门之间的安全性。网络管理员可以通过配置VLAN之间的路由来全面管理企业内部不同管理单元之间的信息互访。 3.1.2VLAN的作用 VLAN的主要用途就是缩小广播域,抑制广播风暴。在传统的共享介质的以太网和交换式的以太网中,所有的用户在同一个广播域中会引起网络性能的下降,浪费宝贵的带宽资源,而且广播对网络性能的影响随着广播域的增大会迅速增强。当网络中的用户大到一定的数量后,网络就会变得不可用,此时唯一的途径就是重新划分网络,把单一结构的大网划分成逻辑上相互独立的小网络。 每个VLAN是一个广播域,VLAN内的主机间通信就和在一个局域网内一样,而VLAN间则不能直接互通,这样,广播报文被限制在一个VLAN内。VLAN除了能将网络划分为多个广播域,从而有效地控制广播风暴的发生,以及使网络的拓扑结构变得非常灵活的优点外,还可以用于控制网络中不同部门、不同站点之间的互相访问。 3.1.3VLAN的划分 常用的VLAN的划分方法有以下几种。 1. 基于端口的划分 基于端口的VLAN划分就是根据以太网交换机的端口来划分。也就是说,交换机某些端口连接的主机在一个VLAN内,而另一些端口连接的主机在另一个VLAN中。VLAN和端口连接的主机无关。这种VLAN划分的优点是定义VLAN的成员非常简单,只要指定交换机的端口即可,如果用户要更换VLAN,只要改变用户接入端口所处的VLAN。基于端口的VLAN是划分虚拟局域网最简单也是最有效的方法,基本上所有支持VLAN划分的交换机都支持基于端口的VLAN划分。 2. 基于MAC地址的划分 基于MAC地址的VLAN划分方法是根据连接在交换机上的主机的MAC地址来划分的。也就是说,某个主机属于哪一个VLAN只和它的MAC地址有关。与它所连接的端口和使用的IP地址无关。这种划分方式最大的优点是当用户改变接入端口时,不用重新配置。缺点是初始的配置量很大,要知道每台主机的MAC地址并进行配置。 3. 基于协议的划分 基于协议的划分是根据网络主机使用的网络协议来划分VLAN,也就是说,主机属于哪一个VLAN取决于主机所允许的网络协议(如IP协议和IPX协议),而与其他因素无关。这种划分方式实际应用非常少,因为目前绝大多数都是运行IP协议的主机,所有很难将VLAN划分得更小。 4. 基于子网的划分 基于子网的划分就是根据主机所用的IP地址所在的网络子网来划分。也就是说,IP地址属于同一个子网的主机属于同一个VLAN,而与主机的其他因素无关。这种划分方式比较灵活,用户移动位置而不用重新配置主机或交换机,而且可以根据具体的应用来组织用户。但也有不足的地方,如一个端口有可能存在多个VLAN用户,所以对广播报文起不到抑制作用。用户也可以自己改变自己主机的IP地址所属的子网进入别的VLAN,从而无法控制用户的相互访问。 所以从上面几种VLAN划分的方式来看,基于端口的VLAN划分是最普遍的方法之一,也是目前所有交换机都支持的一种VLAN划分方法。 3.1.4VLAN数据帧 为了保证不同厂商的设备能够顺序互通,802.1q标准严格规定了统一的VLAN帧格式以及其他重要参数。 802.1q标准规定在原有的标准以太网帧格式中增加一个特殊的标准域——Tag域,用于标识数据帧所属的VLAN ID,其帧格式如图31所示。 图31以太网帧格式 Tag域长度为4个字节,其中各个标签的解释如下。 TPID: 长度为2个字节,协议标识字段,值为固定的0x8100,说明该帧具有802.1q标签。 TCI: 长度为2个字节,控制信息字段,包括用户优先级、规范格式指示器和VLAN ID。 Priority: 长度为3个二进制位,用来指明帧的优先级,一共有8种优先级,主要用于当交换机发生拥塞时,决定优先发生哪个数据包。 CFI: 长度为一个二进制位,这一位主要用于总线型的以太网与FDDI、令牌环网交换数据时的帧格式。在以太网交换机中,规范格式指示器总被设置为0。 VLAN ID: 长度为12位,指明VLAN的ID,每个支持802.1q协议的主机发出的数据包都会包含这个域,以指明自己属于哪一个VLAN。该字段为12位,理论上支持4096个VLAN的识别。在这4096个VLAN ID中,0被用于识别帧的优先级,4095被预留,所以最多只有4094个,这也就是为什么在交换机上创建VLAN时VLAN ID范围是1~4094的原因。 3.1.5VLAN数据帧的传输 目前大部分主机都不支持带有Tag域的以太网数据帧,即主机只接收和发送标准的以太网数据帧,而会把带有Tag域的VLAN数据帧当作非法数据。所以支持VLAN的交换机在与主机和交换机进行通信时,要区别对待,如图32所示。 图32VLAN数据帧的传输 ① 交换机从主机接收数据帧: 由于主机处理的数据都是不带VLAN标签的,所以这时交换机端口从主机上接收到的数据都是不带VLAN标签的,交换机会根据该端口所属的缺省VLAN ID给该数据帧打上相应的VLAN标签,然后发往交换机上其他的端口。 ② 交换机与交换机之间传输数据帧: 交换机与交换机之间传输的数据帧一般都会被打上VLAN标签。 ③ 交换机发往主机的数据帧: 由于主机不能处理带有VLAN标签的数据帧,所以当交换机目的端口连接的是主机时,交换机在把数据帧发送给主机之前会先把数据帧中的VLAN标签删除,然后再发送数据帧。 注意: 对于华为交换机缺省VLAN被称为Pvid VLAN,对于锐捷和思科交换机缺省VLAN被称为Native VLAN。 3.1.6VLAN的端口类型 根据交换机处理数据帧的不同,交换机的端口可以分为三类: Access、Hybrid和Trunk。Access类型的端口只能属于一个VLAN,一般用于连接计算机的端口; Trunk类型的端口可以属于多个VLAN,可以接收和发送多个VLAN的报文,一般用于交换机之间连接的端口; Hybrid类型的端口可以属于多个VLAN,可以接收和发送多个VLAN的报文,可以用于交换机之间连接,也可以用于连接用户的计算机。Hybrid端口和Trunk端口的不同之处在于Hybrid端口可以允许多个VLAN的报文发送时不打标签,而Trunk端口只允许缺省VLAN的报文发送时不打标签。 Access端口只属于一个VLAN,所以它的缺省VLAN就是它所在的VLAN,不用设置; Hybrid端口和Trunk端口属于多个VLAN,所以需要设置缺省VLAN ID。缺省情况下,Hybrid端口和Trunk端口的缺省VLAN为VLAN 1。如果设置了端口的缺省VLAN ID,当端口接收到不带VLAN Tag的报文后,则将报文转发到属于缺省VLAN的端口; 当端口发送带有VLAN Tag的报文时,如果该报文的VLAN ID与端口缺省的VLAN ID相同,则系统将去掉报文的VLAN Tag,然后再发送该报文。 交换机各类VLAN端口对数据报文收发的处理如下。 Access端口接收报文: 收到一个报文,判断是否有VLAN信息标签: 如果没有则打上端口的缺省VLAN ID标签,并进行交换转发,如果有则直接丢弃(缺省)。 Access端口发送报文: 将报文的VLAN信息标签剥离,直接发送出去。 Trunk端口接收报文: 收到一个报文,判断是否有VLAN信息标签: 如果没有则打上端口的缺省VLAN ID标签,并进行交换转发,如果有则判断该Trunk端口是否允许该VLAN的数据进入: 如果可以则转发,否则丢弃。 Trunk端口发送报文: 比较端口的缺省VLAN ID和将要发送报文的VLAN信息标签,如果两者相等则剥离VLAN信息标签,再发送,如果不相等则直接发送。 Hybrid端口接收报文: 收到一个报文,判断是否有VLAN信息标签: 如果没有则打上端口的缺省VLAN ID标签,并进行交换转发,如果有则判断该Hybrid端口是否允许该VLAN的数据进入: 如果可以则转发,否则丢弃。 Hybrid端口发送报文: 判断该VLAN在本端口的属性(端口对哪些VLAN是untag,对哪些VLAN是Tag)。如果是untag则剥离VLAN信息标签,再发送,如果是Tag则直接发送。 3.2项 目 实 施 3.2.1任务一: 给公司各个部门划分VLAN 1. 任务描述 公司有生产、销售、研发、人事、财务等多个部分,这些部门分别连接在两台交换机(SW1和SW2)上,现要求给每个部门划分相应的VLAN,并分配相应的端口。生产部对应的VLAN ID为100,销售部对应的VLAN ID为200,研发部对应的VLAN ID为300,人事部对应的VLAN ID为400,财务部对应的VLAN ID为500,各个部门对应的端口分配如表31所示。 表31交换机端口分配表 部门交换机1(SW1)端口号交换机2(SW2)端口号VLAN ID 生产部1,3,5,7,91~5100 销售部2,4,6,8,106~10200 研发部11~1511~15300 人事部16,18~2016400 财务部21~2221~22500 2. 实验网络拓扑图 实验网络拓扑图如图33所示。 图33实验网络拓扑图 3. 设备配置 交换机SW1配置如下: S2328Gen S2328G#config Enter configuration commands, one per line.End with CNTL/Z. S2328G(config)#hostname SW1 SW1(config)#vlan 100//创建VLAN 100 SW1(config-vlan)#name shengchan//修改VLAN 100的名字为shengchan SW1(config-vlan)#vlan 200//创建VLAN 200 SW1(config-vlan)#name xiaoshou//修改VLAN 200的名字为xiaoshou SW1(config-vlan)#vlan 300//创建VLAN 300 SW1(config-vlan)#name yanfa//修改VLAN 300的名字为yanfa SW1(config-vlan)#vlan 400//创建VLAN 400 SW1(config-vlan)#name renshi//修改VLAN 400的名字为renshi SW1(config-vlan)#vlan 500//创建VLAN 500 SW1(config-vlan)#name caiwu//修改VLAN 500的名字为caiwu SW1(config-vlan)#exit SW1(config)# SW1(config)#interface fastEthernet 0/1//进入F0/1端口视图 SW1(config-if)#switchport access vlan 100//将F0/1端口加入VLAN 100中 SW1(config-if)#exit SW1(config)#interface range f0/3,0/5,0/7,0/9//同时进入F0/3,5,7,9端口 SW1(config-if-range)#switchport access vlan 100 //将F0/3,5,7,9端口一起加入VLAN 100中 SW1(config-if-range)#exit SW1(config)#interface range f0/2,0/4,0/6,0/8,0/10//同时进入F0/2,4,6,8,10端口 SW1(config-if-range)#switchport access vlan 200 //将F0/2,4,6,8,10端口一起加入VLAN 200中 SW1(config-if-range)#exit SW1(config)#interface range f0/11-15//同时进入F0/11到F0/15端口 SW1(config-if-range)#switchport access vlan 300 //将F0/11~F0/15端口一起加入VLAN 300中 SW1(config-if-range)#exit SW1(config)#interface range f0/16,0/18-20//同时进入F0/16,18,19,20端口 SW1(config-if-range)#switchport access vlan 400 //将F0/16,18,19,20端口一起加入VLAN 400中 SW1(config-if-range)#exit SW1(config)#interface range f0/21-22//同时进入F0/21,22端口 SW1(config-if-range)#switchport access vlan 500 //将F0/21,22端口一起加入VLAN 500中 SW1(config-if-range)#exit SW1(config)# 交换机SW2配置如下: S2328Gen S2328G#config Enter configuration commands, one per line.End with CNTL/Z. S2328G(config)#hostname SW2 SW2(config)#vlan 100 SW2(config-vlan)#name shengchan SW2(config-vlan)#vlan 200 SW2(config-vlan)#name xiaoshou SW2(config-vlan)#vlan 300 SW2(config-vlan)#name yanfa SW2(config-vlan)#vlan 400 SW2(config-vlan)#name renshi SW2(config-vlan)#vlan 500 SW2(config-vlan)#name caiwu SW2(config-vlan)#exit SW2(config)# SW2(config)#interface range f0/1-5 SW2(config-if-range)#switchport access vlan 100 SW2(config-if-range)#exit SW2(config)#interface range f0/6-10 SW2(config-if-range)#switchport access vlan 200 SW2(config-if-range)#exit SW2(config)#interface range f0/11-15 SW2(config-if-range)#switchport access vlan 300 SW2(config-if-range)#exit SW2(config)#interface f0/16 SW2(config-if)#switchport access vlan 400 SW2(config-if)#exit SW2(config)#interface range f0/21-22 SW2(config-if-range)#switchport access vlan 500 SW2(config-if-range)#exit SW2(config)# 4. 相关命令介绍 1) 创建VLAN 视图: 全局配置视图/VLAN配置视图。 命令: vlan vlan-id no vlan vlan-id 参数: vlanid: VLAN的编号,一般的范围是1~4094。 说明: 当输入的vlanid号不存在时,该命令用来创建vlanid号所对应的VLAN,当输入的vlanid号已经存在时,该命令则是进入VLAN配置视图的导航命令。no选项可以用来删除vlanid号对应的VLAN。注意,VLAN 1是默认存在的而且不能被删除。 例如: 创建vlanid为10的VLAN。 SW1(config)#vlan 10 SW1(config-vlan)# 2) 设置VLAN的名字 视图: VLAN配置视图。 命令: name vlan-name no name 参数: vlanname: VLAN的名字。 说明: 该命令用来给相应的VLAN设置名字,便于管理维护和识别。VLAN默认的名字为VLAN XXXX,其中XXXX是由0开头的4位VLAN ID号。例如VLAN 10的默认名字为VLAN 0010。该命令可以通过no选项来恢复VLAN的默认名字。 例如: 设置VLAN 10的名字为keyan。 SW1(config)#vlan 10 SW1(config-vlan)#name keyan 3) 进入一组快速以太网端口视图 视图: 全局配置视图。 命令: interface range fastEthernet {mod-num/port-num|, mod-num/ port-num -port-num } 参数: modnum: 模块号,范围由设备和扩展模块决定。 portnum: 模块上的端口号。 说明: 该命令可以同时进入一组以太网的端口视图,主要用于对多个端口同时配置相同参数的情况。根据多个端口的不同组成情况,命令后面的参数可以有以下几种表示方式:  端口组成为多个不连续的端口,如端口1,3,5,11组成一组时,命令描述如下: interfacerange fastEthernet 0/1,0/3,0/5,0/11 也可以简写为 inte range f0/1,0/3,0/5,0/11 端口组成为多个连续的端口,如端口11,12,13,14,15,16,17,18组成一组时,命令描述如下: interfacerange fastEthernet 0/11-18 也可以简写为 inte range f0/11-18 端口组成既有不连续的,也有连续的,如端口11,端口15,16,17组成一组时,命令描述如下: interfacerange fastEthernet 0/11,0/15-17 也可以简写为 inte range f0/11,0/15-17 4) 将端口添加到VLAN中 视图: 接口配置视图。 命令: switchport access vlan vlan-id no switchport access vlan 参数: vlanid: VLAN的编号,一般的范围是1~4094。 说明: 该命令用来将接口添加到对应的VLAN中去,该命令需要在所添加的接口视图下执行,例如,要将交换机的端口5添加到VLAN 10中去,就先要用interface命令进入端口5的接口视图,然后在该视图下执行该命令。在执行该命令时,如果命令中所输入的vlanid号不存在,则会自动先创建该VLAN,然后再将端口添加进该VLAN。如果命令中输入的vlanid号已经存在,则直接将端口添加进该VLAN。华为的设备中要将端口添加到VLAN中时,可以用两种方式实现,第一种方式跟锐捷的相似,先进入端口视图,然后将端口添加到VLAN中去。另外一种方式是在VLAN配置视图下,把所需要添加的端口加进来。具体命令见拓展知识部分华为命令。该命令的no选项可以让该端口从指定的VLAN中删除,回到默认的VLAN(VLAN 1)中。 例如: 将端口10添加到VLAN 20中去。 SW1(config)#interface f0/10 SW1(config-if)#switchport access vlan 20 5) 查看VLAN配置信息 视图: 特权视图。 命令: show vlan [ id vlan-id ] 参数: vlanid: VLAN的编号,一般的范围是1~4094。 说明: 该命令用来查看VLAN的配置信息。通过该命令可以了解VLAN的编号、名称、状态和VLAN中所包含的端口号。 例如: 查看所有VLAN的配置信息。 S2328G#show vlan VLAN NameStatusPorts ---- ------------------------ ------- -------------------------------- 1 VLAN 0001STATICFa0/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, Gi0/25 Gi0/26 100 shengchanSTATICFa0/1, Fa0/2, Fa0/3, Fa0/4 Fa0/5 S2328G# 例如: 查看VLAN 100的配置信息。 S2328G#show vlan id 100 VLAN NameStatusPorts ---- ------------------------ ------- -------------------------------- 100 shengchanSTATICFa0/1, Fa0/2, Fa0/3, Fa0/4 Fa0/5 S2328G# 3.2.2任务二: 同一部门用户跨交换机的访问控制 1. 任务描述 公司在给各个部门划分VLAN后,分别连接在两台交换机(SW1和SW2,两交换机通过F0/24端口连接)上,同一部门的用户无法进行通信了,现要求连接在两台交换机上的研发、人事、财务三个部门的用户能各自相互访问,生产和销售两个部门隔离两个交换机之间的用户访问。各部门的VLAN划分和端口分配如表32所示。 表32各部门的VLAN ID和交换机端口分配表 部门交换机1(SW1)端口号交换机2(SW2)端口号VLAN ID 生产部1~51~5100 销售部6~106~10200 研发部11~1511~15300 人事部16~2016~20400 财务部21~2221~22500 2. 实验网络拓扑图 实验网络拓扑图如图34所示。 图34实验网络拓扑图 3. 设备配置 交换机SW1配置如下: S2328Gen S2328G#config Enter configuration commands, one per line.End with CNTL/Z. S2328G(config)#hostname SW1 //创建各VLAN SW1(config)#vlan 100 SW1(config-vlan)#name shengchan SW1(config-vlan)#vlan 200 SW1(config-vlan)#name xiaoshou SW1(config-vlan)#vlan 300 SW1(config-vlan)#name yanfa SW1(config-vlan)#vlan 400 SW1(config-vlan)#name renshi SW1(config-vlan)#vlan 500 SW1(config-vlan)#name caiwu SW1(config-vlan)#exit SW1(config)# //分配交换机的各个端口至相应的VLAN中 SW1(config)#interface range f0/1-5 SW1(config-if-range)#switchport access vlan 100 SW1(config-if-range)#exit SW1(config)#interface range f0/6-10 SW1(config-if-range)#switchport access vlan 200 SW1(config-if-range)#exit SW1(config)#interface range f0/11-15 SW1(config-if-range)#switchport access vlan 300 SW1(config-if-range)#exit SW1(config)#interface range f0/16-20 SW1(config-if-range)#switchport access vlan 400 SW1(config-if-range)#exit SW1(config)#interface range f0/21-22 SW1(config-if-range)#switchport access vlan 500 SW1(config-if-range)#exit SW1(config)# //配置交换机之间的连接端口 SW1(config)#interface f0/24 SW1(config-if)#switchport mode trunk//设置端口类型为trunk SW1(config-if)#switchport trunk allowed vlan remove 100,200 //阻止VLAN 100,200的数据通过 SW1(config-if)#exit 交换机SW2配置如下: S2328Gen S2328G#config Enter configuration commands, one per line.End with CNTL/Z. S2328G(config)#hostname SW2 //创建各VLAN SW2(config)#vlan 100 SW2(config-vlan)#name shengchan SW2(config-vlan)#vlan 200 SW2(config-vlan)#name xiaoshou SW2(config-vlan)#vlan 300 SW2(config-vlan)#name yanfa SW2(config-vlan)#vlan 400 SW2(config-vlan)#name renshi SW2(config-vlan)#vlan 500 SW2(config-vlan)#name caiwu SW2(config-vlan)#exit SW2(config)# //分配交换机的各个端口至相应的VLAN中 SW2(config)#interface range f0/1-5 SW2(config-if-range)#switchport access vlan 100 SW2(config-if-range)#exit SW2(config)#interface range f0/6-10 SW2(config-if-range)#switchport access vlan 200 SW2(config-if-range)#exit SW2(config)#interface range f0/11-15 SW2(config-if-range)#switchport access vlan 300 SW2(config-if-range)#exit SW2(config)#interface range f0/16-20 SW2(config-if-range)#switchport access vlan 400 SW2(config-if-range)#exit SW2(config)#interface range f0/21-22 SW2(config-if-range)#switchport access vlan 500 SW2(config-if-range)#exit SW2(config)# //配置交换机之间的连接端口 SW2(config)#interface f0/24 SW2(config-if)#switchport mode trunk SW2(config-if)#switchport trunk allowed vlan remove 100,200 SW2(config-if)#exit 4. 相关命令介绍 1) 设置VLAN端口的类型 视图: 接口视图。 命令: switchport mode { access | trunk | hybrid } no switchport mode 参数: access: 设置端口为Access端口。 trunk: 设置端口为Trunk端口。 hybrid: 设置端口为Hybrid端口。 说明: 该命令用来设置交换机接口在VLAN中的端口类型,交换机所有的端口默认都是Access端口。Access端口只能属于一个VLAN,当需要端口属于多个VLAN时,需要将端口设置成Trunk端口或者Hybrid端口。 例如: 将端口F0/24设置为Trunk端口。 SW2(config)#interface f0/24 SW2(config-if)#switchport mode trunk 2) 设置Trunk端口的许可VLAN列表 视图: 接口视图 命令: switchport trunk{allowed vlan { all | [add | remove | except] vlan-list } no switchport trunk{allowed vlan } 参数: allowed vlan vlanlist: 配置这个Trunk端口的许可VLAN列表。参数vlanlist可以是一个VLAN,也可以是一系列VLAN,以小的VLAN ID开头,以大的VLAN ID结尾,中间用符号连接,如 1020。段之间可以用,符号隔开,如110,2025,30,33。 all的含义是许可VLAN列表包含所有支持的VLAN; add表示将指定VLAN列表加入许可VLAN列表; remove表示将指定VLAN列表从许可VLAN列表中删除; except表示将除列出的VLAN列表外的所有VLAN加入许可VLAN列表。 说明: 在锐捷的交换上Trunk端口默认情况下是允许所有的VLAN的数据都能通过的。可以通过该命令来改变Trunk端口允许通过的VLAN列表。该命令同样可以用no选项来恢复Trunk端口的默认许可的VLAN列表。 例如: 允许所有的VLAN通过Trunk端口。 SW2(config)#interface f0/24 SW2(config-if)#switchport mode trunk SW2(config-if)#switchport trunk allowed vlan all 例如: 将VLAN 10和VLAN 20从Trunk端口的VLAN许可列表中去除。 SW2(config-if)#switchport trunk allowed vlan remove 10,20 例如: 将VLAN 30加入Trunk端口的VLAN许可列表中。 SW2(config-if)#switchport trunk allowed vlan add 30 3) 设置Trunk端口的默认VLAN 视图: 接口视图。 命令: switchport trunk native vlan vlan-id no switchport trunk native vlan 参数: native vlanvlanid: 默认VLAN ID。 说明: 该命令是用来设置Trunk端口的默认VLAN,每个端口都有一个默认VLAN,端口在接收不打Tag标签的数据帧时,都会当作默认VLAN的数据帧,在转发到其他接口去时,会给这数据帧打上默认VLAN的Tag标签。同样在Trunk端口发送带有默认VLAN的Tag标签的数据帧时,会把Tag标签去除。所有端口缺省的默认VLAN都是VLAN 1。Access类型的端口因为只能属于一个VLAN,所有端口当前所属的VLAN即为默认VLAN。而Trunk端口和Hybrid端口都可以同时属于多个VLAN,所以可以通过相应的命令来设置端口的默认VLAN。 例如: 设置Trunk端口的默认VLAN为VLAN 20。 SW2(config)#interface f0/24 SW2(config-if)#switchport mode trunk SW2(config-if)#switchport trunk native vlan 20 3.3拓 展 知 识 3.3.1PVLAN PVLAN即私有VLAN(Private VLAN),PVLAN采用两层VLAN隔离技术,在一台交换机上存在主VLAN(Primary VLAN)和从VLAN(Secondary VLAN),如图35所示。一个Primary VLAN和多个Secondary VLAN对应,Primary VLAN包含所对应的所有Secondary VLAN中包含的端口和上行端口,这样对于交换机来说,只需识别下层交换机中的Primary VLAN,而不必关心Primary VLAN中包含的Secondary VLAN,简化了配置。节省了VLAN资源。PVLAN中各成员虽然同处于一个子网中,但各自只能与自己的默认网关通信,相互之间不能通信。这样一来,就相当于在一个VLAN内部实现了VLAN本身所具有的隔离特性。开发这种VLAN的目的主要是为ISP解决客户VLAN数太多,超过交换机所允许的最大4096个VLAN的限制。 图35PVLAN示例 PVLAN的应用对于保证接入网络的数据通信的安全性是非常有效的。用户只需与自己的默认网关连接,一个PVLAN不需要多个VLAN和IP子网就提供了具备第二层数据通信安全性的连接,所有的用户接入PVLAN,从而实现了所有用户与默认网关的连接,而与PVLAN内的其他用户没有任何访问。PVLAN功能可以保证同一个VLAN中的各个端口相互之间不能通信,但可以穿过Trunk端口。这样即使同一VLAN中的用户,相互之间也不会受到广播的影响。 1. PVLAN中的端口类型 在PVLAN中,交换机端口有三种类型: 隔离端口(Isolated Port)、公共端口(Community Port)和混杂端口(Promiscuous Port)。在PVLAN中,Isolated Port只能和Promiscuous Port通信,但彼此不能交流通信流; Community Port不仅可以和Promiscuous Port通信,而且彼此也可以交换通信流; Promiscuous Port与路由器或者三层交换机接口相连,它收到的通信流可以发往Isolated Port和Community Port。它们分别对应不同的VLAN类型: Isolated port属于Isolated PVLAN,Community port属于Community PVLAN,而代表一个Private VLAN整体的是Primary VLAN,前面两类VLAN需要和它绑定在一起,同时它还包括Promiscuous port。 (1) 混杂端口(Promiscuous Port): 一个混杂类型端口属于主VLAN,可以与所有端口通信,包括与主VLAN关联的从VLAN中的共有端口和隔离VLAN中的主机端口。 (2) 隔离端口(Isolated Port): 一个隔离端口是一个属于隔离VLAN中的主机端口(也就是只能与主机连接的端口)。这个端口与同一个PVLAN域中的其他端口完全二层隔离,除了混杂端口外。但是,PVLAN会阻止所有从混杂端口到达隔离端口的通信,从隔离端口接收到的通信仅可以转发到混杂端口上。 (3) 公共端口(Community Port): 一个公共端口是一个属于公共VLAN的主机端口。公共端口可以与同一个公共VLAN中的其他端口通信。这些端口与所有其他公共VLAN上的端口,以及同一PVLAN中的其他隔离端口之间都是二层隔离的。 2. PVLAN中的VLAN类型 PVLAN中有三种不同类型的VLAN:主VLAN(Primary VLAN)、隔离VLAN(Isolated VLAN)和公共VLAN(Community VLAN)。隔离VLAN和公共VLAN都属于从VLAN(Secondary VLAN)。 PVLAN功能把一个VLAN二层广播域划分为多个子域。一个子域包括一对PVLAN: 一个主VLAN(Primary VLAN)和一个从VLAN(Secondary VLAN)。一个PVLAN域中可以有多个PVLAN对,每个子域一对。PVLAN域的所有子域中的PVLAN对共享相同的主VLAN,但每个子域中的从VLAN ID是不同的。也就是说,一个PVLAN域仅有一个主VLAN(Primary VLAN)。一个PVLAN域中的每个端口都是主VLAN的成员。 (1) 主VLAN: 主VLAN承载从混杂端口到隔离端口和共有主机端口以及其他混杂端口的单向通信。 (2) 隔离VLAN: 一个PVLAN域中仅有一个隔离VLAN,一个隔离VLAN是一个承载从主机到混杂端口和网关之间单向通信的从VLAN。 (3) 公共VLAN: 一个公共VLAN是一个承载从公共端口到混杂端口、网关和其他在同一个公共VLAN中的主机端口之间单向通信的从VLAN。 3. PVLAN当中使用的一些规则 一个Primary VLAN当中至少有一个Secondary VLAN,没有上限。  一个Primary VLAN当中只能有一个Isolated VLAN,可以有多个Community VLAN。  不同Primary VLAN之间的任何端口都不能互相通信(这里“互相通信”是指二层连通性)。  “Isolated端口”只能与“混杂端口”通信,除此之外不能与任何其他端口通信。  “Community端口”可以和“混杂端口”通信,也可以和同一Community VLAN当中的其他物理端口通信,除此之外不能和其他端口通信。 4. PVLAN配置过程 1) 创建Primary VLAN 例如: 配置VLAN 20为主VLAN S2328G(config)#vlan 20 S2328G(config-vlan)#private-vlan primary S2328G(config-vlan)#exit S2328G(config)#show vlan private-vlan VLANTypeStatusRoutedPortsAssociated VLANs --- -------- ------ ------ --------------------- ------------------ 20primaryinactive Disabled S2328G(config)# 2) 创建Secondary VLAN 创建步骤如表33所示。 表33配置PVLAN的步骤 步骤命令说明 1vlan vlanid进入要配置的VLAN配置模式 2 privatevlan{community | isolated| primary}配置PVLAN的类型 no privatevlan{community | isolated | primary}清除PVLAN配置,这个命令的配置要到退出VLAN配置模式后才生效 3end退出VLAN配置模式 4show vlan privatevlan [type]显示PVLAN 例如: 配置VLAN 201为公共VLAN(Community VLAN),VLAN 202为隔离VLAN(Isolated VLAN)。 S2328G(config)#vlan 201 S2328G(config-vlan)#private-vlan community S2328G(config-vlan)#exit S2328G(config)#vlan 202 S2328G(config-vlan)#private-vlan isolated S2328G(config-vlan)#exit S2328G(config)#show vlan private-vlan VLANTypeStatusRoutedPortsAssociated VLANs --- -------- ------ ------ --------------------- ------------------ 20primaryinactive Disabled 201communityinactive Disabled No Association 202isolatedinactive Disabled No Association S2328G(config)# 3) 关联Secondary VLAN和Primary VLAN 例如: 关联Secondary VLAN(VLAN 201,202)和Primary VLAN(VLAN 20)的配置步骤如表34所示。 表34关联Secondary VLAN和Primary VLAN的配置步骤 步骤命令说明 1vlan pvlanid进入Primary VLAN配置模式 2 privatevlan association {svlist| add svlist| remove svlist}关联Secondary VLAN,svlist为Secondary VLAN列表 no privatevlan association清除与所有Secondary VLAN的关联 3end退出VLAN配置模式 4show vlan privatevlan [type]显示PVLAN S2328G(config)#vlan 20 S2328G(config-vlan)#private-vlan association 201,202 S2328G(config-vlan)#show vlan private-vlan VLANTypeStatusRoutedPortsAssociated VLANs --- -------- ------ ------ --------------------- ------------------ 20primaryinactive Disabled201-202 201communityinactive Disabled20 202isolatedinactive Disabled20 S2328G(config-vlan)# 4) 映射Secondary VLAN和Primary VLAN的三层接口 映射Secondary VLAN和Primary VLAN的三层接口配置步骤如表35所示。 表35映射Secondary VLAN和Primary VLAN的三层接口配置步骤 步骤命令说明 1Interface vlan pvid进入Primary VLAN的接口模式 2 privatevlan mapping {svlist| add svlist| remove svlist}映射Secondary VLAN到Primary VLAN的三层口,svlist为Secondary VLAN列表 no privatevlan mapping清除所有Secondary VLAN的映射 3end退出VLAN配置模式 4show vlan privatevlan [type]显示PVLAN 例如: 配置Secondary VLAN的路由。 S2328G# configure terminal S2328G(config)# interface vlan 20 S2328G(config-if)# private-vlan mapping add 201,202 S2328G(config-if)# end S2328G# 5) 配置二层接口的PVLAN端口类型 配置二层接口的PVLAN端口类型步骤如表36、表37所示。 表36配置二层接口作PVLAN的主机端口配置步骤 步骤命令说明 1Interface interface进入接口配置模式 2 switchport mode privatevlan host指定二层接口为PVLAN的host类型 noswitchport mode清除二层接口的PVLAN端口类型设置 3 switchport privatevlan hostassociation pvid svid关联二层接口与PVLAN no switchport privatevlan hostassociation取消二层接口与PVLAN的关联 例如: 将F0/1指定为PVLAN的主机端口。 S2328G(config)#interface f0/1 S2328G(config-if)#switchport mode private-vlan host S2328G(config-if)#switchport private-vlan host-association 20 201 S2328G(config-if)#show vlan private-vlan VLANTypeStatusRoutedPortsAssociated VLANs --- -------- ------ ------ --------------------- ------------------ 20primaryinactive Enabled201-202 201communityinactive Disabled Fa0/1 20 202isolatedinactive Disabled20 S2328G(config-if)# 表37配置二层接口作PVLAN的混杂端口步骤 步骤命令说明 1Interface interface进入接口配置模式 2 switchport mode privatevlan promiscuous指定二层接口为PVLAN的promiscuous类型 noswitchport mode清除二层接口的PVLAN端口类型设置 3 switchport privatevlan mapping pvid {svlist| add svlist| remove svlist}PVLAN混杂端口选择所在VLAN及混杂的Secondary VLAN列表 no switchport privatevlan mapping取消混杂所有的Secondary VLAN 例如: 将F0/3指定为PVLAN的混杂端口。 S2328G(config)#interface f0/3 S2328G(config-if)#switchport mode private-vlan promiscuous S2328G(config-if)#switchport private-vlan mapping 20 201 S2328G(config-if)#show vlan private-vlan VLANTypeStatusRoutedPortsAssociated VLANs --- -------- ------ ------ --------------------- ------------------ 20primaryactiveEnabledFa0/3201-202 201communityactiveDisabled Fa0/1, Fa0/220 202isolatedactiveDisabled20 S2328G(config-if)# 3.3.2华为的相关命令 华为交换机在VLAN方面的相关操作命令跟锐捷和Cisco的有一些区别,主要相关命令如下: 1) 创建VLAN 视图: 系统视图。 命令: [undo]vlan vlan_id 参数: vlan_id: 指定需要创建或删除的VLAN编号,取值范围为1~4094。 说明: VLAN命令用来创建VLAN并进入VLAN配置视图,如果指定的VLAN已经存在,则该命令将直接进入该VLAN的配置视图。undo vlan命令用来删除指定的VLAN。缺省情况下,系统中只存在一个VLAN,即VLAN 1。VLAN 1为缺省VLAN,无法删除。 2) 向VLAN添加端口 视图: VLAN配置视图。 命令: [undo]port port_num [to port_num] &1-10 参数: port_num: 表示要加入的当前VLAN中的端口号,由端口类型和端口序号(槽位号/端口号)组成,如Ethernet0/1(简写Eth0/1)。一次可以加入一个端口,也可以加入一组或多组端口,最多可以一次加入10组端口。关键字to之后的端口号要大于或等于to之前的端口号。 &<110>: 表示前面的参数最多可以输入10次。例如一次加入1~3,5,7~10端口到VLAN 2中的命令为[Quidwayvlan2]port eth0/1 to eth0/3 eth0/5 eth0/7 to eth0/10。 说明: port命令用来向当前VLAN中添加一个或一组端口。undo port命令用来从当前VLAN中删除一个或一组端口。 3) 将当前端口添加到指定的VLAN中 视图: 端口视图。 命令: [undo]port access vlan vlan-id 参数: vlanid: 当前端口要加入的VLAN编号。 4) 指定VLAN端口类型 视图: 以太网端口视图。 命令: [undo]port link-type {access|trunk|hybrid} 参数: access: 将当前端口设置为Access端口。 hybrid: 将当前端口设置为Hybrid端口。 trunk: 将当前端口设置为Trunk端口。 说明: port linktype命令用来设置以太网端口的链路类型。undo port linktype命令用来恢复端口的链路类型为缺省状态,即为Access端口。缺省情况下,所有端口均为Access端口。Trunk端口和Hybrid端口之间不能直接切换,只能先设为Access端口,再设置为其他类型端口。例如: Trunk端口不能直接被设置为Hybrid端口,只能先设为Access端口,再设置为Hybrid端口。 5) 指定端口的缺省VLAN ID 视图: 以太网端口视图。 命令: [undo]port trunk pvid vlan vlan-id 参数: vlanid: 需要设置为当前端口缺省VLAN的VLAN编号,取值范围为1~4094。 说明: port trunk pvid vlan命令用来设置Trunk端口的缺省VLAN,对于缺省VLAN的报文,Trunk端口在发送时将不保留VLAN Tag。undo port trunk pvid命令用来恢复端口的缺省VLAN ID。缺省情况下,Trunk端口的pvid是VLAN 1。在设置了Trunk端口的缺省VLAN后,还需要使用port trunk permit vlan命令使端口允许缺省VLAN通过,该端口才能正常发送缺省VLAN的报文。如果将某个Trunk端口的缺省VLAN配置为尚未创建的VLAN,或没有通过port trunk permit vlan命令配置该端口允许缺省VLAN通过,则端口将无法接收不带VLAN Tag的报文。在修改Trunk端口的缺省VLAN ID时,需要保证Trunk链路两端的缺省VLAN ID一致,否则端口可能无法正确转发缺省VLAN的报文。 6) 指定Trunk端口可以通过的VLAN数据帧 视图: 以太网端口视图。 命令: [undo]port trunk permit vlan {vlandilist|all} 参数: vlanidlist: 当前Trunk端口允许通过的VLAN的范围,表示方式为vlanidlist =[ vlanid1 [ to vlanid2 ] ]&<110>,vlanid1 和vlanid2 的取值范围为1~4094,但vlanid2 不能小于vlanid1。&<110>表示前面的参数最多可以输入10次。 all: 当前Trunk端口允许所有VLAN通过,该参数谨慎使用,以防止未授权VLAN的用户通过该端口访问受限资源。 说明: port trunk permit vlan命令用来指定Trunk端口允许通过的VLAN,即允许这些VLAN的报文通过。除缺省VLAN外,Trunk端口在发送其他允许通过的VLAN的报文时将保留VLAN Tag。undo port trunk permit vlan命令用来将Trunk端口从指定的VLAN中删除。Trunk端口可以属于多个VLAN。如果多次使用port trunk permit vlan命令,那么Trunk端口上允许通过的VLAN是这些vlanidlist 的集合。缺省情况下,所有Trunk端口仅属于VLAN 1。 3.4项 目 实 训 企业网络由4台交换机(一楼SW1,二楼SW2,三楼SW3和网络中心交换机SW4)连接,因网络中经常有用户的电脑感染病毒而向网络中发送广播形成广播风暴,导致企业整个网络的正常使用受到影响。现要求在交换机上使用VLAN来进行不同部门之间的隔离,减少广播风暴对整个网络的影响,如图36所示。 图36用VLAN实现不同部门间的隔离 基本要求: (1) 正确选择设备并使用线缆连接; (2) 正确给各个PC配置相关IP地址及子网掩码等参数; (3) 在SW1上配置相关VLAN,并把交换机相应的端口添加到VLAN中,用相关显示命令查看配置结果。 (4) 在SW2上配置相关VLAN,并把交换机相应的端口添加到VLAN中,用相关显示命令查看配置结果。 (5) 在SW3上配置相关VLAN,并把交换机相应的端口添加到VLAN中。用相关显示命令查看配置结果。 (6) 在SW4上进行相关配置,使得不同交换机上的相同部门的PC(如销售部PC1和销售部PC3)可以相互访问。 拓展要求: 配置图37的网络拓扑图中的两个交换机,使得两个不同VLAN中的PC能相互访问。 图37网络拓扑图 项目3考核表如表38所示。 表38项目3考核表 序号项目考核知识点参 考 分 值评价 1设备连接2 2配置PC的IP地址及子网掩码等参数3 3交换机上创建VLAN及划分相应端口3 4交换机上Trunk端口的设置3 5拓展要求3 合计14 3.5习题 1. 选择题 (1) 下面哪一句话是错误的?() A. VLAN是不受物理区域和交换机限制的逻辑网络,它构成一个广播域 B. VLAN能解决局域网内由广播过多所带来的宽带利用率下降、安全性低等问题 C. VLAN的主要作用是缩小广播域,控制广播风暴 D. 所有主机和交换机都能识别带有VLAN标签的数据帧 (2) 一个Access端口可以属于多少个VLAN?() A. 仅一个VLAN B. 最多4094个VLAN C. 最多4096个VLAN D. 根据管理员设置的结果而定 (3) 下面各类端口对报文处理正确的是()。 A. Access端口可以接收和发送多个VLAN的报文 B. Trunk端口可以接收和发送多个VLAN的报文 C. Hybrid端口只可以接收和发送一个VLAN的报文 D. Trunk端口可以接收和发送多个VLAN标签的报文 (4) 当需要VLAN跨交换机时,交换机与交换机之间连接的端口应该设置为哪类端口?() A. Access端口B. Trunk端口C. Hybrid端口D. Console口 (5) IEEE 802.1q协议是如何给以太网帧打上VLAN标签的?() A. 在以太网帧的前面插入4字节的Tag B. 在以太网帧的后面插入4字节的Tag C. 在以太网帧的源地址和长度/类型字段之间插入4字节的Tag D. 在以太网帧的外部加上802.1q封装信息 (6) 对交换机的Access端口和Trunk端口描述正确的是()。 A. Access端口只能属于一个VLAN,而Trunk端口可以属于多个VLAN B. Access端口只能发送不带Tag的帧,而Trunk端口只能发送带有Tag的帧 C. Access端口只能接收不带Tag的帧,而Trunk端口只能接收带有Tag的帧 D. Access端口的默认VLAN只能是VLAN1,而Trunk端口可以有多个默认VLAN (7) 下面删除VLAN的命令哪一条是正确的?() A. Switch# no vlan 10 B. Switch(config)# no vlan 1 C. Switch(config)# no vlan 10 D. Switch(config)# del vlan 10 (8) 在锐捷交换机上配置Trunk接口时,如果要从允许VLAN列表中删除VLAN 10,该用下面哪条命令?() A. Switch(configif)#switchport trunk allowed remove 10 B. Switch(configif)#switchport trunk vlan remove 10 C. Switch(configif)#swtichport trunk vlan allowed remove 10 D. Switch(configif)#swtichport trunk allowed vlan remove 10 (9) 当要使一个VLAN跨越两台交换机时,需要下面哪个条件支持?() A. 用三层交换机连接两台交换机 B. 将两台交换机的连接口设置成Trunk C. 用路由器连接两台交换机 D. 在两台交换机上面配置相同的VLAN (10) 在PVLAN中,哪类端口可以与所有类型的端口通信?() A. 公共端口 B. 隔离端口 C. 混杂端口 D. 私有端口 2. 简单题 (1) 简述VLAN的概念。VLAN的作用是什么? (2) VLAN有哪些划分方法? (3) 简述Access端口如何收发报文的? (4) 在一台锐捷交换机上配置一个VLAN 10,并将端口1~10添加到VLAN 10中,将端口24设置成Trunk端口,该如何配置?