05-VLAN配置
本章节下载: 05-VLAN配置 (1.09 MB)
目 录
3.5 Private VLAN典型配置举例(promiscuous模式)
3.6 Private VLAN典型配置举例(trunk promiscuous模式)
3.7 Private VLAN典型配置举例(trunk promiscuous & trunk secondary模式)
以太网是一种基于CSMA/CD(Carrier Sense Multiple Access/Collision Detect,带冲突检测的载波侦听多路访问)技术的共享通讯介质。采用以太网技术构建的局域网,既是一个冲突域,又是一个广播域。当网络中主机数目较多时会导致冲突严重、广播泛滥、性能显著下降,甚至网络不可用等问题。通过在以太网中部署网桥或二层交换机,可以解决冲突严重的问题,但仍然不能隔离广播报文。在这种情况下出现了VLAN(Virtual Local Area Network,虚拟局域网)技术,这种技术可以把一个物理LAN划分成多个逻辑的LAN——VLAN。处于同一VLAN的主机能直接互通,而处于不同VLAN的主机则不能直接互通。这样,广播报文被限制在同一个VLAN内,即每个VLAN是一个广播域。如图1-1所示,VLAN 2内的主机可以互通,但与VLAN 5内的主机不能互通。
图1-1 VLAN示意图
VLAN的划分不受物理位置的限制:物理位置不在同一范围的主机可以属于同一个VLAN;一个VLAN包含的主机可以连接在同一个交换机上,也可以跨越交换机,甚至可以跨越路由器。
VLAN根据划分方式不同可以分为不同类型。基于端口划分VLAN是其中最简单、最有效的VLAN划分方式。它按照设备端口来定义VLAN成员,将指定端口加入到指定VLAN中之后,端口就可以转发该VLAN的报文。本章将介绍基于端口的VLAN。
VLAN的优点如下:
· 限制广播域。广播域被限制在一个VLAN内,节省了带宽,提高了网络处理能力。
· 增强局域网的安全性。VLAN间的二层报文是相互隔离的,即一个VLAN内的主机不能和其他VLAN内的主机直接通信,如果不同VLAN要进行通信,则需通过路由器或三层交换机等三层设备。
· 灵活构建虚拟工作组。通过VLAN可以将不同的主机划分到不同的工作组,同一工作组的主机可以位于不同的物理位置,网络构建和维护更方便灵活。
要使网络设备能够分辨不同VLAN的报文,需要在报文中添加标识VLAN的字段。IEEE 802.1Q协议规定,在以太网报文的目的MAC地址和源MAC地址字段之后、协议类型字段之前加入4个字节的VLAN Tag,用以标识VLAN的相关信息。
图1-2 VLAN Tag的组成字段
如图1-2所示,VLAN Tag包含四个字段,分别是TPID(Tag Protocol Identifier,标签协议标识符)、Priority、CFI(Canonical Format Indicator,标准格式指示位)和VLAN ID。
· TPID:协议规定TPID取值为0x8100时表示报文带有VLAN Tag,但各设备厂商可以自定义该字段的值。当邻居设备将TPID值配置为非0x8100时,为了能够识别这样的报文,实现互通,必须在本设备上修改TPID值,确保和邻居设备的TPID值配置一致。如果报文的TPID值为配置值或0x8100,则该报文被认为带有VLAN Tag。配置TPID值的相关命令请参见“二层技术-以太网交换命令参考”中的“QinQ”。
· Priority:用来表示报文的802.1p优先级,长度为3比特,相关内容请参见“ACL和QoS配置指导/QoS”中的“附录”。
· CFI:用来表示MAC地址在不同的传输介质中是否以标准格式进行封装,长度为1比特。取值为0表示MAC地址以标准格式进行封装,为1表示以非标准格式封装。在以太网中,CFI取值为0。
· VLAN ID:用来表示该报文所属VLAN的编号,长度为12比特。由于0和4095为协议保留取值,所以VLAN ID的取值范围为1~4094。
网络设备根据报文是否携带VLAN Tag以及携带的VLAN Tag信息,来对报文进行处理,利用VLAN ID来识别报文所属的VLAN。详细的处理方式请参见“1.5.1 基于端口的VLAN简介”。
· 以太网支持Ethernet II、802.3/802.2 LLC、802.3/802.2 SNAP和802.3 raw封装格式,本文以Ethernet II型封装为例。802.3/802.2 LLC、802.3/802.2 SNAP和802.3 raw封装格式添加VLAN Tag字段的方式请参见相关协议规范。
· 对于携带有多层VLAN Tag的报文,设备会根据其最外层VLAN Tag进行处理,而内层VLAN Tag会被视为报文的普通数据部分。
与VLAN相关的协议规范有:
· IEEE 802.1Q:IEEE Standard for Local and Metropolitan Area Networks-Virtual Bridged Local Area Networks
配置 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
(可选)创建一个VLAN并进入VLAN视图,或批量创建VLAN |
vlan { vlan-id-list | all } |
缺省情况下,系统只有一个缺省VLAN(VLAN 1) |
进入VLAN视图 |
vlan vlan-id |
批量创建VLAN时,为必选;否则,无需执行本命令 |
指定VLAN的名称 |
name text |
缺省情况下,VLAN的名称为“VLAN vlan-id”,其中vlan-id为该VLAN的四位数编号,如果该VLAN的编号不足四位,则会在编号前增加0,补齐四位。例如,VLAN 100的名称为“VLAN 0100” |
配置VLAN的描述信息 |
description text |
缺省情况下,VLAN的描述信息为“VLAN vlan-id”,其中vlan-id为该VLAN的四位数编号,如果该VLAN的编号不足四位,则会在编号前增加0,补齐四位。例如,VLAN 100的描述信息为“VLAN 0100” |
· VLAN 1为系统缺省VLAN,用户不能手工创建和删除。
· 动态学习到的VLAN,以及被其他应用锁定不让删除的VLAN,都不能使用undo vlan命令直接删除。只有将相关配置删除之后,才能删除相应的VLAN。
接口下的某些配置恢复到缺省情况后,会对设备上当前运行的业务产生影响。建议您在执行default命令前,完全了解其对网络产生的影响。
不同VLAN间的主机不能直接通信,通过在设备上创建并配置VLAN接口,可以实现VLAN间的三层互通。
VLAN接口是一种三层的虚拟接口,它不作为物理实体存在于设备上。每个VLAN对应一个VLAN接口,在为VLAN接口配置了IP地址后,该IP地址即可作为本VLAN内网络设备的网关地址,此时该VLAN接口能对需要跨网段的报文进行三层转发。
配置VLAN接口基本属性时,需要注意:
· 在创建VLAN接口之前,对应的VLAN必须已经存在,否则将不能创建指定的VLAN接口。
· 不能对Sub VLAN及在Primary VLAN interface下配置了三层互通的Secondary VLAN创建对应的VLAN接口。有关Sub VLAN的详细介绍,请参见“二层技术-以太网交换配置指导”中的“Super VLAN”;有关Secondary VLAN的详细介绍,请参见“二层技术-以太网交换配置指导”中的“Private VLAN”。
· 请勿配置VLAN接口的MAC地址为设备的桥MAC地址。
· VLAN接口下配置MAC地址和BFD MAD检测功能互斥。关于BFD MAD检测功能的详细描述,请参见“虚拟化技术配置指导”中的“IRF”。
表1-1 配置VLAN接口基本属性
配置 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建VLAN接口并进入VLAN接口视图 |
interface vlan-interface interface-number |
如果该VLAN接口已经存在,则直接进入该VLAN接口视图 缺省情况下,不存在VLAN接口 |
配置VLAN接口的IP地址 |
ip address ip-address { mask | mask-length } [ sub ] |
缺省情况下,未配置VLAN接口的IP地址 |
配置VLAN接口的描述信息 |
description text |
缺省情况下,VLAN接口的描述信息为该VLAN接口的接口名,如“Vlan-interface1 Interface” |
配置VLAN接口的MTU值 |
mtu size |
缺省情况下,VLAN接口的MTU值为1500字节 |
(可选)配置VLAN接口的MAC地址 |
mac-address mac-address |
缺省情况下,未配置VLAN接口的MAC地址 |
(可选)配置处理接口流量的slot |
(独立运行模式) service slot slot-number (IRF模式) service chassis chassis-number slot slot-number |
缺省情况下,未配置处理接口流量的slot 当要求同一个VLAN接口的流量必须在同一个slot上进行处理时,可以在VLAN接口下配置处理接口流量的slot |
(可选)配置VLAN接口的期望带宽 |
bandwidth bandwidth-value |
缺省情况下,接口的期望带宽=接口的波特率÷1000(kbps) |
(可选)恢复VLAN接口的缺省配置 |
default |
- |
(可选)取消手工关闭VLAN接口 |
undo shutdown |
- |
基于端口划分VLAN是最简单、最有效的VLAN划分方法。它按照设备端口来定义VLAN成员,将指定端口加入到指定VLAN中之后,该端口就可以转发该VLAN的报文。
用户可以配置端口的链路类型及缺省VLAN,其中,链路类型决定了端口能否加入多个VLAN。
端口的链路类型分为三种,不同链路类型的端口在转发报文时对VLAN Tag的处理方式不同:
· Access:端口只能发送一个VLAN的报文,发出去的报文不带VLAN Tag。一般用于和不能识别VLAN Tag的用户终端设备相连,或者不需要区分不同VLAN成员时使用。
· Trunk:端口能发送多个VLAN的报文,发出去的端口缺省VLAN的报文不带VLAN Tag,其他VLAN的报文都必须带VLAN Tag。通常用于网络传输设备之间的互连。
· Hybrid:端口能发送多个VLAN的报文,端口发出去的报文可根据需要配置某些VLAN的报文带VLAN Tag,某些VLAN的报文不带VLAN Tag。在一些应用场景下,需要使用Hybrid端口的功能。比如在1:2 VLAN映射中,服务提供商网络的多个VLAN的报文在进入用户网络前,需要剥离外层VLAN Tag,此时Trunk端口不能实现该功能,因为Trunk端口只能使该端口缺省VLAN的报文不带VLAN Tag通过。有关1:2 VLAN映射的详细介绍,请参见“二层技术-以太网交换配置指导”中的“VLAN映射”。
除了可以配置端口允许通过的VLAN外,还可以配置端口的缺省VLAN,即端口VLAN ID(Port VLAN ID,PVID)。当端口收到Untagged报文时,会认为该报文所属的VLAN为缺省VLAN。
· Access端口的缺省VLAN就是它所在的VLAN。
· Trunk端口和Hybrid端口可以允许多个VLAN通过,能够配置端口缺省VLAN。
· 当执行undo vlan命令删除的VLAN是某个端口的缺省VLAN时,对Access端口,端口的缺省VLAN会恢复到VLAN 1;对Trunk或Hybrid端口,端口的缺省VLAN配置不会改变,即它们可以使用已经不存在的VLAN作为端口缺省VLAN。
· 建议本端设备端口的缺省VLAN ID和相连的对端设备端口的缺省VLAN ID保持一致。
· 建议保证端口的缺省VLAN为端口允许通过的VLAN。如果端口不允许某VLAN通过,但是端口的缺省VLAN为该VLAN,则端口会丢弃收到的该VLAN的报文或者不带VLAN Tag的报文。
在配置了端口链路类型和端口缺省VLAN后,端口对报文的接收和发送的处理有几种不同情况,具体情况请参看表1-2。
端口类型 |
对接收报文的处理 |
对发送报文的处理 |
|
当接收到的报文不带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的报文时是否携带Tag |
缺省情况下,对于Untagged报文的处理顺序为:基于MAC的VLAN->基于IP子网的VLAN->基于协议的VLAN->基于端口的VLAN。
配置基于Access端口的VLAN有两种方法:一种是在VLAN视图下进行配置,另一种是在接口视图下进行配置。
表1-3 配置基于Access端口的VLAN(在VLAN视图下)
配置 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VLAN视图 |
vlan vlan-id |
- |
向当前VLAN中添加一个或一组Access端口 |
port interface-list |
缺省情况下,系统将所有端口都加入到VLAN 1 |
表1-4 配置基于Access端口的VLAN(在接口视图下)
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入相应视图 |
· 二层以太网接口视图: · 二层聚合接口视图: · S通道接口视图: · 聚合S通道接口视图: |
- |
配置端口的链路类型为Access类型 |
port link-type access |
缺省情况下,端口的链路类型为Access |
将Access端口加入到指定VLAN |
port access vlan vlan-id |
缺省情况下,所有Access端口都属于VLAN 1 在将Access端口加入到指定VLAN之前,该VLAN必须已经存在 |
Trunk端口可以允许多个VLAN通过,只能在接口视图下进行配置。
配置基于Trunk端口的VLAN时,需要注意:
· Trunk端口不能直接切换为Hybrid端口,只能先将Trunk端口配置为Access端口,再配置为Hybrid端口。
· 配置端口缺省VLAN后,必须使用port trunk permit vlan命令配置允许端口缺省VLAN的报文通过,接口才能转发端口缺省VLAN的报文。
表1-5 配置基于Trunk端口的VLAN
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入相应视图 |
· 二层以太网接口视图: · 二层聚合接口视图: · S通道接口视图: · 聚合S通道接口视图: |
- |
配置端口的链路类型为Trunk类型 |
port link-type trunk |
缺省情况下,端口的链路类型为Access类型 |
允许指定的VLAN通过当前Trunk端口 |
port trunk permit vlan { vlan-id-list | all } |
缺省情况下,Trunk端口只允许VLAN 1的报文通过 |
(可选)配置Trunk端口的缺省VLAN |
port trunk pvid vlan vlan-id |
缺省情况下,Trunk端口的缺省VLAN为VLAN 1 |
Hybrid端口可以允许多个VLAN通过,只能在接口视图下进行配置。
配置基于Hybrid端口的VLAN时,需要注意:
· Hybrid端口不能直接切换为Trunk端口,只能先将Hybrid端口配置为Access端口,再配置为Trunk端口。
· 在配置允许指定的VLAN通过Hybrid端口之前,允许通过的VLAN必须已经存在。
· 配置端口缺省VLAN后,必须使用port hybrid vlan命令配置允许端口缺省VLAN的报文通过,出接口才能转发端口缺省VLAN的报文。
表1-6 配置基于Hybrid端口的VLAN
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入相应视图 |
· 二层以太网接口视图: · 二层聚合接口视图: · S通道接口视图: · 聚合S通道接口视图: |
- |
配置端口的链路类型为Hybrid类型 |
port link-type hybrid |
缺省情况下,端口的链路类型为Access类型 |
允许指定的VLAN通过当前Hybrid端口 |
port hybrid vlan vlan-id-list { tagged | untagged } |
缺省情况下,Hybrid端口只允许该端口在链路类型为Access时的所属VLAN的报文以Untagged方式通过 |
(可选)配置Hybrid端口的缺省VLAN |
port hybrid pvid vlan vlan-id |
缺省情况下,Hybrid端口的缺省VLAN为该端口在链路类型为Access时的所属VLAN |
VLAN最常用的划分方式是基于端口划分,该方式为从同一端口进入的Untagged报文添加相同的VLAN Tag,在同一VLAN内进行转发处理。该方式配置简单,适用于终端设备物理位置比较固定的组网环境。随着移动办公和无线接入的普及,终端设备不再通过固定端口接入设备,它可能本次使用端口A接入网络,下次使用端口B接入网络。如果端口A和端口B的VLAN配置不同,则终端设备第二次接入后就会被划分到另一VLAN,导致无法使用原VLAN内的资源;如果端口A和端口B的VLAN配置相同,当端口B被分配给别的终端设备时,又会引入安全问题。如何在这样灵活多变的网络环境中部署VLAN呢?基于MAC的VLAN应运而生。
基于MAC的VLAN是根据报文的源MAC地址来划分VLAN。设备维护的MAC VLAN表记录了MAC地址和VLAN的对应关系。这种划分方法的最大优点就是当用户物理位置发生变化,VLAN不用重新配置。所以这种根据MAC地址的划分方法也称为基于用户的VLAN。
手动配置静态MAC VLAN常用于VLAN中用户相对较少的网络环境。在该方式下,用户需要手动配置MAC VLAN表项,开启基于MAC地址的VLAN功能,并将端口加入MAC VLAN。其原理为:
· 当端口收到的报文为Untagged报文时,根据报文的源MAC地址匹配MAC VLAN表项。首先进行模糊匹配,即查询MAC VLAN表中掩码不是全F的表项,将源MAC地址和掩码相与运算后与MAC VLAN表项中的MAC地址匹配,如果完全相同,则模糊匹配成功,给报文添加表项中对应的VLAN Tag并转发该报文;如果模糊匹配失败,则进行精确匹配,即查询表中掩码为全F的表项。如果报文中的源MAC地址与某MAC VLAN表项中的MAC地址完全相同,则精确匹配成功,给报文添加表项中对应的VLAN Tag并转发该报文;如果没有找到匹配的MAC VLAN表项,则继续按照其他原则(基于IP子网的VLAN、基于协议的VLAN、基于端口的VLAN)确定报文所属的VLAN,给报文添加对应的VLAN Tag并转发该报文。
· 当端口收到的报文为Tagged报文时,如果报文的VLAN ID在该端口允许通过的VLAN ID列表里,则转发该报文;否则丢弃该报文。
手动配置静态MAC VLAN时,如果不能确定从哪些端口收到指定VLAN的报文,就不能把相应端口加入到MAC VLAN。此时可以采用动态触发端口加入静态MAC VLAN的方式。在该方式下,配置MAC VLAN表项后,需要在端口上开启基于MAC的VLAN功能和MAC VLAN的动态触发功能,不需要手动把端口加入MAC VLAN。
配置动态触发端口加入静态MAC VLAN后,端口在收到报文时,首先判断报文是否携带VLAN Tag,若带VLAN Tag,则直接获取报文源MAC地址;若不带VLAN Tag,则先进行报文VLAN选择(按照基于MAC的VLAN->基于IP子网的VLAN->基于协议的VLAN->基于端口的VLAN的优先次序为该Untagged报文添加对应的VLAN Tag,并获取该VLAN Tag),再获取报文源MAC地址,然后根据报文的源MAC地址和VLAN查询静态MAC VLAN表项:
· 如果报文源MAC地址与MAC VLAN表项中的MAC地址精确匹配,再检查报文的VLAN ID是否与对应表项中的VLAN ID一致,若一致,通过该报文动态触发端口加入相应VLAN,同时转发该报文;否则丢弃该报文。
· 如果报文源MAC地址与MAC VLAN表项的MAC地址不精确匹配:
¡ ,当报文VLAN ID为PVID,判断端口是否允许报文在PVID内转发,若允许,则生成以报文源MAC地址为目的MAC地址的动态MAC地址表项,并在PVID中转发该报文,否则丢弃该报文。
如果动态MAC地址表项已经生成,则即使端口的PVID配置修改,使得报文的VLAN ID不再满足上述的判断条件,源MAC地址为动态MAC地址表项目的MAC地址的报文仍可以被端口转发。直到生成的动态MAC地址表项老化,不再满足上述判断条件的报文才会被丢弃。
¡ 当报文VLAN ID不为PVID,判断是否报文VLAN ID为Primary VLAN ID且PVID为对应的Secondary VLAN ID,若是,则转发该报文;否则丢弃该报文。处理流程如图1-3所示:
· 在端口自动加入MAC VLAN表项中相应的VLAN时,若端口此前未配置允许该VLAN通过,则端口自动以Untagged方式加入该VLAN;若端口此前已配置允许该VLAN通过,则不改变原有配置。
· 如果用户在同一端口上同时开启了手动配置MAC VLAN和动态触发端口加入MAC VLAN,此时该端口选择使用后者的功能。
· 当端口收到的报文与MAC VLAN表项匹配,对该报文进行转发时,根据MAC VLAN的优先级(MAC地址对应VLAN的802.1p优先级)高低来决定报文传输的优先程度。
动态MAC VLAN是由接入认证过程来动态决定接入用户报文所属的VLAN。该功能需要和接入认证功能(比如端口接入控制方式为MAC-based的802.1X)配合使用,以实现终端的安全、灵活接入。在设备上配置动态MAC VLAN功能以后,还需要在接入认证服务器上配置用户名和VLAN的绑定关系。
如果用户发起认证请求,接入认证服务器先对用户名和密码进行验证,如果验证通过,服务器下发VLAN信息。此时设备根据请求报文的源MAC地址和下发的VLAN信息生成动态MAC VLAN表项(要求与已有的静态MAC VLAN表项不能冲突),并将MAC VLAN添加到端口允许通过的VLAN列表中。用户下线后,设备自动删除MAC VLAN表项,并将MAC VLAN从端口允许通过的VLAN列表中删除。
有关接入认证功能的详细介绍请参见“安全配置指导”中的“802.1X”和“MAC地址认证”。
· 基于MAC的VLAN只对Hybrid端口配置有效。
· Super VLAN不能作为MAC VLAN表项中的VLAN。
· 存在模糊匹配的MAC VLAN表项(掩码不是全F的表项)时,不支持通过vlan precedence ip-subnet-vlan命令优先根据IP子网来匹配VLAN。
· 基于MAC的VLAN功能主要在用户的接入设备的下行端口上进行配置。聚合组的成员端口不支持基于MAC的VLAN功能。
· 二层聚合接口不支持配置动态触发端口加入静态MAC VLAN。
· 不同接口板上最大可支持的MAC VLAN表项数量不同,请以各接口板的实际情况为准。
表1-7 手动配置静态MAC VLAN
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置MAC VLAN表项 |
mac-vlan mac-address mac-address [ mask mac-mask ] vlan vlan-id [ dot1p priority ] |
缺省情况下,不存在MAC VLAN表项 |
进入二层以太网接口视图或二层聚合接口视图 |
interface interface-type interface-number |
- |
配置端口的链路类型为Hybrid类型 |
port link-type hybrid |
缺省情况下,所有端口的链路类型均为Access类型 |
允许基于MAC的VLAN通过当前Hybrid端口 |
port hybrid vlan vlan-id-list { tagged | untagged } |
缺省情况下,Hybrid端口只允许该端口在链路类型为Access时的所属VLAN的报文以Untagged方式通过 |
开启MAC VLAN功能 |
mac-vlan enable |
缺省情况下,MAC VLAN功能处于关闭状态 |
(可选)配置接口的VLAN优先匹配方式 |
vlan precedence { mac-vlan | ip-subnet-vlan } |
缺省情况下,对于基于MAC的VLAN和基于IP子网的VLAN,优先根据MAC地址来匹配VLAN |
配置动态触发端口加入静态MAC VLAN时,需要注意:
· 不建议配置模糊匹配的MAC VLAN表项(即掩码不是全F的表项),否则流量可能被丢弃。
· 端口配置了MAC VLAN的动态触发功能后,建议不要修改该端口的PVID。修改该端口的PVID将导致报文转发异常,要恢复正常,可以在该端口依次执行undo mac-vlan trigger enable、undo mac-vlan enable、mac-vlan enable、mac-vlan trigger enable命令。
· 不建议MAC VLAN的动态触发功能和802.1X/MAC地址认证功能同时使用,否则会影响802.1X/MAC地址认证功能的正常工作。
· 不建议MAC VLAN的动态触发功能与MAC地址禁止学习功能或MAC地址数学习上限功能同时使用,否则部分流量可能被丢弃:
¡ 同时配置MAC VLAN的动态触发功能与MAC地址禁止学习功能时,仅精确匹配了MAC VLAN的报文能够正常转发,未精确匹配的报文将被丢弃。
¡ 同时配置MAC VLAN的动态触发功能与MAC地址数学习上限功能时,当接口学习到的MAC地址到达所配置的上限后,仅匹配MAC地址表中已学习到的表项的报文能够正常转发,其余报文将被丢弃。
· MAC VLAN的动态触发功能生效的一个前提是,源MAC地址所匹配的VLAN必须是静态VLAN(本地手工创建的VLAN)。
· 配置MSTP情况下,如果端口在要加入的VLAN对应的MSTP实例中是阻塞状态,则端口会丢弃收到的报文,造成MAC地址不能上送,不能完成动态触发端口加入静态MAC VLAN,因此不建议本功能和多实例MSTP同时使用。
· 配置PVST情况下,如果端口要加入的VLAN不为端口允许通过的VLAN,则端口处于阻塞状态,会丢弃收到的报文,造成MAC地址不能上送,不能完成动态触发端口加入静态MAC VLAN,因此不建议本功能和PVST同时使用。
· 当端口配置了自动模式下的Voice VLAN,又配置本功能时,两个功能可能会相互影响,导致其中某个功能不可用。当端口同时配置了本功能和自动模式下的Voice VLAN,再取消其中任何一个功能的配置,会导致另一个功能不可用。因此不建议同一端口同时配置本功能和自动模式下的Voice VLAN。
表1-8 配置动态触发端口加入静态MAC VLAN
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置MAC VLAN表项 |
mac-vlan mac-address mac-address vlan vlan-id [ dot1p priority ] |
缺省情况下,不存在MAC 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的动态触发功能处于关闭状态 开启MAC VLAN的动态触发功能后,只有端口接收的报文的源MAC地址精确匹配了MAC VLAN表项,才会动态触发该端口加入相应VLAN |
(可选)配置接口优先根据MAC地址来匹配VLAN |
vlan precedence mac-vlan |
缺省情况下,对于基于MAC的VLAN和基于IP子网的VLAN,优先根据MAC地址来匹配VLAN |
(可选)配置当报文源MAC地址与MAC VLAN表项的MAC地址未精确匹配时,禁止该报文在PVID内转发 |
port pvid forbidden |
缺省情况下,当报文源MAC地址与MAC VLAN表项的MAC地址未精确匹配时,允许该报文在PVID内转发 |
表1-9 配置动态MAC VLAN
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入二层以太网接口视图或二层聚合接口视图 |
interface interface-type interface-number |
- |
|
配置端口的链路类型为Hybrid类型 |
port link-type hybrid |
缺省情况下,所有端口的链路类型均为Access类型 |
|
允许基于MAC的VLAN通过当前Hybrid端口 |
port hybrid vlan vlan-id-list { tagged | untagged } |
缺省情况下,Hybrid端口只允许该端口在链路类型为Access时的所属VLAN的报文以Untagged方式通过 |
|
开启MAC VLAN功能 |
mac-vlan enable |
缺省情况下,MAC VLAN功能处于关闭状态 |
|
(可选)配置接口的VLAN优先匹配方式 |
vlan precedence { mac-vlan | ip-subnet-vlan } |
缺省情况下,对于基于MAC的VLAN和基于IP子网的VLAN,优先根据MAC地址来匹配VLAN |
|
配置接入认证功能 |
配置802.1X |
请参见“安全命令参考”中的“802.1X” |
二者至少选其一 |
配置MAC地址认证 |
请参见“安全命令参考”中的“MAC地址认证” |
基于IP子网的VLAN只对Hybrid端口配置有效,只对Untagged报文应用。
基于IP子网的VLAN(简称子网VLAN)是根据报文源IP地址及子网掩码来进行划分的。设备从端口收到Untagged报文后,会根据报文的源IP地址来确定报文所属的VLAN,然后将报文自动划分到指定VLAN中传输。
此特性主要用于将指定网段或IP地址的报文划分到指定的VLAN中传送。
表1-10 配置基于IP子网的VLAN
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VLAN视图 |
vlan vlan-id |
- |
配置VLAN与指定的IP子网或IP地址关联 |
ip-subnet-vlan [ ip-subnet-index ] ip ip-address [ mask ] |
缺省情况下,VLAN未关联IP子网或IP地址 VLAN关联的IP网段或IP地址不允许是组播网段或组播地址 |
退回系统视图 |
quit |
- |
进入相应视图 |
· 二层以太网接口视图: · 二层聚合接口视图: |
- |
配置端口的链路类型为Hybrid类型 |
port link-type hybrid |
缺省情况下,所有端口的链路类型均为Access类型 |
允许子网VLAN通过当前端口 |
port hybrid vlan vlan-id-list { tagged | untagged } |
缺省情况下,Hybrid端口只允许该端口在链路类型为Access时的所属VLAN的报文以Untagged方式通过 |
配置端口与子网VLAN关联 |
port hybrid ip-subnet-vlan vlan vlan-id |
缺省情况下,端口未关联子网VLAN |
基于协议的VLAN只对Hybrid端口配置有效,只对Untagged报文应用。
基于协议的VLAN(简称协议VLAN)是根据端口接收到的报文所属的协议(族)类型以及封装格式来给报文分配不同的VLAN ID。可用来划分VLAN的协议有IP、IPX、AT(AppleTalk,Apple计算机网络协议)等,封装格式有Ethernet II、802.3 raw、802.2 LLC、802.2 SNAP等。
此特性主要应用于将网络中提供的服务类型与VLAN相关联,方便管理和维护。
协议VLAN由协议模板定义。协议模板是用来匹配报文所属协议类型的标准,由“协议类型+封装格式”组成。对于一个协议VLAN来说,其绑定的多个协议模板用协议索引(protocol-index)来区分;对于不同的协议VLAN来说,其绑定的协议模板用协议vlan-id和protocol-index来唯一标识。最后通过命令行将协议VLAN中的协议模板与端口绑定。
当端口收到Untagged报文时,如果该报文携带的协议类型和封装格式与某协议模板相匹配,则为其添加该协议模板绑定的协议vlan-id的VLAN Tag,否则为其添加PVID的VLAN Tag。
需要注意的是,协议VLAN特性要求Hybrid入端口的报文格式为Untagged的,而自动模式下的Voice VLAN只支持Hybrid端口对Tagged的语音流进行处理,因此,不能将某个VLAN同时配置为协议VLAN和Voice VLAN。
表1-11 配置基于协议的VLAN
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VLAN视图 |
vlan vlan-id |
- |
配置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未关联协议模板 |
退出VLAN视图 |
quit |
- |
进入相应视图 |
· 二层以太网接口视图: · 二层聚合接口视图: |
- |
配置端口的链路类型为Hybrid类型 |
port link-type hybrid |
缺省情况下,所有端口的链路类型均为Access类型 |
允许协议VLAN通过当前端口 |
port hybrid vlan vlan-id-list { tagged | untagged } |
缺省情况下,Hybrid端口只允许该端口在链路类型为Access时的所属VLAN的报文以Untagged方式通过 |
配置端口与协议VLAN关联 |
port hybrid protocol-vlan vlan vlan-id { protocol-index [ to protocol-end ] | all } |
缺省情况下,端口未关联协议VLAN |
VLAN组是一组VLAN的集合。VLAN组内可以添加多个VLAN列表,一个VLAN列表表示一组VLAN ID连续的VLAN。
认证服务器可以通过下发VLAN组名的方式为通过认证的802.1X用户下发一组授权VLAN。有关802.1X的详细介绍,请参见“安全配置指导”中的“802.1X”。
表1-12 配置VLAN组
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建一个VLAN组,并进入VLAN组视图 |
vlan-group group-name |
缺省情况下,不存在VLAN组 |
在VLAN组内添加VLAN成员 |
vlan-list vlan-id-list |
缺省情况下,当前VLAN组中不存在VLAN列表 可以多次在当前VLAN组内添加VLAN成员 |
当您需要检查网络状况或者处理网络故障时,可以在设备上打开VLAN的流量统计功能,对通过VLAN的流量总数(包括所有单播、组播和广播报文)进行统计。
统计VLAN流量信息会占用一定的系统资源,请在不需要统计信息时及时关闭此功能。
VXLAN网络中,VLAN的流量统计功能对VTEP上SH系列接口板的用户侧端口的不带VLAN Tag的出方向报文和Tunnel接口的出方向报文不生效。
表1-13 配置VLAN流量统计功能
配置 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VLAN视图 |
vlan vlan-id |
- |
开启VLAN的流量统计功能 |
statistics enable |
缺省情况下,VLAN流量统计功能处于关闭状态 |
开启本功能后,端口接收到LACP或BFD协议报文时,会记录报文携带的VLAN Tag(无论携带了几层VLAN Tag)。当本端口发送相同的协议报文时,设备会将这些报文的VLAN Tag设置为之前记录的VLAN Tag,无论该端口的类型是否允许在发送报文时携带这些VLAN Tag。有关LACP的详细介绍,请参见“二层技术-以太网交换配置指导”中的“以太网链路聚合”;有关BFD的详细介绍,请参见“可靠性配置指导”中的“BFD”。
在端口上执行了port outbound-vlan-tag enable命令后,若再执行undo port outbound-vlan-tag enable命令,会导致该端口上的BFD会话down,请谨慎执行此配置。
聚合组成员端口配置本命令时不对其他成员端口造成影响,也不影响聚合组成员端口的选中状态,若要保持聚合组的配置一致性,请手动在所有成员端口上配置本命令。
表1-14 开启端口发送协议报文时设置VLAN Tag功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入二层以太网接口视图 |
interface interface-type interface-number |
- |
开启端口发送协议报文时设置VLAN Tag功能 |
port outbound-vlan-tag enable |
- |
缺省情况下,设备发送的协议报文的802.1p优先级为6。但某些设备收到优先级为6的报文后会丢弃或不处理,影响了各类协议在网络中的正常运行。此时需要通过本命令修改本设备发送的协议报文的802.1p优先级。
配置本功能后,会修改设备发送的以下类型协议报文的802.1p优先级:ARP、NTP、OSPF、BGP、PIM、SSH、Telnet和LDP。
表1-15 配置设备发送的协议报文的802.1p优先级
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置设备发送的协议报文的802.1p优先级 |
control-packet dot1p priority |
缺省情况下,设备发送的协议报文的802.1p优先级为6 |
在完成上述配置后,在任意视图下执行display命令可以显示配置后VLAN的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除VLAN接口统计信息。
表1-16 VLAN显示和维护
操作 |
命令 |
|
显示VLAN接口相关信息 |
display interface [ vlan-interface [ interface-number ] ] [ brief [ description | down ] ] |
|
显示MAC VLAN表项 |
display mac-vlan { all | dynamic | mac-address mac-address [ mask mac-mask ] | static | vlan vlan-id } |
|
显示所有开启了MAC VLAN功能的接口 |
display mac-vlan interface |
|
显示端口关联的子网VLAN的信息 |
display ip-subnet-vlan interface { interface-type interface-number1 [ to interface-type interface-number2 ] | all } |
|
显示指定的或所有子网VLAN的信息 |
display ip-subnet-vlan vlan { vlan-id1 [ to vlan-id2 ] | all } |
|
显示端口关联的协议VLAN的信息 |
display protocol-vlan interface { interface-type interface-number1 [ to interface-type interface-number2 ] | all } |
|
显示指定的或所有协议VLAN的信息 |
display protocol-vlan vlan { vlan-id1 [ to vlan-id2 ] | all } |
|
显示VLAN相关信息 |
display vlan [ vlan-id1 [ to vlan-id2 ] | all | dynamic | reserved | static ] |
|
显示设备上所有已创建VLAN的概要信息 |
display vlan brief |
|
显示创建的VLAN组及其VLAN成员列表 |
display vlan-group [ group-name ] |
|
显示设备上存在的Hybrid或Trunk端口 |
display port { hybrid | trunk } |
|
显示指定VLAN的流量统计信息(独立运行模式) |
display vlan vlan-id statistics [ slot slot-number ] |
|
显示指定VLAN的流量统计信息(IRF模式) |
display vlan vlan-id statistics [ chassis chassis-number slot slot-number ] |
|
清除VLAN接口的统计信息 |
reset counters interface [ vlan-interface [ interface-number ] ] |
|
清除指定VLAN的流量统计信息(独立运行模式) |
reset vlan vlan-id statistics [ slot slot-number ] |
|
(IRF模式) |
reset vlan vlan-id statistics [ chassis chassis-number slot slot-number ] |
|
· Host A和Host C属于部门A,但是通过不同的设备接入公司网络;Host B和Host D属于部门B,也通过不同的设备接入公司网络。
· 为了通信的安全性,也为了避免广播报文泛滥,公司网络中使用VLAN技术来隔离部门间的二层流量。其中部门A使用VLAN 100,部门B使用VLAN 200。
图1-4 基于端口的VLAN组网图
(1) 配置Device A
# 创建VLAN 100,并将GigabitEthernet1/0/1加入VLAN 100。
<DeviceA> system-view
[DeviceA] vlan 100
[DeviceA-vlan100] port gigabitethernet 1/0/1
[DeviceA-vlan100] quit
# 创建VLAN 200,并将GigabitEthernet1/0/2加入VLAN 200。
[DeviceA] vlan 200
[DeviceA-vlan200] port gigabitethernet 1/0/2
[DeviceA-vlan200] quit
# 为了使Device A上VLAN 100和VLAN 200的报文能发送给Device B,将GigabitEthernet1/0/3的链路类型配置为Trunk,并允许VLAN 100和VLAN 200的报文通过。
[DeviceA] interface gigabitethernet 1/0/3
[DeviceA-GigabitEthernet1/0/3] port link-type trunk
[DeviceA-GigabitEthernet1/0/3] port trunk permit vlan 100 200
(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 D。Host B和Host D能够互相ping通,但是均不能ping通Host A和Host C。
(2) 通过查看显示信息验证配置是否成功。
# 查看Device A上VLAN 100和VLAN 200的配置信息,验证以上配置是否生效。
[DeviceA-GigabitEthernet1/0/3] display vlan 100
VLAN ID: 100
VLAN type: Static
Route interface: Not configured
Description: VLAN 0100
Name: VLAN 0100
Tagged ports:
GigabitEthernet1/0/3(U)
Untagged ports:
GigabitEthernet1/0/1(U)
[DeviceA-GigabitEthernet1/0/3] display vlan 200
VLAN ID: 200
VLAN type: Static
Route interface: Not configured
Description: VLAN 0200
Name: VLAN 0200
Tagged ports:
GigabitEthernet1/0/3(U)
Untagged ports:
GigabitEthernet1/0/2(U)
· 如下图所示,Device A和Device C的GigabitEthernet1/0/1端口分别连接到两个会议室,Laptop1和Laptop2是会议用笔记本电脑,会在两个会议室间移动使用。
· Laptop1和Laptop2分别属于两个部门,两个部门间使用VLAN 100和VLAN 200进行隔离。现要求这两台笔记本电脑无论在哪个会议室使用,均只能访问自己部门的服务器,即Server1和Server2。
图1-5 基于MAC的VLAN组网图
(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均可能从GigabitEthernet1/0/1接入,将GigabitEthernet1/0/1的端口类型配置为Hybrid,并使其在发送VLAN 100和VLAN 200的报文时去掉VLAN Tag;开启GigabitEthernet1/0/1端口的MAC VLAN功能。
[DeviceA] interface gigabitethernet 1/0/1
[DeviceA-GigabitEthernet1/0/1] port link-type hybrid
[DeviceA-GigabitEthernet1/0/1] port hybrid vlan 100 200 untagged
[DeviceA-GigabitEthernet1/0/1] mac-vlan enable
[DeviceA-GigabitEthernet1/0/1] quit
# 为了终端能够访问Server1和Server2,需要将上行端口GigabitEthernet1/0/2的端口类型配置为Trunk,并允许VLAN 100和VLAN 200的报文通过。
[DeviceA] interface gigabitethernet 1/0/2
[DeviceA-GigabitEthernet1/0/2] port link-type trunk
[DeviceA-GigabitEthernet1/0/2] port trunk permit vlan 100 200
[DeviceA-GigabitEthernet1/0/2] quit
(2) Device B的配置
# 创建VLAN 100和VLAN 200,并将GigabitEthernet1/0/3加入VLAN 100,GigabitEthernet1/0/4加入VLAN 200。
<DeviceB> system-view
[DeviceB] vlan 100
[DeviceB-vlan100] port gigabitethernet 1/0/3
[DeviceB-vlan100] quit
[DeviceB] vlan 200
[DeviceB-vlan200] port gigabitethernet 1/0/4
[DeviceB-vlan200] quit
# 配置GigabitEthernet1/0/1和GigabitEthernet1/0/2端口为Trunk端口,均允许VLAN 100和VLAN 200的报文通过。
[DeviceB] interface gigabitethernet 1/0/1
[DeviceB-GigabitEthernet1/0/1] port link-type trunk
[DeviceB-GigabitEthernet1/0/1] port trunk permit vlan 100 200
[DeviceB-GigabitEthernet1/0/1] quit
[DeviceB] interface gigabitethernet 1/0/2
[DeviceB-GigabitEthernet1/0/2] port link-type trunk
[DeviceB-GigabitEthernet1/0/2] port trunk permit vlan 100 200
[DeviceB-GigabitEthernet1/0/2] 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地址表项已经生成。以Device A为例:
[DeviceA] display mac-vlan all
The following MAC VLAN addresses exist:
S:Static D:Dynamic
MAC address Mask VLAN ID Dot1p 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
如下图所示,办公区的主机属于不同的网段192.168.5.0/24和192.168.50.0/24,Device C在收到来自办公区主机的报文时,根据报文的源IP地址,使来自不同网段主机的报文分别在指定的VLAN中传输,其中,来自网段192.168.5.0/24的报文在VLAN 100中传输,来自网段192.168.50.0/24的报文在VLAN 200中传输。
图1-6 基于IP子网的VLAN组网图
(1) 配置Device C
# 配置子网192.168.5.0/24与VLAN 100关联。
<DeviceC> system-view
[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
# 配置端口GigabitEthernet1/0/2为Hybrid端口,允许VLAN 100通过,并且在发送VLAN 100的报文时携带VLAN Tag。
[DeviceC] interface gigabitethernet 1/0/2
[DeviceC-GigabitEthernet1/0/2] port link-type hybrid
[DeviceC-GigabitEthernet1/0/2] port hybrid vlan 100 tagged
[DeviceC-GigabitEthernet1/0/2] quit
# 配置端口GigabitEthernet1/0/3为Hybrid端口,允许VLAN 200通过,并且在发送VLAN 200的报文时携带VLAN Tag。
[DeviceC] interface gigabitethernet 1/0/3
[DeviceC-GigabitEthernet1/0/3] port link-type hybrid
[DeviceC-GigabitEthernet1/0/3] port hybrid vlan 200 tagged
[DeviceC-GigabitEthernet1/0/3] quit
# 配置端口GigabitEthernet1/0/1为Hybrid端口,允许VLAN 100、200通过,并且在发送VLAN 100、200的报文时不携带VLAN Tag。
[DeviceC] interface gigabitethernet 1/0/1
[DeviceC-GigabitEthernet1/0/1] port link-type hybrid
[DeviceC-GigabitEthernet1/0/1] port hybrid vlan 100 200 untagged
# 配置端口GigabitEthernet1/0/1和基于IP子网的VLAN 100、200关联。
[DeviceC-GigabitEthernet1/0/1] port hybrid ip-subnet-vlan vlan 100
[DeviceC-GigabitEthernet1/0/1] port hybrid ip-subnet-vlan vlan 200
[DeviceC-GigabitEthernet1/0/1] quit
(2) 配置Device A和Device B
配置Device A和Device B允许对应VLAN通过,配置过程略。
# 查看所有子网VLAN的信息。
[DeviceC] 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
# 查看端口GigabitEthernet1/0/1关联的子网VLAN的信息。
[DeviceC] display ip-subnet-vlan interface gigabitethernet 1/0/1
Interface: GigabitEthernet1/0/1
VLAN ID Subnet index IP address Subnet mask Status
100 0 192.168.5.0 255.255.255.0 Active
200 0 192.168.50.0 255.255.255.0 Active
如下图所示,实验室网络中大部分主机运行IPv4网络协议,另外为了教学需要还部署了IPv6实验局,因此,有些主机运行IPv6网络协议。为了避免互相干扰,将VLAN 100与IPv4协议、ARP协议关联,VLAN 200与IPv6协议关联,通过协议VLAN将IPv4流量和IPv6流量二层互相隔离。
图1-7 基于协议的VLAN组网图
(1) 配置Device
# 创建VLAN 100,将端口GigabitEthernet1/0/3加入VLAN 100。
<Device> system-view
[Device] vlan 100
[Device-vlan100] description protocol VLAN for IPv4
[Device-vlan100] port gigabitethernet 1/0/3
[Device-vlan100] quit
# 创建VLAN 200,将端口GigabitEthernet1/0/4加入VLAN 200。
[Device] vlan 200
[Device-vlan200] description protocol VLAN for IPv6
[Device-vlan200] port gigabitethernet 1/0/4
# 将IPv6协议报文划分到VLAN 200中传输。
[Device-vlan200] protocol-vlan 1 ipv6
[Device-vlan200] quit
# 将IPv4协议报文和采用Ethernet II封装格式的ARP协议报文(ARP报文对应的封装格式为Ethernet II)划分到VLAN 100中传输。
[Device] vlan 100
[Device-vlan100] protocol-vlan 1 ipv4
[Device-vlan100] protocol-vlan 2 mode ethernetii etype 0806
[Device-vlan100] quit
# 配置端口GigabitEthernet1/0/1为Hybrid端口,允许VLAN 100、200通过,并且在发送VLAN 100、200的报文时不携带VLAN Tag。
[Device] interface gigabitethernet 1/0/1
[Device-GigabitEthernet1/0/1] port link-type hybrid
[Device-GigabitEthernet1/0/1] port hybrid vlan 100 200 untagged
# 配置端口GigabitEthernet1/0/1与VLAN 100的协议模板1(即IPv4协议模板)、协议模板2(即ARP协议模板)和VLAN 200的协议模板1(即IPv6协议模板)进行绑定。
[Device-GigabitEthernet1/0/1] port hybrid protocol-vlan vlan 100 1 to 2
[Device-GigabitEthernet1/0/1] port hybrid protocol-vlan vlan 200 1
[Device-GigabitEthernet1/0/1] quit
# 配置端口GigabitEthernet1/0/2为Hybrid端口,允许VLAN 100、200通过,并且在发送VLAN 100、200的报文时不携带VLAN Tag。
[Device] interface gigabitethernet 1/0/2
[Device-GigabitEthernet1/0/2] port link-type hybrid
[Device-GigabitEthernet1/0/2] port hybrid vlan 100 200 untagged
# 配置端口GigabitEthernet1/0/2与VLAN 100的协议模板1(即IPv4协议模板)、协议模板2(即ARP协议模板)和VLAN 200的协议模板1(即IPv6协议模板)进行绑定。
[Device-GigabitEthernet1/0/2] port hybrid protocol-vlan vlan 100 1 to 2
[Device-GigabitEthernet1/0/2] port hybrid protocol-vlan vlan 200 1
[Device-GigabitEthernet1/0/2] quit
(2) L2 switch A和L2 switch B采用缺省配置
(3) 配置Host和Server
将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) 通过ping命令查看
VLAN 100内的主机和服务器能够互相Ping通;VLAN 200内的主机和服务器能够互相Ping通。但VLAN 100内的主机/服务器与VLAN 200内的主机/服务器之间会Ping失败。
(2) 通过显示信息查看
# 查看所有协议VLAN的信息。
[Device] display protocol-vlan vlan all
VLAN ID: 100
Protocol index Protocol type
1 IPv4
2 Ethernet II Etype 0x0806
VLAN ID: 200
Protocol index Protocol type
1 IPv6
# 查看所有端口关联的协议VLAN的信息。
[Device] display protocol-vlan interface all
Interface: GigabitEthernet1/0/1
VLAN ID Protocol index Protocol type Status
100 1 IPv4 Active
100 2 Ethernet II Etype 0x0806 Active
200 1 IPv6 Active
Interface: GigabitEthernet1/0/2
VLAN ID Protocol index Protocol type Status
100 1 IPv4 Active
100 2 Ethernet II Etype 0x0806 Active
200 1 IPv6 Active
在交换局域网中,VLAN技术以其对广播域的灵活控制、部署方便而得到了广泛的应用。但是在一般的交换设备中,通常是采用一个VLAN对应一个VLAN接口的方式来实现广播域之间的互通,这在某些情况下导致了对IP地址的较大浪费。
Super VLAN可以对VLAN进行聚合,从而大幅缩减实际需要的VLAN接口数量,解决IP地址紧张的问题。其原理是一个Super VLAN和多个Sub VLAN关联,关联的Sub VLAN公用Super VLAN对应的VLAN接口(即Super VLAN interface)的IP地址作为三层通信的网关地址,此时Sub VLAN间的三层通信以及Sub VLAN与外部的三层通信均借用Super VLAN interface来实现,从而节省了IP地址资源。
· Super VLAN:支持创建VLAN接口,并配置接口IP地址,不能加入物理接口。
· Sub VLAN:不支持创建VLAN接口,可以加入物理端口,不同Sub VLAN之间二层相互隔离。
为了实现Sub VLAN之间的三层互通,在创建好Super VLAN及其Super VLAN interface之后,用户需要开启设备的本地代理功能:
· 对于IPv4网络环境,用户需要在Super VLAN interface上开启本地代理ARP功能,Super VLAN利用本地代理ARP,可以对Sub VLAN内用户发出的ARP请求和响应报文进行处理,从而实现Sub VLAN之间的三层互通。
· 对于IPv6网络环境,用户需要在Super VLAN interface上开启本地代理ND功能,Super VLAN利用本地代理ND,可以对Sub VLAN内用户发出的NS请求和NA响应报文进行处理,从而实现Sub VLAN之间的三层互通。
Super VLAN不支持和VXLAN IP网关功能组合使用。有关VXLAN IP网关的介绍,请参见“VXLAN配置指导”中的“VXLAN IP网关”。
Super VLAN配置包括三个必选步骤:
(1) 创建Sub VLAN。
(2) 创建Super VLAN,并将Super VLAN和Sub VLAN关联起来。
(3) 配置Super VLAN interface。
表2-1 创建Sub VLAN
配置 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建VLAN用作Sub VLAN |
vlan vlan-id-list |
缺省情况下,系统只有一个缺省VLAN(VLAN 1) |
配置Super VLAN功能时,需要注意:
· MAC VLAN表项中的VLAN不能配为Super VLAN。
· 如果某个VLAN被指定为Super VLAN,则该VLAN不能被指定为某个端口的Guest VLAN/Auth-Fail VLAN/Critical VLAN;同样,如果某个VLAN被指定为某个端口的Guest VLAN/Auth-Fail VLAN/Critical VLAN,则该VLAN不能被指定为Super VLAN。Guest VLAN/Auth-Fail VLAN/Critical VLAN的相关内容请参见“安全配置指导”中的“802.1X”。
· 一个VLAN不能同时配置为Super VLAN和Sub VLAN。
· Super VLAN不支持二层组播和三层组播功能。
表2-2 配置Super VLAN
配置 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VLAN视图 |
vlan vlan-id |
- |
配置VLAN的类型为Super VLAN |
supervlan |
缺省情况下,VLAN类型不为Super VLAN |
建立Super VLAN和Sub VLAN的映射关系 |
subvlan vlan-id-list |
缺省情况下,不存在Super VLAN和Sub VLAN的映射关系 建立Super VLAN和Sub VLAN的映射关系前,指定的Sub VLAN必须已经创建 |
需要注意的是,在Super VLAN interface下配置VRRP功能后,会对网络性能造成影响,建议不要这样配置。VRRP的详细描述请参见“可靠性配置指导”中的“VRRP”。
表2-3 配置Super VLAN interface
配置 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建VLAN接口,并进入VLAN接口视图 |
interface vlan-interface interface-number |
interface-number的值必须等于Super VLAN ID |
配置VLAN接口的IP地址 |
ip address ip-address { mask-length | mask } [ sub ] |
二者选其一 缺省情况下,没有配置VLAN接口的IP地址 |
ipv6 address { ipv6-address prefix-length | ipv6-address/prefix-length } |
||
开启本地代理ARP功能(IPv4环境) |
local-proxy-arp enable |
二者选其一 缺省情况下,本地代理ARP/ND功能处于关闭状态 · 本地代理ARP功能的相关介绍请参见“三层技术-IP业务配置指导”中的“代理ARP”;local-proxy-arp enable命令的相关描述请参见“三层技术-IP业务命令参考”中的“代理ARP” · 本地代理ND功能的相关介绍请参见“三层技术-IP业务配置指导”中的“IPv6基础”;local-proxy-nd enable命令的相关描述请参见“三层技术-IP业务命令参考”中的“IPv6基础” |
开启本地代理ND功能(IPv6环境) |
local-proxy-nd enable |
在完成上述配置后,在任意视图下执行display命令可以显示配置后Super VLAN的运行情况,通过查看显示信息验证配置的效果。
表2-4 Super VLAN显示和维护
操作 |
命令 |
显示Super VLAN及其关联的Sub VLAN的信息 |
display supervlan [ supervlan-id ] |
Device A连接不同VLAN用户,其中,端口GigabitEthernet1/0/1和端口GigabitEthernet1/0/2属于VLAN 2,端口GigabitEthernet1/0/3和端口GigabitEthernet1/0/4属于VLAN 3,端口GigabitEthernet1/0/5和端口GigabitEthernet1/0/6属于VLAN 5。
为实现Device A连接的各VLAN用户(均在10.1.1.0/24网段)之间能够满足二层隔离和三层互通的同时,节省IP资源,创建Super VLAN,其关联的Sub VLAN公用Super VLAN interface的IP地址10.1.1.1/24作为三层通信的网关地址。
图2-1 配置Super VLAN组网图
# 创建VLAN 10,配置VLAN接口的IP地址为10.1.1.1/24。
<DeviceA> system-view
[DeviceA] vlan 10
[DeviceA-vlan10] quit
[DeviceA] interface vlan-interface 10
[DeviceA-Vlan-interface10] ip address 10.1.1.1 255.255.255.0
# 开启设备的本地代理ARP功能。
[DeviceA-Vlan-interface10] local-proxy-arp enable
[DeviceA-Vlan-interface10] quit
# 创建VLAN 2,并向VLAN 2中添加端口GigabitEthernet1/0/1和端口GigabitEthernet1/0/2。
[DeviceA] vlan 2
[DeviceA-vlan2] port gigabitethernet 1/0/1 gigabitethernet 1/0/2
[DeviceA-vlan2] quit
# 创建VLAN 3,并向VLAN 3中添加端口GigabitEthernet1/0/3和端口GigabitEthernet1/0/4。
[DeviceA] vlan 3
[DeviceA-vlan3] port gigabitethernet 1/0/3 gigabitethernet 1/0/4
[DeviceA-vlan3] quit
# 创建VLAN 5,并向VLAN 5中添加端口GigabitEthernet1/0/5和端口GigabitEthernet1/0/6。
[DeviceA] vlan 5
[DeviceA-vlan5] port gigabitethernet 1/0/5 gigabitethernet 1/0/6
[DeviceA-vlan5] quit
# 配置VLAN 10为Super VLAN,其关联的Sub VLAN为VLAN 2、VLAN 3和VLAN 5。
[DeviceA] vlan 10
[DeviceA-vlan10] supervlan
[DeviceA-vlan10] subvlan 2 3 5
[DeviceA-vlan10] quit
[DeviceA] quit
# 查看Super VLAN的相关信息,验证以上配置是否生效。
<DeviceA> display supervlan
Super VLAN ID: 10
Sub-VLAN ID: 2-3 5
VLAN ID: 10
VLAN type: Static
It is a super VLAN.
Route interface: Configured
Ipv4 address: 10.1.1.1
Ipv4 subnet mask: 255.255.255.0
Description: VLAN 0010
Name: VLAN 0010
Tagged ports: None
Untagged ports: None
VLAN ID: 2
VLAN type: Static
It is a sub-VLAN.
Route interface: Configured
Ipv4 address: 10.1.1.1
Ipv4 subnet mask: 255.255.255.0
Description: VLAN 0002
Name: VLAN 0002
Tagged ports: None
Untagged ports:
GigabitEthernet1/0/1
GigabitEthernet1/0/2
VLAN ID: 3
VLAN type: Static
It is a sub-VLAN.
Route interface: Configured
Ipv4 address: 10.1.1.1
Ipv4 subnet mask: 255.255.255.0
Description: VLAN 0003
Name: VLAN 0003
Tagged ports: None
Untagged ports:
GigabitEthernet1/0/3
GigabitEthernet1/0/4
VLAN ID: 5
VLAN type: Static
It is a sub-VLAN.
Route unterface: Configured
Ipv4 address: 10.1.1.1
Ipv4 subnet mask: 255.255.255.0
Description: VLAN 0005
Name: VLAN 0005
Tagged ports: None
Untagged ports:
GigabitEthernet1/0/5
GigabitEthernet1/0/6
在采用以太网接入的场景中,基于用户安全和管理计费等方面的考虑,一般会要求接入用户互相隔离。VLAN是天然的隔离手段,于是很自然的想法是每个用户一个VLAN。但是,根据IEEE 802.1Q规定,最多可以提供4094个VLAN。如果每个用户一个VLAN,4094个VLAN远远不能满足需求。
Private VLAN采用二层VLAN结构,它在同一台设备上配置Primary VLAN和Secondary VLAN两类VLAN,即能够保证接入用户之间相互隔离,又能将接入的VLAN ID屏蔽掉,从而节省了VLAN资源。
· Primary VLAN:用于连接上行设备,一个Primary VLAN可以和多个Secondary VLAN相对应。上行连接的设备只需知道Primary VLAN,而不必关心Secondary VLAN,Primary VLAN下面的Secondary VLAN对上行设备不可见。
· Secondary VLAN:用于连接用户,Secondary VLAN之间二层报文互相隔离。如果希望实现同一Primary VLAN下Secondary VLAN用户之间报文的互通,可以通过配置上行设备(如图3-1中的L3 Device A)的本地代理ARP/ND功能来实现三层报文的互通。
如图3-1所示,L2 Device B上启动了Private VLAN功能。其中VLAN 10是Primary VLAN,VLAN 2、VLAN 5、VLAN 8是Secondary VLAN,VLAN 2、VLAN 5、VLAN 8都映射到VLAN 10,VLAN 2、VLAN 5、VLAN 8对L3 Device A不可见。
如果配置Private VLAN功能的设备为三层设备,Secondary VLAN间及Secondary VLAN与外部需要进行三层互通,则可以通过在本地设备上创建Secondary对应的VLAN接口(即Secondary VLAN interface),并在该Secondary VLAN interface上配置IP地址来实现;或者通过在本地设备上配置Primary VLAN下指定Secondary VLAN间三层互通,同时创建Primary VLAN interface(但不能创建Secondary VLAN interface),并在Primary VLAN interface上配置IP地址和本地代理ARP/ND功能来实现。
Private VLAN不支持组播功能。
Private VLAN不支持和VXLAN IP网关功能组合使用。有关VXLAN IP网关的介绍,请参见“VXLAN配置指导”中的“VXLAN IP网关”。
Primary VLAN和Secondary VLAN同时创建VLAN接口时,需要保持Primary VLAN和Secondary VLAN的VLAN接口MAC地址相同。
配置Primary VLAN后, 请勿创建4096个以上的VSI。
Private VLAN配置主要包括下面几个步骤:
(1) 配置Primary VLAN。
(2) 配置Secondary VLAN。
(3) 配置Primary VLAN和Secondary VLAN间的映射关系。
(4) 配置上行/下行端口。
· 当上行端口(如图3-1中L2 Device B上与L3 Device A相连的端口)只对应一个Primary VLAN时,配置该端口工作在promiscuous模式,可以实现上行端口加入Primary VLAN及同步加入对应的Secondary VLAN的功能;当上行端口对应多个Primary VLAN时,配置该端口工作在trunk promiscuous模式,可以实现上行端口加入多个Primary VLAN及同步加入各自对应的Secondary VLAN的功能。
· 当下行端口(如图3-1中L2 Device B上与用户相连的端口)只对应一个Secondary VLAN时,配置该端口工作在host模式,可以实现下行端口同步加入Secondary VLAN对应的Primary VLAN的功能;当下行端口对应多个Secondary VLAN时,配置该端口工作在trunk secondary模式,可以实现下行端口加入多个Secondary VLAN及同步加入各自对应的Primary VLAN的功能。
有关promiscuous/trunk promiscuous/trunk secondary/host模式的详细介绍,请参见“二层技术-以太网交换命令参考”中的“Private VLAN”的相关命令。
(5) 配置Primary VLAN下指定Secondary VLAN间三层互通。
配置Private VLAN时,需要注意:
· 在完成表3-1中的配置后,建议用户作如下确认:对于工作模式为promiscuous的端口,确保该端口的缺省VLAN为Primary VLAN,该端口以Untagged方式加入Primary VLAN和Secondary VLAN;对于工作模式为trunk promiscuous/trunk secondary的端口,确保该端口以Tagged方式加入Primary VLAN和Secondary VLAN;对于工作模式为host的端口,确保该端口的缺省VLAN为Secondary VLAN,该端口以Untagged方式加入Primary VLAN和Secondary VLAN。
· 配置Primary VLAN后,系统会自动将Secondary VLAN的动态MAC地址表项同步到Primary VLAN。
· 配置Primary VLAN后,Secondary VLAN的静态MAC地址表项不生效。Secondary VLAN和Primary VLAN解除映射关系后,Primary VLAN的静态MAC地址表项对该Secondary VLAN的流量不生效。
· 系统缺省VLAN(VLAN 1)不支持Private VLAN相关配置。
操作 |
命令 |
说明 |
|
|||
进入系统视图 |
system-view |
- |
|
|||
创建VLAN,并进入VLAN视图 |
vlan vlan-id |
- |
|
|||
配置VLAN的类型为Primary VLAN |
private-vlan primary |
缺省情况下,VLAN的类型不是Primary VLAN |
|
|||
退回系统视图 |
quit |
- |
|
|||
创建一个或多个Secondary VLAN |
vlan { vlan-id-list | all } |
- |
|
|||
退回系统视图 |
quit |
- |
|
|||
进入Primary VLAN视图 |
vlan vlan-id |
- |
|
|||
建立Primary VLAN和Secondary VLAN的映射关系 |
private-vlan secondary vlan-id-list |
缺省情况下,未建立Primary VLAN和Secondary VLAN的映射关系 |
|
|||
退回系统视图 |
quit |
- |
||||
进入上行端口视图 |
interface interface-type interface-number |
- |
|
|||
配置上行端口在指定VLAN中工作在promiscuous模式 |
port private-vlan vlan-id promiscuous |
二者选其一 缺省情况下,端口在指定VLAN中不工作在promiscuous/trunk promiscuous模式 |
|
|||
配置上行端口在指定VLAN中工作在trunk promiscuous模式 |
port private-vlan vlan-id-list trunk promiscuous |
|
||||
退回系统视图 |
quit |
- |
|
|||
进入下行端口视图 |
interface interface-type interface-number |
- |
|
|||
配置下行端口加入Secondary VLAN |
配置端口的链路类型 |
port link-type { access | hybrid | trunk } |
- |
|
||
将当端口加入指定VLAN |
Access端口 |
port access vlan vlan-id |
三者选其一 |
|
||
Trunk端口 |
port trunk permit vlan { vlan-id-list | all } |
|
||||
Hybrid端口 |
port hybrid vlan vlan-id-list { tagged | untagged } |
|
||||
配置下行端口在指定VLAN中工作在trunk secondary模式 |
port private-vlan vlan-id-list trunk secondary |
二者选其一 缺省情况下,端口不工作在trunk secondary/host模式 |
||||
配置下行端口工作在host模式 |
port private-vlan host |
|||||
退回系统视图 |
quit |
- |
|
|||
进入Secondary VLAN视图 |
vlan vlan-id |
- |
|
|||
(可选)配置同一Secondary VLAN内各端口二层互通 |
undo private-vlan isolated |
二者选其一 缺省情况下,同一Secondary VLAN内的端口能够二层互通 |
|
|||
private-vlan community |
|
|||||
退回系统视图 |
quit |
- |
|
|||
(可选)配置Primary VLAN下指定的Secondary VLAN间三层互通 |
进入Primary VLAN interface视图 |
interface vlan-interface interface-number |
- |
|||
配置当前Primary VLAN下指定的Secondary VLAN间三层互通 |
private-vlan secondary vlan-id-list |
缺省情况下,Secondary VLAN之间三层不互通 |
||||
配置Primary VLAN接口的IP地址 |
ip address ip-address { mask-length | mask } [ sub ] |
二者选其一 缺省情况下,没有配置VLAN接口的IP地址 |
||||
ipv6 address { ipv6-address prefix-length | ipv6-address/prefix-length } |
||||||
开启本地代理ARP功能(IPv4环境) |
local-proxy-arp enable |
二者选其一 缺省情况下,本地代理ARP/ND功能处于关闭状态 · 本地代理ARP功能的相关介绍请参见“三层技术-IP业务配置指导”中的“代理ARP”;local-proxy-arp enable命令的相关描述请参见“三层技术-IP业务命令参考”中的“代理ARP” · 本地代理ND功能的相关介绍请参见“三层技术-IP业务配置指导”中的“IPv6基础”;local-proxy-nd enable命令的相关描述请参见“三层技术-IP业务命令参考”中的“IPv6基础” |
||||
开启本地代理ND功能(IPv6环境) |
local-proxy-nd enable |
|||||
在完成上述配置后,在任意视图下执行display命令可以显示配置后Private VLAN的运行情况,通过查看显示信息验证配置的效果。
表3-2 Private VLAN显示和维护
操作 |
命令 |
显示Primary VLAN和其包含的Secondary VLAN的信息 |
display private-vlan [ primary-vlan-id ] |
· Device B上的Primary VLAN 5包含上行端口GigabitEthernet1/0/5,并关联两个Secondary VLAN(VLAN 2和VLAN 3),其中,VLAN 2包含端口GigabitEthernet1/0/2,VLAN 3包含端口GigabitEthernet1/0/3。
· Device C上的Primary VLAN 6包含上行端口GigabitEthernet1/0/5,并关联两个Secondary VLAN(VLAN 3和VLAN 4),其中,VLAN 3包含端口GigabitEthernet1/0/3,VLAN 4包含端口GigabitEthernet1/0/4。
· 从Device A看,下接的Device B只有一个VLAN(VLAN 5),下接的Device C只有一个VLAN(VLAN 6)。
图3-2 组网图
下面只列出Device B和Device C的配置过程。
(1) 配置Device B
# 配置VLAN 5为Primary VLAN。
<DeviceB> system-view
[DeviceB] vlan 5
[DeviceB-vlan5] private-vlan primary
[DeviceB-vlan5] quit
# 创建Secondary VLAN 2、3。
[DeviceB] vlan 2 to 3
# 配置Primary VLAN 5和Secondary VLAN 2、3的映射关系。
[DeviceB] vlan 5
[DeviceB-vlan5] private-vlan secondary 2 to 3
[DeviceB-vlan5] quit
# 配置上行端口GigabitEthernet1/0/5在VLAN 5中工作在promiscuous模式。
[DeviceB] interface gigabitethernet 1/0/5
[DeviceB-GigabitEthernet1/0/5] port private-vlan 5 promiscuous
[DeviceB-GigabitEthernet1/0/5] quit
# 将下行端口GigabitEthernet1/0/2、GigabitEthernet1/0/3分别添加到VLAN 2、VLAN 3,并配置它们工作在host模式。
[DeviceB] interface gigabitethernet 1/0/2
[DeviceB-GigabitEthernet1/0/2] port access vlan 2
[DeviceB-GigabitEthernet1/0/2] port private-vlan host
[DeviceB-GigabitEthernet1/0/2] quit
[DeviceB] interface gigabitethernet 1/0/3
[DeviceB-GigabitEthernet1/0/3] port access vlan 3
[DeviceB-GigabitEthernet1/0/3] port private-vlan host
[DeviceB-GigabitEthernet1/0/3] quit
(2) 配置Device C
# 配置VLAN 6为Primary VLAN。
<DeviceC> system-view
[DeviceC] vlan 6
[DeviceC–vlan6] private-vlan primary
[DeviceC–vlan6] quit
# 创建Secondary VLAN 3、4。
[DeviceC] vlan 3 to 4
# 配置Primary VLAN 6和Secondary VLAN 3、4的映射关系。
[DeviceC] vlan 6
[DeviceC-vlan6] private-vlan secondary 3 to 4
[DeviceC-vlan6] quit
# 配置上行端口GigabitEthernet1/0/5在VLAN 6中工作在promiscuous模式。
[DeviceC] interface gigabitethernet 1/0/5
[DeviceC-GigabitEthernet1/0/5] port private-vlan 6 promiscuous
[DeviceC-GigabitEthernet1/0/5] quit
# 将下行端口GigabitEthernet1/0/3、GigabitEthernet1/0/4分别添加到VLAN 3、VLAN 4,并配置它们工作在host模式。
[DeviceC] interface gigabitethernet 1/0/3
[DeviceC-GigabitEthernet1/0/3] port access vlan 3
[DeviceC-GigabitEthernet1/0/3] port private-vlan host
[DeviceC-GigabitEthernet1/0/3] quit
[DeviceC] interface gigabitethernet 1/0/4
[DeviceC-GigabitEthernet1/0/4] port access vlan 4
[DeviceC-GigabitEthernet1/0/4] port private-vlan host
[DeviceC-GigabitEthernet1/0/4] quit
# 显示Device B上的Private VLAN配置情况(Device C的显示结果类似,这里不再列出)。
[DeviceB] display private-vlan
Primary VLAN ID: 5
Secondary VLAN ID: 2-3
VLAN ID: 5
VLAN type: Static
Private VLAN type: Primary
Route interface: Not configured
Description: VLAN 0005
Name: VLAN 0005
Tagged ports: None
Untagged ports:
GigabitEthernet1/0/2
GigabitEthernet1/0/3
GigabitEthernet1/0/5
VLAN ID: 2
VLAN type: Static
Private VLAN type: Secondary
Route interface: Not configured
Description: VLAN 0002
Name: VLAN 0002
Tagged ports: None
Untagged ports:
GigabitEthernet1/0/2
GigabitEthernet1/0/5
VLAN ID: 3
VLAN type: Static
Private VLAN type: Secondary
Route interface: Not configured
Description: VLAN 0003
Name: VLAN 0003
Tagged Ports: None
Untagged Ports:
GigabitEthernet1/0/3
GigabitEthernet1/0/5
可以看到,工作在promiscuous模式的端口GigabitEthernet1/0/5和工作在host模式的端口GigabitEthernet1/0/2和GigabitEthernet1/0/3均以Untagged方式允许VLAN报文通过。
· Device B上的VLAN 5和VLAN 10为Primary VLAN,其上行端口GigabitEthernet1/0/1需要允许VLAN 5和VLAN 10的报文携带VLAN Tag通过。
· Device B的下行端口GigabitEthernet1/0/2允许Secondary VLAN 2通过,GigabitEthernet1/0/3允许Secondary VLAN 3通过,Secondary VLAN 2、3映射到Primary VLAN 5。
· Device B的下行端口GigabitEthernet1/0/4允许Secondary VLAN 6通过,GigabitEthernet1/0/5允许Secondary VLAN 8通过,Secondary VLAN 6、8映射到Primary VLAN 10。
· 从Device A看,下接的Device B只有VLAN 5和VLAN 10。
图3-3 组网图
(1) 配置Device B
# 配置VLAN 5和VLAN 10为Primary VLAN。
<DeviceB> system-view
[DeviceB] vlan 5
[DeviceB-vlan5] private-vlan primary
[DeviceB-vlan5] quit
[DeviceB] vlan 10
[DeviceB-vlan10] private-vlan primary
[DeviceB-vlan10] quit
# 创建Secondary VLAN 2、3、6、8。
[DeviceB] vlan 2 to 3
[DeviceB] vlan 6
[DeviceB-vlan6] quit
[DeviceB] vlan 8
[DeviceB-vlan8] quit
# 配置Primary VLAN 5和Secondary VLAN 2、3的映射关系。
[DeviceB] vlan 5
[DeviceB-vlan5] private-vlan secondary 2 to 3
[DeviceB-vlan5] quit
# 配置Primary VLAN 10和Secondary VLAN 6、8的映射关系。
[DeviceB] vlan 10
[DeviceB-vlan10] private-vlan secondary 6 8
[DeviceB-vlan10] quit
# 配置上行端口GigabitEthernet1/0/1在VLAN 5和VLAN 10中工作在trunk promiscuous模式。
[DeviceB] interface gigabitethernet 1/0/1
[DeviceB-GigabitEthernet1/0/1] port private-vlan 5 10 trunk promiscuous
[DeviceB-GigabitEthernet1/0/1] quit
# 将下行端口GigabitEthernet1/0/2加入VLAN 2,GigabitEthernet1/0/3加入VLAN 3,并配置它们工作在host模式。
[DeviceB] interface gigabitethernet 1/0/2
[DeviceB-GigabitEthernet1/0/2] port access vlan 2
[DeviceB-GigabitEthernet1/0/2] port private-vlan host
[DeviceB-GigabitEthernet1/0/2] quit
[DeviceB] interface gigabitethernet 1/0/3
[DeviceB-GigabitEthernet1/0/3] port access vlan 3
[DeviceB-GigabitEthernet1/0/3] port private-vlan host
[DeviceB-GigabitEthernet1/0/3] quit
# 将下行端口GigabitEthernet1/0/4加入VLAN 6,GigabitEthernet1/0/5加入VLAN 8,并配置它们工作在host模式。
[DeviceB] interface gigabitethernet 1/0/4
[DeviceB-GigabitEthernet1/0/4] port access vlan 6
[DeviceB-GigabitEthernet1/0/4] port private-vlan host
[DeviceB-GigabitEthernet1/0/4] quit
[DeviceB] interface gigabitethernet 1/0/5
[DeviceB-GigabitEthernet1/0/5] port access vlan 8
[DeviceB-GigabitEthernet1/0/5] port private-vlan host
[DeviceB-GigabitEthernet1/0/5] quit
(2) 配置Device A
# 创建VLAN 5和VLAN 10。
[DeviceA] vlan 5
[DeviceA-vlan5] quit
[DeviceA] vlan 10
[DeviceA-vlan10] quit
# 配置端口GigabitEthernet1/0/1为Hybrid端口,并允许VLAN 5和VLAN 10携带Tag通过。
[DeviceA] interface gigabitethernet 1/0/1
[DeviceA-GigabitEthernet1/0/1] port link-type hybrid
[DeviceA-GigabitEthernet1/0/1] port hybrid vlan 5 10 tagged
[DeviceA-GigabitEthernet1/0/1] quit
# 显示Device B上的Primary VLAN 5配置情况(Primary VLAN 10的显示结果类似,这里不再列出)。
[DeviceB] display private-vlan 5
Primary VLAN ID: 5
Secondary VLAN ID: 2-3
VLAN ID: 5
VLAN type: Static
Private VLAN type: Primary
Route interface: Not configured
Description: VLAN 0005
Name: VLAN 0005
Tagged ports:
GigabitEthernet1/0/1
Untagged ports:
GigabitEthernet1/0/2
GigabitEthernet1/0/3
VLAN ID: 2
VLAN type: Static
Private VLAN type: Secondary
Route interface: Not configured
Description: VLAN 0002
Name: VLAN 0002
Tagged ports:
GigabitEthernet1/0/1
Untagged ports:
GigabitEthernet1/0/2
VLAN ID: 3
VLAN type: Static
Private VLAN type: Secondary
Route interface: Not configured
Description: VLAN 0003
Name: VLAN 0003
Tagged ports:
GigabitEthernet1/0/1
Untagged ports:
GigabitEthernet1/0/3
可以看到,工作在trunk promiscuous模式的端口GigabitEthernet1/0/1以Tagged方式允许VLAN报文通过,工作在host模式的端口GigabitEthernet1/0/2和GigabitEthernet1/0/3以Untagged方式允许VLAN报文通过。
· Device A上的VLAN 10和VLAN 20为Primary VLAN,上行端口GigabitEthernet1/0/5需要允许VLAN 10和VLAN 20的报文携带VLAN Tag通过。
· Device A上的VLAN 11、12、21、22为Secondary VLAN,下行端口GigabitEthernet1/0/2允许Secondary VLAN 11、21的报文携带VLAN Tag通过,下行端口GigabitEthernet1/0/1允许Secondary VLAN 22通过,下行端口GigabitEthernet1/0/3允许Secondary VLAN 12通过。
· Secondary VLAN 11、12映射到Primary VLAN 10;Secondary VLAN 21、22映射到Primary VLAN 20。
图3-4 组网图
(1) 配置Device A
# 配置VLAN 10和VLAN 20为Primary VLAN。
<DeviceA> system-view
[DeviceA] vlan 10
[DeviceA-vlan10] private-vlan primary
[DeviceA-vlan10] quit
[DeviceA] vlan 20
[DeviceA-vlan20] private-vlan primary
[DeviceA-vlan20] quit
# 创建Secondary VLAN 11、12、21、22。
[DeviceA] vlan 11 to 12
[DeviceA] vlan 21 to 22
# 配置Primary VLAN 10和Secondary VLAN 11、12的映射关系。
[DeviceA] vlan 10
[DeviceA-vlan10] private-vlan secondary 11 12
[DeviceA-vlan10] quit
# 配置Primary VLAN 20和Secondary VLAN 21、22的映射关系。
[DeviceA] vlan 20
[DeviceA-vlan20] private-vlan secondary 21 22
[DeviceA-vlan20] quit
# 配置上行端口GigabitEthernet1/0/5在VLAN 10和VLAN 20中工作在trunk promiscuous模式。
[DeviceA] interface gigabitethernet 1/0/5
[DeviceA-GigabitEthernet1/0/5] port private-vlan 10 20 trunk promiscuous
[DeviceA-GigabitEthernet1/0/5] quit
# 将下行端口GigabitEthernet1/0/1加入VLAN 22,并配置其工作在host模式。
[DeviceA] interface gigabitethernet 1/0/1
[DeviceA-GigabitEthernet1/0/1] port access vlan 22
[DeviceA-GigabitEthernet1/0/1] port private-vlan host
[DeviceA-GigabitEthernet1/0/1] quit
# 将下行端口GigabitEthernet1/0/3加入VLAN 12,并配置其工作在host模式。
[DeviceA] interface gigabitethernet 1/0/3
[DeviceA-GigabitEthernet1/0/3] port access vlan 12
[DeviceA-GigabitEthernet1/0/3] port private-vlan host
[DeviceA-GigabitEthernet1/0/3] quit
# 配置下行端口GigabitEthernet1/0/2在VLAN 11和VLAN 21中工作在trunk secondary模式。
[DeviceA] interface gigabitethernet 1/0/2
[DeviceA-GigabitEthernet1/0/2] port private-vlan 11 21 trunk secondary
[DeviceA-GigabitEthernet1/0/2] quit
(2) 配置Device B
# 创建VLAN 11和VLAN 21。
<DeviceB> system-view
[DeviceB] vlan 11
[DeviceB-vlan11] quit
[DeviceB] vlan 21
[DeviceB-vlan21] quit
# 配置端口GigabitEthernet1/0/2为Hybrid端口,并允许VLAN 11和VLAN 21携带Tag通过。
[DeviceB] interface gigabitethernet 1/0/2
[DeviceB-GigabitEthernet1/0/2] port link-type hybrid
[DeviceB-GigabitEthernet1/0/2] port hybrid vlan 11 21 tagged
[DeviceB-GigabitEthernet1/0/2] quit
# 将端口GigabitEthernet1/0/3加入VLAN 11。
[DeviceB] interface gigabitethernet 1/0/3
[DeviceB-GigabitEthernet1/0/3] port access vlan 11
[DeviceB-GigabitEthernet1/0/3] quit
# 将端口GigabitEthernet1/0/4加入VLAN 21。
[DeviceB] interface gigabitethernet 1/0/4
[DeviceB-GigabitEthernet1/0/4] port access vlan 21
[DeviceB-GigabitEthernet1/0/4] quit
(3) 配置Device C
# 创建VLAN 10和VLAN 20。
<DeviceC> system-view
[DeviceC] vlan 10
[DeviceC-vlan10] quit
[DeviceC] vlan 20
[DeviceC-vlan20] quit
# 配置端口GigabitEthernet1/0/5为Hybrid端口,并允许VLAN 10和VLAN 20携带Tag通过。
[DeviceC] interface gigabitethernet 1/0/5
[DeviceC-GigabitEthernet1/0/5] port link-type hybrid
[DeviceC-GigabitEthernet1/0/5] port hybrid vlan 10 20 tagged
[DeviceC-GigabitEthernet1/0/5] quit
# 显示Device A上Primary VLAN 10的配置情况(Primary VLAN 20的显示结果类似,这里不再列出)。
[DeviceA] display private-vlan 10
Primary VLAN ID: 10
Secondary VLAN ID: 11-12
VLAN ID: 10
VLAN type: Static
Private-vlan type: Primary
Route interface: Not configured
Description: VLAN 0010
Name: VLAN 0010
Tagged ports:
GigabitEthernet1/0/2
GigabitEthernet1/0/5
Untagged ports:
GigabitEthernet1/0/3
VLAN ID: 11
VLAN type: Static
Private-vlan type: Secondary
Route interface: Not configured
Description: VLAN 0011
Name: VLAN 0011
Tagged ports:
GigabitEthernet1/0/2
GigabitEthernet1/0/5
Untagged ports: None
VLAN ID: 12
VLAN type: Static
Private-vlan type: Secondary
Route interface: Not configured
Description: VLAN 0012
Name: VLAN 0012
Tagged ports:
GigabitEthernet1/0/5
Untagged ports:
GigabitEthernet1/0/3
可以看到,工作在trunk promiscuous模式的端口GigabitEthernet1/0/5和工作在trunk secondary模式的端口GigabitEthernet1/0/2以Tagged方式允许VLAN报文通过,工作在host模式的端口GigabitEthernet1/0/3以Untagged方式允许VLAN报文通过。
· Device A上的VLAN 10为Primary VLAN,包含上行端口GigabitEthernet1/0/1并关联两个Secondary VLAN(VLAN 2和VLAN 3),VLAN 2包含端口GigabitEthernet1/0/2,VLAN 3包含端口GigabitEthernet1/0/3。VLAN接口10的IP地址为192.168.1.1/24。
· 实现各Secondary VLAN间二层隔离和三层互通。
图3-5 组网图
# 配置VLAN 10为Primary VLAN。
<DeviceA> system-view
[DeviceA] vlan 10
[DeviceA-vlan10] private-vlan primary
[DeviceA-vlan10] quit
# 创建Secondary VLAN 2、3。
[DeviceA] vlan 2 to 3
# 配置Primary VLAN 10和Secondary VLAN 2、3的映射关系。
[DeviceA] vlan 10
[DeviceA-vlan10] private-vlan secondary 2 3
[DeviceA-vlan10] quit
# 配置上行端口GigabitEthernet1/0/1在VLAN 10中工作在promiscuous模式。
[DeviceA] interface gigabitethernet 1/0/1
[DeviceA-GigabitEthernet1/0/1] port private-vlan 10 promiscuous
[DeviceA-GigabitEthernet1/0/1] quit
# 将下行端口GigabitEthernet1/0/2加入VLAN 2,并配置其工作在host模式。
[DeviceA] interface gigabitethernet 1/0/2
[DeviceA-GigabitEthernet1/0/2] port access vlan 2
[DeviceA-GigabitEthernet1/0/2] port private-vlan host
[DeviceA-GigabitEthernet1/0/2] quit
# 将下行端口GigabitEthernet1/0/3加入VLAN 3,并配置其工作在host模式。
[DeviceA] interface gigabitethernet 1/0/3
[DeviceA-GigabitEthernet1/0/3] port access vlan 3
[DeviceA-GigabitEthernet1/0/3] port private-vlan host
[DeviceA-GigabitEthernet1/0/3] quit
# 配置Primary VLAN 10下Secondary VLAN 2、3之间三层互通。
[DeviceA] interface vlan-interface 10
[DeviceA-Vlan-interface10] private-vlan secondary 2 3
# 配置VLAN接口10的IP地址为192.168.1.1/24。
[DeviceA-Vlan-interface10] ip address 192.168.1.1 255.255.255.0
# 开启本地代理ARP功能。
[DeviceA-Vlan-interface10] local-proxy-arp enable
[DeviceA-Vlan-interface10] quit
# 查看Private VLAN 10的相关信息,验证以上配置是否生效。
[DeviceA] display private-vlan 10
Primary VLAN ID: 10
Secondary VLAN ID: 2-3
VLAN ID: 10
VLAN type: Static
Private VLAN type: Primary
Route interface: Configured
IPv4 address: 192.168.1.1
IPv4 subnet mask: 255.255.255.0
Description: VLAN 0010
Name: VLAN 0010
Tagged ports: None
Untagged ports:
GigabitEthernet1/0/1
GigabitEthernet1/0/2
GigabitEthernet1/0/3
VLAN ID: 2
VLAN type: Static
Private VLAN type: Secondary
Route interface: Configured
IPv4 address: 192.168.1.1
IPv4 subnet mask: 255.255.255.0
Description: VLAN 0002
Name: VLAN 0002
Tagged ports: None
Untagged ports:
GigabitEthernet1/0/1
GigabitEthernet1/0/2
VLAN ID: 3
VLAN type: Static
Private VLAN type: Secondary
Route interface: Configured
IPv4 address: 192.168.1.1
IPv4 subnet mask: 255.255.255.0
Description: VLAN 0003
Name: VLAN 0003
Tagged ports: None
Untagged ports:
GigabitEthernet1/0/1
GigabitEthernet1/0/3
可以看到,Secondary VLAN 2和Secondary VLAN 3的Route interface字段都显示为Configured,说明Secondary VLAN 2与Secondary VLAN 3间已配置三层互通。
Voice VLAN是为用户的语音数据流专门划分的VLAN。通过划分Voice VLAN并将连接语音设备的端口加入Voice VLAN,系统自动为语音报文修改QoS(Quality of Service,服务质量)参数,来提高语音数据报文优先级、保证通话质量。
当IP电话接入设备时,需要设备完成以下两个任务:
(1) 识别IP电话,获取IP电话的MAC地址,从而进行安全认证及提高语音报文的优先级。
(2) 将Voice VLAN信息通告给IP电话,IP电话能够根据收到的Voice VLAN信息完成自动配置,使IP电话发出的语音报文在Voice VLAN内传输。
常见的语音设备有IP电话、IAD(Integrated Access Device,综合接入设备)等。本文中以IP电话为例进行说明。
设备可以根据端口接收的报文的源MAC地址来判断该数据流是否为语音数据流。源MAC地址符合系统配置的语音设备OUI(Organizationally Unique Identifier,全球统一标识符)地址的报文被认为是语音数据流。
用户可以预先配置OUI地址,也可以使用缺省的OUI地址作为判断标准。设备缺省的OUI地址如表4-1所示。
序号 |
OUI地址 |
生产厂商 |
1 |
0001-e300-0000 |
Siemens phone |
2 |
0003-6b00-0000 |
Cisco phone |
3 |
0004-0d00-0000 |
Avaya phone |
4 |
000f-e200-0000 |
H3C Aolynk phone |
5 |
0060-b900-0000 |
Philips/NEC phone |
6 |
00d0-1e00-0000 |
Pingtel phone |
7 |
00e0-7500-0000 |
Polycom phone |
8 |
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(Link Layer Discovery Protocol,链路层发现协议)功能,可以配置LLDP自动识别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的详细信息,请参见“二层技术-以太网交换配置指导”中的“LLDP”。
设备可以通过三种方式将Voice VLAN信息通告给IP电话,这三种方式的优先顺序如下图所示。
· 通过命令行指定LLDP或CDP(Cisco Discovery Protocol,思科发现协议)发布的Voice VLAN ID。
· 当IP电话配合接入认证功能使用时,将认证服务器下发的授权VLAN信息通告给IP电话。
· 直接将端口配置的Voice VLAN信息通告给IP电话。
如下图所示,主机连接到IP电话,IP电话连接到接入设备。在串联接入的环境下,需要将主机和IP电话划分到不同的VLAN,且需要IP电话能发出携带VLAN Tag的报文,从而区分业务数据流和语音数据流。同时,需要配置端口允许Voice VLAN和PVID通过。
图4-2 主机与IP电话串联接入组网图
如下图所示,IP电话单独接入设备。单独接入适用于IP电话发出Untagged语音报文的情况,此时需要配置PVID为Voice VLAN,并配置端口允许PVID通过。
图4-3 IP电话单独接入组网图
根据端口加入Voice VLAN的不同方式,可以将Voice VLAN的工作模式分为自动模式和手动模式。
自动模式适用于主机和IP电话串联接入(端口同时传输语音数据和普通业务数据)的组网方式,如图4-2所示。
自动模式下,系统利用IP电话上电时发出的协议报文,识别报文的源MAC地址,匹配OUI地址。匹配成功后,系统将自动把语音报文的入端口加入Voice VLAN,并下发ACL规则、配置报文的优先级。用户可以在设备上配置Voice VLAN的老化时间,当在老化定时器停止前系统没有从入端口收到任何语音报文时,系统将把该端口从Voice VLAN中删除。端口的添加/删除到Voice VLAN的过程由系统自动实现。当Voice VLAN正常工作时,如果遇到IP电话重新启动,为保证已经建立的语音连接能够正常工作,系统会在IP电话重新启动完成后,将配置为自动模式的端口重新加入Voice VLAN,而不需要再次通过语音流触发。
手动模式适用于IP电话单独接入(端口仅传输语音报文)的组网方式,如图4-3所示。该组网方式可以使该端口专用于传输语音数据,最大限度避免业务数据对语音数据传输的影响。
手动模式下,需要手工将连接IP电话的端口加入Voice VLAN中。再通过识别报文的源MAC地址,匹配OUI地址。匹配成功后,系统将下发ACL规则、配置报文的优先级。端口的添加/删除到Voice VLAN的过程由网络管理员手动实现。
由于IP电话类型较多,因此需要用户保证端口的链路类型与IP电话匹配,不同Voice VLAN工作模式下的详细配合关系请见表4-2和表4-3:
· IP电话发送Tagged语音数据
表4-2 不同类型端口支持Tagged语音数据配置要求
Voice VLAN工作模式 |
端口类型 |
是否支持Tagged语音数据 |
配置要求 |
自动模式 |
Access |
不支持 |
- |
Trunk |
支持 |
PVID不能为Voice VLAN |
|
Hybrid |
|||
手工模式 |
Access |
不支持 |
- |
Trunk |
支持 |
PVID不能为Voice VLAN,需要配置端口允许Voice VLAN的报文通过 |
|
Hybrid |
支持 |
PVID不能为Voice VLAN,需要配置端口允许Voice VLAN的报文携带Tag通过 |
· IP电话发送Untagged语音数据
当IP电话发送Untagged语音数据,则端口的Voice VLAN工作模式只能为手工模式,不能为自动模式。
表4-3 不同类型端口支持Untagged语音数据配置要求
Voice VLAN工作模式 |
端口类型 |
是否支持Untagged语音数据 |
配置要求 |
自动模式 |
Access |
不支持 |
- |
Trunk |
|||
Hybrid |
|||
手工模式 |
Access |
支持 |
端口加入Voice VLAN |
Trunk |
支持 |
PVID必须为Voice VLAN,且接入端口允许PVID通过 |
|
Hybrid |
支持 |
PVID必须为Voice VLAN,且允许PVID的报文不带VLAN Tag通过 |
· 如果用户的IP电话发出的是Tagged语音流,且接入端口上开启了802.1X认证和Guest VLAN/Auth-Fail VLAN/Critical VLAN,为保证各种功能的正常使用,请为Voice VLAN、PVID和802.1X的Guest VLAN/Auth-Fail VLAN/Critical VLAN分配不同的VLAN ID。
· 如果用户的IP电话发出的是Untagged语音流,为实现Voice VLAN功能,只能将PVID配置为Voice VLAN,此时将不能实现802.1X认证功能。
开启了Voice VLAN功能的端口会对接收到的报文进行过滤,根据过滤机制的不同,可以将Voice VLAN的工作模式分为普通模式和安全模式:
· 普通模式下,端口加入Voice VLAN后,设备对于接收的语音报文不再一一进行识别,凡是带有Voice VLAN Tag的报文,设备将不再检查其源MAC地址是否为语音设备的OUI地址,均接收并在Voice VLAN中转发。对于PVID就是Voice VLAN的手工模式端口,会导致任意的Untagged报文都可以在Voice VLAN中传输。这样的处理方式很容易使Voice VLAN收到恶意用户的流量攻击。恶意用户可以构造大量带有Voice VLAN Tag或Untagged的报文,占用Voice VLAN的带宽,影响正常的语音通信。
· 安全模式下,设备将对每一个要进入Voice VLAN传输的报文进行源MAC地址匹配检查,对于不能匹配OUI地址的报文,则将其丢弃。
对于比较安全的网络,用户可以配置Voice VLAN的普通模式,以减少检查报文的工作对系统资源的占用。
· 只有匹配了OUI地址的报文才能被修改优先级。比如在普通模式下,报文在Voice VLAN中转发,但如果该报文未匹配OUI地址,则该报文不会被修改优先级。
· 建议用户尽量不要在Voice VLAN中同时传输语音和业务数据。如确有此需要,请确认Voice VLAN的安全模式已关闭,否则业务数据会被丢弃。
表4-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安全/普通模式的影响 |
聚合接口以及聚合组的成员端口均不支持Voice VLAN功能。有关聚合接口和成员端口的介绍,请参见“二层技术-以太网交换配置指导”中的“以太网链路聚合”。
Voice VLAN的老化定时器需在对应的MAC地址表项老化之后才能启动,因此Voice VLAN实际的老化时间为设备上配置的Voice VLAN老化时间与动态MAC地址表项老化时间之和。有关动态MAC地址老化时间的详细介绍,请参见“MAC地址表”。
不建议Voice VLAN功能与MAC地址禁止学习功能或MAC地址数学习上限功能同时使用,否则部分流量可能被丢弃:
· 同时配置Voice VLAN功能与MAC地址禁止学习功能时,仅精确匹配了OUI地址的报文能够正常转发,未精确匹配的报文将被丢弃。
· 同时配置Voice VLAN功能与MAC地址数学习上限功能时,当接口学习到的MAC地址到达所配置的上限后,仅匹配MAC地址表中已学习到的表项和OUI地址的报文能够正常转发,其余报文将被丢弃。
表4-5 Voice VLAN配置任务简介
配置任务 |
说明 |
详细配置 |
配置语音报文的QoS优先级 |
必选 |
|
配置自动模式下的Voice VLAN |
二者必选其一 |
|
配置手动模式下的Voice VLAN |
||
配置通过LLDP自动发现IP电话功能 |
可选 |
|
配置通过LLDP通过Voice VLAN信息 |
二者可选其一 |
|
配置通过CDP通告Voice VLAN信息 |
Voice VLAN在实现中,通过提高语音报文的QoS优先级(CoS和DSCP值)来保证语音通信的质量。语音报文会自带QoS优先级,通过配置,用户可以选择在语音报文通过设备时修改或者不修改报文的QoS优先级。
配置语音报文的QoS优先级时,需要注意:
· 在Voice VLAN已开启的情况下,不允许配置/修改语音报文的QoS优先级。必须关闭端口上的Voice VLAN功能后,才能配置/修改语音报文的QoS优先级。
· 在同一端口多次执行本配置,最后一次执行的配置生效。
表4-6 配置语音报文的QoS优先级
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入二层以太网接口视图 |
interface interface-type interface-number |
- |
配置端口信任Voice VLAN内语音报文的优先级 |
voice-vlan qos trust |
二者选其一 缺省情况下,端口将Voice VLAN内语音报文的CoS值修改为6,DSCP值修改为46 |
配置端口将Voice VLAN内语音报文的CoS和DSCP值修改为指定值 |
voice-vlan qos cos-value dscp-value |
配置自动模式下的Voice VLAN时,需要注意:
· 自动模式下的Voice VLAN只支持Hybrid端口对Tagged的语音流进行处理,而协议VLAN特性要求Hybrid入端口的报文格式为Untagged的,因此,不能将某个VLAN同时配置为Voice VLAN和协议VLAN。
· 配置MSTP多实例情况下,如果端口在要加入的Voice VLAN对应的MSTP实例中是阻塞状态,则端口会丢弃收到的报文,造成MAC地址不能上送,不能完成动态触发功能。自动模式Voice VLAN的使用场景为接入侧,不建议和多实例MSTP同时使用。
· 配置PVST情况下,如果端口要加入的Voice VLAN不为端口允许通过的VLAN,则端口处于阻塞状态,会丢弃收到的报文,造成MAC地址不能上送,不能完成动态触发功能。自动模式Voice VLAN的使用场景为接入侧,不建议和PVST同时使用。
· 当端口配置了动态触发端口加入静态MAC VLAN,又配置本功能时,两个功能可能会相互影响,导致其中某个功能不可用。当端口同时配置了本功能和动态触发端口加入静态MAC VLAN,再取消其中任何一个功能的配置,会导致另一个功能不可用。因此不建议同一端口同时配置本功能和动态触发端口加入静态MAC VLAN。
表4-7 配置自动模式下的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地址,请参见“表4-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 vlan-id enable |
缺省情况下,端口的Voice VLAN功能处于关闭状态 开启端口的Voice VLAN功能之前,须确保对应的VLAN已存在 |
配置手动模式下的Voice VLAN时,需要注意:
· 同一设备同一时刻可以给不同的端口配置不同的Voice VLAN,但一个端口只能配置一个Voice VLAN,而且这些VLAN必须是已经存在的静态VLAN。
· 当端口开启了Voice VLAN并工作在手工模式时,必须手工将端口加入Voice VLAN,才能保证Voice VLAN功能生效。
表4-8 配置手动模式下的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地址,请参见“表4-1设备缺省的OUI地址” |
进入二层以太网接口视图 |
interface interface-type interface-number |
- |
配置端口的Voice VLAN工作模式为手动模式 |
undo voice-vlan mode auto |
缺省情况下,端口的Voice VLAN工作模式为自动模式 |
将手动模式端口加入Voice VLAN |
· Access端口: · Trunk端口: · Hybrid端口: |
三者选其一 将Access端口加入Voice VLAN后,Voice VLAN会自动成为PVID |
(可选)配置PVID为Voice VLAN |
· Trunk端口: · Hybrid端口: |
二者选其一 当输入的语音流是Untagged语音流时,需要进行该项配置;当输入的语音流是Tagged语音流时,不能将PVID配置为Voice VLAN |
开启端口的Voice VLAN功能 |
voice-vlan vlan-id enable |
缺省情况下,端口的Voice VLAN功能处于关闭状态 开启端口的Voice VLAN功能之前,须先创建对应的VLAN |
配置通过LLDP自动发现IP电话功能时,需要注意:
· 在配置本功能前,需要在全局和接入端口均开启LLDP功能。
· 通过LLDP自动发现IP电话功能只能与Voice VLAN自动模式配合使用,不能与手动模式配合使用。
· 通过LLDP自动发现IP电话功能与LLDP兼容CDP功能不能同时配置。
表4-9 配置通过LLDP自动发现IP电话功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
开启通过LLDP自动发现IP电话功能 |
voice-vlan track lldp |
缺省情况下,通过LLDP自动发现IP电话功能处于关闭状态 |
对于支持LLDP的IP电话,可以通过LLDP-MED中的Network Policy TLV将Voice VLAN信息通告给IP电话。
需要注意的是,在配置本功能前,需要在全局和接入端口开启LLDP功能。
表4-10 配置通过LLDP通告Voice VLAN信息
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入二层以太网接口视图 |
interface interface-type interface-number |
- |
配置端口上发布的Voice VLAN ID |
lldp tlv-enable med-tlv network-policy vlan-id |
缺省情况下,未配置端口上发布的Voice VLAN ID |
· LLDP-MED Network Policy TLV中的信息可以通过display lldp local-information命令查看。
· 有关lldp tlv-enable命令和display lldp local-information命令的详细介绍,请参见“二层技术-以太网交换命令参考”中的“LLDP”。
如果IP电话只支持CDP,不支持LLDP,当设备与这类IP电话直连时,IP电话将会向设备发送CDP报文以请求在设备上所配Voice VLAN的VLAN ID;如果在指定时间内没有收到设备发送的Voice VLAN的VLAN ID,IP电话将会把语音数据流以Untagged方式发送,从而导致语音数据流与其他类型的数据流混在一起,无法进行区分。
通过在设备上配置LLDP兼容CDP功能,可以利用LLDP来接收、识别从IP电话发送的CDP报文,并向IP电话发送CDP报文,该CDP报文携带设备配置的Voice VLAN信息,使IP电话完成Voice VLAN的自动配置。之后IP电话的语音数据流将被限制在配置的Voice VLAN内,与其他数据流区分开来。
需要注意的是,在配置本功能前,需要在全局和接入端口开启LLDP功能。
表4-11 配置通过CDP通告Voice VLAN信息
设备发送给IP电话的CDP报文中不包含优先级信息。
在完成上述配置后,在任意视图下执行display命令可以显示配置后Voice VLAN的运行情况,通过查看显示信息验证配置的效果。
表4-12 Voice VLAN显示和维护
操作 |
命令 |
显示Voice VLAN的状态 |
display voice-vlan state |
显示系统当前支持的OUI地址 |
display voice-vlan mac-address |
· IP phone A的MAC地址为0011-1100-0001,下行连接PC A(MAC地址为0022-1100-0002),上行连接到Device A的GigabitEthernet1/0/1端口。
· IP phone B的MAC地址为0011-2200-0001,下行连接PC B(MAC地址为0022-2200-0002),上行连接到Device A的GigabitEthernet1/0/2端口。
· Device A使用Voice VLAN 2传输IP phone A产生的语音报文;使用Voice VLAN 3传输IP phone B产生的语音报文。
· Device A的端口GigabitEthernet1/0/1和GigabitEthernet1/0/2工作在自动模式,如果它们在30分钟内没有收到语音流,就将相应的Voice VLAN老化。
图4-4 配置自动模式下Voice VLAN组网图
# 创建VLAN 2和VLAN 3。
<DeviceA> system-view
[DeviceA] vlan 2 to 3
# 配置Voice VLAN的老化时间为30分钟。
[DeviceA] voice-vlan aging 30
# 由于端口GigabitEthernet1/0/1可能会同时收到语音和数据两种流量,为了保证语音报文的质量以及带宽的高效利用,配置Voice VLAN工作在安全模式,即Voice VLAN只用于传输语音报文。(可选,缺省情况下,Voice VLAN工作在安全模式)
[DeviceA] voice-vlan security enable
# 配置允许OUI地址为0011-1100-0000和0011-2200-0000的报文通过Voice VLAN,即当报文源MAC地址前缀为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
# 配置端口GigabitEthernet1/0/1为Hybrid类型端口。
[DeviceA] interface gigabitethernet 1/0/1
[DeviceA-GigabitEthernet1/0/1] port link-type hybrid
# 将端口GigabitEthernet1/0/1上Voice VLAN的工作模式配置为自动模式。(可选,缺省情况下,端口的Voice VLAN工作在自动模式。)
[DeviceA-GigabitEthernet1/0/1] voice-vlan mode auto
# 开启端口Voice VLAN功能。
[DeviceA-GigabitEthernet1/0/1] voice-vlan 2 enable
[DeviceA-GigabitEthernet1/0/1] quit
# 在端口GigabitEthernet1/0/2上进行相应的配置。
[DeviceA] interface gigabitethernet 1/0/2
[DeviceA-GigabitEthernet1/0/2] port link-type hybrid
[DeviceA-GigabitEthernet1/0/2] voice-vlan mode auto
[DeviceA-GigabitEthernet1/0/2] voice-vlan 3 enable
[DeviceA-GigabitEthernet1/0/2] quit
# 显示当前系统支持的OUI地址、OUI地址掩码和描述信息。
[DeviceA] display voice-vlan mac-address
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
000f-e200-0000 ffff-ff00-0000 H3C Aolynk 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
Current voice VLANs: 2
Voice VLAN security mode: Security
Voice VLAN aging time: 30 minutes
Voice VLAN enabled ports and their modes:
Port VLAN Mode CoS DSCP
GE1/0/1 2 Auto 6 46
GE1/0/2 3 Auto 6 46
· IP Phone A接入Device A的Hybrid类型端口GigabitEthernet1/0/1。IP Phone A发出的报文为Untagged报文。
· Device A上VLAN 2为Voice VLAN。
· 手工将Device A的端口GigabitEthernet1/0/1工作加入Voice VLAN,其PVID为VLAN 2,添加OUI地址0011-2200-0000,使该端口专用于传输语音报文。
图4-5 配置手动模式下Voice VLAN组网图
# 配置Voice VLAN为安全模式,使得Voice VLAN端口只允许合法的语音报文通过。(可选,缺省情况下,Voice VLAN工作在安全模式)
<DeviceA> system-view
[DeviceA] voice-vlan security enable
# 配置允许OUI地址为0011-2200-0000的报文通过Voice VLAN,即报文源MAC地址前缀为0011-2200-0000时,Device A会把它当成语音报文来处理。
[DeviceA] voice-vlan mac-address 0011-2200-0001 mask ffff-ff00-0000 description test
# 创建VLAN 2。
[DeviceA] vlan 2
[DeviceA-vlan2] quit
# 配置端口GigabitEthernet1/0/1工作在手动模式。
[DeviceA] interface gigabitethernet 1/0/1
[DeviceA-GigabitEthernet1/0/1] undo voice-vlan mode auto
# 配置端口GigabitEthernet1/0/1为Hybrid类型。
[DeviceA-GigabitEthernet1/0/1] port link-type hybrid
# 配置Voice VLAN是端口GigabitEthernet1/0/1的缺省VLAN,且在该端口允许通过的Untagged VLAN列表中。
[DeviceA-GigabitEthernet1/0/1] port hybrid pvid vlan 2
[DeviceA-GigabitEthernet1/0/1] port hybrid vlan 2 untagged
# 开启端口GigabitEthernet1/0/1的Voice VLAN功能。
[DeviceA-GigabitEthernet1/0/1] voice-vlan 2 enable
[DeviceA-GigabitEthernet1/0/1] quit
# 显示当前系统支持的OUI地址、OUI地址掩码和描述信息。
[DeviceA] display voice-vlan mac-address
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
000f-e200-0000 ffff-ff00-0000 H3C Aolynk phone
0011-2200-0000 ffff-ff00-0000 test
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
Current voice VLANs: 1
Voice VLAN security mode: Security
Voice VLAN aging time: 1440 minutes
Voice VLAN enabled ports and their modes:
Port VLAN Mode CoS DSCP
GE1/0/1 2 Manual 6 46
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!