03-VLAN配置
本章节下载: 03-VLAN配置 (301.24 KB)
目 录
VLAN(Virtual Local Area Network,虚拟局域网)技术把一个物理LAN划分成多个逻辑的LAN——VLAN,处于同一VLAN的主机能直接互通,而处于不同VLAN的主机则不能直接互通,从而增强了局域网的安全性。划分VLAN后,广播报文被限制在同一个VLAN内,即每个VLAN是一个广播域,有效地限制了广播域的范围。通过VLAN可以将不同的主机划分到不同的工作组,同一工作组的主机可以位于不同的物理位置,网络构建和维护更方便灵活。
要使网络设备能够分辨不同VLAN的报文,需要在报文中添加标识VLAN的字段。IEEE 802.1Q协议规定,在以太网报文的目的MAC地址和源MAC地址字段之后、协议类型字段之前加入4个字节的VLAN Tag,用以标识VLAN的相关信息。
图1-1 VLAN Tag的组成字段
如图1-1所示,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。
· 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。
· 以太网支持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根据划分方式不同可以分为不同类型,下面列出了几种最常见的VLAN类型:
· 基于端口的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。
端口缺省VLAN简称为PVID(Port VLAN ID)。当端口收到Untagged报文时,会认为该报文所属的VLAN为PVID。
Access端口的PVID就是它所在的VLAN。
Trunk端口和Hybrid端口可以允许多个VLAN通过,能够配置端口PVID。
端口对报文的接收和发送的处理有几种不同情况,具体情况请参看表1-1。
端口类型 |
对接收报文的处理 |
对发送报文的处理 |
|
当接收到的报文不带Tag时 |
当接收到的报文带有Tag时 |
||
Access端口 |
为报文添加端口PVID的Tag |
· 当报文的VLAN ID与端口的PVID相同时,接收该报文 · 当报文的VLAN ID与端口的PVID不同时,丢弃该报文 |
去掉Tag,发送该报文 |
Trunk端口 |
· 当端口的PVID在端口允许通过的VLAN ID列表里时,接收该报文,给报文添加PVID的Tag · 当端口的PVID不在端口允许通过的VLAN ID列表里时,丢弃该报文 |
· 当报文的VLAN ID在端口允许通过的VLAN ID列表里时,接收该报文 · 当报文的VLAN ID不在端口允许通过的VLAN ID列表里时,丢弃该报文 |
· 当报文的VLAN ID与端口的PVID相同,且是该端口允许通过的VLAN ID时:去掉Tag,发送该报文 · 当报文的VLAN ID与端口的PVID不同,且是该端口允许通过的VLAN ID时:保持原有Tag,发送该报文 |
Hybrid端口 |
当报文的VLAN ID是端口允许通过的VLAN ID时,发送该报文,并可以配置端口在发送该VLAN的报文时是否携带Tag |
不同VLAN间的主机不能直接通信,通过在设备上创建并配置VLAN接口,可以实现VLAN间的三层互通。
VLAN接口是一种三层的虚拟接口,它不作为物理实体存在于设备上。每个VLAN对应一个VLAN接口,在为VLAN接口配置了IP地址后,该IP地址即可作为本VLAN内网络设备的网关地址,此时该VLAN接口能对需要跨网段的报文进行三层转发。
与VLAN相关的协议规范有:
IEEE 802.1Q:IEEE Standard for Local and Metropolitan Area Networks-Virtual Bridged Local Area Networks
VLAN 1为系统缺省VLAN,用户不能手工创建和删除。
动态学习到的VLAN,以及被其他应用锁定不让删除的VLAN,都不能使用undo vlan命令直接删除。只有将相关配置删除之后,才能删除相应的VLAN。
(1) 进入系统视图。
system-view
(2) 创建VLAN。请至少选择其中一项进行配置。
¡ 创建一个VLAN,并进入VLAN视图。
vlan vlan-id
¡ 批量创建VLAN,然后进入VLAN视图。
vlan { vlan-id1 to vlan-id2 | all }
vlan vlan-id
缺省情况下,系统只有一个缺省VLAN(VLAN 1)。
(3) (可选)指定VLAN的名称。
name text
缺省情况下,VLAN的名称为“VLAN vlan-id”,其中vlan-id为该VLAN的四位数编号,如果该VLAN的编号不足四位,则会在编号前增加0,补齐四位。例如,VLAN 100的名称为“VLAN 0100”。
(4) (可选)配置VLAN的描述信息。
description text
缺省情况下,VLAN的描述信息为“VLAN vlan-id”,其中vlan-id为该VLAN的四位数编号,如果该VLAN的编号不足四位,则会在编号前增加0,补齐四位。例如,VLAN 100的描述信息为“VLAN 0100”。
· 当执行undo vlan命令删除的VLAN是某个端口的PVID时,对Access端口,端口的PVID会恢复到VLAN 1;对Trunk或Hybrid端口,端口的PVID配置不会改变,即它们可以使用已经不存在的VLAN作为端口PVID。
· 建议本端设备端口的PVID和相连的对端设备端口的PVID保持一致。
· 建议保证端口的PVID为端口允许通过的VLAN。如果端口不允许某VLAN通过,但是端口的PVID为该VLAN,则端口会丢弃收到的该VLAN的报文或者不带VLAN Tag的报文。
配置基于Access端口的VLAN有两种方法:一种是在VLAN视图下进行配置,另一种是在接口视图下进行配置。
(1) 进入系统视图。
system-view
(2) 进入VLAN视图。
vlan vlan-id
(3) 向当前VLAN中添加一个或一组Access端口。
port interface-list
缺省情况下,系统将所有端口都加入到VLAN 1。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
¡ 进入二层以太网接口视图。
interface interface-type interface-number
¡ 进入二层聚合接口视图。
interface bridge-aggregation interface-number
¡ 进入S通道接口视图。
interface s-channel interface-number.channel-id
¡ 进入聚合S通道接口视图。
interface schannel-aggregation interface-number:channel-id
¡ 进入S通道聚合接口视图。
interface schannel-bundle interface-number
¡ 进入二层RPR逻辑接口视图。
interface rpr-bridge interface-number
(3) 配置端口的链路类型为Access类型。
port link-type access
缺省情况下,端口的链路类型为Access。
(4) 将Access端口加入到指定VLAN。
port access vlan vlan-id
缺省情况下,所有Access端口都属于VLAN 1。
在将Access端口加入到指定VLAN之前,该VLAN必须已经存在。
Trunk端口可以加入多个VLAN。基于Trunk端口的VLAN只能在接口视图下配置。
Trunk端口不能直接切换为Hybrid端口,只能先将Trunk端口配置为Access端口,再配置为Hybrid端口。
配置端口PVID后,必须使用port trunk permit vlan命令配置允许PVID的报文通过,接口才能转发PVID的报文。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
¡ 进入二层以太网接口视图。
interface interface-type interface-number
¡ 进入二层聚合接口视图。
interface bridge-aggregation interface-number
¡ 进入S通道接口视图。
interface s-channel interface-number.channel-id
¡ 进入聚合S通道接口视图。
interface schannel-aggregation interface-number:channel-id
¡ 进入S通道聚合接口视图。
interface schannel-bundle interface-number
¡ 进入二层RPR逻辑接口视图。
interface rpr-bridge interface-number
(3) 配置端口的链路类型为Trunk类型。
port link-type trunk
缺省情况下,端口的链路类型为Access类型。
(4) 允许指定的VLAN通过当前Trunk端口。
port trunk permit vlan { vlan-id-list | all }
缺省情况下,Trunk端口只允许VLAN 1的报文通过。
(5) (可选)配置Trunk端口的PVID。
port trunk pvid vlan vlan-id
缺省情况下,Trunk端口的PVID为VLAN 1。
Hybrid端口可以加入多个VLAN。基于Hybrid端口的VLAN只能在接口视图下配置。将Hybrid端口加入VLAN时,指定VLAN必须已经存在。
Hybrid端口不能直接切换为Trunk端口,只能先将Hybrid端口配置为Access端口,再配置为Trunk端口。
配置端口PVID后,必须使用port hybrid vlan命令配置允许PVID的报文通过,出接口才能转发PVID的报文。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
¡ 进入二层以太网接口视图。
interface interface-type interface-number
¡ 进入二层聚合接口视图。
interface bridge-aggregation interface-number
¡ 进入S通道接口视图。
interface s-channel interface-number.channel-id
¡ 进入聚合S通道接口视图。
interface schannel-aggregation interface-number:channel-id
¡ 进入S通道聚合接口视图。
interface schannel-bundle interface-number
¡ 进入二层RPR逻辑接口视图。
interface rpr-bridge interface-number
(3) 配置端口的链路类型为Hybrid类型。
port link-type hybrid
缺省情况下,端口的链路类型为Access类型。
(4) 允许指定的VLAN通过当前Hybrid端口。
port hybrid vlan vlan-id-list { tagged | untagged }
缺省情况下,Hybrid端口只允许该端口在链路类型为Access时的所属VLAN的报文以Untagged方式通过。
(5) (可选)配置Hybrid端口的PVID。
port hybrid pvid vlan vlan-id
缺省情况下,Hybrid端口的PVID为该端口在链路类型为Access时的所属VLAN。
VLAN组是一组VLAN的集合。VLAN组内可以添加多个VLAN列表,一个VLAN列表表示一组VLAN ID连续的VLAN。
(1) 进入系统视图。
system-view
(2) 创建一个VLAN组,并进入VLAN组视图。
vlan-group group-name
(3) 在VLAN组内添加VLAN成员。
vlan-list vlan-id-list
缺省情况下,当前VLAN组中不存在VLAN列表。
可以多次在当前VLAN组内添加VLAN成员。
VLAN接口配置任务如下:
(1) 创建VLAN接口
(2) (可选)恢复VLAN接口的缺省配置
在创建VLAN接口之前,对应的VLAN必须已经存在,否则将不能创建指定的VLAN接口。
(1) 进入系统视图。
system-view
(2) 创建VLAN接口,并进入VLAN接口视图。
interface vlan-interface interface-number
(3) 配置VLAN接口的IP地址。
ip address ip-address { mask | mask-length } [ sub ]
缺省情况下,未配置VLAN接口的IP地址。
(4) (可选)配置VLAN接口的描述信息。
description text
缺省情况下,VLAN接口的描述信息为该VLAN接口的接口名,如“Vlan-interface1 Interface”。
(5) (可选)配置VLAN接口的MTU值。
mtu size
(6) (可选)配置VLAN接口的期望带宽。
bandwidth bandwidth-value
缺省情况下,接口的期望带宽=接口的波特率÷1000(kbps)。
(7) 取消手工关闭VLAN接口。
undo shutdown
缺省情况下,未手工关闭VLAN接口。
接口下的某些配置恢复到缺省情况后,会对设备上当前运行的业务产生影响。建议您在执行该命令前,完全了解其对网络产生的影响。
您可以在执行default命令后通过display this命令确认执行效果。对于未能成功恢复缺省的配置,建议您查阅相关功能的命令手册,手工执行恢复该配置缺省情况的命令。如果操作仍然不能成功,您可以通过设备的提示信息定位原因。
(1) 进入系统视图。
(2) system-view
(3) 进入VLAN接口视图。
interface vlan-interface interface-number
(4) 恢复VLAN接口的缺省配置。
default
在完成上述配置后,在任意视图下执行display命令可以显示配置后VLAN的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除VLAN接口统计信息。
表1-2 VLAN显示和维护
操作 |
命令 |
显示VLAN接口相关信息 |
display interface [ vlan-interface [ interface-number ] ][ brief [ description | down ] ] |
显示设备上存在的Hybrid或Trunk端口 |
display port { hybrid | trunk } |
显示VLAN相关信息 |
display vlan [ vlan-id1 [ to vlan-id2 ] | all | dynamic | reserved | static ] |
显示设备上所有已创建VLAN的概要信息 |
display vlan brief |
显示创建的VLAN组及其VLAN成员列表 |
display vlan-group [ group-name ] |
清除VLAN接口的统计信息 |
reset counters interface [ vlan-interface [ interface-number ] ] |
· Host A和Host C属于部门A,但是通过不同的设备接入公司网络;Host B和Host D属于部门B,也通过不同的设备接入公司网络。
· 为了通信的安全性,也为了避免广播报文泛滥,公司网络中使用VLAN技术来隔离部门间的二层流量。其中部门A使用VLAN 100,部门B使用VLAN 200。
图1-2 基于端口的VLAN组网图
(1) 配置Device A
# 创建VLAN 100,并将GigabitEthernet1/2/5/1加入VLAN 100。
<DeviceA> system-view
[DeviceA] vlan 100
[DeviceA-vlan100] port gigabitethernet 1/2/5/1
[DeviceA-vlan100] quit
# 创建VLAN 200,并将GigabitEthernet1/2/5/2加入VLAN 200。
[DeviceA] vlan 200
[DeviceA-vlan200] port gigabitethernet 1/2/5/2
[DeviceA-vlan200] quit
# 为了使Device A上VLAN 100和VLAN 200的报文能发送给Device B,将GigabitEthernet1/2/5/3的链路类型配置为Trunk,并允许VLAN 100和VLAN 200的报文通过。
[DeviceA] interface gigabitethernet 1/2/5/3
[DeviceA-GigabitEthernet1/2/5/3] port link-type trunk
[DeviceA-GigabitEthernet1/2/5/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/2/5/3] display vlan 100
VLAN ID: 100
VLAN type: Static
Route interface: Not configured
Description: VLAN 0100
Name: VLAN 0100
Tagged ports:
GigabitEthernet1/2/5/3
Untagged ports:
GigabitEthernet1/2/5/1
[DeviceA-GigabitEthernet1/2/5/3] display vlan 200
VLAN ID: 200
VLAN type: Static
Route interface: Not configured
Description: VLAN 0200
Name: VLAN 0200
Tagged ports:
GigabitEthernet1/2/5/3
Untagged ports:
GigabitEthernet1/2/5/2
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!