目 录
1 VLAN配置... 1-1
1.1 VLAN简介.. 1-1
1.1.1 VLAN概述.. 1-1
1.1.2 VLAN原理.. 1-2
1.1.3 VLAN划分.. 1-3
1.2 配置VLAN基本属性.. 1-3
1.3 配置VLAN接口基本属性.. 1-3
1.4 配置基于端口的VLAN. 1-4
1.4.1 基于端口的VLAN简介.. 1-4
1.4.2 配置基于Access端口的VLAN. 1-5
1.4.3 配置基于Trunk端口的VLAN. 1-6
1.4.4 配置基于Hybrid端口的VLAN. 1-7
1.5 基于MAC地址的VLAN. 1-8
1.5.1 基于MAC的VLAN简介.. 1-8
1.5.2 配置基于MAC的VLAN. 1-8
1.6 VLAN显示和维护.. 1-9
1.7 VLAN典型配置举例.. 1-9
l 不同型号产品的特性功能支持情况略有不同,详细请参见“特性差异化列表”部分的介绍。
l 设备支持的接口类型和编号与设备的实际情况相关,本手册涉及以太网接口的配置举例统一使用Eth口举例说明。实际使用中请根据具体设备的接口类型和编号进行配置。
l 本手册中所述的AP设备可以指代一般意义下的AP设备和无线网桥、无线Mesh设备。
以太网是一种基于CSMA/CD(Carrier Sense Multiple Access/Collision Detect,载波侦听多路访问/冲突检测)的共享通讯介质的数据网络通讯技术,当主机数目较多时会导致冲突严重、广播泛滥、性能显著下降甚至使网络不可用等问题。通过交换机实现LAN互联虽然可以解决冲突(Collision)严重的问题,但仍然不能隔离广播报文。在这种情况下出现了VLAN(Virtual Local Area Network,虚拟局域网)技术,这种技术可以把一个LAN划分成多个逻辑的LAN——VLAN,每个VLAN是一个广播域,VLAN内的主机间通信就和在一个LAN内一样,而VLAN间则不能直接互通,这样,广播报文被限制在一个VLAN内,如图1-1所示。
图1-1 VLAN示意图
VLAN的划分不受物理位置的限制:不在同一物理位置范围的主机可以属于同一个VLAN;一个VLAN包含的用户可以连接在同一个交换机上,也可以跨越交换机,甚至可以跨越路由设备。
VLAN的优点如下:
l 限制广播域。广播域被限制在一个VLAN内,节省了带宽,提高了网络处理能力。
l 增强局域网的安全性。VLAN间的二层报文是相互隔离的,即一个VLAN内的用户不能和其它VLAN内的用户直接通信,如果不同VLAN要进行通信,则需通过路由设备或三层交换机等三层设备。
l 灵活构建虚拟工作组。用VLAN可以划分不同的用户到不同的工作组,同一工作组的用户也不必局限于某一固定的物理范围,网络构建和维护更方便灵活。
要使网络设备能够分辨不同VLAN的报文,需要在报文中添加标识VLAN的字段。由于普通交换机工作在OSI模型的数据链路层,只能对报文的数据链路层封装进行识别。因此,如果添加识别字段,也需要添加到数据链路层封装中。
IEEE(Institute of Electrical and Electronics Engineers,电气和电子工程师学会)于1999年颁布了用以标准化VLAN实现方案的IEEE 802.1Q协议标准草案,对带有VLAN标识的报文结构进行了统一规定。
传统的以太网数据帧在目的MAC地址和源MAC地址之后封装的是上层协议的类型字段,如图1-2所示。
图1-2 传统以太网帧封装格式
其中DA表示目的MAC地址,SA表示源MAC地址,Type表示报文所属协议类型。
IEEE 802.1Q协议规定在目的MAC地址和源MAC地址之后封装4个字节的VLAN Tag,用以标识VLAN的相关信息。
图1-3 VLAN Tag的组成字段
如图1-3所示,VLAN Tag包含四个字段,分别是TPID(Tag Protocol Identifier,标签协议标识符)、Priority、CFI(Canonical Format Indicator,标准格式指示位)和VLAN ID。
l TPID用来判断本数据帧是否带有VLAN Tag,长度为16bit,缺省取值为0x8100。
l Priority表示报文的802.1P优先级,长度为3bit,相关内容请参见“ACL和QoS配置指导”中的“QoS”。
l CFI字段标识MAC地址在不同的传输介质中是否以标准格式进行封装,长度为1bit,取值为0表示MAC地址以标准格式进行封装,为1表示以非标准格式封装,缺省取值为0。
l VLAN ID标识该报文所属VLAN的编号,长度为12bit,取值范围为0~4095。由于0和4095为协议保留取值,所以VLAN ID的取值范围为1~4094。
网络设备利用VLAN ID来识别报文所属的VLAN,根据报文是否携带VLAN Tag以及携带的VLAN Tag值,来对报文进行处理。
l 这里的帧格式以Ethernet II型封装为例,以太网还支持802.2 LLC和802.3 raw封装格式。对于这些封装格式的报文,也会添加VLAN Tag字段,用来区分不同VLAN的报文。
l 对于多VLAN Tag报文,设备会根据其最外层VLAN Tag进行处理,而内层VLAN Tag会被视为报文的普通数据部分。
VLAN根据划分方式不同可以分为不同类型,设备支持下面两种VLAN类型:
l 基于端口的VLAN
l 基于MAC地址的VLAN
表1-1 配置VLAN基本属性
配置 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建VLAN |
vlan { vlan-id1 [ to vlan-id2 ]} |
可选 该命令主要用于批量创建VLAN |
进入VLAN视图 |
vlan vlan-id |
必选 如果指定的VLAN不存在,则该命令先完成VLAN的创建,然后再进入该VLAN的视图 缺省情况下,系统只有一个缺省VLAN(VLAN1) |
指定当前VLAN的名称 |
name text |
缺省情况下,VLAN的名称为该VLAN的VLAN ID,如“VLAN 0001” |
为VLAN指定一个描述字符串 |
description text |
可选 缺省情况下,VLAN的描述字符串为该VLAN的VLAN ID,如“VLAN 0001” |
l VLAN1为系统缺省VLAN,用户不能手工创建和删除。
l 不能通过undo vlan命令删除设备上动态学习到的VLAN。
不同VLAN间的主机不能直接通信,需要通过路由设备或三层交换机等网络层设备进行转发,设备提供VLAN接口实现对报文进行三层转发的功能。
VLAN接口是一种三层模式下的虚拟接口,主要用于实现VLAN间的三层互通,它不作为物理实体存在于设备上。每个VLAN对应一个VLAN接口,在为VLAN接口配置了IP地址后,该接口即可作为本VLAN内网络设备的网关,对需要跨网段的报文进行基于IP地址的三层转发。
表1-2 配置VLAN接口基本属性
配置 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建VLAN接口并进入VLAN接口视图 |
interface vlan-interface vlan-interface-id |
必选 如果该VLAN接口已经存在,则直接进入该VLAN接口视图 |
配置VLAN接口的IP地址 |
ip address ip-address { mask | mask-length } |
可选 缺省情况下,没有配置VLAN接口的IP地址 |
为VLAN接口指定一个描述字符串 |
description text |
可选 缺省情况下,VLAN接口的描述字符串为该VLAN接口的接口名,如“Vlan-interface1 Interface” |
打开VLAN接口 |
undo shutdown |
可选 缺省情况下,VLAN接口的状态为打开,此时VLAN接口状态受VLAN中端口状态的影响,即:当VLAN中所有以太网端口状态为down时,VLAN接口为down状态,即关闭状态;当VLAN中有一个或一个以上的以太网端口处于up状态时,则VLAN接口处于up状态 如果将VLAN接口的状态设置为down,则VLAN接口的状态始终为down,不受VLAN中端口状态的影响 |
在创建VLAN接口之前,对应的VLAN必须已经存在。否则,将不能创建指定的VLAN接口。
基于端口划分VLAN是VLAN最简单、最有效的划分方法。它按照设备端口来定义VLAN成员,将指定端口加入到指定VLAN中之后,端口就可以转发指定VLAN的报文。
根据端口在转发报文时对Tag标签的不同处理方式,可将端口的链路类型分为三种:
l Access类型:端口只能属于1个VLAN,一般用于设备与计算机直接连接;
l Trunk类型:端口可以允许多个VLAN通过,可以接收和发送多个VLAN的报文,一般用来在不同的设备之间进行连接,以保证在跨越多个设备上建立相同的VLAN的成员能够相互通讯;
l Hybrid类型:端口可以允许多个VLAN通过,接收和发送多个VLAN的报文,用于网络设备之间连接或用于连接用户设备。Hybrid端口既可以连接接入链路又可以连接干道链路。
除了可以设置端口允许通过的VLAN,还可以设置端口的缺省VLAN。在缺省情况下,所有端口的缺省VLAN均为VLAN1,但用户可以根据需要进行配置。
l Access端口的缺省VLAN就是它所在的VLAN,不能配置。
l Trunk端口和Hybrid端口可以允许多个VLAN通过,能够配置缺省VLAN。
l 当执行undo vlan命令删除的VLAN是某个端口的缺省VLAN时,对Access端口,端口的缺省VLAN会恢复到VLAN1;对Trunk或Hybrid端口,端口的缺省VLAN配置不会改变,即它们可以使用已经不存在的VLAN作为缺省VLAN。
l 建议本端设备端口的缺省VLAN ID和相连的对端设备端口的缺省VLAN ID保持一致。
l 建议保证端口的PVID属于端口所在的VLAN。如果端口不在某VLAN内,但是端口的PVID仍然为该VLAN,当端口收到该VLAN的报文或者不带VLAN Tag的报文(包括STP等协议报文)都会被过滤。
在配置了端口链路类型和缺省VLAN后,端口对报文的接收和发送的处理有几种不同情况,具体情况请参看表1-3。
表1-3 不同链路类型端口收发报文的差异
端口类型 |
对接收报文的处理 |
对发送报文的处理 |
|
当接收到的报文不带Tag时 |
当接收到的报文带有Tag时 |
||
Access端口 |
为报文打上缺省VLAN的Tag |
l 当VLAN ID与缺省VLAN ID相同时,接收该报文 l 当VLAN ID与缺省VLAN ID不同时,丢弃该报文 |
由于VLAN ID就是缺省VLAN ID,去掉Tag,发送该报文 |
Trunk端口 |
l 当缺省VLAN ID在端口允许通过的VLAN ID列表里时,接收该报文,给报文打上缺省VLAN的Tag l 当缺省VLAN ID不在端口允许通过的VLAN ID列表里时,丢弃该报文 |
l 当VLAN ID在端口允许通过的VLAN ID列表里时,接收该报文 l 当VLAN ID是该端口不允许通过的VLAN ID时,丢弃该报文 |
l 当VLAN ID与缺省VLAN ID相同,且是该端口允许通过的VLAN ID时:去掉Tag,发送该报文 l 当VLAN ID与缺省VLAN ID不同,且是该端口允许通过的VLAN ID时:保持原有Tag,发送该报文 |
Hybrid端口 |
当报文中携带的VLAN ID是该端口允许通过的VLAN ID时,发送该报文,并可以通过port hybrid vlan命令配置端口在发送该VLAN(包括缺省VLAN)的报文时是否携带Tag |
配置基于Access端口的VLAN有两种方法:一种是在VLAN视图下进行配置,另一种是在以太网接口或BSS接口视图下进行配置。
表1-4 配置基于Access端口的VLAN(在VLAN视图下)
配置 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VLAN视图 |
vlan vlan-id |
必选 如果指定的VLAN不存在,则该命令先完成VLAN的创建,然后再进入该VLAN的视图 |
向当前VLAN中添加一个或一组Access端口 |
port interface-list |
必选 缺省情况下,系统将所有端口都加入到VLAN1 |
表1-5 配置基于Access端口的VLAN(在接口视图下)
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
进入接口视图后,下面进行的配置只在当前端口下生效 |
配置端口的链路类型为Access类型 |
port link-type access |
可选 缺省情况下,端口的链路类型为Access类型 |
将当前Access端口加入到指定VLAN |
port access vlan vlan-id |
可选 缺省情况下,所有Access端口均属于且只属于VLAN1 |
在将Access端口加入到指定VLAN之前,要加入的VLAN必须已经存在。
Trunk端口可以允许多个VLAN通过,只能在以太网接口视图下进行配置。
表1-6 配置基于Trunk端口的VLAN
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入以太网接口视图 |
interface interface-type interface-number |
- |
|
配置端口的链路类型为Trunk类型 |
port link-type trunk |
必选 |
|
允许指定的VLAN通过当前Trunk端口 |
port trunk permit vlan { vlan-id-list | all } |
必选 缺省情况下,Trunk端口只允许VLAN1的报文通过 |
|
设置Trunk端口的缺省VLAN |
port trunk pvid vlan vlan-id |
可选 缺省情况下,Trunk端口的缺省VLAN为VLAN1 |
l Trunk端口和Hybrid端口之间不能直接切换,只能先设为Access端口,再设置为其它类型端口。例如:Trunk端口不能直接被设置为Hybrid端口,只能先设为Access端口,再设为Hybrid端口。
l 配置缺省VLAN后,必须使用port trunk permit vlan命令配置允许缺省VLAN的报文通过,出接口才能转发缺省VLAN的报文。
Hybrid端口可以允许多个VLAN通过,只能在以太网接口和BSS接口视图下进行配置。
表1-7 配置基于Hybrid端口的VLAN
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置端口的链路类型为Hybrid类型 |
port link-type hybrid |
必选 |
允许指定的VLAN通过当前Hybrid端口 |
port hybrid vlan vlan-id-list { tagged | untagged } |
必选 缺省情况下,Hybrid端口只允许VLAN1的报文以untagged方式通过(即VLAN1的报文从该端口发送出去后不携带VLAN Tag) |
设置Hybrid端口的缺省VLAN |
port hybrid pvid vlan vlan-id |
可选 缺省情况下,Hybrid端口的缺省VLAN为VLAN1 |
l Trunk端口和Hybrid端口之间不能直接切换,只能先设为Access端口,再设置为其它类型端口。例如:Trunk端口不能直接被设置为Hybrid端口,只能先设为Access端口,再设置为Hybrid端口。
l 在设置允许指定的VLAN通过Hybrid端口之前,允许通过的VLAN必须已经存在。
l 配置缺省VLAN后,必须使用port hybrid vlan命令配置允许缺省VLAN的报文通过,出接口才能转发缺省VLAN的报文。
基于MAC划分VLAN是VLAN的另一种划分方法。它按照报文的源MAC地址来定义VLAN成员,将指定报文加入该VLAN的Tag后发送。该功能通常会和安全(比如802.1X)技术联合使用,以实现终端的安全、灵活接入。
如果端口采用基于MAC地址划分VLAN的机制,则当端口收到报文时,采用以下方法处理:
l 当收到的报文为untagged报文时,会以报文的源MAC为根据去匹配MAC-VLAN表项。精确查找,即查询表中MASK为全F的表项,如果该表项中的MAC地址和关键字完全相同,则查找成功,给报文添加表项中指定的VLAN ID。模糊匹配,即查询表中MASK不是全F的表项,将关键字和MASK相与后再与表项中的MAC地址匹配,如果完全相同,则查找成功,给报文添加表项中指定的VLAN ID。如果匹配失败,则按其它匹配原则进行匹配。
l 当收到的报文为tagged报文时,处理方式和基于端口的VLAN一样:如果端口允许携带该VLAN标记的报文通过,则正常转发;如果不允许,则丢弃该报文。
基于MAC地址的VLAN可以通过如下两种方式来进行配置:
l 通过命令行静态配置。用户通过命令行来配置MAC地址和VLAN的关联关系。
l 通过认证服务器来自动配置(即VLAN下发)。设备根据认证服务器提供的信息,动态创建MAC地址和VLAN的关联关系。如果用户下线,系统将自动删除该对应关系。该方式下(只)需要在认证服务器上配置MAC地址和VLAN的关联,有关该方式的详细介绍请参见“安全配置指导”中的“802.1x”。
MAC-VLAN表项可以同时支持两种配置方式,即在本地设备和认证服务器上都进行了配置,但是这两种配置必须一致配置才能生效;如果不一致的话,则先执行的配置生效。
基于MAC的VLAN功能只能在Hybrid端口配置。
表1-8 配置基于MAC的VLAN
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
配置MAC地址与VLAN的关联 |
mac-vlan mac-address mac-address [ mask mac-mask ] vlan vlan-id[ priority priority ] |
必选 |
|
进入接口视图 |
interface interface-type interface-number |
必选 |
|
配置端口的链路类型为Hybrid类型 |
port link-type hybrid |
必选 |
|
允许基于MAC的VLAN通过当前Hybrid端口 |
port hybrid vlan vlan-id-list { tagged | untagged } |
必选 缺省情况下,所有Hybrid端口只允许VLAN 1通过 |
|
使能基于MAC地址划分VLAN的功能 |
mac-vlan enable |
必选 缺省情况下,未使能端口的MAC VLAN功能 |
在完成上述配置后,在任意视图下执行display命令可以显示配置后VLAN的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除接口统计信息。
表1-9 VLAN显示和维护
操作 |
命令 |
显示VLAN相关信息 |
display vlan [ vlan-id1 [ to vlan-id2 ] | all | dynamic | reserved | static ] |
显示VLAN接口相关信息 |
display interface vlan-interface [ vlan-interface-id ] |
显示MAC-VLAN表项 |
display mac-vlan { all | dynamic | mac-address mac-address [ mask mac-mask ] | static | vlan vlan-id } |
显示所有使能了MAC VLAN功能的接口 |
display mac-vlan interface |
显示设备上当前存在的Hybrid或Trunk端口 |
display port { hybrid | trunk } |
清除接口的统计信息 |
reset counters interface [ interface-type [ interface-number ] ] |
使用reset counters interface命令可以清除VLAN接口的统计信息,该命令的详细描述请参见“二层技术-以太网交换命令参考”中的“以太网接口”。
l AP与对端Device B使用Trunk端口Ethernet1/0/1相连;
l 该端口的缺省VLAN ID为100;
l 该端口允许VLAN2、VLAN6到VLAN50、VLAN100的报文通过。
图1-4 配置基于端口的VLAN组网图
(1) 配置AP
# 创建VLAN2、VLAN6到VLAN50、VLAN100。
<AP> system-view
[AP] vlan 2
[AP-vlan2] quit
[AP] vlan 100
[AP-vlan100] vlan 6 to 50
Please wait... Done.
# 进入Ethernet1/0/1以太网接口视图。
[AP] interface ethernet 1/0/1
# 配置Ethernet1/0/1为Trunk端口,并配置端口的缺省VLAN ID为100。
[AP-Ethernet1/0/1] port link-type trunk
[AP-Ethernet1/0/1] port trunk pvid vlan 100
# 配置Ethernet1/0/1禁止VLAN1的报文通过(所有端口缺省情况下都是允许VLAN1的报文通过的)。
[AP-Ethernet1/0/1] undo port trunk permit vlan 1
# 配置Ethernet1/0/1允许VLAN2、VLAN6到VLAN50、VLAN100的报文通过。
[AP-Ethernet1/0/1] port trunk permit vlan 2 6 to 50 100
Please wait... Done.
[AP-Ethernet1/0/1] quit
[AP] quit
(2) 配置Device B,与AP配置步骤雷同,不再赘述。
此处以AP的验证为例,Device B的验证与此类似,不再赘述。
# 查看AP的Ethernet1/0/1的相关信息,验证以上配置是否生效。
<AP> display interface ethernet 1/0/1
Ethernet1/0/1 current state: UP
IP Packet Frame Type: PKTFMT_ETHNT_2, Hardware Address: 000f-e200-0000
Description: Ethernet1/0/1 Interface
Loopback is not set
Media type is twisted pair, promiscuous mode not set
100Mbps-speed mode, full-duplex mode
Link speed type is autonegotiation, link duplex type is autonegotiation
Flow-control is not enabled
The Maximum Frame Length is 1522
Broadcast MAX-ratio: 100%
Unicast MAX-ratio: 100%
Multicast MAX-ratio: 100%
PVID: 100
Port link-type: trunk
VLAN passing : 2, 6-50, 100
VLAN permitted: 2, 6-50, 100
Trunk port encapsulation: IEEE 802.1q
Port priority: 0
Last 300 seconds input: 0 packets/sec 0 bytes/sec
Last 300 seconds output: 0 packets/sec 0 bytes/sec
Input (total): 0 packets, 0 bytes
0 broadcasts, 0 multicasts
Input (normal): 0 packets, 0 bytes
0 broadcasts, 0 multicasts
Input: 0 input errors, 0 runts, 0 giants, 0 throttles
0 CRC, 0 frame, 0 overruns, 0 aborts
0 ignored, 0 parity errors
Output (total): 0 packets, 0 bytes
0 broadcasts, 0 multicasts, 0 pauses
Output (normal): 0 packets, 0 bytes
0 broadcasts, 0 multicasts, 0 pauses
Output: 0 output errors, 0 underruns, 0 buffer failures
0 aborts, 0 deferred, 0 collisions, 0 late collisions
0 lost carrier, 0 no carrier
通过以上显示信息,可以看到接口的类型为trunk(Port link-type: trunk),接口的缺省VLAN为VLAN 100(PVID: 100),端口允许VLAN2、VLAN6到VLAN50、VLAN100的报文通过(VLAN permitted: 2, 6-50, 100)。配置成功。