09-VLAN配置
本章节下载: 09-VLAN配置 (740.98 KB)
以太网是一种基于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的优点如下:
· 限制广播域。广播域被限制在一个VLAN内,节省了带宽,提高了网络处理能力。
· 增强局域网的安全性。VLAN间的二层报文是相互隔离的,即一个VLAN内的用户不能和其它VLAN内的用户直接通信,如果不同VLAN要进行通信,则需通过路由器或三层交换机等三层设备。
· 灵活构建虚拟工作组。用VLAN可以划分不同的用户到不同的工作组,同一工作组的用户也不必局限于某一固定的物理范围,网络构建和维护更方便灵活。
要使网络设备能够分辨不同VLAN的报文,需要在报文中添加标识VLAN的字段。由于普通交换机工作在OSI模型的数据链路层,只能对报文的数据链路层封装进行识别。因此,如果添加识别字段,也需要添加到数据链路层封装中。
IEEE(Institute of Electrical and Electronics Engineers,电气和电子工程师学会)于1999年颁布了用以标准化VLAN实现方案的IEEE 802.1Q协议标准草案,对带有VLAN标识的报文结构进行了统一规定。
传统的以太网数据帧在目的MAC地址和源MAC地址之后封装的是上层协议的类型字段,如图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。
· TPID用来判断本数据帧是否带有VLAN Tag,长度为16bit,缺省取值为0x8100。各设备厂商可以自定义该字段的值。当邻居设备将TPID值配置为非0x8100时,为了能够识别这样的报文,实现互通,必须在本设备上修改TPID值,确保和邻居设备的TPID值配置一致。如果报文的TPID值为配置值或0x8100,则该报文被认为带有VLAN Tag。配置TPID值的相关命令请参见“二层技术-以太网交换命令参考”中的“QinQ”。
· Priority表示报文的802.1P优先级,长度为3bit。
· CFI字段标识MAC地址在不同的传输介质中是否以标准格式进行封装,长度为1bit,取值为0表示MAC地址以标准格式进行封装,为1表示以非标准格式封装,缺省取值为0。
· VLAN ID标识该报文所属VLAN的编号,长度为12bit,取值范围为0~4095。由于0和4095为协议保留取值,所以VLAN ID的取值范围为1~4094。
网络设备根据报文是否携带VLAN Tag以及携带的VLAN Tag信息,来对报文进行处理,利用VLAN ID来识别报文所属的VLAN。详细的处理方式请参见“1.4.1 基于端口的VLAN简介”。
· 这里的帧格式以Ethernet II型封装为例,以太网还支持802.2 LLC、802.2 SNAP和802.3 raw封装格式。对于这些封装格式的报文,也会添加VLAN Tag字段,用来区分不同VLAN的报文。
· 对于多VLAN Tag报文,设备会根据其最外层VLAN Tag进行处理,而内层VLAN Tag会被视为报文的普通数据部分。
VLAN根据划分方式不同可以分为不同类型,下面列出了几种最常见的VLAN类型:
· 基于端口的VLAN
· 基于MAC地址的VLAN
· 基于协议的VLAN
· 基于IP子网的VLAN
· 基于策略的VLAN
· 其它VLAN
本章将分别介绍基于端口的VLAN、基于MAC地址的VLAN、基于协议的VLAN和基于IP子网的VLAN。如果某个接口下同时使能以上四种VLAN,则缺省情况下VLAN的匹配将按照MAC VLAN、IP子网VLAN、协议VLAN、端口VLAN的先后顺序进行。
与VLAN相关的协议规范有:
· IEEE 802.1Q:IEEE Standard for Local and Metropolitan Area Networks: Virtual Bridged Local Area Networks
表1-1 配置VLAN基本属性
配置 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建一个VLAN并进入VLAN视图,或批量创建VLAN |
vlan { vlan-id1 [ to vlan-id2 ] | all } |
可选 缺省情况下,系统只有一个缺省VLAN(VLAN 1) |
进入VLAN视图 |
vlan vlan-id |
必选 批量创建VLAN时,为必选;否则,无需执行本命令 |
指定当前VLAN的名称 |
name text |
可选 缺省情况下,VLAN的名称为该VLAN的VLAN ID,如“VLAN 0001” |
配置当前VLAN的描述信息 |
description text |
可选 缺省情况下,VLAN的描述字符串为该VLAN的VLAN ID,如“VLAN 0001” |
· VLAN 1为系统缺省VLAN,用户不能手工创建和删除。
· 保留VLAN是系统为实现特定功能预留的VLAN,用户也不能手工创建和删除。
· 协议保留的VLAN、Voice VLAN、管理VLAN、动态学习到的VLAN、配置有QoS策略的VLAN、Smart Link的控制VLAN、RRPP的控制VLAN、远程镜像VLAN等,都不能使用undo vlan命令直接删除。只有将相关配置删除之后,才能删除相应的VLAN。
不同VLAN间的主机不能直接通信,通过在设备上配置VLAN接口,可以实现VLAN间的三层互通。
VLAN接口是一种三层的虚拟接口,它不作为物理实体存在于设备上。每个VLAN对应一个VLAN接口,在为VLAN接口配置了IP地址后,该IP地址即可作为本VLAN内网络设备的网关地址,对需要跨网段的报文进行基于IP地址的三层转发。
表1-2 配置VLAN接口基本属性
配置 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建VLAN接口并进入VLAN接口视图 |
interface vlan-interface vlan-interface-id |
必选 · 空配置启动时,使用软件功能缺省值,设备上没有任何VLAN接口 · 缺省配置启动时,使用软件功能出厂值,设备上已创建VLAN1接口 关于空配置启动和缺省配置启动,请参见“基础配置指导”中的“配置文件管理” 如果该VLAN接口已经存在,则直接进入该VLAN接口视图 |
配置VLAN接口的IP地址 |
ip address ip-address { mask | mask-length } [ sub ] |
可选 · 空配置启动时,使用软件功能缺省值,没有配置VLAN接口的IP地址 · 缺省配置启动时,使用软件功能出厂值,VLAN1接口使用DHCP方式自动获取IP地址 |
配置当前VLAN接口的描述信息 |
description text |
可选 缺省情况下,VLAN接口的描述信息为该VLAN接口的接口名,如“Vlan-interface1 Interface” |
配置VLAN接口的MTU值 |
mtu size |
可选 缺省情况下,VLAN接口的MTU值为1500字节 |
恢复VLAN接口的缺省配置 |
default |
可选 |
打开VLAN接口 |
undo shutdown |
可选 缺省情况下,未手工关闭VLAN接口。此时VLAN接口状态受VLAN中端口状态的影响,即:当VLAN中所有以太网端口状态均为down时,VLAN接口为down状态,即关闭状态;当VLAN中有一个或一个以上的以太网端口处于up状态时,则VLAN接口处于up状态。 如果将VLAN接口的状态通过shutdown命令设置为DOWN(Administratively),则VLAN接口的状态始终为DOWN(Administratively),不受VLAN中端口状态的影响 |
在创建VLAN接口之前,对应的VLAN必须已经存在,否则将不能创建指定的VLAN接口。
如图1-4所示,PC A、PC B与Switch A组网。其中PC A、PC B分别属于VLAN 5、VLAN 10,且处于不同网段,不能直接通信。通过在Switch A上创建并配置VLAN接口,实现不同网段的PC A与PC B跨VLAN三层互通。
图1-4 通过VLAN接口实现VLAN间互通
(1) 配置Switch A
# 创建VLAN 5,并向VLAN 5中添加端口Ethernet1/0/1。
<SwitchA> system-view
[SwitchA] vlan 5
[SwitchA-vlan5] port Ethernet 1/0/1
# 创建VLAN 10,并向VLAN 10中添加端口Ethernet1/0/2。
[SwitchA-vlan5] vlan 10
[SwitchA-vlan10] port Ethernet 1/0/2
[SwitchA-vlan10] quit
# 创建Vlan-interface5,并配置其IP地址为192.168.0.10/24。
[SwitchA] interface vlan-interface 5
[SwitchA-Vlan-interface5] ip address 192.168.0.10 24
[SwitchA-Vlan-interface5] quit
# 创建Vlan-interface10,并配置其IP地址为192.168.1.20/24。
[SwitchA] interface vlan-interface 10
[SwitchA-Vlan-interface10] ip address 192.168.1.20 24
[SwitchA-Vlan-interface10] return
(2) 配置PC A
# 将其默认网关配为192.168.0.10。
(3) 配置PC B
# 将其默认网关配为192.168.1.20。
(1) PC A与PC B可以相互ping通。
(2) 通过查看显示信息验证配置是否成功。
# 查看Switch A上三层接口的IP基本配置信息,验证以上配置是否生效。
<SwitchA> display ip interface brief
*down: administratively down
(s): spoofing
Interface Physical Protocol IP Address Description
Vlan-interface5 up up 192.168.0.10 Vlan-inte...
Vlan-interface10 up up 192.168.1.20 Vlan-inte...
基于端口划分VLAN是最简单、最有效的VLAN划分方法。它按照设备端口来定义VLAN成员,将指定端口加入到指定VLAN中之后,端口就可以转发指定VLAN的报文。
根据端口在转发报文时对VLAN Tag的不同处理方式,可将端口的链路类型分为三种:
· Access连接:端口发出去的报文不带VLAN Tag。一般用于和不能识别VLAN Tag的终端设备相连,或者不需要区分不同VLAN成员时使用。
· Trunk连接:端口发出去的报文,端口缺省VLAN内的报文不带Tag,其它VLAN内的报文都必须带Tag。通常用于网络传输设备之间的互连。
· Hybrid连接:端口发出去的报文可根据需要设置某些VLAN内的报文带Tag,某些VLAN内的报文不带Tag。Hybrid类型端口既可以用于网络传输设备之间的互连,又可以直接连接终端设备。
除了可以设置端口允许通过的VLAN,还可以设置端口的缺省VLAN,即PVID(Port VLAN ID,端口VLAN ID)。在缺省情况下,所有端口的缺省VLAN均为VLAN 1,但用户可以根据需要进行配置。
· Access端口的缺省VLAN就是它所在的VLAN。
· Trunk端口和Hybrid端口可以允许多个VLAN通过,能够配置缺省VLAN。
· 当执行undo vlan命令删除的VLAN是某个端口的缺省VLAN时,对Access端口,端口的缺省VLAN会恢复到VLAN 1;对Trunk或Hybrid端口,端口的缺省VLAN配置不会改变,即它们可以使用已经不存在的VLAN作为缺省VLAN。
· 当Voice VLAN工作模式为自动模式时,不能将缺省VLAN设置为Voice VLAN。有关Voice VLAN的相关内容,请参见“3 Voice VLAN配置”。
· 建议本端设备端口的缺省VLAN ID和相连的对端设备端口的缺省VLAN ID保持一致。
· 建议保证端口的缺省VLAN为端口允许通过的VLAN。如果端口不允许某VLAN通过,但是端口的缺省VLAN为该VLAN,则端口会丢弃收到的该VLAN的报文或者不带VLAN Tag的报文。
在配置了端口链路类型和缺省VLAN后,端口对报文的接收和发送的处理有几种不同情况,具体情况请参看表1-3。
端口类型 |
对接收报文的处理 |
对发送报文的处理 |
|
当接收到的报文不带Tag时 |
当接收到的报文带有Tag时 |
||
Access端口 |
为报文添加缺省VLAN的Tag |
· 当VLAN ID与缺省VLAN ID相同时,接收该报文 · 当VLAN ID与缺省VLAN ID不同时,丢弃该报文 |
去掉Tag,发送该报文 |
Trunk端口 |
· 当缺省VLAN ID在端口允许通过的VLAN ID列表里时,接收该报文,给报文添加缺省VLAN的Tag · 当缺省VLAN ID不在端口允许通过的VLAN ID列表里时,丢弃该报文 |
· 当VLAN ID在端口允许通过的VLAN ID列表里时,接收该报文 · 当VLAN ID不在端口允许通过的VLAN ID列表里时,丢弃该报文 |
· 当VLAN ID与缺省VLAN ID相同,且是该端口允许通过的VLAN ID时:去掉Tag,发送该报文 · 当VLAN ID与缺省VLAN ID不同,且是该端口允许通过的VLAN ID时:保持原有Tag,发送该报文 |
Hybrid端口 |
当报文中携带的VLAN ID是该端口允许通过的VLAN ID时,发送该报文,并可以通过port hybrid vlan命令配置端口在发送该VLAN(包括缺省VLAN)的报文时是否携带Tag |
配置基于Access端口的VLAN有两种方法:一种是在VLAN视图下进行配置,另一种是在二层以太网端口视图/端口组视图/二层聚合接口视图下进行配置。
表1-4 配置基于Access端口的VLAN(在VLAN视图下)
配置 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VLAN视图 |
vlan vlan-id |
必选 如果指定的VLAN不存在,则该命令先完成VLAN的创建,然后再进入该VLAN的视图 |
向当前VLAN中添加一个或一组Access端口 |
port interface-list |
必选 缺省情况下,系统将所有端口都加入到VLAN 1 |
表1-5 配置基于Access端口的VLAN(在二层以太网端口视图/端口组视图/二层聚合接口视图)
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入相应视图 |
进入二层以太网端口视图 |
interface interface-type interface-number |
四者必选其一 · 二层以太网端口视图下的配置只对当前端口生效 · 端口组视图下的配置对当前端口组中的所有端口生效 · 二层聚合接口视图下的配置对当前二层聚合接口及其所有成员端口都生效,若配置二层聚合接口时失败,则不再配置其成员端口,若配置某成员端口时失败,系统会自动跳过该成员端口继续配置其它成员端口 |
进入端口组视图 |
port-group manual port-group-name |
||
进入二层聚合接口视图 |
interface bridge-aggregation interface-number |
||
配置端口的链路类型为Access类型 |
port link-type access |
可选 缺省情况下,端口的链路类型为Access类型 |
|
将当前Access端口加入到指定VLAN |
port access vlan vlan-id |
可选 缺省情况下,所有Access端口均属于且只属于VLAN 1 |
· 在将Access端口加入到指定VLAN之前,要加入的VLAN必须已经存在。
· 在VLAN视图下向VLAN中添加端口时,只能添加二层以太网端口。
Trunk端口可以允许多个VLAN通过,只能在二层以太网端口视图/端口组视图/二层聚合接口视图下进行配置。
表1-6 配置基于Trunk端口的VLAN
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入相应视图 |
进入二层以太网端口视图 |
interface interface-type interface-number |
四者必选其一 · 二层以太网端口视图下的配置只对当前端口生效 · 端口组视图下的配置对当前端口组中的所有端口生效 · 二层聚合接口视图下的配置对当前二层聚合接口及其所有成员端口都生效,若配置二层聚合接口时失败,则不再配置其成员端口,若配置某成员端口时失败,系统会自动跳过该成员端口继续配置其它成员端口 |
进入端口组视图 |
port-group manual port-group-name |
||
进入二层聚合接口视图 |
interface bridge-aggregation interface-number |
||
配置端口的链路类型为Trunk类型 |
port link-type trunk |
必选 缺省情况下,所有端口的链路类型均为Access类型 |
|
允许指定的VLAN通过当前Trunk端口 |
port trunk permit vlan { vlan-list | all } |
必选 缺省情况下,Trunk端口只允许VLAN 1的报文通过 |
|
设置Trunk端口的缺省VLAN |
port trunk pvid vlan vlan-id |
可选 缺省情况下,Trunk端口的缺省VLAN为VLAN 1 |
· Trunk端口和Hybrid端口之间不能直接切换,只能先设为Access端口,再设置为其它类型端口。例如:Trunk端口不能直接被设置为Hybrid端口,只能先设为Access端口,再设置为Hybrid端口。
· 配置缺省VLAN后,必须使用port trunk permit vlan命令配置允许缺省VLAN的报文通过,出接口才能转发缺省VLAN的报文。
Hybrid端口可以允许多个VLAN通过,只能在二层以太网端口视图/端口组视图/二层聚合接口视图下进行配置。
表1-7 配置基于Hybrid端口的VLAN
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入相应视图 |
进入二层以太网端口视图 |
interface interface-type interface-number |
四者必选其一 · 二层以太网端口视图下的配置只对当前端口生效 · 端口组视图下的配置对当前端口组中的所有端口生效 · 二层聚合接口视图下的配置对当前二层聚合接口及其所有成员端口都生效,若配置二层聚合接口时失败,则不再配置其成员端口,若配置某成员端口时失败,系统会自动跳过该成员端口继续配置其它成员端口 |
进入端口组视图 |
port-group manual port-group-name |
||
进入二层聚合接口视图 |
interface bridge-aggregation interface-number |
||
配置端口的链路类型为Hybrid类型 |
port link-type hybrid |
必选 缺省情况下,所有端口的链路类型均为Access类型 |
|
允许指定的VLAN通过当前Hybrid端口 |
port hybrid vlan vlan-list { tagged | untagged } |
必选 缺省情况下,Hybrid端口只允许VLAN 1的报文以Untagged方式通过(即VLAN 1的报文从该端口发送出去后不携带VLAN Tag) |
|
设置Hybrid端口的缺省VLAN |
port hybrid pvid vlan vlan-id |
可选 缺省情况下,Hybrid端口的缺省VLAN为VLAN 1 |
· Trunk端口和Hybrid端口之间不能直接切换,只能先设为Access端口,再设置为其它类型端口。例如:Trunk端口不能直接被设置为Hybrid端口,只能先设为Access端口,再设置为Hybrid端口。
· 在设置允许指定的VLAN通过Hybrid端口之前,允许通过的VLAN必须已经存在。
· 配置缺省VLAN后,必须使用port hybrid vlan命令配置允许缺省VLAN的报文通过,出接口才能转发缺省VLAN的报文。
· Host A和Host C属于部门A,但是通过不同的设备接入公司网络;Host B和Host D属于部门B,也通过不同的设备接入公司网络。
· 为了通信的安全性,也为了避免广播报文泛滥,公司网络中使用VLAN技术来隔离部门间的二层流量。其中部门A使用VLAN 100,部门B使用VLAN 200。
· 现要求不管是否使用相同的设备接入公司网络,同一VLAN内的主机能够互通。即Host A和Host C能够互通,Host B和Host D能够互通。
图1-5 基于端口的VLAN组网图
(1) 配置Device A
# 创建VLAN 100,并将Ethernet1/0/1加入VLAN 100。
<DeviceA> system-view
[DeviceA] vlan 100
[DeviceA-vlan100] port ethernet 1/0/1
[DeviceA-vlan100] quit
# 创建VLAN 200,并将Ethernet1/0/2加入VLAN 200。
[DeviceA] vlan 200
[DeviceA-vlan200] port ethernet 1/0/2
[DeviceA-vlan200] quit
# 为了使Device A上VLAN 100和VLAN 200的报文能发送给Device B,将Ethernet1/0/3的链路类型配置为Trunk,并允许VLAN 100和VLAN 200的报文通过。
[DeviceA] interface ethernet 1/0/3
[DeviceA-Ethernet1/0/3] port link-type trunk
[DeviceA-Ethernet1/0/3] port trunk permit vlan 100 200
Please wait... Done.
(2) Device B上的配置与Device A上的配置完全一样,不再赘述。
(3) 将Host A和Host C配置在一个网段,比如192.168.100.0/24;将Host B和Host D配置在一个网段,比如192.168.200.0/24。
(1) Host A和Host C能够互相ping通,但是均不能ping通Host B。Host B和Host D能够互相ping通,但是均不能ping通Host A。
(2) 通过查看显示信息验证配置是否成功。
# 查看Device A上VLAN 100和VLAN 200的配置信息,验证以上配置是否生效。
[DeviceA-Ethernet1/0/3] display vlan 100
VLAN ID: 100
VLAN Type: static
Route Interface: not configured
Description: VLAN 0100
Name: VLAN 0100
Tagged Ports:
Ethernet1/0/3
Untagged Ports:
Ethernet1/0/1
[DeviceA-Ethernet1/0/3] display vlan 200
VLAN ID: 200
VLAN Type: static
Route Interface: not configured
Description: VLAN 0200
Name: VLAN 0200
Tagged Ports:
Ethernet1/0/3
Untagged Ports:
Ethernet1/0/2
基于MAC划分VLAN是VLAN的另一种划分方法。它按照报文的源MAC地址来定义VLAN成员,将指定报文加入该VLAN的Tag后发送。该功能通常会和安全(比如802.1X)技术联合使用,以实现终端的安全、灵活接入。
手动配置静态MAC VLAN常用于VLAN中用户相对较少的网络环境。在该方式下,用户需要手动配置MAC VLAN表项,使能基于MAC地址的VLAN功能,并将端口加入MAC VLAN。其原理为:
· 当端口收到的报文为Untagged报文时,根据报文的源MAC匹配MAC VLAN表项。首先进行模糊匹配,即查询表中MASK不是全F的表项,将源MAC和MASK相与后与MAC VLAN表项中的MAC地址匹配,如果完全相同,则模糊匹配成功,给报文添加表项中指定的VLAN ID并转发该报文;如果模糊匹配失败,则进行精确匹配,即查询表中MASK为全F的表项,如果报文中的源MAC与MAC VLAN表项中的MAC地址完全相同,则精确匹配成功,给报文添加表项中指定的VLAN ID并转发该报文;如果没有找到匹配MAC VLAN表项,则继续按照其它原则(如IP子网、协议等)进行匹配,如果匹配成功,则转发报文,如果匹配均失败,则给报文添加端口的缺省VLAN ID并转发该报文。
· 当端口收到的报文为Tagged报文时,如果报文的VLAN ID在该端口允许通过的VLAN ID列表里,则转发该报文;如果报文的VLAN ID不在端口允许通过的VLAN ID列表里,则丢弃该报文。
手动配置静态MAC VLAN时,用户需要把端口分别加入相应的MAC VLAN,当用户不能确定从哪些端口收到指定VLAN的报文时,就不能把相应端口加入到MAC VLAN,在这种情况下,手动配置静态MAC VLAN无法满足用户的需求。此时可以动态触发端口加入静态MAC VLAN。在该方式下,用户在配置MAC VLAN表项后,需要在端口上使能基于MAC的VLAN功能和MAC VLAN动态触发功能。其原理为:
端口在收到报文时,首先判断报文是否携带VLAN Tag,若带Tag,则直接上送报文源MAC地址;若不带Tag,则先进行报文VLAN选择(按照基于MAC的 VLAN->基于IP子网的VLAN->基于协议的VLAN->基于端口的VLAN的优先次序为该Untagged报文添加对应的Tag,并获取该Tag),再上送报文的源MAC地址。然后根据报文的源MAC查询MAC VLAN表项:
· 如果报文源MAC地址与MAC VLAN表项中的MAC地址精确匹配,检查报文的VLAN ID是否与对应表项中的VLAN ID一致,若一致,通过此报文动态触发端口加入相应VLAN,同时转发报文,否则丢弃该报文。
· 如果报文源MAC地址与MAC VLAN表项的MAC地址不精确匹配,当报文VLAN ID为端口PVID,判断端口是否允许报文在PVID内转发,若允许,则在PVID中转发该报文,否则丢弃该报文。当报文VLAN ID不为端口PVID,报文继续按照其它原则(如IP子网、协议等)进行匹配,若匹配成功,则转发该报文;若匹配均失败,则丢弃该报文。处理流程如图1-6所示:
· 在端口加入MAC VLAN表项中相应的VLAN时,若端口未配置允许该VLAN通过,则端口自动以Untagged方式加入该VLAN。
· 如果用户在同一端口上同时使能了手动配置MAC VLAN和动态触发端口加入MAC VLAN,此时该端口选择使用后者的功能。
· 当端口收到的报文与MAC VLAN表项匹配,对该报文进行转发时,根据MAC VLAN的优先级(MAC地址对应VLAN的802.1p优先级)高低来决定报文的转发策略。
动态MAC VLAN需要和接入认证(比如基于MAC地址的802.1X认证)配合使用,以实现终端的安全、灵活接入。用户在设备上配置动态MAC VLAN功能以后,还需要在接入认证服务器上配置用户名和VLAN的绑定关系。
如果用户发起认证请求,接入认证服务器先对用户名和密码进行验证,如果验证通过,服务器下发VLAN信息。此时设备根据请求报文的源MAC地址和下发的VLAN信息生成MAC VLAN表项,并将MAC VLAN添加到端口允许通过的VLAN列表中。用户下线后,设备自动删除MAC VLAN表项,并将MAC VLAN从端口允许通过的VLAN列表中删除。
接入认证的相关内容请参见“安全配置指导”中的“802.1X”、“MAC地址认证”和“Portal”。
· 基于MAC的VLAN功能只能在Hybrid端口配置。
· 基于MAC的VLAN动态触发使能后,报文会上送CPU处理。由于该处理的优先级最高,会导致MAC地址最大学习数和MAC地址禁止学习功能不生效,因此不建议MAC VLAN动态触发功能和上述两个功能同时使用。
· 基于MAC的VLAN动态触发功能不和802.1X和MAC认证功能同时使用。
· 基于MAC的VLAN动态触发功能要求源MAC所匹配的VLAN必须是静态VLAN才能完成触发功能。
· 基于MAC的VLAN功能主要用于在用户的接入设备的下行端口上进行配置,因此不和聚合功能同时使用。
· 配置MSTP多实例情况下,如果端口在要加入的VLAN对应的MSTP实例中是阻塞状态,则端口会丢弃收到的报文,造成MAC地址不能上送,不能完成动态触发功能。基于MAC的动态VLAN的使用场景为接入侧,不建议和多实例MSTP同时使用。
· 配置PVST情况下,如果端口要加入的VLAN不为端口允许通过的VLAN,则端口处于阻塞状态,会丢弃收到的报文,造成MAC地址不能上送,不能完成动态触发功能。基于MAC的动态VLAN的使用场景为接入侧,不建议和PVST同时使用。
· 配置MAC-VLAN表项时,如果指定了MAC地址对应VLAN的802.1p优先级,则用户还需要在相应端口视图下执行qos trust dot1p命令,使该端口信任报文的802.1p优先级,该配置才能生效。关于qos trust dot1p命令的详细介绍请参见“ACL和QoS命令参考”中的“优先级映射配置命令”。
表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 |
二者必选其一 · 二层以太网端口视图下的配置只对当前端口生效 · 端口组视图下的配置对当前端口组中的所有端口生效 |
进入端口组视图 |
port-group manual port-group-name |
||
配置端口的链路类型为Hybrid类型 |
port link-type hybrid |
必选 缺省情况下,所有端口的链路类型均为Access类型 |
|
允许基于MAC的VLAN通过当前Hybrid端口 |
port hybrid vlan vlan-list { tagged | untagged } |
必选 缺省情况下,所有Hybrid端口只允许VLAN 1通过 |
|
使能基于MAC地址划分VLAN的功能 |
mac-vlan enable |
必选 缺省情况下,未使能基于MAC地址划分VLAN的功能 |
|
配置VLAN匹配优先级 |
vlan precedence { mac-vlan | ip-subnet-vlan } |
可选 缺省情况下,优先根据单个MAC地址来匹配VLAN |
表1-9 动态触发端口加入静态MAC VLAN
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置MAC地址与VLAN关联 |
mac-vlan mac-address mac-address vlan vlan-id [ priority priority ] |
必选 使能MAC VLAN的动态触发功能后,只有端口接收的报文的源MAC地址匹配了Mask为全F的MAC VLAN表项,才会动态触发该端口加入相应VLAN |
进入二层以太网端口视图 |
interface interface-type interface-number |
- |
配置端口的链路类型为Hybrid类型 |
port link-type hybrid |
必选 缺省情况下,所有端口的链路类型均为Access类型 |
使能基于MAC地址划分VLAN的功能 |
mac-vlan enable |
必选 缺省情况下,未使能基于MAC地址划分VLAN的功能 |
使能MAC VLAN的动态触发功能 |
mac-vlan trigger enable |
必选 缺省情况下,未使能MAC VLAN的动态触发功能。 |
配置VLAN匹配优先级 |
vlan precedence mac-vlan |
可选 缺省情况下,优先根据单个MAC地址来匹配VLAN |
配置PVID禁止功能 |
port pvid disable |
可选 缺省情况下,对于没有匹配到MAC VLAN表项的未知源MAC会在PVID内进行转发通过 |
使用mac-vlan trigger enable命令配置MAC VLAN的动态触发功能后,建议用户配置vlan precedence mac-vlan使报文优先根据单个MAC地址来匹配VLAN,请不要配置vlan precedence ip-subnet-vlan命令使报文优先匹配IP子网-VLAN表,该配置不能生效。
表1-10 配置动态MAC VLAN
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入相应视图 |
进入二层以太网端口视图 |
interface interface-type interface-number |
二者必选其一 · 二层以太网端口视图下的配置只对当前端口生效 · 端口组视图下的配置对当前端口组中的所有端口生效 |
进入端口组视图 |
port-group manual port-group-name |
||
配置端口的链路类型为Hybrid类型 |
port link-type hybrid |
必选 缺省情况下,所有端口的链路类型均为Access类型 |
|
允许基于MAC的VLAN通过当前Hybrid端口 |
port hybrid vlan vlan-list { tagged | untagged } |
必选 缺省情况下,所有Hybrid端口只允许VLAN 1通过 |
|
使能基于MAC地址划分VLAN的功能 |
mac-vlan enable |
必选 缺省情况下,未使能基于MAC地址划分VLAN的功能 |
|
配置认证功能 |
配置802.1X |
请参见“安全命令参考”中的“802.1X” |
三者至少选其一 |
配置MAC地址认证 |
请参见“安全命令参考”中的“MAC地址认证” |
||
配置Portal |
请参见“安全命令参考”中的“Portal” |
· 如图1-7所示,Device A和Device C的Ethernet1/0/1端口分别连接到两个会议室,Laptop1和Laptop2是会议用笔记本电脑,会在两个会议室间移动使用。
· Laptop1和Laptop2分别属于两个部门,两个部门间使用VLAN 100和VLAN 200进行隔离。现要求这两台笔记本电脑无论在哪个会议室使用,均只能访问自己部门的服务器,即Server1和Server2。
· Laptop1和Laptop2的MAC地址分别为000d-88F8-4E71和0014-222C-AA69。
图1-7 基于MAC的VLAN组网图
· 创建VLAN 100、VLAN 200。
· 配置Device A和Device C的上行端口为Trunk端口,并允许VLAN 100和VLAN 200的报文通过。
· 配置 Device B 的下行端口为Trunk端口,并允许VLAN 100和VLAN 200的报文通过;上行端口分别加入VLAN 100、VLAN 200。
· Laptop1和Laptop2的MAC地址分别与VLAN 100、VLAN 200关联。
(1) Device A的配置
# 创建VLAN 100和VLAN 200。
<DeviceA> system-view
[DeviceA] vlan 100
[DeviceA-vlan100] quit
[DeviceA] vlan 200
[DeviceA-vlan200] quit
# 将Laptop1的MAC地址与VLAN 100关联,Laptop2的MAC地址与VLAN 200关联。
[DeviceA] mac-vlan mac-address 000d-88f8-4e71 vlan 100
[DeviceA] mac-vlan mac-address 0014-222c-aa69 vlan 200
# 配置终端的接入端口:Laptop1和Laptop2均可能从Ethernet1/0/1接入,将Ethernet1/0/1的端口类型配置为Hybrid,并使其在发送VLAN 100和VLAN 200的报文时去掉VLAN Tag;开启Ethernet1/0/1端口的MAC-VLAN功能。
[DeviceA] interface ethernet 1/0/1
[DeviceA-Ethernet1/0/1] port link-type hybrid
[DeviceA-Ethernet1/0/1] port hybrid vlan 100 200 untagged
Please wait... Done.
[DeviceA-Ethernet1/0/1] mac-vlan enable
[DeviceA-Ethernet1/0/1] quit
# 为了终端能够访问Server1和Server2,需要将上行端口Ethernet1/0/2的端口类型配置为Trunk,并允许VLAN 100和VLAN 200的报文通过。
[DeviceA] interface ethernet 1/0/2
[DeviceA-Ethernet1/0/2] port link-type trunk
[DeviceA-Ethernet1/0/2] port trunk permit vlan 100 200
[DeviceA-Ethernet1/0/2] quit
(2) Device B的配置
# 创建VLAN 100和VLAN 200,并将Ethernet1/0/13加入VLAN 100,Ethernet 1/0/14加入VLAN 200。
<DeviceB> system-view
[DeviceB] vlan 100
[DeviceB-vlan100] port ethernet 1/0/13
[DeviceB-vlan100] quit
[DeviceB] vlan 200
[DeviceB-vlan200] port ethernet 1/0/14
[DeviceB-vlan200] quit
# 配置Ethernet1/0/3和Ethernet1/0/4端口为Trunk端口,均允许VLAN 100和VLAN 200的报文通过。
[DeviceB] interface ethernet 1/0/3
[DeviceB-Ethernet1/0/3] port link-type trunk
[DeviceB-Ethernet1/0/3] port trunk permit vlan 100 200
[DeviceB-Ethernet1/0/3] quit
[DeviceB] interface ethernet 1/0/4
[DeviceB-Ethernet1/0/4] port link-type trunk
[DeviceB-Ethernet1/0/4] port trunk permit vlan 100 200
[DeviceB-Ethernet1/0/4] quit
(3) Device C的配置
Device C的配置与Device A完全一致,这里不再赘述。
(1) Laptop1只能访问Server1,不能访问Server2;Laptop2只能访问Server2,不能访问Server1。
(2) 在Device A和Device C上可以查看到Laptop1和VLAN 100、Laptop2和VLAN 200的静态MAC VLAN地址表项已经生成。
[DeviceA] display mac-vlan all
The following MAC VLAN addresses exist:
S:Static D:Dynamic
MAC ADDR MASK VLAN ID PRIO STATE
--------------------------------------------------------
000d-88f8-4e71 ffff-ffff-ffff 100 0 S
0014-222c-aa69 ffff-ffff-ffff 200 0 S
Total MAC VLAN address count:2
· 基于MAC的VLAN只能在Hybrid端口上配置。
· 基于MAC的VLAN的配置主要用于在用户的接入设备的下行端口上进行配置,因此不能与聚合功能同时使用。
基于协议的VLAN只对Hybrid端口配置才有效。
基于协议的VLAN是根据端口接收到的报文所属的协议(族)类型以及封装格式来给报文分配不同的VLAN ID。可用来划分VLAN的协议有IP、IPX、AT(AppleTalk,Apple计算机网络协议),封装格式有Ethernet II、802.3 raw、802.2 LLC、802.2 SNAP等。
“协议类型 + 封装格式”又称为协议模板,一个协议VLAN下可以绑定多个协议模板,不同的协议模板再用协议索引(protocol-index)来区分。因此,一个协议模板可以用“协议vlan-id + protocol-index”来唯一标识。然后通过命令行将“协议vlan-id + protocol-index”和端口绑定。这样,对于从端口接收到Untagged报文(没有携带VLAN标记的报文)会做如下处理:
· 如果该报文携带的协议类型和封装格式与“协议vlan-id + protocol-index”标识的协议模板相匹配,则为其打上协议vlan-id。
· 如果该报文携带的协议类型和封装格式与“协议vlan-id + protocol-index”标识的协议模板不匹配,则为其打上端口的缺省VLAN ID。
对于端口接收到的Tagged报文(携带VLAN标记的报文),处理方式和基于端口的VLAN一样:如果端口允许携带该VLAN标记的报文通过,则正常转发;如果不允许,则丢弃该报文。
此特性主要应用于将网络中提供的服务类型与VLAN相绑定,方便管理和维护。
表1-11 配置基于协议的VLAN
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入VLAN视图 |
vlan vlan-id |
必选 如果指定的VLAN不存在,则该命令先完成VLAN的创建,然后再进入该VLAN的视图 |
|
配置基于协议的VLAN,并指定协议模板 |
protocol-vlan [ protocol-index ] { at | ipv4 | ipv6 | ipx { ethernetii | llc | raw | snap } | mode { ethernetii etype etype-id | llc { dsap dsap-id [ ssap ssap-id ] | ssap ssap-id } | snap etype etype-id } } |
必选 缺省情况下,没有配置任何协议模板 |
|
退出VLAN视图 |
quit |
- |
|
进入相应视图 |
进入二层以太网端口视图 |
interface interface-type interface-number |
四者必选其一 · 二层以太网端口视图下的配置只对当前端口生效 · 端口组视图下的配置对当前端口组中的所有端口生效 · 二层聚合接口视图下的配置对当前二层聚合接口及其所有成员端口都生效,若配置二层聚合接口时失败,则不再配置其成员端口,若配置某成员端口时失败,系统会自动跳过该成员端口继续配置其它成员端口 |
进入端口组视图 |
port-group manual port-group-name |
||
进入二层聚合接口视图 |
interface bridge-aggregation interface-number |
||
配置端口的链路类型为Hybrid类型 |
port link-type hybrid |
必选 缺省情况下,所有端口的链路类型均为Access类型 |
|
允许基于协议的VLAN通过当前Hybrid端口 |
port hybrid vlan vlan-list { tagged | untagged } |
必选 缺省情况下,所有Hybrid端口只允许VLAN 1通过 |
|
配置Hybrid端口与基于协议的VLAN关联 |
port hybrid protocol-vlan vlan vlan-id { protocol-index [ to protocol-end ] | all } |
必选 |
· 在使用protocol-vlan mode llc命令配置自定义协议模板时,命令中的dsap-id和ssap-id不能同时设置成0xe0,同时设置为0xe0对应的是ipx llc协议模板;dsap-id和ssap-id也不能同时设置成0xff,同时设置为0xff对应的是ipx raw协议模板。
· 在使用mode参数配置协议VLAN时,如果将ethernetii型报文的etype参数值配置为0x0800、0x8137、0x809b、0x86dd,则分别与ipv4、ipx、appletalk和ipv6协议模板相同,因此不允许配置ethernetii报文的etype参数为这四个数值。
· 协议VLAN特性要求Hybrid入端口的报文格式为Untagged的,而自动模式下的Voice VLAN只支持Hybrid端口对Tagged的语音流进行处理(详情请参见“3 Voice VLAN配置”),因此,不能将某个VLAN同时设置为协议VLAN和Voice VLAN。
实验室网络中大部分主机运行IPv4网络协议,另外为了教学需要还布置了IPv6实验局,因此,同时有些主机运行着IPv6网络协议。为了避免互相干扰,现要求基于网络协议将IPv4流量和IPv6流量二层互相隔离。
图1-8 基于协议的VLAN组网图
创建VLAN 100及VLAN 200。让VLAN 100与IPv4协议绑定,VLAN 200与IPv6协议绑定,通过协议VLAN来实现IPv4流量和IPv6流量二层互相隔离。
(1) 配置Device
# 创建VLAN 100,将端口Ethernet1/0/11加入VLAN 100。
<Device> system-view
[Device] vlan 100
[Device-vlan100] description protocol VLAN for IPv4
[Device-vlan100] port ethernet 1/0/11
[Device-vlan100] quit
# 创建VLAN 200,将端口Ethernet1/0/12加入VLAN 200。
[Device] vlan 200
[Device-vlan200] description protocol VLAN for IPv6
[Device-vlan200] port ethernet 1/0/12
# 在VLAN 200和VLAN 100视图下,分别为IPv4和IPv6协议创建协议模板。
[Device-vlan200] protocol-vlan 1 ipv6
[Device-vlan200] quit
[Device] vlan 100
[Device-vlan100] protocol-vlan 1 ipv4
[Device-vlan100] quit
# 配置端口Ethernet1/0/1为Hybrid端口,并在转发VLAN 100和VLAN 200的报文时去掉VLAN Tag。
[Device] interface ethernet 1/0/1
[Device-Ethernet1/0/1] port link-type hybrid
[Device-Ethernet1/0/1] port hybrid vlan 100 200 untagged
Please wait... Done.
# 配置端口Ethernet1/0/1与VLAN 100的协议模板1(即IPv4协议模板)、VLAN 200的协议模板1(即IPv6协议模板)进行绑定。
[Device-Ethernet1/0/1] port hybrid protocol-vlan vlan 100 1
[Device-Ethernet1/0/1] port hybrid protocol-vlan vlan 200 1
[Device-Ethernet1/0/1] quit
# 配置端口Ethernet1/0/2为Hybrid端口,在转发VLAN 100和VLAN 200的报文时去掉VLAN Tag,与VLAN 100的协议模板1(即IPv4协议模板)、VLAN 200的协议模板1(即IPv6协议模板)进行绑定。
[Device] interface ethernet 1/0/2
[Device-Ethernet1/0/2] port link-type hybrid
[Device-Ethernet1/0/2] port hybrid vlan 100 200 untagged
Please wait... Done.
[Device-Ethernet1/0/2] port hybrid protocol-vlan vlan 100 1
[Device-Ethernet1/0/2] port hybrid protocol-vlan vlan 200 1
(2) L2 Switch A和L2 Switch B采用缺省配置。
(3) 将IPv4 Host A、IPv4 Host B和IPv4 Server配置在一个网段,比如192.168.100.0/24;将IPv6 Host A、IPv6 Host B和IPv6 Server配置在一个网段,比如2001::1/64。
(1) VLAN 100内的主机和服务器能够互相ping通;VLAN 200内的主机和服务器能够互相ping通。但VLAN 100内的主机/服务器和VLAN 200内的主机/服务器会ping失败。
(2) 通过查看Device上的显示信息,验证配置是否生效。
# 查看Device上协议VLAN的配置。
[Device-Ethernet1/0/2] display protocol-vlan vlan all
VLAN ID:100
Protocol Index Protocol Type
======================================================
1 ipv4
VLAN ID:200
Protocol Index Protocol Type
======================================================
1 ipv6
# 查看Device端口上已配置的协议VLAN的相关信息。
[Device-Ethernet1/0/2] display protocol-vlan interface all
Interface: Ethernet 1/0/1
VLAN ID Protocol Index Protocol Type
======================================================
100 1 ipv4
200 1 ipv6
Interface: Ethernet 1/0/2
VLAN ID Protocol Index Protocol Type
======================================================
100 1 ipv4
200 1 ipv6
基于协议的VLAN只对Hybrid端口配置才有效。
基于IP子网的VLAN是根据报文源IP地址及子网掩码来进行划分的。设备从端口接收到Untagged报文后,会根据报文的源地址来确定报文所属的VLAN,然后将报文自动划分到指定VLAN中传输。
此特性主要用于将指定网段或IP地址发出的报文在指定的VLAN中传送。
基于IP子网的VLAN只对Hybrid端口配置有效。
表1-12 配置基于IP子网的VLAN
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入VLAN视图 |
vlan vlan-id |
- |
|
配置IP子网与当前VLAN关联 |
ip-subnet-vlan [ ip-subnet-index ] ip ip-address [ mask ] |
必选 配置的IP网段或IP地址不能是组播网段或组播地址 |
|
退回系统视图 |
quit |
- |
|
进入相应视图 |
进入二层以太网端口视图 |
interface interface-type interface-number |
四者必选其一 · 二层以太网端口视图下的配置只对当前端口生效 · 端口组视图下的配置对当前端口组中的所有端口生效 · 二层聚合接口视图下的配置对当前二层聚合接口及其所有成员端口都生效,若配置二层聚合接口时失败,则不再配置其成员端口,若配置某成员端口时失败,系统会自动跳过该成员端口继续配置其它成员端口 |
进入端口组视图 |
port-group manual port-group-name |
||
进入二层聚合接口视图 |
interface bridge-aggregation interface-number |
||
配置端口的链路类型为Hybrid类型 |
port link-type hybrid |
必选 缺省情况下,所有端口的链路类型均为Access类型 |
|
允许基于IP子网的VLAN通过当前Hybrid端口 |
port hybrid vlan vlan-list { tagged | untagged } |
必选 缺省情况下,Hybrid端口只允许VLAN 1的报文以Untagged方式通过,即VLAN 1的报文从该端口发送出去后不携带VLAN Tag |
|
配置Hybrid端口和基于IP子网的VLAN关联 |
port hybrid ip-subnet-vlan vlan vlan-id |
必选 缺省情况下,Hybird端口和基于IP子网的VLAN没有任何关联关系 |
如图1-9所示,办公区的主机属于不同的网段192.168.5.0/24和192.168.50.0/24,Device C在收到来自办公区主机的报文时,根据报文的源IP地址,使来自不同网段主机的报文分别在指定的VLAN中传输。
图1-9 基于IP子网的VLAN组网图
创建VLAN100、VLAN200,配置子网与VLAN的关联关系,并配置端口与VLAN的关联关系。
<DeviceC> system-view
# 配置子网192.168.5.0/24与VLAN 100关联。
[DeviceC] vlan 100
[DeviceC-vlan100] ip-subnet-vlan ip 192.168.5.0 255.255.255.0
[DeviceC-vlan100] quit
# 配置子网192.168.50.0/24与VLAN 200关联。
[DeviceC] vlan 200
[DeviceC-vlan200] ip-subnet-vlan ip 192.168.50.0 255.255.255.0
[DeviceC-vlan200] quit
# 配置端口Ethernet 1/0/11,使其允许通过VLAN 100的报文。
[DeviceC] interface ethernet 1/0/11
[DeviceC-Ethernet1/0/11] port link-type hybrid
[DeviceC-Ethernet1/0/11] port hybrid vlan 100 tagged
Please wait... Done.
[DeviceC-Ethernet1/0/11] quit
# 配置端口Ethernet 1/0/12,使其允许通过VLAN 200的报文。
[DeviceC] interface ethernet 1/0/12
[DeviceC-Ethernet1/0/12] port link-type hybrid
[DeviceC-Ethernet1/0/12] port hybrid vlan 200 tagged
Please wait... Done.
[DeviceC-Ethernet1/0/12] quit
# 配置端口Ethernet 1/0/1,使其和基于IP子网的VLAN 100、VLAN 200关联。
[DeviceC] interface ethernet 1/0/1
[DeviceC-Ethernet1/0/1] port link-type hybrid
[DeviceC-Ethernet1/0/1] port hybrid vlan 100 200 untagged
Please wait... Done.
[DeviceC-Ethernet1/0/1] port hybrid ip-subnet-vlan vlan 100
[DeviceC-Ethernet1/0/1] port hybrid ip-subnet-vlan vlan 200
[DeviceC-Ethernet1/0/1] return
# 查看所有VLAN的IP子网信息。
<Device C> display ip-subnet-vlan vlan all
VLAN ID: 100
Subnet Index IP Address Subnet Mask
====================================================
0 192.168.5.0 255.255.255.0
VLAN ID: 200
Subnet Index IP Address Subnet Mask
====================================================
0 192.168.50.0 255.255.255.0
# 查看端口Ethernet 1/0/1上所配置的IP子网VLAN信息。
<DeviceC> display ip-subnet-vlan interface ethernet 1/0/1
Interface: Ethernet1/0/1
VLAN ID Subnet-Index IP ADDRESS NET MASK
=======================================================
100 0 192.168.5.0 255.255.255.0
200 0 192.168.50.0 255.255.255.0
基于IP子网的VLAN只对Hybrid端口配置才有效。
在完成上述配置后,在任意视图下执行display命令可以显示配置后VLAN的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除接口统计信息。
表1-13 VLAN显示和维护
操作 |
命令 |
显示VLAN相关信息 |
display vlan [ vlan-id1 [ to vlan-id2 ] | all | dynamic | reserved | static ] [ | { begin | exclude | include } regular-expression ] |
显示VLAN接口相关信息 |
display interface [ vlan-interface ] [ brief [ description | down ] ] [ | { begin | exclude | include } regular-expression ] display interface vlan-interface vlan-interface-id [ brief [ description ] ] [ | { begin | exclude | include } regular-expression ] |
显示设备上当前存在的Hybrid或Trunk端口 |
display port { hybrid | trunk } [ | { begin | exclude | include } regular-expression ] |
显示MAC-VLAN表项 |
display mac-vlan { all | dynamic | mac-address mac-address [ mask mac-mask ] | static | vlan vlan-id } [ | { begin | exclude | include } regular-expression ] |
显示所有使能了MAC VLAN功能的接口 |
display mac-vlan interface [ | { begin | exclude | include } regular-expression ] |
显示指定VLAN上配置的协议信息及协议的索引 |
display protocol-vlan vlan { vlan-id [ to vlan-id ] | all } [ | { begin | exclude | include } regular-expression ] |
显示指定端口上已配置的协议VLAN的相关信息 |
display protocol-vlan interface { interface-type interface-number [ to interface-type interface-number ] | all } [ | { begin | exclude | include } regular-expression ] |
显示指定VLAN上配置的IP子网VLAN信息及IP子网的索引 |
display ip-subnet-vlan vlan { vlan-id [ to vlan-id ] | all } [ | { begin | exclude | include } regular-expression ] |
显示指定端口上配置的IP子网VLAN信息及IP子网的索引 |
display ip-subnet-vlan interface { interface-type interface-number1 [ to interface-type interface-number2 ] | all } [ | { begin | exclude | include } regular-expression ] |
清除接口的统计信息 |
reset counters interface vlan-interface [ vlan-interface-id ] |
Isolate-user-VLAN采用两层VLAN结构,它在同一台设备上设置Isolate-user-VLAN和Secondary VLAN两类VLAN。
· Isolate-user-VLAN用于上行,不同的Secondary VLAN关联到同一个Isolate-user-VLAN。上行连接的设备只知道Isolate-user-VLAN,而不必关心Secondary VLAN,简化了网络配置,节省了VLAN资源。
· Secondary VLAN用于连接用户,Secondary VLAN之间二层报文互相隔离。如果希望实现同一Isolate-user-VLAN下Secondary VLAN用户之间报文的互通,可以通过配置上行设备(如图2-1中Device A)的本地ARP代理功能来实现三层报文的互通。
· 一个Isolate-user-VLAN可以和多个Secondary VLAN相对应。Isolate-user-VLAN下面的Secondary VLAN对上行设备不可见。
如下图所示,设备Device B上启动了Isolate-user-VLAN功能。其中VLAN 10是Isolate-user-VLAN;VLAN 2、VLAN 5、VLAN 8是Secondary VLAN;VLAN 2、VLAN 5、VLAN 8都映射到VLAN 10;VLAN 2、VLAN 5、VLAN 8对Device A不可见。
Isolate-user-VLAN配置主要包括下面几个步骤:
(1) 配置Isolate-user-VLAN。
(2) 配置Secondary VLAN。
(3) 配置Isolate-user-VLAN和Secondary VLAN间的映射关系。
(4) 配置上行/下行端口:配置上行端口(如图2-1中Device B上与Device A相连的端口)工作在promiscuous模式,可以实现上行端口加入指定Isolate-user-VLAN及同步加入对应的Secondary VLAN的功能;配置下行端口(如图2-1中Device B上与用户相连的端口)工作在host模式,可以实现下行端口同步加入Secondary VLAN对应的Isolate-user-VLAN的功能。有关promiscuous/host模式的详细介绍,请参见“二层技术-以太网交换命令参考”中的“VLAN”的相关命令。
配置上行端口工作在promiscuous模式既可以使用port isolate-user-vlan vlan-id promiscuous命令,也可以使用port isolate-user-vlan vlan-list trunk promiscuous命令,请注意区分这两条命令的使用:
· port isolate-user-vlan vlan-id promiscuous命令适用于只有一个Isolate-user-VLAN的报文通过上行端口的情况。
· port isolate-user-vlan vlan-list trunk promiscuous命令适用于有多个Isolate-user-VLAN的报文通过上行端口的情况。
表2-1 配置Isolate-user-VLAN
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
创建Isolate-user-VLAN,并进入VLAN视图 |
vlan vlan-id |
- |
|
设置VLAN类型为Isolate-user-VLAN |
isolate-user-vlan enable |
必选 缺省情况下,用户创建的VLAN不是Isolate-user-VLAN类型的VLAN |
|
退回系统视图 |
quit |
- |
|
创建Secondary VLAN |
vlan { vlan-id1 [ to vlan-id2 ] | all } |
必选 |
|
设置同一Secondary VLAN内各端口二层隔离 |
isolated-vlan enable |
可选 缺省情况下,同一Secondary VLAN内的端口能够二层互通 当同一Secondary VLAN内各端口的工作模式均为host模式,且Isolate-user-VLAN与Secondary VLAN之间建立映射关系后该配置才生效 |
|
退回系统视图 |
quit |
- |
|
配置Isolate-user-VLAN和Secondary VLAN间的映射关系 |
isolate-user-vlan isolate-user-vlan-id secondary secondary-vlan-id [ to secondary-vlan-id ] |
必选 缺省情况下,用户创建的Isolate-user-VLAN和Secondary VLAN没有任何映射关系 |
|
配置Isolate-user-VLAN上行端口 |
进入二层以太网端口视图或二层聚合接口视图 |
Interface interface-type interface-number |
必选 |
配置端口在指定VLAN或vlan-list中工作在promiscuous模式 |
port isolate-user-vlan vlan-id promiscuous |
二者必选其一 缺省情况下,端口既不工作在promiscuous模式也不工作在host模式 |
|
port isolate-user-vlan vlan-list trunk promiscuous |
|||
退回系统视图 |
quit |
- |
|
配置Isolate-user-VLAN下行端口 |
进入二层以太网端口视图或二层聚合接口视图 |
Interface interface-type interface-number |
必选 |
配置端口的链路类型 |
port link-type { access | hybrid | trunk } |
可选 |
|
将当前端口加入指定Secondary VLAN |
Access端口: port access vlan vlan-id Trunk端口: port trunk permit vlan { vlan-list | all } Hybrid端口: port hybrid vlan vlan-list { tagged | untagged } |
根据端口类型选其一 |
|
配置下行端口的工作模式为host模式 |
port isolate-user-vlan host |
必选 缺省情况下,端口既不工作在promiscuous模式也不工作在host模式 |
· 如果Isolate-user-VLAN中的用户需要与其它网络进行三层互通,则需要在设备上创建Isolate-user-VLAN接口和Secondary VLAN接口,并在Isolate-user-VLAN接口上配置网关的IP地址,Secondary VLAN接口上不需要配置IP地址。
· 业务环回组成员端口不能配置为Isolate-user-VLAN上行端口(promiscuous端口)或下行端口(host端口),有关业务环回组的详细介绍请参见“二层技术-以太网交换配置指导”中的“业务环回组配置”。
在完成上述配置后,在任意视图下执行display命令可以显示配置后Isolate-user-VLAN的运行情况,通过查看显示信息验证配置的效果。
表2-2 Isolate-user-VLAN显示和维护
操作 |
命令 |
显示Isolate-user-VLAN和Secondary VLAN的映射关系 |
display isolate-user-vlan [ isolate-user-vlan-id ] [ | { begin | exclude | include } regular-expression ] |
· Device A下接Device B、Device C。
· Device B上的VLAN 5为Isolate-user-VLAN,包含上行端口Ethernet1/0/5和两个Secondary VLAN(VLAN 2和VLAN 3),VLAN 2包含端口Ethernet1/0/2,VLAN 3包含端口Ethernet1/0/1。
· Device C上的VLAN 6为Isolate-user-VLAN,包含上行端口Ethernet1/0/5和两个Secondary VLAN(VLAN 3和VLAN 4),VLAN 3包含端口Ethernet1/0/3,VLAN 4包含端口Ethernet1/0/4。
· 从Device A看,下接的Device B只有一个VLAN(VLAN 5),下接的设备C只有一个VLAN(VLAN 6)。
图2-2 配置Isolate-user-VLAN组网图
下面只列出Device B和Device C的配置过程。
(1) 配置Device B
# 配置VLAN 5为Isolate-user-VLAN。
<DeviceB> system-view
[DeviceB] vlan 5
[DeviceB-vlan5] isolate-user-vlan enable
[DeviceB-vlan5] quit
# 创建Secondary VLAN。
[DeviceB] vlan 2 to 3
# 配置Isolate-user-VLAN和Secondary VLAN间的映射关系。
[DeviceB] isolate-user-vlan 5 secondary 2 to 3
# 配置上行端口Ethernet 1/0/5在VLAN 5中工作在promiscuous模式。
[DeviceB] interface ethernet 1/0/5
[DeviceB-Ethernet1/0/5] port isolate-user-vlan 5 promiscuous
[DeviceB-Ethernet1/0/5] quit
# 将下行端口Ethernet 1/0/1、Ethernet 1/0/2分别添加到VLAN 3、VLAN 2,并配置它们工作在host模式。
[DeviceB] interface ethernet 1/0/1
[DeviceB-Ethernet1/0/1] port access vlan 3
[DeviceB-Ethernet1/0/1] port isolate-user-vlan host
[DeviceB-Ethernet1/0/1] quit
[DeviceB] interface ethernet 1/0/2
[DeviceB-Ethernet1/0/2] port access vlan 2
[DeviceB-Ethernet1/0/2] port isolate-user-vlan host
[DeviceB-Ethernet1/0/2] quit
(2) 配置Device C
# 配置VLAN 6为Isolate-user-VLAN。
<DeviceC> system-view
[DeviceC] vlan 6
[DeviceC–vlan6] isolate-user-vlan enable
[DeviceC–vlan6] quit
# 创建Secondary VLAN。
[DeviceC] vlan 3 to 4
# 配置Isolate-user-VLAN和Secondary VLAN间的映射关系。
[DeviceC] isolate-user-vlan 6 secondary 3 to 4
# 配置上行端口Ethernet 1/0/5在VLAN 6中工作在promiscuous模式。
[DeviceC] interface ethernet 1/0/5
[DeviceC-Ethernet1/0/5] port isolate-user-vlan 6 promiscuous
[DeviceC-Ethernet1/0/5] quit
# 将下行端口Ethernet 1/0/3、Ethernet 1/0/4分别添加到VLAN 3、VLAN 4,并配置它们工作在host模式。
[DeviceC] interface ethernet 1/0/3
[DeviceC-Ethernet1/0/3] port access vlan 3
[DeviceC-Ethernet1/0/3] port isolate-user-vlan host
[DeviceC-Ethernet1/0/3] quit
[DeviceC] interface ethernet 1/0/4
[DeviceC-Ethernet1/0/4] port access vlan 4
[DeviceC-Ethernet1/0/4] port isolate-user-vlan host
[DeviceC-Ethernet1/0/4] quit
# 显示Device B上的Isolate-user-VLAN配置情况。
[DeviceB] display isolate-user-vlan
Isolate-user-VLAN VLAN ID : 5
Secondary VLAN ID : 2-3
VLAN ID: 5
VLAN Type: static
Isolate-user-VLAN type : isolate-user-VLAN
Route Interface: not configured
Description: VLAN 0005
Name:VLAN 0005
Tagged Ports: none
Untagged Ports:
Ethernet1/0/1 Ethernet1/0/2 Ethernet1/0/5
VLAN ID: 2
VLAN Type: static
Isolate-user-VLAN type : secondary
Route Interface: not configured
Description: VLAN 0002
Name:VLAN 0002
Tagged Ports: none
Untagged Ports:
Ethernet1/0/2 Ethernet1/0/5
VLAN ID: 3
VLAN Type: static
Isolate-user-VLAN type : secondary
Route Interface: not configured
Description: VLAN 0003
Name:VLAN 0003
Tagged Ports: none
Untagged Ports:
Ethernet1/0/1 Ethernet1/0/5
· Device A下接Device B。
· Device B上的VLAN 5和VLAN 10为Isolate-user-VLAN,上行端口Ethernet1/0/1需要允许VLAN 5和VLAN 10的报文携带VLAN Tag通过。
· Device B的下行端口Ethernet1/0/2允许Secondary VLAN 2通过,Ethernet1/0/3允许Secondary VLAN 3通过,VLAN 2和VLAN 3映射到Isolate-user-VLAN 5。
· Device B的下行端口Ethernet1/0/6允许Secondary VLAN 6通过,Ethernet1/0/8允许Secondary VLAN 8通过,VLAN 6和VLAN 8映射到VLAN 10。
· 从Device A看,下接的Device B只有VLAN 5和VLAN 10。
图2-3 组网图
(1) 配置Device B
# 配置VLAN 5和VLAN 10为Isolate-user-VLAN。
<DeviceB> system-view
[DeviceB] vlan 5
[DeviceB-vlan5] isolate-user-vlan enable
[DeviceB-vlan5] quit
[DeviceB] vlan 10
[DeviceB-vlan10] isolate-user-vlan enable
[DeviceB-vlan10] quit
# 创建Secondary VLAN。
[DeviceB] vlan 2 to 3
[DeviceB] vlan 6
[DeviceB-vlan6] quit
[DeviceB] vlan 8
[DeviceB-vlan8] quit
# 配置Isolate-user-VLAN 5和Secondary VLAN 2和3间的映射关系。
[DeviceB] isolate-user-vlan 5 secondary 2 to 3
# 配置Isolate-user-VLAN 10和Secondary VLAN 6和8间的映射关系。
[DeviceB] isolate-user-vlan 10 secondary 6 8
# 配置上行端口Ethernet 1/0/1在VLAN 5和VLAN 10中工作在promiscuous模式。
[DeviceB] interface ethernet 1/0/1
[DeviceB-Ethernet1/0/1] port isolate-user-vlan 5 10 trunk promiscuous
[DeviceB-Ethernet1/0/1] quit
# 将下行端口Ethernet 1/0/2加入VLAN 2,Ethernet 1/0/3加入VLAN 3,并配置它们工作在host模式。
[DeviceB] interface ethernet 1/0/2
[DeviceB-Ethernet1/0/2] port access vlan 2
[DeviceB-Ethernet1/0/2] port isolate-user-vlan host
[DeviceB-Ethernet1/0/2] quit
[DeviceB] interface ethernet 1/0/3
[DeviceB-Ethernet1/0/3] port access vlan 3
[DeviceB-Ethernet1/0/3] port isolate-user-vlan host
[DeviceB-Ethernet1/0/3] quit
# 将下行端口Ethernet 1/0/6加入VLAN 6,Ethernet 1/0/8加入VLAN 8,并配置它们工作在host模式。
[DeviceB] interface ethernet 1/0/6
[DeviceB-Ethernet1/0/6] port access vlan 6
[DeviceB-Ethernet1/0/6] port isolate-user-vlan host
[DeviceB-Ethernet1/0/6] quit
[DeviceB] interface ethernet 1/0/8
[DeviceB-Ethernet1/0/8] port access vlan 8
[DeviceB-Ethernet1/0/8] port isolate-user-vlan host
[DeviceB-Ethernet1/0/8] quit
(2) 配置Device A
# 创建VLAN 5和VLAN 10。
[DeviceA] vlan 5
[DeviceA-vlan5] quit
[DeviceA] vlan 10
[DeviceA-vlan10] quit
# 配置端口Ethernet 1/0/1为Hybrid端口,并允许VLAN 5和VLAN 10的报文携带VLAN Tag通过。
[DeviceA] interface ethernet 1/0/1
[DeviceA-Ethernet1/0/1] port link-type hybrid
[DeviceA-Ethernet1/0/1] port hybrid vlan 5 10 tagged
[DeviceA-Ethernet1/0/1] quit
# 显示Device B上Isolate-user-VLAN 5的配置情况(Isolate-user-VLAN 10的显示结果类似,这里不再列出)。
[DeviceB] display isolate-user-vlan 5
Isolate-user-VLAN VLAN ID : 5
Secondary VLAN ID : 2-3
VLAN ID: 5
VLAN Type: static
Isolate-user-VLAN type : isolate-user-VLAN
Route Interface: not configured
Description: VLAN 0005
Name:VLAN 0005
Tagged Ports:
Ethernet1/0/1
Untagged Ports:
Ethernet1/0/2 Ethernet1/0/3
VLAN ID: 2
VLAN Type: static
Isolate-user-VLAN type : secondary
Route Interface: not configured
Description: VLAN 0002
Name:VLAN 0002
Tagged Ports:
Ethernet1/0/1
Untagged Ports:
Ethernet1/0/2
VLAN ID: 3
VLAN Type: static
Isolate-user-VLAN type : secondary
Route Interface: not configured
Description: VLAN 0003
Name:VLAN 0003
Tagged Ports:
Ethernet1/0/1
Untagged Ports:
Ethernet1/0/3
随着语音技术的日益发展,语音设备应用越来越广泛,尤其在宽带小区,网络中经常同时存在语音数据和业务数据两种流量。通常,语音数据在传输时需要具有比业务数据更高的优先级,以减少传输过程中可能产生的时延和丢包现象。
Voice VLAN是为用户的语音数据流而专门划分的VLAN。通过划分Voice VLAN并将连接语音设备的端口加入Voice VLAN,系统自动为语音报文修改QoS(Quality of Service,服务质量)参数,来提高语音数据报文优先级、保证通话质量。
常见的语音设备有IP电话、IAD(Integrated Access Device,综合接入设备)等。本文中以IP电话为例进行说明。
当IP电话接入设备时,需要设备完成以下两个任务:
(1) 识别IP电话,获取IP电话的MAC,从而进行安全认证及提高语音报文的优先级;
(2) 将Voice VLAN信息通告给IP电话,IP电话能够根据收到的Voice VLAN信息完成自动配置,使IP电话发出的语音报文在Voice VLAN内传输。
设备可以根据进入端口的数据报文中的源MAC地址字段来判断该数据流是否为语音数据流。源MAC地址符合系统设置的语音设备OUI(Organizationally Unique Identifier,全球统一标识符)地址的报文被认为是语音数据流。
用户可以预先设置OUI地址,也可以使用缺省的OUI地址作为判断标准。设备缺省的OUI地址如表3-1所示。目前S3100V2-52TP&E152B交换机支持配置128个OUI地址。
序号 |
OUI地址 |
生产厂商 |
1 |
0001-E300-0000 |
Siemens phone |
2 |
0003-6B00-0000 |
Cisco phone |
3 |
0004-0D00-0000 |
Avaya phone |
4 |
00D0-1E00-0000 |
Pingtel phone |
5 |
0060-B900-0000 |
Philips/NEC phone |
6 |
00E0-7500-0000 |
Polycom phone |
7 |
00E0-BB00-0000 |
3Com phone |
· 通常意义下,OUI地址指的是MAC地址的前24位(二进制),是IEEE为不同设备供应商分配的一个全球唯一的标识符。本文中的OUI地址有别于通常意义的OUI地址,它是设备判断收到的报文是否为语音报文的依据,是voice vlan mac-address命令中的mac-address和oui-mask参数相与的结果。
· 设备缺省的OUI地址可以手工删除,删除之后也可再次手工添加。
通过设备上配置的OUI地址识别IP电话的方法受限于设备上可配置的OUI地址的数量,并且当网络中IP电话数量众多时,管理员的配置工作量较大。如果IP电话支持LLDP功能,可以配置LLDP自动识别IP电话功能。有关该功能的详细介绍,请参见“3.6 通过LLDP自动发现IP电话功能”。
如果IP电话支持LLDP,设备可以通过LLDP报文中的LLDP-MED TLV将Voice VLAN信息通告给IP电话。
如果IP电话只支持CDP,不支持LLDP,可以通过配置LLDP兼容CDP功能使设备将Voice VLAN信息封装在CDP报文中通告给IP电话。
有关LLDP和LLDP兼容CDP的详细信息,请参见“二层技术-以太网交换配置指导”中的“LLDP”。
· 端口配置Voice VLAN,请参见“3.5 端口配置Voice VLAN”。
· 当IP电话配合认证功能使用时,可以将授权VLAN信息通告给IP电话,请参见“3.8 通过LLDP动态发布授权VLAN功能介绍”。
· 指定LLDP发布的Voice VLAN信息,请参见“3.7 指定LLDP发布的Voice VLAN信息”。
这三种方法的通告顺序如图3-1所示。
图3-1 设备向IP电话发布Voice VLAN信息的过程
如图3-2所示,主机连接到IP电话,IP电话连接到接入设备。在串联接入的环境下,需要将主机和IP电话划分到不同的VLAN,且需要IP电话能发出携带VLAN Tag的报文,从而区分业务数据流和语音数据流。同时,端口需要允许Voice VLAN和PVID的报文通过。
图3-2 主机与IP电话串联接入组网图
如图3-3所示,IP电话单独接入设备。单独接入适用于IP电话发出Untagged语音报文的情况,此时需要配置Voice VLAN为PVID并配置端口允许PVID的报文通过。
图3-3 IP电话单独接入组网图
Voice VLAN的工作模式包括自动模式和手动模式,这个自动和手动指的是端口加入Voice VLAN的方式。
自动模式适用于PC-IP电话串联接入(端口同时传输语音数据和普通业务数据)的组网方式,如图3-2所示。
系统利用IP电话上电时发出的协议报文,通过识别报文的源MAC,匹配OUI地址。匹配成功后,系统将自动把语音报文的入端口加入Voice VLAN,并下发ACL规则、配置报文的优先级。用户可以在设备上设置Voice VLAN的老化时间,当在老化时间内,系统没有从入端口收到任何语音报文时,系统将把该端口从Voice VLAN中删除。端口的添加/删除到Voice VLAN的过程由系统自动实现。当Voice VLAN正常工作时,如果遇到设备重新启动的情况,为保证已经建立的语音连接能够正常工作,系统会在重新启动完成后,将配置为自动模式的端口重新加入Voice VLAN,而不需要再次通过语音流触发。
手动模式适用于IP电话单独接入(端口仅传输语音报文)的组网方式,如图3-3所示。该组网方式可以使该端口专用于传输语音数据,最大限度避免业务数据对语音数据传输的影响。
手动模式下,需要通过手工把IP电话接入端口加入Voice VLAN中。再通过识别报文的源MAC,匹配OUI地址。匹配成功后,系统将下发ACL规则、配置报文的优先级。端口的添加/删除到Voice VLAN的过程由管理员手动实现。
IP电话类型较多,有些电话能发出携带VLAN Tag的报文,有些电话只能发出Untagged报文。因此需要用户保证端口的链路类型与IP电话能够匹配,不同Voice VLAN工作模式下的详细配合关系请见表3-2和表3-3:
· IP电话发送Tagged语音数据
表3-2 不同类型端口支持Tagged语音数据配置要求
Voice VLAN工作模式 |
端口类型 |
是否支持Tagged语音数据 |
配置要求 |
自动模式 |
Access |
不支持 |
- |
Trunk |
支持 |
缺省VLAN不能为Voice VLAN |
|
Hybrid |
|||
手工模式 |
Access |
不支持 |
- |
Trunk |
支持 |
缺省VLAN不能为Voice VLAN,需要配置端口允许Voice VLAN的报文通过 |
|
Hybrid |
支持 |
缺省VLAN不能为Voice VLAN,需要配置端口允许Voice VLAN的报文携带Tag通过 |
· IP电话发送Untagged语音数据
当IP电话发送Untagged语音数据,则端口的Voice VLAN工作模式只能为手工模式,不能为自动模式。
表3-3 不同类型端口支持Untagged语音数据配置要求
Voice VLAN工作模式 |
端口类型 |
是否支持Untagged语音数据 |
配置要求 |
自动模式 |
Access |
不支持 |
- |
Trunk |
|||
Hybrid |
|||
手工模式 |
Access |
支持 |
将缺省VLAN配置为Voice VLAN |
Trunk |
支持 |
接入端口的缺省VLAN必须是Voice VLAN,且接入端口允许该VLAN通过 |
|
Hybrid |
支持 |
接入端口的缺省VLAN必须是Voice VLAN,且允许Voice VLAN的报文不带Tag通过 |
· 如果用户的IP Phone发出的是Tagged语音流,且接入的端口上使能了802.1X认证和Guest VLAN/Auth-Fail VLAN/Critical VLAN,为保证各种功能的正常使用,请为Voice VLAN、端口的缺省VLAN和802.1X的Guest VLAN/Auth-Fail VLAN/Critical VLAN分配不同的VLAN ID。
· 如果用户的IP Phone发出的是Untagged语音流,为实现Voice VLAN功能,只能将接入端口的缺省VLAN配置为Voice VLAN,此时将不能实现802.1X认证功能。
根据使能了Voice VLAN功能的端口对接收到的数据包的过滤机制又可以将Voice VLAN的工作模式分为普通模式和安全模式:
· 普通模式下,端口加入Voice VLAN后,设备对于接收的语音报文不再一一进行识别,凡是带有Voice VLAN Tag的报文,设备将不再检查其源MAC地址是否为语音设备的OUI地址,均接收并在Voice VLAN中转发。对于缺省VLAN就是Voice VLAN的手工模式端口,会导致任意的Untagged报文都可以在Voice VLAN中传输。这样的处理方式很容易使Voice VLAN收到恶意用户的流量攻击。恶意用户可以构造大量带有Voice VLAN Tag或Untagged的报文,占用Voice VLAN的带宽,影响正常的语音通信。
· 安全模式下,设备将对每一个要进入Voice VLAN传输的报文进行源MAC匹配检查,对于不能匹配OUI地址的报文,则将其丢弃。
对于比较安全的网络,用户可以配置Voice VLAN的普通模式,以减少检查报文的工作对系统资源的占用。
建议用户尽量不要在Voice VLAN中同时传输语音和业务数据。如确有此需要,请确认Voice VLAN的安全模式已关闭。
表3-4 Voice VLAN的安全/普通模式对报文的处理
Voice VLAN工作模式 |
报文类型 |
处理方式 |
安全模式 |
Untagged报文 |
当该报文源MAC地址是可识别的OUI地址时,允许该报文在Voice VLAN内传输,否则将该报文丢弃 |
带有Voice VLAN Tag的报文 |
||
带有其他VLAN Tag的报文 |
根据指定端口是否允许该VLAN通过来对报文进行转发和丢弃的处理,不受Voice VLAN安全/普通模式的影响 |
|
普通模式 |
Untagged报文 |
不对报文的源MAC地址进行检查,所有报文均可以在Voice VLAN内进行传输 |
带有Voice VLAN Tag的报文 |
||
带有其他VLAN Tag的报文 |
根据指定端口是否允许该VLAN通过来对报文进行转发和丢弃的处理,不受Voice VLAN安全/普通模式的影响 |
(1) 创建VLAN
配置Voice VLAN之前,须先创建对应的VLAN。
(2) 确定语音报文的QoS优先级
配置语音报文的QoS优先级,需要关闭接口上的Voice VLAN功能。当Voice VLAN使能时,不允许修改语音报文的QoS优先级。语音报文的QoS优先级的配置请参见3.5.4 配置语音报文的QoS优先级。
(3) 确定将要配置的Voice VLAN的工作模式
· 配置自动模式的Voice VLAN,请参见3.5.5 配置自动模式下的Voice VLAN;
· 配置手动模式的Voice VLAN,请参见3.5.6 配置手动模式下的Voice VLAN。
Voice VLAN在实现中,通过提高语音报文的QoS优先级(CoS和DSCP值)来保证语音通信的质量。语音报文会自带QoS优先级,通过配置,用户可以选择在语音报文通过设备时修改或者不修改报文的QoS优先级。
表3-5 配置语音报文的QoS优先级
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入二层以太网端口视图 |
interface interface-type interface-number |
- |
配置接口信任语音报文的优先级,即接口不会修改Voice VLAN内语音报文自带的CoS和DSCP值 |
voice vlan qos trust |
二者任选其一 缺省情况下,接口会将Voice VLAN内语音报文的CoS值修改为6,DSCP值修改为46 在同一接口多次执行这两条命令,则最新配置将覆盖旧配置,最新的配置生效 |
将Voice VLAN内语音报文的CoS和DSCP修改为指定值 |
voice vlan qos cos-value dscp-value |
在Voice VLAN使能的情况下,不允许配置/修改语音报文的QoS优先级。必须禁用Voice VLAN后,才能配置/修改。
· 自动模式下的Voice VLAN只支持Hybrid端口对Tagged的语音流进行处理,而协议VLAN特性要求Hybrid入端口的报文格式为Untagged的(详情请参见“1.6.2 配置基于协议的VLAN”),因此,不能将某个VLAN同时设置为Voice VLAN和协议VLAN。
· 配置MSTP多实例情况下,如果端口在要加入的Voice VLAN对应的MSTP实例中是阻塞状态,则端口会丢弃收到的报文,造成MAC地址不能上送,不能完成动态触发功能。自动模式Voice VLAN的使用场景为接入侧,不建议和多实例MSTP同时使用。
· 配置PVST情况下,如果端口要加入的Voice VLAN不为端口允许通过的VLAN,则端口处于阻塞状态,会丢弃收到的报文,造成MAC地址不能上送,不能完成动态触发功能。自动模式Voice VLAN的使用场景为接入侧,不建议和PVST同时使用。
表3-6 配置自动模式下的Voice VLAN
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
设置Voice VLAN的老化时间 |
voice vlan aging minutes |
可选 缺省情况下,老化时间为1440分钟,老化时间只对自动模式下的端口有效 |
使能Voice VLAN的安全模式 |
voice vlan security enable |
可选 缺省情况下,Voice VLAN工作在安全模式 |
设置Voice VLAN识别的OUI地址 |
voice vlan mac-address oui mask oui-mask [ description text ] |
可选 Voice VLAN启动后将有缺省的OUI地址,请参见“表3-1设备缺省的OUI地址” |
进入二层以太网端口视图 |
interface interface-type interface-number |
- |
配置端口的链路类型 |
port link-type trunk |
二者必选其一 |
port link-type hybrid |
||
设置端口Voice VLAN的工作模式为自动模式 |
voice vlan mode auto |
可选 缺省情况下,Voice VLAN工作在自动模式 各个端口Voice VLAN的工作模式相互独立,不同的端口可以设置成不同的模式 |
使能端口的Voice VLAN功能 |
voice vlan vlan-id enable |
必选 缺省情况下,端口没有使能Voice VLAN功能 |
表3-7 配置手动模式下的Voice VLAN
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
使能Voice VLAN的安全模式 |
voice vlan security enable |
可选 缺省情况下,Voice VLAN工作在安全模式 |
|
设置Voice VLAN识别的OUI地址 |
voice vlan mac-address oui mask oui-mask [ description text ] |
可选 Voice VLAN启动后将有缺省的OUI地址,请参见“表3-1设备缺省的OUI地址” |
|
进入二层以太网端口视图 |
interface interface-type interface-number |
- |
|
配置端口的Voice VLAN工作模式为手动模式 |
undo voice vlan mode auto |
必选 缺省情况下,端口的Voice VLAN工作在自动模式 |
|
将手动模式端口加入Voice VLAN |
Access端口 |
请参见“1.4.2 配置基于Access端口的VLAN” |
三者必选其一 将Access端口加入Voice VLAN后,Voice VLAN会自动成为Access端口的缺省VLAN |
Trunk端口 |
请参见“1.4.3 配置基于Trunk端口的VLAN” |
||
Hybrid端口 |
请参见“1.4.4 配置基于Hybrid端口的VLAN” |
||
设置Voice VLAN为端口的缺省VLAN |
Trunk端口 |
请参见“1.4.3 配置基于Trunk端口的VLAN” |
可选 当输入的语音流是Untagged语音流时,需要进行该项配置;当输入的语音流是Tagged语音流时,不能将Voice VLAN设置为端口的缺省VLAN |
Hybrid端口 |
请参见“1.4.4 配置基于Hybrid端口的VLAN” |
||
使能端口的Voice VLAN功能 |
voice vlan vlan-id enable |
必选 缺省情况下,端口没有使能Voice VLAN功能 |
· 同一设备同一时刻可以给不同的端口配置不同的Voice VLAN,但一个端口只能配置一个Voice VLAN,而且这些VLAN必须是已经存在的静态VLAN。
· 不允许在聚合组的成员端口上使能Voice VLAN功能。有关聚合组的成员端口的详细介绍,请参见“二层技术-以太网交换配置指导”中的“以太网链路聚合”。
· 当端口使能了Voice VLAN并工作在手工模式时,必须手工将端口加入Voice VLAN,才能保证Voice VLAN功能生效。
传统的Voice VLAN是通过手工配置的OUI地址作为IP电话的匹配规则和接入条件,由于可配置的OUI地址数量有限,这种方式限制了可接入网络的IP电话的类型(将源MAC匹配同一OUI地址的IP电话视为一个类型)。
在设备上配置了通过LLDP自动发现IP电话功能后,设备将通过LLDP自动发现对端设备,并与对端设备通过LLDP的TLV进行信息交互。如果通过端口收到的LLDP System Capabilities TLV中的信息发现对端设备具有电话能力,则认为对端设备是IP电话并将设备上配置的Voice VLAN信息通过LLDP发送给对端设备。这种方式使接入网络的IP电话类型不再受限于OUI地址的数量。
在完成IP电话的发现过程后,端口将继续完成Voice VLAN的其余功能,即端口将自动加入Voice VLAN,并提高从该IP电话发出的语音数据的优先级。为防止IP电话无法通过端口上配置的认证功能,设备还会将IP电话的MAC地址添加到MAC地址表中。
在配置通过LLDP自动发现IP电话功能之前,需完成以下任务:
· 在全局和端口使能LLDP功能。
· 完成Voice VLAN功能的配置。
表3-8 配置通过LLDP自动发现IP电话功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置通过LLDP自动发现IP电话功能 |
voice vlan track lldp |
必选 缺省情况下,通过LLDP自动发现IP电话功能处于关闭状态 |
· 设备开启了通过LLDP自动发现IP电话功能后,每个端口最多可以接入5台IP电话。
· 通过LLDP自动发现IP电话功能与LLDP兼容CDP功能不能同时配置。
指定LLDP发布的Voice VLAN信息功能适用于与支持LLDP协议的IP电话配合使用,配置LLDP兼容CDP功能之后,也可以与支持CDP的IP电话配合使用,请确认对端IP电话的支持情况。
当有IP电话接入设备时,需要设备将Voice VLAN信息通告给IP电话,使IP电话完成Voice VLAN的自动配置,从而在Voice VLAN中转发语音数据流。开启LLDP功能后,设备通过LLDP-MED中的Network Policy TLV将Voice VLAN信息发布给IP电话。
通过配置本功能,可以指定LLDP向IP电话发布的Voice VLAN信息。配置本功能后,设备向IP电话发布Voice VLAN信息的过程如下:
图3-4 设备向IP电话发布Voice VLAN信息的过程
IP电话根据收到的信息(VLAN ID、是否携带Tag、优先级信息)完成自动配置:
· 如果IP电话根据设备通过命令行指定的Voice VLAN信息完成自动配置,会发送携带指定VLAN Tag的报文,语音数据流将在指定VLAN中转发。在设备上通过命令行指定LLDP发布的Voice VLAN信息的配置方法见3.7.2 。
· 如果IP电话根据认证服务器下发的授权VLAN信息完成自动配置,会发送携带授权VLAN Tag的报文,语音数据流将在授权VLAN中转发。相关内容见3.8 通过LLDP动态发布授权VLAN功能介绍。
· 如果IP电话根据设备接入端口配置的Voice VLAN信息完成自动配置,语音数据流将在端口上配置的Voice VLAN中转发,是否携带Tag由端口上Voice VLAN的配置决定。
LLDP-MED Network Policy TLV中的信息可以通过display lldp local-information显示信息中的MED information相关字段查看。
表3-9 配置指定LLDP发布的Voice VLAN信息
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入相应视图 |
进入二层以太网端口视图 |
interface interface-type interface-number |
二者必选其一 |
进入端口组视图 |
port-group manual port-group-name |
||
配置指定LLDP发布的Voice VLAN信息 |
lldp voice-vlan vlan-id |
必选 缺省情况下,LLDP发布端口配置的Voice VLAN信息 |
· 当设备配置LLDP兼容CDP功能之后,在发送给IP电话的CDP报文中也发送指定的Voice VLAN ID,此时本功能也可以与支持CDP的IP电话配合使用。
· 设备发送给IP电话的LLDP报文中包含优先级信息,CDP报文中不包含优先级信息。
· 通过命令行指定LLDP发布给IP电话的Voice VLAN ID时,设备通过硬件学习MAC地址;端口配置Voice VLAN时,设备通过软件学习MAC地址。
· 本功能适用于与支持LLDP协议的IP电话配合使用,请确认对端IP电话是否支持LLDP功能。
· 如果设备配置802.1X功能对接入设备进行认证,请确认接入的IP电话是否支持进行802.1X认证。
通过LLDP动态发布授权VLAN功能是指LLDP在配合802.1X认证或者MAC地址认证使用时,会将服务器下发的授权VLAN的信息通过LLDP-MED Network Policy TLV发送给通过认证的邻居IP电话。同时,设备连接IP电话的端口会加入授权VLAN。
IP电话根据认证服务器下发的授权VLAN信息完成自动配置后,会发送携带授权VLAN Tag的报文,语音数据流将在授权VLAN中转发。
本功能无配置命令,仅需完成以下功能的配置:
· 请在全局和端口上开启LLDP功能。
· 完成安全认证功能的配置,使IP电话能够通过安全认证。
· 在服务器上配置给通过认证的IP电话下发的授权VLAN。
· 有关802.1X和MAC地址认证的内容请参见“安全配置指导”中的对应章节。
· 授权VLAN相关信息请参见“安全配置指导”中“802.1X配置”中1.2节802.1X扩展功能部分的支持VLAN下发章节和“MAC地址认证配置“中1.1.4.1下发VLAN章节。
如图3-5的组网中,在Device上配置802.1X对主机和IP电话进行认证(IP电话需要支持802.1X功能)。在认证服务器上配置给主机下发Untag类型授权VLAN,给IP电话下发Tag类型授权VLAN。主机和IP电话通过认证后,设备连接IP电话的端口会以Untag方式加入主机所在授权VLAN,以Tag方式加入IP电话所在授权VLAN。同时,设备发给IP电话的LLDP-MED TLV中携带下发给IP电话的授权VLAN信息,使IP电话发出的语音报文携带Tag在授权VLAN内转发。
需要注意的是,由于802.1X协议定义的EAPOL报文不带VLAN Tag,因此当服务器上指定了给IP电话下发带Tag的授权VLAN时,需要在设备连接IP电话的端口上配置端口发送802.1X协议报文不带Tag(dot1x eapol untag)。
图3-5 使用802.1X对IP电话进行认证
目前仅802.1X认证支持下发带Tag类型授权VLAN。
在完成上述配置后,在任意视图下执行display命令可以显示配置后Voice VLAN的运行情况,通过查看显示信息验证配置的效果。
表3-10 Voice VLAN显示和维护
操作 |
命令 |
显示Voice VLAN的状态 |
display voice vlan state [ | { begin | exclude | include } regular-expression ] |
显示系统当前支持的OUI地址 |
display voice vlan oui [ | { begin | exclude | include } regular-expression ] |
· IP phone A的MAC地址为0011-1100-0001,下行连接PC A(MAC地址为0022-1100-0002),上行连接到Device A的Ethernet1/0/1端口。
· IP phone B的MAC地址为0011-2200-0001,下行连接PC B(MAC地址为0022-2200-0002),上行连接到Device A的Ethernet1/0/2端口。
· Device A使用Voice VLAN 2传输IP phone A产生的语音报文;使用Voice VLAN 3传输IP phone B产生的语音报文。
· Ethernet1/0/1和Ethernet1/0/2工作在自动模式,如果它们在30分钟内没有收到语音流,就将相应的Voice VLAN老化。
图3-6 配置自动模式下Voice VLAN组网图
# 创建VLAN 2和VLAN 3。
<DeviceA> system-view
[DeviceA] vlan 2 to 3
Please wait... Done.
# 设置Voice VLAN的老化时间为30分钟。
[DeviceA] voice vlan aging 30
# 由于Ethernet1/0/1端口可能会同时收到语音和数据两种流量,为了保证语音报文的质量以及带宽的高效利用,设置Voice VLAN工作在安全模式,即Voice VLAN只用于传输语音报文。(此步骤可省略,缺省情况下,Voice VLAN工作在安全模式)
[DeviceA] voice vlan security enable
# 设置允许通过的OUI地址为MAC地址前缀为0011-1100-0000和0011-2200-0000,即当报文的前缀为0011-1100-0000或0011-2200-0000时,Device A会把它当成语音报文来处理。
[DeviceA] voice vlan mac-address 0011-1100-0001 mask ffff-ff00-0000 description IP phone A
[DeviceA] voice vlan mac-address 0011-2200-0001 mask ffff-ff00-0000 description IP phone B
# 将端口Ethernet1/0/1设定为Hybrid端口。
[DeviceA] interface ethernet 1/0/1
[DeviceA-Ethernet1/0/1] port link-type hybrid
# 将端口Ethernet1/0/1上Voice VLAN的工作模式设置为自动模式。(可选,缺省情况下,端口的Voice VLAN工作在自动模式。)
[DeviceA-Ethernet1/0/1] voice vlan mode auto
# 使能端口Voice VLAN功能。
[DeviceA-Ethernet1/0/1] voice vlan 2 enable
[DeviceA-Ethernet1/0/1] quit
# 在Ethernet1/0/2上进行相应的配置。
[DeviceA] interface ethernet 1/0/2
[DeviceA-Ethernet1/0/2] port link-type hybrid
[DeviceA-Ethernet1/0/2] voice vlan mode auto
[DeviceA-Ethernet1/0/2] voice vlan 3 enable
# 显示当前系统支持的OUI地址、OUI地址掩码和描述信息。
<DeviceA> display voice vlan oui
Oui Address Mask Description
0001-e300-0000 ffff-ff00-0000 Siemens phone
0003-6b00-0000 ffff-ff00-0000 Cisco phone
0004-0d00-0000 ffff-ff00-0000 Avaya phone
0011-1100-0000 ffff-ff00-0000 IP phone A
0011-2200-0000 ffff-ff00-0000 IP phone B
0060-b900-0000 ffff-ff00-0000 Philips/NEC phone
00d0-1e00-0000 ffff-ff00-0000 Pingtel phone
00e0-7500-0000 ffff-ff00-0000 Polycom phone
00e0-bb00-0000 ffff-ff00-0000 3com phone
# 显示当前Voice VLAN的状态。
<DeviceA> display voice vlan state
Maximum of Voice VLANs: 128
Current Voice VLANs: 2
Voice VLAN security mode: Security
Voice VLAN aging time: 30 minutes
Voice VLAN enabled port and its mode:
PORT VLAN MODE COS DSCP
--------------------------------------------------------------------
Ethernet1/0/1 2 AUTO 6 46
Ethernet1/0/2 3 AUTO 6 46
· 创建VLAN 2为Voice VLAN,只允许语音报文通过。
· IP Phone类型为Untagged,接入端口是Hybrid类型端口Ethernet1/0/1。
· 端口Ethernet1/0/1工作在手动模式,且允许OUI地址是0011-2200-0000、掩码是ffff-ff00-0000的语音报文通过,描述字符为test。
图3-7 配置手动模式下Voice VLAN组网图
# 设置Voice VLAN为安全模式,使得Voice VLAN端口只允许合法的语音报文通过。(可选,系统缺省为安全模式)
<DeviceA> system-view
[DeviceA] voice vlan security enable
# 设置OUI地址0011-2200-0000是Voice VLAN的合法地址。
[DeviceA] voice vlan mac-address 0011-2200-0000 mask ffff-ff00-0000 description test
# 创建VLAN 2。
[DeviceA] vlan 2
[DeviceA-vlan2] quit
# 设置端口Ethernet1/0/1工作在手动模式。
[DeviceA] interface ethernet 1/0/1
[DeviceA-Ethernet1/0/1] undo voice vlan mode auto
# 设置端口Ethernet1/0/1为Hybrid类型。
[DeviceA-Ethernet1/0/1] port link-type hybrid
# 设置Voice VLAN是端口Ethernet1/0/1的缺省VLAN,且在该端口允许通过的Untagged VLAN列表中。
[DeviceA-Ethernet1/0/1] port hybrid pvid vlan 2
[DeviceA-Ethernet1/0/1] port hybrid vlan 2 untagged
# 使能端口Ethernet1/0/1的Voice VLAN功能。
[DeviceA-Ethernet1/0/1] voice vlan 2 enable
# 显示当前系统支持的OUI地址、OUI地址掩码和描述信息。
<DeviceA> display voice vlan oui
Oui Address Mask Description
0001-e300-0000 ffff-ff00-0000 Siemens phone
0003-6b00-0000 ffff-ff00-0000 Cisco phone
0004-0d00-0000 ffff-ff00-0000 Avaya phone
0011-2200-0000 ffff-ff00-0000 test
00d0-1e00-0000 ffff-ff00-0000 Pingtel phone
0060-b900-0000 ffff-ff00-0000 Philips/NEC phone
00e0-7500-0000 ffff-ff00-0000 Polycom phone
00e0-bb00-0000 ffff-ff00-0000 3com phone
# 显示当前Voice VLAN的状态。
<DeviceA> display voice vlan state
Maximum of Voice VLANs: 128
Current Voice VLANs: 1
Voice VLAN security mode: Security
Voice VLAN aging time: 1440 minutes
Voice VLAN enabled port and its mode:
PORT VLAN MODE COS DSCP
--------------------------------------------------------------------
Ethernet1/0/1 2 MANUAL 6 46
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!