第三章 控制交换网络中的广播流量
3.1 VLAN概述
VLAN是虚拟局域网(Virtual Local Area Network)的简称,它是在一个物理网络上划分出来的逻辑网络。这个网络对应于ISO模型的第二层网络。VLAN的划分不受网络端口的实际物理位置的限制。VLAN有着和普通物理网络同样的属性,除了没有物理位置的限制,它和普通局域网一样。第二层的单播、广播和多播帧在一个VLAN内转发、扩散,而不会直接进入其他的VLAN之中。所以,如果一个端口所连接的主机想要同和它不在同一个VLAN的主机通讯,则必须通过一个路由器或者三层交换机,见下图。
可以把一个端口定义为一个VLAN的成员,所有连接到这个特定端口的终端都是虚拟网络的一部分,并且整个网络可以支持多个VLAN。当增加、删除和修改用户,的时候不必从物理上调整网络配置。
和一个物理网络一样,VLAN通常和一个IP子网联系在一起。一个典型的例子是,所有在同一个IP子网中的主机属于同一个VLAN。VLAN之间的通讯必须通过三层设备(路由器或者三层交换机)。实达的三层交换机可以通过SVI接口(switch virtual interfaces)来进行VLAN之间的IP路由。关于SVI的配置,请见接口管理配置及IP单播路由配置。
支持的VLAN 支持的VLAN遵循IEEE802.1q标准,最多支持250个VLAN(VLAN ID 1-4094)。其中VLAN 1是不可删除的默认VLAN。
3.2 VLAN成员类型
 
 
 
