一、什么是VLAN?
1.传统以太网的问题
2.虚拟局域网(VLAN,Virtyal LAN)
二、VLAN的基本概念
1.如何实现VLAN
- Switch1与Switch2同属一个企业,该企业统一规划了网络中的VLAN,其中VLAN10用于a部门,VLAN20用于b部门,A、B部门的员工在Switch1和Switch2上都有接入
- PC1发出的数据经过Switch1和Switchw之间的链路到达了Switch2,如果不加处理,后者无法判断该数据所属的VLAN,也不知道应该将这个数据输出到本地的哪个VLAN中
2.实例
先如上图配置好PC的配置,子网掩码为255.255.255.0
每个PC都能正常ping通
下面开始配置VLAN
LSW1
vlan batch 10 20 //创建vlan10,20
int g0/0/1 //进入0/0/1接口
port link-type access //设置接口类型为access
port default vlan 10 //0/0/1接口设置为vlan10
int g0/0/2 //进入0/0/2接口
port link-type access //设置接口类型为access
port default vlan 20 //0/0/2接口设置为vlan10
//命令汇总
vlan batch 10 20
int g0/0/1
port link-type access
port default vlan 10
int g0/0/2
port link-type access
port default vlan 20
配置完成之后,pc1不能ping通pc2,属于不同vlan
LSW2
跟LSW1命令一样
vlan batch 10 20 //创建vlan10,20
int g0/0/1 //进入0/0/1接口
port link-type access //设置接口类型为access
port default vlan 10 //0/0/1接口设置为vlan10
int g0/0/2 //进入0/0/2接口
port link-type access //设置接口类型为access
port default vlan 20 //0/0/2接口设置为vlan10
配置完成之后,pc3不能ping通pc3,属于不同vlan
再综合配置实现属于vlan10的通信,属于vlan10的通信
LSW1
int g0/0/3 //进入0/0/接口
port link-type trunk //设置接口类型为trunk
port trunk allow-pass vlan all //允许所有vlan通过
代码汇总
int g0/0/3
port link-type trunk
port trunk allow-pass vlan all
LSW2
int g0/0/3 //进入0/0/接口
port link-type trunk //设置接口类型为trunk
port trunk allow-pass vlan all //允许所有vlan通过
现在配置完,相同VLAN可以正常访问
3.VLAN标签(VLAN tag)
- 交换机如何识别接收到的数据帧属于哪个VLAN?
trunk口才携带标签,两台交换机之间要用trunk接口连接
4.VLAN数据帧
5.VLAN的实现
-
Switch1核Switch2之间的链路需承载多个VLAN数据。需要一种基于VLAN数据“标记”手段,以便对不同VLAN得数据帧进行区分
-
IEEE 802.1Q标准(也被称为Dot1Q)定义了该“标记”方法。该标准对传统的以太网数据帧进行修改,在帧头中插入802.1Q Tag,而在该Tag中,便可以写入VLAN信息。
6.VLAN的划分方式
7.以太网二层接口类型
7.1Access接口
- 交换机上常用来连接PC、服务器等终端设备的接口,Access接口所连接的这些设备的网卡往往只收发无标记帧。Access接口只能加入一个VLAN
7.2Trunk接口
- Trunk接口允许。多个VLAN的数据帧,通过这些数据帧通过802.1Q Tag实现区分 。 Trunk接口常用于交换机之间的互联,也用于连接路由器,防火墙等设备的子接口。
7.3Hybrid接口
- Hybrid接口与trunk接口类似,也允许多个VLAN的数据帧通过这些数据帧通过802.1Q Tag实现区分,用户可以灵活指定hybrid接口在发送某个(或某些)VLAN的数据帧是否携带Tag。
7.4小结
接口 | Access接口 | Trunk接口 | Hybrid接口 |
---|---|---|---|
接收数据帧 | Untagged数据帧,打上PVID,接收。Tagged数据帧,与PVID比较,相同则接收,不同则丢弃。 | Untagged数据帧,打上PVID,且VID在允许列表中,则接收;VID不在允许列表,则丢弃。Tagged数据帧,查看VID是否在允许列表中,在允许列表中,则接收;VID不在允许列表,则丢弃。 | Untagged数据帧,打上PVID,且VID在允许列表中,则接收;VID不在允许列表中则丢弃。Tagged数据帧,查看VID是否在允许列表中,在允许列表中,则接收;VID不在允许列表,则丢弃。 |
发送数据帧 | VID与PVID比较,相同则剥离标签发送; 不同则丢弃。 | VID在允许列表中,且VID与PVID一致,则剥离标签发送。VID在允许列表,但VID与PVID不一致,则直接带标签发送。不在允许列表中,则直接丢弃。 | VID不在允许列表中,直接丢弃。·VID在Untagged列表中,剥离标签发送。。VID在Tagged列表中,带标签直接发送。 |
三、VLAN的应用
1.VLAN的规划
1.1VLAN分配原则
- 按业务规划:可分为语音、视频和数据。
- 按部门规划:可分为工程部、市场部、财经部等。
- 按应用规划:可分为服务器、办公、教室等。
1.2.VLAN分配技巧
- VLAN ID的分配在有效范围内,可以随意分配和选取,但是为了提高VLAN ID的连续性,可以采用VLAN ID和
子网关联的方式进行分配。
1.3.VLAN规划示例
- 假设某园区有三栋楼,分别为行政楼、教学楼、办公楼;每栋楼各有1台接入交换机,核心交换机在行政楼;
行政楼内有办公室、财务部和教室;办公楼内有办公室和财务部;教学楼内有办公室和教室。 - VLAN规划如下:
2.应用场景 - 基于接口的VLAN划分
2.1应用场景
- 某商务楼内有多家公司,为了降低成本,多家公司共用网络资源,各公司分别连接到一台二层交换机的不同接口,并通过统一的出口访问Internet。
2.2VLAN划分
- 为了保证各公司业务的独立和安全,可将每个公司所连接的接口划分到不同的VLAN,实现公司间业务数据的完全隔离。可以认为每个公司拥有独立的“虚拟路由器”,每个VLAN就是一个“虚拟工作组”。
3.应用场景 - 基于MAC的VLAN划分
3.1应用场景
- 某个公司的网络中,网络管理者将同一部门的员工划分到同一VLAN。为了提高部门内的信息安全,要求只有本部门员工的主机才可以访问特定网络资源。
3.2VLAN划分
- 为了保证非本部门员工不能访问网络资源,可在SW1上配置基于MAC地址划分VLAN。这样,新的主机接入网络,就无法访问公司的网络资源。
四、VLAN的配置示例
1.VLAN的基础配置命令
1.1.创建VLAN
[Huawei] vlan vlan-id
通过此命令创建VLAN并进入VLAN视图,如果VLAN已存在,直接进入该VLAN的视图。
- vlan-id是整数形式,取值范围是1~4094。
[Huawei] vlan batch { vlan-id1 [ to vlan-id2 ] }
通过此命令批量创建VLAN。其中:
- batch:指定批量创建的VLAN ID。
- vlan-id1:表示第一个VLAN的编号。
- vlan-id2:表示最后一个VLAN的编号。
1.1.1例如
vlan 10 //创建vlan 10
vlan batch 10 20 //创建vlan 10 20
vlan batch 10 to 20 //创建vlan 10到20
1.2.关联MAC地址与VLAN
[Huawei-vlan10] mac-vlan mac-address mac-address [ mac-address-mask | mac-address-mask-length ]
通过此命令配置MAC地址与VLAN关联。
- mac-address :指定与VLAN关联的MAC地址。格式为H-H-H。其中H为4位的十六进制数,可以输入1~4位,如00e0、fc01。当输入不足4位时,表示前面的几位为0,如:输入e0,等同于00e0。MAC地址不可设置为0000-0000-0000、FFFF-FFFF-FFFF和组播地址。
- mac-address-mask :指定MAC地址掩码。格式为H-H-H,其中H为1至4位的十六进制数。
- mac-address-mask-length:指定MAC地址掩码长度。整数形式,取值范围是1~48。
1.3.使能MAC地址与VLAN
[Huawei-GigabitEthernet0/0/1] mac-vlan enable
通过此命令使能接口的MAC VLAN功能。
2.Access接口的基础配置命令
2.1.配置接口类型
[Huawei-GigabitEthernet0/0/1] port link-type access
在接口视图下,配置接口的链路类型为Access。
2.2.配置Access接口的缺省VLAN
[Huawei-GigabitEthernet0/0/1] port default vlan vlan-id
在接口视图下,配置接口的缺省VLAN并同时加入这个VLAN。
- vlan-id :配置缺省VLAN的编号。整数形式,取值范围是1~4094。
2.3例如
port link-type access
port default vlan 10 //配置为vlan10
3.Trunk接口的基础配置命令
3.1.配置接口类型
[Huawei-GigabitEthernet0/0/1] port link-type trunk
在接口视图下,配置接口的链路类型为Trunk。
3.2.配置Trunk接口加入指定VLAN
[Huawei-GigabitEthernet0/0/1] port trunk allow-pass vlan { { vlan-id1 [ to vlan-id2 ] } | all }
在接口视图下,配置Trunk类型接口加入的VLAN。
3.3.(可选)配置Trunk接口的缺省VLAN
[Huawei-GigabitEthernet0/0/1] port trunk pvid vlan vlan-id
在接口视图下,配置Trunk类型接口的缺省VLAN。
3.4例如
port link-type trunk
port trunk allow-pass vlan 10 //放行vlan10的数据
port trunk allow-pass vlan 10 20 //放行vlan10,20的数据
port trunk allow-pass vlan 10 to 30 //放行vlan10到30的数据
port trunk allow-pass vlan all //放行所有vlan的数据
4.Hybrid接口的基础配置命令
4.1.配置接口类型
[Huawei-GigabitEthernet0/0/1] port link-type hybrid
在接口视图下,配置接口的链路类型为Hybrid。
4.2.配置Hybrid接口加入指定VLAN
[Huawei-GigabitEthernet0/0/1] port hybrid untagged vlan { { vlan-id1 [ to vlan-id2 ] } | all }
在接口视图下,配置Hybrid类型接口加入的VLAN,这些VLAN的帧以Untagged方式通过接口。
[Huawei-GigabitEthernet0/0/1] port hybrid tagged vlan {{ vlan-id1 [ to vlan-id2 ] } | all }
在接口视图下,配置Hybrid类型接口加入的VLAN,这些VLAN的帧以Tagged方式通过接口。
4.3.(可选)配置Hybrid接口的缺省VLAN
[Huawei-GigabitEthernet0/0/1] port hybrid pvid vlan vlan-id
在接口视图下,配置Hybrid类型接口的缺省VLAN。
5.Hybrid接口的基础配置案例
5.1按如下图连接
5.2LSW1
# 在 lsw2交换机上执行如下命令
vlan batch 10 20 30
int g0/0/1
port link-type hybrid
# 设置该网络端口的标签
port hybrid pvid vlan 10
# 只有10 30 这2个标签的数据包才允许通过该网络端口
port hybrid untagged vlan 10 30
int g0/0/2
port link-type hybrid
port hybrid pvid 20
port hybrid untagged vlan 20 30
int g0/0/3
port link-type hybrid
port hybrid pvid 30
port hybrid untagged vlan 10 20 30
在PC1上ping pc3能ping通畅,但是ping不通pc2
五、VLAN间通信
- 实际网络部署中一般会将不同IP地址段划分到不同的VLAN。
- 同VLAN且同网段的PC之间可直接进行通信,无需借助三层转发设备,该通信方式被称为二层通信。
- VLAN之间需要通过三层通信实现互访,三层通信需借助三层设备。
1.使用路由器物理接口
- 路由器三层接口作为网关,转发本网段前往其它网段的流量。
- 路由器三层接口无法处理携带VLAN Tag的数据帧,因此交换机上联路由器的接口需配置为Access。
- 路由器的一个物理接口作为一个VLAN的网关因此存在一个VLAN就需要占用一个路由器物理接口。
- 路由器作为三层转发设备其接口数量较少,方案的可扩展性太差。
1.1实例操作
使用上面的图
LSW1
vlan batch 10 20
int g0/0/1
port link-type access
port default vlan 10
int g0/0/2
port link-type access
port default vlan 20
int g0/0/3
port link-type access
port default vlan 10
int g0/0/4
port link-type access
port default vlan 20
AR1
int g0/0/1
ip address 192.168.10.254 24
int g0/0/2
ip address 192.168.20.254 24
2.使用路由器子接口(单臂路由)
- 子接口(Sub-Interface)是基于路由器以太网接口所创建的逻辑接口,以物理接口ID+子接口ID进行标识,子接口同物理接口一样可进行三层转发。
- 子接口不同于物理接口,可以终结携带VLAN Tag的数据帧。
- 基于一个物理接口创建多个子接口,将该物理接口对接到交换机的Trunk接口,即可实现使用一个物理接口为多个VLAN提供三层转发服务。
2.1实例操作
使用上面的图
LSW1
vlan batch 10 20
int g0/0/1
port link-type access
port default vlan 10
int g0/0/2
port link-type access
port default vlan 20
int g0/0/3
port link-type trunk
port trunk allow-pass vlan 10 20
AR1
int g0/0/0.1
ip address 192.168.10.254 24
dot1q termination vid 10 //创建并进入子接口视图。2代表子接口的编号,一般建议子接口编号与VLAN ID相同,方便记忆。
arp broadcast enable //开启arp广播功能
int g0/0/0.2
ip address 192.168.20.254 24
dot1q termination vid 20
arp broadcast enable
3.使用VLANNIF技术实现VLAN间通信
- 二层交换机(Layer 2 Switch)指的是只具备二层交换功能的交换机。
- 三层交换机(Layer 3 Switch)除了具备二层交换机的功能,还支持通过三层接口(如VLANIF接口)实现路由转发功能。
- VLANIF接口是一种三层的逻辑接口,支持VLAN Tag的剥离和添加,因此可以通过VLANIF接口实现VLAN之间的通信。
- VLANIF接口编号与所对应的VLAN ID相同,如VLAN10对应VLANIF 10。
3.1实例操作
LSW1
vlan batch 10 20
int g0/0/1
port link-type access
port default vlan 10
int g0/0/2
port link-type access
port default vlan 20
int g0/0/3
port link-type trunk
port trunk allow-pass vlan 10 20
LSW2
vlan batch 10 20
int vlan 10
ip address 192.168.10.254 24
int vlan 20
ip address 192.168.20.254 24
int g0/0/1
port link-type trunk
port trunk allow-pass vlan 10 20
3.2VLANIF转发流程
- 假设PC、三层交换机上都已存在相应的ARF或MAC表项。
- PC1与PC2之间通信过程如下:
- PC1通过本地IP地址、本地掩码、对端IP地进行计算,发现目的设备PC2与自身不在同一个网段,判断该通信为三层通信,将去往PC2的流量发给网关。PC1发送的数据帧:源MAC=MAC1,目的MAC=MAC2。