VLAN(虚拟局域网)技术是现代网络管理中不可或缺的一部分,它通过在逻辑上对局域网进行划分,实现了不同用户群组的隔离,从而增强了网络的安全性、灵活性和管理效率,不同 VLAN 之间默认是无法直接通信的,它们就像被一堵无形的墙隔开,要实现跨 VLAN 的通信,就需要一个三层设备来进行路由转发,而这正是 Cisco 路由器大显身手的场景,本文将详细介绍如何在 Cisco 路由器上配置 VLAN,实现 VLAN 间的路由,这种配置模式通常被称为“单臂路由”。
配置前的准备工作
在开始配置之前,请确保您具备以下硬件和基本条件:
- 一台支持 802.1Q 协议的 Cisco 路由器:这是实现单臂路由的核心设备。
- 一台支持 VLAN 功能的 Cisco 交换机:用于创建 VLAN 和连接终端设备。
- 终端设备:例如两台 PC,分别用于测试不同 VLAN 间的连通性。
- Console 线缆:用于初始连接和配置设备。
我们的目标拓扑如下:交换机上创建两个 VLAN(VLAN 10 和 VLAN 20),路由器通过一个物理接口连接到交换机的一个中继端口,并负责为这两个 VLAN 提供路由服务。
设备类型 | 接口 | VLAN ID | IP 地址 | 子网掩码 |
---|---|---|---|---|
PC 1 | 网卡 | 10 | 168.10.10 | 255.255.0 |
PC 2 | 网卡 | 20 | 168.20.10 | 255.255.0 |
交换机 (SW1) | Fa0/2 | 10 | ||
交换机 (SW1) | Fa0/3 | 20 | ||
交换机 (SW1) | Fa0/1 (Trunk) | 10, 20 | ||
路由器 (R1) | G0/0 (Trunk) | 10, 20 | 168.10.1 | 255.255.0 (子接口 G0/0.10) |
路由器 (R1) | G0/0 (Trunk) | 10, 20 | 168.20.1 | 255.255.0 (子接口 G0/0.20) |
第一步:在交换机上创建 VLAN 并分配端口
我们需要在交换机上创建两个 VLAN,并将相应的物理端口划入这些 VLAN,PC1 连接到交换机的 Fa0/2 端口,PC2 连接到 Fa0/3 端口。
# 进入交换机全局配置模式 Switch> enable Switch# configure terminal # 创建 VLAN 10 和 VLAN 20 Switch(config)# vlan 10 Switch(config-vlan)# name Sales Switch(config-vlan)# exit Switch(config)# vlan 20 Switch(config-vlan)# name Marketing Switch(config-vlan)# exit # 将 Fa0/2 端口分配给 VLAN 10 Switch(config)# interface fastethernet 0/2 Switch(config-if)# switchport mode access Switch(config-if)# switchport access vlan 10 Switch(config-if)# exit # 将 Fa0/3 端口分配给 VLAN 20 Switch(config)# interface fastethernet 0/3 Switch(config-if)# switchport mode access Switch(config-if)# switchport access vlan 20 Switch(config-if)# exit
第二步:配置交换机的中继端口
需要将连接路由器的交换机端口(Fa0/1)配置为中继模式,中继端口能够在单个链路上承载多个 VLAN 的流量。
# 进入连接路由器的端口 (Fa0/1) Switch(config)# interface fastethernet 0/1 # 将端口设置为中继模式 Switch(config-if)# switchport mode trunk # (可选) 指定中继允许的 VLAN,默认允许所有 VLAN Switch(config-if)# switchport trunk allowed vlan 10,20 Switch(config-if)# end Switch# write memory
至此,交换机端的配置已全部完成,它已经能够识别并标记来自 VLAN 10 和 20 的数据帧,并通过 Fa0/1 端口转发给路由器。
第三步:在路由器上配置子接口
这是“单臂路由”的核心步骤,我们将在路由器的物理接口上创建逻辑子接口,每个子接口对应一个 VLAN,并负责为其分配 IP 地址,作为该 VLAN 的网关。
# 进入路由器全局配置模式 Router> enable Router# configure terminal # 进入连接交换机的物理接口 G0/0 Router(config)# interface gigabitethernet 0/0 # **至关重要:** 启用物理接口 Router(config-if)# no shutdown Router(config-if)# exit # 创建子接口 G0/0.10,对应 VLAN 10 Router(config)# interface gigabitethernet 0/0.10 # 定义子接口的 VLAN 封装协议为 802.1Q,并指定 VLAN ID 为 10 Router(config-subif)# encapsulation dot1q 10 # 为该子接口配置 IP 地址,此地址将成为 VLAN 10 的网关 Router(config-subif)# ip address 192.168.10.1 255.255.255.0 Router(config-subif)# exit # 创建子接口 G0/0.20,对应 VLAN 20 Router(config)# interface gigabitethernet 0/0.20 # 定义子接口的 VLAN 封装协议为 802.1Q,并指定 VLAN ID 为 20 Router(config-subif)# encapsulation dot1q 20 # 为该子接口配置 IP 地址,此地址将成为 VLAN 20 的网关 Router(config-subif)# ip address 192.168.20.1 255.255.255.0 Router(config-subif)# end # 保存配置 Router# write memory
第四步:验证配置
配置完成后,我们需要进行验证以确保一切正常工作。
在交换机上验证 VLAN:
Switch# show vlan brief
此命令可以查看 VLAN 的创建情况以及各端口所属的 VLAN。在路由器上验证接口状态:
Router# show ip interface brief
检查物理接口 G0/0 和两个子接口 G0/0.10、G0/0.20 的状态是否为 “up” 和 “up”,IP 地址是否配置正确。在路由器上验证路由表:
Router# show ip route
在路由表中,应该能看到两条直连路由(C),分别指向 192.168.10.0/24 和 192.168.20.0/24 网络,这表明路由器已经“知道”了这两个网络的存在。终端连通性测试:
- 将 PC1 的网关设置为 192.168.10.1,PC2 的网关设置为 192.168.20.1。
- 从 PC1
ping
自己的网关(192.168.10.1)。 - 从 PC2
ping
自己的网关(192.168.20.1)。 - 从 PC1
ping
PC2 的 IP 地址(192.168.20.10),如果能够ping
通,说明 cisco 路由器配置 vlan 成功,VLAN 间路由已经正常工作。
通过以上步骤,我们成功地利用 Cisco 路由器的单臂路由技术,实现了跨 VLAN 的通信,这种方法经济高效,尤其适用于中小型网络或分支机构的网络环境,因为它节省了路由器的物理接口,仅用一个端口就能处理多个 VLAN 的路由请求。
相关问答 (FAQs)
Q1:为什么使用子接口而不是为每个 VLAN 使用一个独立的物理接口?
A: 使用子接口(即单臂路由)主要是出于经济性和可扩展性的考虑,如果为每个 VLAN 都分配一个独立的路由器物理接口,那么对于有多个 VLAN 需要昂贵的路由器提供大量的物理端口,这会导致成本急剧上升和端口资源的浪费,而子接口技术允许在单个物理接口上创建多个逻辑接口,每个逻辑接口处理一个 VLAN 的流量,极大地提高了接口利用率,降低了硬件成本,并且扩展起来非常灵活,新增 VLAN 只需增加一个新的子接口配置即可。
Q2:什么是“本征 VLAN”(Native VLAN),在配置中需要注意什么?
A: 本征 VLAN 是在中继链路上一个特殊的 VLAN,在中继链路上,除了本征 VLAN 以外的所有 VLAN 的数据帧都会被打上 802.1Q 标签,而本征 VLAN 的数据帧在发送时会被剥离标签,默认情况下,Cisco 设备的本征 VLAN 是 VLAN 1,为了安全起见,最佳实践是将中继链路的本征 VLAN 更改为一个未被使用的、专门的 VLAN 号,以防止 VLAN 1 上的潜在安全威胁(如 DTP 攻击、STP BPDU 泛洪等)影响到生产网络,可以在交换机和路由器的中继端口上使用 switchport trunk native vlan [vlan-id]
命令进行修改。
图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/18268.html