可以通过配置一个端口在某个VLAN中的VLAN成员类型,来确定这个端口能通过怎样的帧,以及这个端口可以属于多少个VLAN。VLAN成员类型VLAN端口特征access 一个access端口,只能属于一个VLAN,并且是通过手工设置指定VLAN的。
Trunk(802.1Q)
一个Trunk口,在缺省情况下是属于本交换机所有VLAN的,它能够转发所有VLAN的帧。但是可以通过设置许可VLAN列表(allowed-VLANs)来加以限制。
3.3配置VLAN
一个VLAN是以VLAN ID来标识的。您可以添加、删除、修改VLAN2到4094。而VLAN 1则是由交换机自动创建,并且不可被删除。
可以使用interface配置模式来配置一个端口的VLAN成员类型、加入、移出一个VLAN。
VLAN配置信息的保存
当您在特权命令模式下输入copy running-config startup-config命令后,VLAN的配置信息便被保存进配置文件。要查看VLAN配置信息,可以使用show vlan命令。
缺省的VLAN配置
参数缺省值范围VLAN ID 1 1-4094 VLAN name VLAN xxxx,xxxx是VLAN ID数无范围VLAN state active Active,Inactive
创建、修改一个VLAN
在特权模式下,通过如下步骤,您可以创建或者修改一个VLAN:
命令含义步骤1 configure terminal 进入全局配置模式
步骤2 vlan vlan-id 输入一个VLAN ID。如果输入的是一个新的VLAN ID,则交换机会创建一个VLAN,如果输入的是已经存在的VLAN ID,则修改相应的VLAN。步骤3 name vlan-name (可选)为VLAN取一个名字。如果没有进行这一步,则交换机会自动为它起一个名字VLAN xxxx,其中xxxx是用0开头的四位VLAN ID号。比如,VLAN 0004就是VLAN 4的缺省名字。步骤4 End 回到特权命令模式步骤5 show vlan {id vlan-id} 检查一下您刚才的配置是否正确步骤6 copy running-config startup config (可选)将配置保存进配置文件中
如果您想把VLAN的名字改回缺省名字,只需输入no name命令即可。
下面是一个创建VLAN 888,将它命名为test888,并且保存进配置文件的例子:
Switch# configure terminal
Switch(config)# vlan 888
Switch(config-vlan)# name test888
Switch(config-vlan)# end
删除一个VLAN
您不能删除缺省VLAN(VLAN 1)。
在特权模式下,使用如下步骤可以删除一个VLAN
命令含义步骤1 configure terminal 进入全局配置模式步骤2 no vlan vlan-id 输入一个VLAN ID,删除它。步骤3 end 回到特权命令模式步骤4 show vlan 检查一下是否正确删除步骤5 copy running-config startup config (可选)将配置保存进配置文件
向VLAN分配Access口
如果您把一个接口分配给一个不存在的VLAN,那么这个VLAN将自动被创建。
在特权模式下,利用如下步骤可以将一个端口分配给一个VLAN。
命令含义步骤1 configure terminal 进入全局配置模式步骤2 Interface interface-id 输入想要加入VLAN的interface id 步骤3 switchport mode access 定义该接口的VLAN成员类型(二层ACCESS口) 步骤4 switchport access vlan vlan-id 将这个口分配给一个VLAN 步骤5 end 回到特权命令模式步骤6 show interfaces interface-id switchport 检查接口的完整信息步骤7 copy running-config startup config (可选)将配置保存进配置文件
下面这个例子把ethernet 0/10作为access口加入了VLAN20:
Switch# configure terminal
Switch(config)# interface fastethernet0/10
Switch(config-if)# switchport mode access
Switch(config-if)# switchport access vlan 20
Switch(config-if)# end
下面这个例子显示了如何检查配置是否正确:
Switch# show interfaces fastethernet0/1 switchport
Interface Switchport Mode Access Native Protected VLAN lists
---------- ---------- --------- --------- --------- --------- -----------
Fa0/1 Enabled Access 1 1 Enabled All
配置VLAN Trunks
Trunking概述
一个Trunk是连接将一个或多个以太网交换接口和其他的网络设备(如路由器或交换机)的点对点链路,一个Trunk可以在一条链路上传输多个VLAN的流量。
实达交换机的Trunk采用802.1Q标准封装。
下图显示了一个采用Trunk连接起来的网络。
您可以把一个普通的以太网端口,或者一个Aggregate Port设为一个Trunk口(关于Aggregate Port的详细说明,请见配置Aggregate Port)。
如果要把一个接口在ACCESS模式和TRUNK模式之间切换,请用switchport mode命令:
命令功能switchport mode access [vlan vlan-id] 将一个接口设置成为access模式Switchport mode trunk 将一个接口设置成为Trunk模式
作为Trunk,这个口要属于一个native VLAN。所谓native VLAN,就是指在这个接口上收发的UNTAG报文,都被认为是属于这个VLAN的。显然,这个接口的缺省VLAN ID(即IEEE 802.1Q中的PVID)就是native VLAN的VLAN ID。同时,在Trunk上发送属于native VLAN的帧,则必然采用UNTAG的方式。Trunk口具体的行为,请参见接口管理。
每个Trunk口的缺省native VLAN是VLAN 1。
在配置Trunk链路时,请确认连接链路两端的Trunk口属于相同的native VLAN。
配置一个Trunk口
一个接口缺省工作在第二层模式,一个二层接口的缺省模式是Access口。
Trunk口基本配置
在特权模式下,利用如下步骤可以将一个接口配置成一个Trunk口。
命令含义步骤1 configure terminal 进入全局配置模式步骤2 interface interface-id 输入想要配成Trunk口的interface id 步骤3 switchport mode trunk 定义该接口的类型为二层Trunk口步骤4 switchport trunk native vlan vlan-id 为这个口指定一个native VLAN 步骤5 end 回到特权命令模式步骤6 show interfaces interface-id switchport 检查接口的完整信息步骤7 show interfaces interface-id trunk 显示这个接口的trunk设置步骤8 copy running-config startup config (可选)将配置保存进startup config文件
如果想把一个Trunk口的所有Trunk相关属性都复位成缺省值,请使用no switchport trunk 接口配置命令。
定义Trunk口的许可VLAN列表
一个Trunk口缺省可以传输本交换机支持的所有VLAN(1-4094)的流量。但是,您也可以通过设置Trunk口的许可VLAN列表来限制某些VLAN的流量不能通过这个Trunk口。
在特权模式下,利用如下步骤可以修改一个Trunk口的许可VLAN列表。
命令含义步骤1 configure terminal 进入全局配置模式步骤2 interface interface-id 输入想要修改许可VLAN列表的Trunk口的interface id 步骤3 switchport mode trunk 定义该接口的类型为二层Trunk口步骤4 switchport trunk allowed vlan { all | [add | remove | except]} vlan-list (可选)配置这个Trunk口的许可VLAN列表。参数vlan-list可以是一个VLAN,也可以是一系列VLAN,以小的VLAN ID开头,以大的VLAN ID结尾,中间用-号连接。如: 10–20。
all的含义是许可VLAN列表包含所有支持的VLAN;
add表示将指定VLAN列表加入许可VLAN列表;
remove表示将指定VLAN列表从许可
VLAN列表中删除;
except表示将除列出的VLAN列表外的所有VLAN加入许可VLAN列表;
您不能将VLAN 1从许可VLAN列表中移出。步骤5 end 回到特权命令模式步骤6 show interfaces interface-id switchport 检查接口的完整信息步骤7 copy running-config startup config (可选)将配置保存进配置文件
如果想把Trunk的许可VLAN列表改为缺省的许可所有VLAN的状态,请使用no switchport trunk allowed vlan接口配置命令。
下面是一个把VLAN 2从端口0/15中移出的例子:
Switch(config)# interface fastethernet0/15
Switch(config-if)# switchport trunk allowed vlan remove 2
Switch(config-if)# end
Switch# show interfaces fastethernet0/15 switchport
Interface Switchport Mode Access Native Protected VLAN lists
--------- ---------- --------- --------- --------- --------- -----------
Fa0/15 Enabled Trunk 1 1 Enabled 1,3-4094
配置Native VLAN
一个Trunk口能够收发TAG或者UNTAG的802.1Q帧。其中UNTAG帧用来传输Native VLAN的流量。缺省的Native VLAN是VLAN 1。
在特权模式下,利用如下步骤可以为一个Trunk口配置Native VLAN。
命令含义步骤1 configure terminal 进入全局配置模式步骤2 interface interface-id 输入配置Native VLAN的Trunk口的interface id 步骤3 switchport trunk native vlan vlan-id 配置Native VLAN 步骤4 end 回到特权命令模式步骤5 show interfaces interface-id switchport 验证配置步骤6 copy running-config startup config (可选)将配置保存进配置文件
如果想把Trunk的Native VLAN列表改回缺省的VLAN 1,请使用no switchport trunk native vlan接口配置命令。
如果一个帧带有Native VLAN的VLAN ID,在通过这个Trunk口转发时,会自动被剥去TAG。
当把一个接口的native VLAN设置为一个不存在的VLAN时,交换机不会自动创建此VLAN。此外,一个接口的native VLAN可以不在接口的许可VLAN列表中。此时,native VLAN的流量不能通过该接口。
显示VLAN
在特权模式下,才可以查看VLAN的信息。显示的信息包括VLAN vid、VLAN状态、VLAN成员端口以及VLAN配置信息。以下罗列了相关的显示命令:
命令命令模式命令功能show vlan[id vlan-id] 特权模式显示所有或指定VLAN的参数
下面是一个显示VLAN的例子:
Switch# show vlan
VLAN Name Status Ports
---- ------------------ --------- ---------------
1 default active Fa0/1, Fa0/2, Fa0/3, Fa0/4
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, Gi0/1
Gi0/2
2 VLAN0002 active Fa0/5
4 VLAN0004 active
5 VLAN0005 active
Switch#show vlan id 2
VLAN Name Status Ports
---- -------------------------------- --------- -------------
2 VLAN0002 active Fa0/5