2.5 华为实现VLAN间通信

方案一:多端口路由实现
在网络中,不同VLAN之间默认是无法直接通信的,这是VLAN技术的安全特性之一。要实现不同VLAN之间的通信,我们需要借助路由器。多端口路由是最直观的一种实现方式,即路由器使用多个物理接口分别连接到不同的VLAN。
1、建立拓扑图
按照下图建立网络拓扑结构:
路由器使用“Router”,交换机使用“S3700”
请特别注意 R1 路由器和 LSW1 交换机之间的连线:
- R1 的 G0/0/0 接口连接到 LSW1 的 G0/0/1 接口
- R1 的 G0/0/1 接口连接到 LSW1 的 G0/0/2 接口
- R1 的 G0/0/2 接口连接到 LSW1 的 Eth0/0/5 接口
2、配置PC的IP地址
为各个PC配置IP地址、子网掩码和默认网关:
PC | IP地址 | 子网掩码 | 网关 |
---|---|---|---|
PC1 | 192.1.2.1 | 255.255.255.0 | 192.1.2.254 |
PC2 | 192.1.2.2 | 255.255.255.0 | 192.1.2.254 |
PC3 | 192.1.3.1 | 255.255.255.0 | 192.1.3.254 |
PC4 | 192.1.4.1 | 255.255.255.0 | 192.1.4.254 |
3、建立VLAN
首先打开交换机,关闭信息中心后创建3个VLAN:
vlan batch 2 3 4
4、划分端口
按照拓扑图给端口划分VLAN(所有端口都配置为Access模式),另外将与路由器相连的三个端口,分别划分给VLAN 2、3、4。
以VLAN 2的端口划分为例:
# 连接PC1和PC2的端口
interface ethernet 0/0/1
port link-type access
port default vlan 2
quit
interface ethernet 0/0/2
port link-type access
port default vlan 2
quit
# 连接路由器的端口
interface gigabitethernet 0/0/1
port link-type access
port default vlan 2
quit
验证VLAN配置结果:
5、验证VLAN内连通性
配置完成后,我们需要验证同一VLAN内的设备可以通信,而不同VLAN之间的设备无法通信:
- PC1与PC2(同属VLAN 2):✅ 可以通信
- PC1与PC3(分属VLAN 2和VLAN 3):❌ 无法通信
- PC1与PC4(分属VLAN 2和VLAN 4):❌ 无法通信
- PC3与PC4(分属VLAN 3和VLAN 4):❌ 无法通信
可以通过在PC上使用ping命令来验证连通性:
ping 192.1.2.2 # 从PC1 ping PC2
ping 192.1.3.1 # 从PC1 ping PC3
6、配置路由器IP
为路由器的各个接口配置IP地址,使其成为各个VLAN的网关:
接口 | IP地址 | 子网掩码 | 备注 |
---|---|---|---|
g0/0/0 | 192.1.2.254 | 255.255.255.0 | 交换机上对应的接口属于VLAN 2 |
g0/0/1 | 192.1.3.254 | 255.255.255.0 | 交换机上对应的接口属于VLAN 3 |
g0/0/2 | 192.1.4.254 | 255.255.255.0 | 交换机上对应的接口属于VLAN 4 |
路由器配置示例:
7、验证VLAN间连通性
首先查看路由器的路由表,确认路由器已经学习到了所有直连网段:
然后检查不同VLAN之间PC的通信情况:
- PC1与PC3(分属VLAN 2和VLAN 3):✅ 可以通信
- PC1与PC4(分属VLAN 2和VLAN 4):✅ 可以通信
- PC3与PC4(分属VLAN 3和VLAN 4):✅ 可以通信
总结
多端口路由实现VLAN间通信的原理是:
- 每个VLAN对应一个独立的IP子网
- 路由器的不同物理接口分别连接到不同的VLAN
- 路由器接口配置为对应VLAN的网关地址
- 当数据包需要跨VLAN通信时,会先发送到默认网关(路由器),然后由路由器根据路由表转发到目标VLAN
这种方式直观易懂,但在VLAN数量较多时,需要路由器有足够多的物理接口,不够灵活。
方案二:单臂路由实现
单臂路由(Router-on-a-Stick)是一种只使用路由器的一个物理接口就能实现多个VLAN间通信的技术。它通过在路由器的物理接口上配置多个子接口,每个子接口对应一个VLAN,从而实现VLAN间的路由功能。
1、修改拓扑图
1.1 简化网络连接
在多端口路由实验的基础上,我们需要删除多余的连接线,只保留一条路由器到交换机的连接:
1.2 清除路由器接口配置
进入路由器,删除所有接口的IP配置。以删除G0/0/0接口的IP配置为例:
system-view
interface g0/0/0
undo ip address
quit
验证接口配置已被清除:
display ip interface brief
# 可缩写为 dis ip int br
请重复上述步骤,删除所有接口的IP配置。这一步非常重要,因为我们将采用新的方式配置接口。
删除完成后,通过以下命令检查,所有接口都没有分配 IP 地址:
display ip interface brief # 查看接口信息
1.3 清除交换机多余配置
由于物理连接发生了变化,我们需要删除交换机上不再使用的接口配置。以 Eth0/0/5
为例:
system-view
interface eth0/0/5
undo port default vlan
undo port link-type
quit
清除配置后的结果:
2、路由器划分逻辑接口
单臂路由的核心是在路由器的一个物理接口上配置多个子接口,每个子接口对应一个VLAN。在系统视图下执行以下命令:
# 配置子接口 g0/0/0.1 对应VLAN 2
interface g0/0/0.1
vlan-type dot1q 2
ip address 192.1.1.254 255.255.255.0
quit
# 配置子接口 g0/0/0.2 对应VLAN 3
interface g0/0/0.2
vlan-type dot1q 3
ip address 192.1.2.254 255.255.255.0
quit
# 配置子接口 g0/0/0.3 对应VLAN 4
interface g0/0/0.3
vlan-type dot1q 4
ip address 192.1.3.254 255.255.255.0
quit
- 子接口编号(如.1、.2、.3)可以自定义,但通常与VLAN编号保持某种对应关系以便管理
vlan-type dot1q
命令指定了802.1Q封装类型,用于识别不同VLAN的标签- 每个子接口的IP地址将作为对应VLAN的网关地址
验证配置是否正确:
display ip interface brief
# 可缩写为:
dis ip int br
3、配置交换机Trunk端口
为了让交换机能够将带有不同VLAN标签的数据包传输到路由器,我们需要将连接路由器的交换机端口配置为Trunk模式(共享端口):
system-view
interface g0/0/1
port link-type trunk
port trunk allow-pass vlan 2 3 4
quit
验证Trunk端口配置:
4、最终验证
查看路由表
通过查看路由表,确认路由器已经学习到了所有直连网段:
display ip routing-table
检查PC间的通信
验证不同VLAN之间的PC是否可以相互通信:
- PC0与PC1(可能属于同一VLAN):✅ 可以通信
- PC0与PC2(属于不同VLAN):✅ 可以通信
- PC0与PC3(属于不同VLAN):✅ 可以通信
总结
单臂路由实现VLAN间通信的原理是:
- 在路由器的一个物理接口上配置多个子接口(逻辑接口),每个子接口对应一个VLAN
- 每个子接口配置为对应VLAN的网关地址
- 交换机和路由器之间的连接配置为Trunk模式,允许多个VLAN的数据通过
- 当数据包需要跨VLAN通信时,会先发送到默认网关(路由器子接口),然后由路由器根据路由表转发到目标VLAN
与多端口路由相比,单臂路由的优点是节省物理接口资源,配置更加灵活;缺点是所有VLAN的流量都共享一条物理链路,可能会造成带宽瓶颈。
方案三:三层交换机实现VLAN间路由
1、建立拓扑图
在本实验中,我们将使用两种型号的交换机:接入层使用S3700交换机,核心层使用S5700三层交换机。
2、划分VLAN
在开始配置前,我们需要在各个交换机上创建VLAN并将端口分配到相应的VLAN中。
LSW1
# 创建VLAN 2和VLAN 3
vlan batch 2 3
#
interface eth0/0/1
port link-type access
port default vlan 2
# 配置上行链路为trunk模式,允许VLAN 2和3通过
interface g0/0/1
port link-type trunk
port trunk allow-pass vlan 2 3
LSW2
# 创建VLAN 2和VLAN 3
vlan batch 2 3
# 配置第一个接入端口,使用VLAN 2
interface eth0/0/1
port link-type access
port default vlan 2
# 配置第二个接入端口,使用VLAN 3
interface eth0/0/2
port link-type access
port default vlan 3
# 配置上行链路为trunk模式,允许VLAN 2和3通过
interface g0/0/1
port link-type trunk
port trunk allow-pass vlan 2 3
LSW3
# 创建VLAN 2和VLAN 3
vlan batch 2 3
# 配置两个下行链路为trunk模式,允许VLAN 2和3通过
interface g0/0/1
port link-type trunk
port trunk allow-pass vlan 2 3
interface g0/0/2
port link-type trunk
port trunk allow-pass vlan 2 3
3、配置PC的网络
PC | IP地址 | 子网掩码 | 默认网关 |
---|---|---|---|
PC1 | 192.1.2.1 | 255.255.255.0 | 192.1.2.254 |
PC2 | 192.1.2.2 | 255.255.255.0 | 192.1.2.254 |
PC3 | 192.1.3.1 | 255.255.255.0 | 192.1.3.254 |
4、初步验证连通性
在配置VLAN后,但在配置三层交换机路由功能前,先验证VLAN内部的连通性:
PC1 与 PC2 ✅(同属VLAN 2)
PC1 与 PC3 ❌(分属VLAN 2和VLAN 3)
PC2 与 PC3 ❌(分属VLAN 2和VLAN 3)
5、配置VLANIF接口(关键)
接下来在三层交换机(LSW3)上配置虚拟接口(VLANIF),为每个VLAN分配网关IP地址:
# 创建VLAN 2的虚拟接口并分配IP地址
interface vlanif 2
ip address 192.1.2.254 24
quit
# 创建VLAN 3的虚拟接口并分配IP地址
interface vlanif 3
ip address 192.1.3.254 24
quit
# 注意:华为三层交换机默认已启用IP路由功能,无需额外配置
6、验证配置结果
验证接口IP配置情况:
display ip interface brief
验证路由表:
display ip routing-table
7、最终验证连通性
完成所有配置后,再次测试各PC之间的连通性:
PC1 与 PC2 ✅(同属VLAN 2)
PC1 与 PC3 ✅(分属VLAN 2和VLAN 3,通过三层交换机路由)
PC2 与 PC3 ✅(分属VLAN 2和VLAN 3,通过三层交换机路由)
- 当PC1(VLAN 2)向PC2(VLAN 3)发送数据时,数据包首先发往默认网关192.1.2.254
- 三层交换机收到数据包后,查询路由表,发现目标网段192.1.3.0/24是直连的
- 数据包通过三层交换机的内部路由转发到VLANIF 3接口
- 最后,数据包从VLANIF 3发送到PC2