08-VLAN配置
本章节下载: 08-VLAN配置 (440.68 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。
· 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、基于MAC地址的VLAN,则缺省情况下将按照MAC 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、管理VLAN、动态学习到的VLAN以及配置有QoS策略的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接口已经存在,则直接进入该VLAN接口视图 |
配置VLAN接口的IP地址 |
ip address ip-address { mask | mask-length } |
可选 缺省情况下,没有配置VLAN接口的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是最简单、最有效的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。
· 建议本端设备端口的缺省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-4 基于端口的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上的配置完全一样,不再赘述。
通过查看显示信息验证配置是否成功。
# 查看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表项,如果报文中的源MAC与MAC VLAN表项中的MAC地址完全相同,则匹配成功,给报文添加表项中指定的VLAN ID并转发该报文;如果没有找到匹配MAC VLAN表项,则继续按照其他原则进行匹配,如果匹配成功,则转发报文,如果匹配均失败,则给报文添加端口的缺省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选择(为Untagged报文添加值为PVID的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-5所示:
· 在端口加入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地址认证”。
· 基于MAC的VLAN功能只能在Hybrid端口配置。
· 基于MAC的VLAN功能主要用于在用户的接入设备的下行端口上进行配置,因此不和聚合功能同时使用。
表1-8 手工配置静态MAC VLAN
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
配置MAC地址与VLAN关联 |
mac-vlan mac-address mac-address [ mask mac-mask ] vlan vlan-id [ priority priority ] |
必选 下行端口为48端口的设备不支持参数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的功能 |
表1-9 动态触发端口加入静态MAC VLAN
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置MAC地址与VLAN关联 |
mac-vlan mac-address mac-address [ mask mac-mask ] vlan vlan-id [ priority priority ] |
必选 下行端口为48端口的设备不支持参数priority的配置 |
进入以太网接口视图 |
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地址认证功能同时使用。MAC地址认证的相关内容请参见“安全配置指导”中的“MAC地址认证” |
配置PVID禁止功能 |
port pvid disable |
可选 缺省情况下,对于没有匹配到MAC VLAN表项的未知源MAC会在PVID内进行转发通过 |
表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地址认证” |
· 如图1-6所示,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-6 基于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的配置主要用于在用户的接入设备的下行端口上进行配置,因此不能与聚合功能同时使用。
在完成上述配置后,在任意视图下执行display命令可以显示配置后VLAN的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除接口统计信息。
表1-11 VLAN显示和维护
操作 |
命令 |
显示VLAN相关信息 |
display vlan [ vlan-id1 [ to vlan-id2 ] | all | dynamic | reserved | static ] [ | { begin | exclude | include } regular-expression ] |
显示VLAN接口相关信息 |
display interface [ vlan-interface ] [ brief [ down ] ] [ | { begin | exclude | include } regular-expression ] display interface vlan-interface vlan-interface-id [ brief ] [ | { 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 ] |
清除接口的统计信息 |
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用户之间报文的互通,可以通过配置上行设备(如下图中的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不可见。
图2-1 Isolate-user-VLAN示意图
图2-2 创建用户隔离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 } |
必选 |
退回系统视图 |
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没有任何映射关系 |
· 在完成上述配置后,建议用户确保上行端口的缺省VLAN为Isolate-user-VLAN,下行端口的缺省VLAN为Secondary VLAN;并将原有的端口以Tagged方式加入Isolate-user-VLAN和Secondary VLAN的配置手动更改为以Untagged方式加入这些VLAN。
· 在配置上行/下行端口时,用户可以采用下述方式来完成配置:向Isolate-user-VLAN/Secondary VLAN中添加端口,并确保至少有一个端口的缺省VLAN就是该Isolate-user-VLAN/Secondary VLAN。也就是说,配置上行端口的类型为Hybrid,允许来自Isolate-user-VLAN和所有Secondary VLAN的报文以Untagged方式通过,其缺省VLAN为Isolate-user-VLAN;配置下行端口的类型为Hybrid,允许来自Isolate-user-VLAN和本端口所在Secondary VLAN的报文以Untagged方式通过,其缺省VLAN为Secondary VLAN。
· 配置Isolate-user-VLAN后,系统会自动将Secondary VLAN的动静态单播MAC地址表同步到Isolate-user-VLAN。
在完成上述配置后,在任意视图下执行display命令可以显示配置后用户隔离VLAN的相关信息,通过查看显示信息验证配置的效果。
表2-1 用户隔离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-3 配置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
# 配置上行端口Ethernet 1/0/5。
[DeviceB] interface ethernet 1/0/5
[DeviceB-Ethernet1/0/5] port link-type hybrid
[DeviceB-Ethernet1/0/5] port hybrid vlan 2 3 5 untagged
[DeviceB-Ethernet1/0/5] port hybrid pvid vlan 5
[DeviceB-Ethernet1/0/5] quit
# 配置下行端口Ethernet 1/0/1、Ethernet 1/0/2。
[DeviceB] interface ethernet 1/0/1
[DeviceB-Ethernet1/0/1] port link-type hybrid
[DeviceB-Ethernet1/0/1] port hybrid vlan 3 5 untagged
[DeviceB-Ethernet1/0/1] port hybrid pvid vlan 3
[DeviceB-Ethernet1/0/1] quit
[DeviceB] interface ethernet 1/0/2
[DeviceB-Ethernet1/0/2] port link-type hybrid
[DeviceB-Ethernet1/0/2] port hybrid vlan 2 5 untagged
[DeviceB-Ethernet1/0/2] port hybrid pvid vlan 2
[DeviceB-Ethernet1/0/2] quit
# 配置Isolate-user-VLAN和Secondary VLAN间的映射关系。
[DeviceB] isolate-user-vlan 5 secondary 2 to 3
(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
# 配置上行端口Ethernet 1/0/5。
[DeviceC] interface ethernet 1/0/5
[DeviceC-Ethernet1/0/5] port link-type hybrid
[DeviceC-Ethernet1/0/5] port hybrid vlan 3 4 6 untagged
[DeviceC-Ethernet1/0/5] port hybrid pvid vlan 6
[DeviceC-Ethernet1/0/5] quit
# 配置下行端口Ethernet 1/0/3、Ethernet 1/0/4。
[DeviceC] interface ethernet 1/0/3
[DeviceC-Ethernet1/0/3] port link-type hybrid
[DeviceC-Ethernet1/0/3] port hybrid vlan 3 6 untagged
[DeviceC-Ethernet1/0/3] port hybrid pvid vlan 3
[DeviceC-Ethernet1/0/3] quit
[DeviceC] interface ethernet 1/0/4
[DeviceC-Ethernet1/0/4] port link-type hybrid
[DeviceC-Ethernet1/0/4] port hybrid vlan 4 6 untagged
[DeviceC-Ethernet1/0/4] port hybrid pvid vlan 4
[DeviceC-Ethernet1/0/4] quit
# 配置Isolate-user-VLAN和Secondary VLAN间的映射关系。
[DeviceC] isolate-user-vlan 6 secondary 3 to 4
# 显示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
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!