简介
VLAN(Virtual Local Area Network)即虚拟局域网,是将一个物理的LAN在逻辑上划分成多个广播域的通信技术。每个VLAN是一个广播域,VLAN内的主机间通信就和在一个LAN内一样,而VLAN间则不能直接互通,这样,广播报文就被限制在一个VLAN内。
如图1所示,两台交换机放置在不同的地点,比如写字楼的不同楼层,每台交换机分别连接两台属于不同企业用户的计算机,此时就可以将两台计算机划分到不同的VLAN,实现对不同企业用户的隔离。
图1-1 VLAN示意图
要使交换机能够分辨不同VLAN的报文,需要在报文中添加标识VLAN信息的字段。IEEE 802.1Q协议规定,在以太网数据帧的目的MAC地址和源MAC地址字段之后、协议类型字段之前加入4个字节的VLAN标签(又称VLAN Tag,简称Tag),用以标识VLAN信息。VLAN数据帧格式如图2所示。
图1-2 VLAN数据帧格式
其中,数据帧中的VID(VLAN ID)字段标识了该数据帧所属的VLAN,数据帧只能在其所属VLAN内进行传输。
对于交换机来说,其内部处理的数据帧都带有VLAN标签,而现网中交换机连接的设备有些只会收发Untagged帧,要与这些设备交互,就需要接口能够识别Untagged帧并在收发时给帧添加、剥除VLAN标签。同时,现网中属于同一个VLAN的用户可能会被连接在不同的交换机上,且跨越交换机的VLAN可能不止一个,如果需要用户间的互通,就需要交换机间的接口能够同时识别和发送多个VLAN的数据帧。
因此,根据接口连接对象以及对收发数据帧处理的不同,华为定义了4种接口的链路类型:Access、Trunk、Hybrid和QinQ,以适应不同的连接和组网:
-
Access接口:一般用于和不能识别Tag的用户终端(如用户主机、服务器等)相连,或者不需要区分不同VLAN成员时使用。Access接口大部分情况只能收发Untagged帧,且只能为Untagged帧添加唯一的VLAN Tag。
-
Trunk接口:一般用于连接交换机、路由器、AP以及可同时收发Tagged帧和Untagged帧的语音终端。它可以允许多个VLAN的帧带Tag通过,但只允许一个VLAN的帧从该类接口上发出时不带Tag(即剥除Tag)。
-
Hybrid接口:既可以用于连接不能识别Tag的用户终端(如用户主机、服务器等)和网络设备(如Hub、傻瓜交换机),也可以用于连接交换机、路由器以及可同时收发Tagged帧和Untagged帧的语音终端、AP。它可以允许多个VLAN的帧带Tag通过,且允许从该类接口发出的帧根据需要配置某些VLAN的帧带Tag(即不剥除Tag)、某些VLAN的帧不带Tag(即剥除Tag)。
使用QinQ(802.1Q-in-802.1Q)协议,一般用于私网与公网之间的连接,也被称为Dot1q-tunnel接口。它可以给帧加上双层Tag,即在原来Tag的基础上,给帧加上一个新的Tag,从而可以支持多达4094×4094个VLAN。有关QinQ具体描述请参见《S12700 V200R013C00 配置指南-以太网交换》中的“QinQ配置”。
VLAN的划分方法有多种,根据不同的场景,可以采用基于接口、MAC地址、子网、网络层协议、匹配策略方式来划分VLAN,各种VLAN划分方式的介绍及适用场景如表1所示。
表1-1 VLAN划分方式差异表
划分方式 | 简介 | 适用场景 |
---|---|---|
基于接口 | 根据交换机的接口来划分VLAN | 适用于任何大小但位置比较固定的网络 |
基于MAC地址 | 根据数据帧的源MAC地址来划分VLAN | 适用于位置经常移动但网卡不经常更换的小型网络 |
基于子网 | 据数据帧中的源IP地址和子网掩码来划分VLAN | 适用于对安全需求不高、对移动性和简易管理需求较高的场景中 |
基于网络层协议 | 根据数据帧所属的协议(族)类型及封装格式来划分VLAN | 适用于需要同时运行多协议的网络 |
基于匹配策略 | 根据配置的策略划分VLAN,能实现多种组合的划分方式,包括接口、MAC地址、IP地址等 | 适用于需求比较复杂的环境 |
其中,基于接口划分VLAN是最简单且最常用的划分VLAN的方式,而不同类型的接口上的配置方式也不相同,详细配置过程请参见VLAN的划分。
VLAN的作用:
安全性:每一个分组的敏感数据需要与网络其他部分隔离开,减少保密信息遭到破坏的可能性。如下图所示,VLAN 10上的教职工主机完全与学生和访客数据隔离。
节约成本:无需昂贵的网络升级,并且带宽及上行链路利用率更加有效。
性能提高:将二层网络划分成多个逻辑工作组(广播域)减少网络间不必要的数据流并提升性能。
缩小广播域:减少一个广播域上的设备数量。如上图所示:网络上有六台主机但有三个广播域:教职工,学生,访客。
提升IT管理效率:网络需求相似的用户共享同一VLAN,从而网络管理更为简单。当添加一个新的交换机,在指定端口VLAN时,所有策略和步骤已配置好。
简化项目和应用管理:VLAN将用户和网络设备汇集起来,以支持不同的业务或地理位置需求。
每一个VLAN对应于一个IP网络,因此,部署VLAN的时候必须结合考虑网络地址层级的实现情况。
VLAN广播属性
当VLAN的一个端口收到一个广播报文或收到单播报文,但在MAC地址表中没有对应目的MAC地址时,该端口将向VLAN内的其他端口广播该报文。
如果配置了静态MAC地址表项,或者为了安全需要限制恶意广播报文,可以禁止在VLAN内广播收到的报文。
禁止VLAN的MAC地址学习
在配置了静态MAC地址表的情况下,可以禁止VLAN上的MAC地址学习功能,以提高安全性。启动VLAN上的MAC地址学习功能时,为了保持转发效率,可执行以下操作:
- 对MAC地址表中MAC地址的数量进行限制。
- 设置当MAC地址的数量超过限制值时采取的动作,如discard(丢弃)或forward(转发),或alarm(向网管发送告警)。
VLAN间的通信
划分VLAN后,属于不同VLAN的计算机之间不能直接进行二层通信。
如果要实现在VLAN间通信,需要建立IP路由。有两种实施方案。
说明:大多数设备只支持下述两种方式中的一种,请根据设备的实际情况选择实施方案。
-
部署路由器
多数情况下,LAN通过交换机的以太网接口(交换式以太网接口)与路由器的以太网接口(路由式以太接口)相连。
-
在交换机上配置VLANIF接口
如果交换机支持IP路由特性,就可以不通过路由器实现VLAN间通信。
说明:配置VLAN后,就可以通过
interface vlanif
命令创建VLANIF接口。VLANIF接口是一种逻辑接口,具有三层属性。
VLAN Trunk
在交换机上,一般的端口只能属于一个VLAN,只能识别和发送本VLAN的报文。
当VLAN跨越交换机时,就需要交换机间的端口能够同时识别和发送多个VLAN的报文。同样的问题也存在于支持VLAN的交换机和路由器之间。这种能够识别和发送多个VLAN的报文的链路称为Trunk。
Trunk有两个作用:
-
中继作用
把VLAN报文透明传输到互联的交换机或路由器,从而扩展VLAN。
-
干线作用
一条Trunk链路上可以传输多个VLAN的报文。
实现Trunk的协议常用的是IEEE 802.1Q,它通过VLAN TAG字段识别VLAN。
Trunk(干道)是在两台路由器之间的一条点到点链路,每台路由器的相应端口称为干道端口。一条干道可以传输多个VLAN的数据流,并允许用户将VLAN的范围从一台路由器扩展到另一台路由器。
VLAN聚合
为了在交换机上实现VLAN间通信,需要为每个VLANIF接口配置一个IP地址,以实现VLAN间路由。如果VLAN很多,将占用许多IP地址资源。VLAN聚合(VLAN aggregation)可以解决多个VLAN占用多个IP地址的问题。
VLAN聚合是将多个VLAN集中在一起,形成一个super-VLAN。组成super-VLAN的VLAN被称作sub-VLAN。
可以创建一个VLANIF接口,使其对应一个super-VLAN,只在该接口上配置IP地址,不必为每个sub-VLAN分配IP地址,所有sub-VLAN共用IP网段,从而解决IP地址使用效率的问题。
VLAN Mapping
路由器提供VLAN Mapping功能。
- 当在端口配置了两个以上的VLAN ID映射后,端口在向外发送本地VLAN的帧时,将帧中的VLAN Tag替换成外部VLAN的VLAN Tag。
- 当接收外部VLAN的帧时,将帧中的VLAN Tag替换成本地VLAN的VLAN Tag,这样不同VLAN间就实现了互相通信。
此外,要想借助VLAN Mapping实现两个VLAN内设备互相通信,则这两个VLAN内设备的IP地址还必须处于同一网段。
VLAN Damping
VLAN Damping功能可以适当延迟向VLANIF接口上报接口Down状态的时间,从而抑制不必要的路由振荡。
对于VLANIF接口,当VLAN中的最后一个端口状态变为Down后,VLANIF接口状态才会变为Down。VLANIF接口的状态变化会导致整网的路由重新收敛,VLAN Damping功能可以抑制由VLANIF接口导致的路由振荡。
当使能VLANIF的Damping功能时,VLAN中最后一个处于Up状态的端口变为Down后,会抑制一定时间(抑制时间可配置)再上报给VLANIF接口;如果在抑制时间内VLAN中有端口Up,则VLANIF保持Up状态不变。
VLAN的端口隔离功能
NE80E/40E提供VLAN内的端口隔离功能,可以隔离VLAN内的一个或一组端口。
对于单个端口的VLAN内隔离,处于隔离状态的端口间将不能在VLAN内直接进行二层互通。被隔离的端口间要互通必须配置VLAN内的ARP代理。通过这种方式,实现了VLAN内的流量可以通过三层监控。
对于VLAN内端口组的隔离,通过把端口加入不同的隔离组,可以对组间的报文进行隔离。隔离组内的端口间不存在隔离关系,隔离组内的端口与没有加入任何隔离组的端口也不存在隔离关系。VLAN隔离端口组的功能,可以实现VLAN的灵活规划,主要应用于RRPP环境中,一个VLAN内包含多个RRPP环的情况。将不同的RRPP环的端口加入不同的隔离组,可以防止形成广播风暴。
创建VLAN(HUAWEI)
-
执行命令
system-view
,进入系统视图。 -
执行命令
vlan vlan-id
,创建VLAN并进入VLAN视图。
说明:
- 整机支持4096个VLAN,其中VLAN 0和VLAN 4095为保留VLAN,VLAN 1为缺省VLAN。因此创建VLAN时,可创建2~4094范围内的任意VLAN。
- 多次使用 vlan 命令创建VLAN,按多次创建的累加结果生效。如果该VLAN已经存在,不会再重新创建,保留原来的VLAN和相关配置。
- 使用
vlan batch
命令可以批量创建多个VLAN。如果该VLAN已经存在,不会再重新创建,保留原来的VLAN及其相关配置。多次使用vlan batch
命令创建VLAN,配置按多次创建的累加结果生效。
下面这个示例显示了如何在设备上创建VLAN 100,并查看VLAN是否创建成功。
<HUAWEI> system-view
[HUAWEI] vlan 100
[HUAWEI-vlan100] quit
[HUAWEI] display vlan summary
Static VLAN:
Total 2 static VLAN.
1 100
Dynamic VLAN:
Total 0 dynamic VLAN.
Reserved VLAN:
Total 0 reserved VLAN.
VLAN的划分
交换机支持基于接口、MAC地址、子网、网络层协议、匹配策略方式来划分VLAN,这里我们仅介绍最常用的VLAN划分方式:基于接口划分VLAN。
在设备上已经创建了VLAN的前提下,不同类型的接口加入VLAN的方法不同,如下所示:
Access接口
- 执行命令
interfaceinterface-type interface-number
,进入需要加入VLAN的以太网接口视图。 - 执行命令
port link-type access
,配置接口类型为access。 - 执行命令
port default vlan vlan-id
,配置接口的缺省VLAN并将接口加入到指定VLAN。
下面这个示例显示了如何将接口GE1/0/1配置为access接口,并将其加入VLAN 100,然后查看配置结果。
[HUAWEI] interface gigabitethernet 1/0/1
[HUAWEI-GigabitEthernet1/0/1] port link-type access
[HUAWEI-GigabitEthernet1/0/1] port default vlan 100
[HUAWEI-GigabitEthernet1/0/1] quit
[HUAWEI] display port vlan gigabitethernet 1/0/1
Port Link Type PVID Trunk VLAN List
-------------------------------------------------------------------------------
GigabitEthernet1/0/1 access 100 -
Trunk接口
-
执行命令
interface interface-type interface-number
,进入需要加入VLAN的以太网接口视图。 -
执行命令
port link-type trunk
,配置接口类型为trunk。 -
执行命令
port trunk allow-pass vlan { { vlan-id1 [ to vlan-id2 ] } &<1-10> | all }
,将接口加入到指定的VLAN中。 -
(可选)执行命令
port trunk pvid vlan vlan-id
,配置Trunk接口的缺省VLAN。
说明:当接口下通过的VLAN为接口的缺省VLAN时,该VLAN对应的报文将以Untagged方式进行转发。也就是说接口是以Untagged方式加入该VLAN的。
下面这个示例显示了如何将接口GE1/0/2配置为trunk接口,并将其加入VLAN 100,然后查看配置结果。
[HUAWEI] interface gigabitethernet 1/0/2
[HUAWEI-GigabitEthernet1/0/2] port link-type trunk
[HUAWEI-GigabitEthernet1/0/2] port trunk allow-pass vlan 100
[HUAWEI-GigabitEthernet1/0/2] quit
[HUAWEI] display port vlan gigabitethernet 1/0/2
Port Link Type PVID Trunk VLAN List
-------------------------------------------------------------------------------
GigabitEthernet1/0/2 trunk 1 1 100
Hybrid接口
-
执行命令
interface interface-type interface-number
,进入需要加入VLAN的以太网接口视图。 -
执行命令
port link-type hybrid
,配置接口类型为hybrid。 -
根据实际需要选择任一方式将接口加入VLAN:
- 执行命令
port hybrid untagged vlan { { vlan-id1 [ to vlan-id2 ] } &<1-10> | all }
,将Hybrid接口以Untagged方式加入VLAN,接口在发送帧时将帧中的VLAN Tag去掉。 - 执行命令
port hybrid tagged vlan { { vlan-id1 [ to vlan-id2 ] } &<1-10> | all }
,将Hybrid接口以Tagged方式加入VLAN,接口在发送帧时不将帧中的VLAN Tag去掉。
- 执行命令
-
执行命令
port hybrid pvid vlan vlan-id
,配置Hybrid接口的缺省VLAN。
下面这个示例显示了如何将接口GE1/0/3配置为hybrid接口,并将其加入VLAN 100,然后查看配置结果。
[HUAWEI] interface gigabitethernet 1/0/3
[HUAWEI-GigabitEthernet1/0/3] port link-type hybrid
[HUAWEI-GigabitEthernet1/0/3] port hybrid tagged vlan 100
[HUAWEI-GigabitEthernet1/0/3] quit
[HUAWEI] display port vlan gigabitethernet 1/0/3
Port Link Type PVID Trunk VLAN List
-------------------------------------------------------------------------------
GigabitEthernet1/0/3 hybrid 1 100
参考