VLAN(虚拟局域网)技术是现代网络管理中不可或缺的一部分,它通过在逻辑上对局域网进行划分,实现了不同用户群组的隔离,从而增强了网络的安全性、灵活性和管理效率,不同 VLAN 之间默认是无法直接通信的,它们就像被一堵无形的墙隔开,要实现跨 VLAN 的通信,就需要一个三层设备来进行路由转发,而这正是 Cisco 路由器大显身手的场景,本文将详细介绍如何在 Cisco 路由器上配置 VLAN,实现 VLAN 间的路由,这种配置模式通常被称为“单臂路由”。
配置前的准备工作
在开始配置之前,请确保您具备以下硬件和基本条件:
我们的目标拓扑如下:交换机上创建两个 VLAN(VLAN 10 和 VLAN 20),路由器通过一个物理接口连接到交换机的一个中继端口,并负责为这两个 VLAN 提供路由服务。
| 设备类型 | 接口 | IP 地址 | 子网掩码 |
|---|---|---|---|
| 网卡 | |||
| 网卡 | |||
| 交换机 (SW1) | |||
| 交换机 (SW1) | |||
| 交换机 (SW1) | Fa0/1 (trunk) | ||
| 路由器 (R1) | G0/0 (Trunk) | 255.255.0 (子接口 G0/0.10) | |
| 路由器 (R1) | G0/0 (Trunk) | 255.255.0 (子接口 G0/0.20) |
第一步:在交换机上创建 VLAN 并分配端口
我们需要在交换机上创建两个 VLAN,并将相应的物理端口划入这些 VLAN,PC1 连接到交换机的 Fa0/2 端口,PC2 连接到 Fa0/3 端口。
# 进入交换机全局配置模式Switch> enableSwitch# configure terminal# 创建 VLAN 10 和 VLAN 20Switch(config)# vlan 10Switch(config-vlan)# name SalesSwitch(config-vlan)# exitSwitch(config)# vlan 20Switch(config-vlan)# name MarketingSwitch(config-vlan)# exit# 将 Fa0/2 端口分配给 VLAN 10Switch(config)# interface fastethernet 0/2Switch(config-if)# switchport mode accessSwitch(config-if)# switchport access vlan 10Switch(config-if)# exit# 将 Fa0/3 端口分配给 VLAN 20Switch(config)# interface fastethernet 0/3Switch(config-if)# switchport mode accessSwitch(config-if)# switchport access vlan 20Switch(config-if)# exit
第二步:配置交换机的中继端口
需要将连接路由器的交换机端口(Fa0/1)配置为中继模式,中继端口能够在单个链路上承载多个 VLAN 的流量。
# 进入连接路由器的端口 (Fa0/1)Switch(config)# interface fastethernet 0/1# 将端口设置为中继模式Switch(config-if)# switchport mode trunk# (可选) 指定中继允许的 VLAN,默认允许所有 VLANSwitch(config-if)# switchport trunk allowed vlan 10,20Switch(config-if)# endSwitch# write memory
至此,交换机端的配置已全部完成,它已经能够识别并标记来自 VLAN 10 和 20 的数据帧,并通过 Fa0/1 端口转发给路由器。
第三步:在路由器上配置子接口
这是“单臂路由”的核心步骤,我们将在路由器的物理接口上创建逻辑子接口,每个子接口对应一个 VLAN,并负责为其分配 IP 地址,作为该 VLAN 的网关。
# 进入路由器全局配置模式Router> enableRouter# configure terminal# 进入连接交换机的物理接口 G0/0Router(config)# interface gigabitethernet 0/0# **至关重要:** 启用物理接口Router(config-if)# no shutdownRouter(config-if)# exit# 创建子接口 G0/0.10,对应 VLAN 10Router(config)# interface gigabitethernet 0/0.10# 定义子接口的 VLAN 封装协议为 802.1Q,并指定 VLAN ID 为 10Router(config-subif)# encapsulation dot1q 10# 为该子接口配置 IP 地址,此地址将成为 VLAN 10 的网关Router(config-subif)# ip address 192.168.10.1 255.255.255.0Router(config-subif)# exit# 创建子接口 G0/0.20,对应 VLAN 20Router(config)# interface gigabitethernet 0/0.20# 定义子接口的 VLAN 封装协议为 802.1Q,并指定 VLAN ID 为 20Router(config-subif)# encapsulation dot1q 20# 为该子接口配置 IP 地址,此地址将成为 VLAN 20 的网关Router(config-subif)# ip address 192.168.20.1 255.255.255.0Router(config-subif)# end# 保存配置Router# write memory
第四步:验证配置
配置完成后,我们需要进行验证以确保一切正常工作。
通过以上步骤,我们成功地利用 Cisco 路由器的单臂路由技术,实现了跨 VLAN 的通信,这种方法经济高效,尤其适用于中小型网络或分支机构的网络环境,因为它节省了路由器的物理接口,仅用一个端口就能处理多个 VLAN 的路由请求。
相关问答 (FAQs)
Q1:为什么使用子接口而不是为每个 VLAN 使用一个独立的物理接口?
使用子接口(即单臂路由)主要是出于经济性和可扩展性的考虑,如果为每个 VLAN 都分配一个独立的路由器物理接口,那么对于有多个 VLAN 需要昂贵的路由器提供大量的物理端口,这会导致成本急剧上升和端口资源的浪费,而子接口技术允许在单个物理接口上创建多个逻辑接口,每个逻辑接口处理一个 VLAN 的流量,极大地提高了接口利用率,降低了硬件成本,并且扩展起来非常灵活,新增 VLAN 只需增加一个新的子接口配置即可。
Q2:什么是“本征 VLAN”(Native VLAN),在配置中需要注意什么?
本征 VLAN 是在中继链路上一个特殊的 VLAN,在中继链路上,除了本征 VLAN 以外的所有 VLAN 的数据帧都会被打上 802.1Q 标签,而本征 VLAN 的数据帧在发送时会被剥离标签,默认情况下,Cisco 设备的本征 VLAN 是 VLAN 1,为了安全起见,最佳实践是将中继链路的本征 VLAN 更改为一个未被使用的、专门的 VLAN 号,以防止 VLAN 1 上的潜在安全威胁(如 DTP 攻击、STP BPDU 泛洪等)影响到生产网络,可以在交换机和路由器的中继端口上使用
switchport trunk native vlan [vlan-id]
命令进行修改。
思科2900配置某个vlan的地址为管理地址
这个是一个二层交换机,只能在上面配置一个地址,配置方法如下:vlan 10interface Vlan10 ip address 192.168.10.2 255.255.255.0no shutdown另外,建议再写一条路由指向自己的网关,否则在其它和这个地址不在同一个段的电脑将不能管理这台交换机ip default-gateway 192.168.10.1
多网段如何组建并互访
如图一所示,LAN 1为192.168.0.0这个标准C类网段,路由器R1为原有路由器,它的WAN口接入宽带,LAN口(IP为192.168.0.1)挂着192.168.0.0网段(子网掩码255.255.255.0的C类网)主机和路由器R2(新添加)的WAN口(IP为192.168.0.100)。 R2的LAN口(IP为192.168.1.1)下挂着新加入的LAN 2这个192.168.1.0的C类不同网段的主机。 如果按照共享Internet的方式简单设置,此时应将192.168.0.0的主机网关都指向R1的LAN口(192.168.0.1),192.168.1.0网段的主机网关指向R2的LAN口(192.168.1.1),那么只要R2的WAN口网关指向192.168.0.1,192.168.1.0的主机就都能访问192.168.0.0网段的主机并能通过宽带连接上网。 这是因为前面所说的宽带路由器中一条默认路由在起作用,它将所有非本网段的目的IP包都发到WAN口的网关(即路由器R1),再由R1来决定信息包应该转发到它自己连的内网还是发到外网去。 但是192.168.0.0网段的主机网关肯定要指向192.168.0.1,而R1这时并不知道192.168.1.0这个LAN 2的正确位置,那么此时只能上网以及本网段内的互访,不能访问到192.168.1.0网段的主机。 这时就需要在R1上指定一条静态路由,使目的IP为192.168.1.0网段的信息包能转发到路由器R2去。 一条静态路由条目一般由3部分组成:1.目的IP地址或者叫信宿网络、子网;2.子网掩码;3.网关或叫下一跳。 例一中R1上设定的静态路由条目就应该为:目的IP地址192.168.1.0(代表1.x这个网段),子网掩码255.255.255.0(因为是C类网段),下一跳192.168.0.100。 如图2,此图为TP-LINK R410中的静态路由表配置项,保存后即可生效。 如果是Cisco的路由器,则在全局配置模式下键入命令:Router(config)# ip route 192.168.1.0 255.255.255.0 192.168.0.100。 注意:其中的网关IP必须是与WAN或LAN口属于同一个网段。 那条默认路由写出来就是:目的IP为 0.0.0.0,子网掩码0.0.0.0,下一跳为WAN口上的默认网关,有时我们也称它为“8个0的默认路由”。 另外,如果目的IP是一个具体的主机IP(如192.168.1.2),那么路由条目应为:目的IP 192.168.1.2,子网掩码255.255.255.255,下一跳或网关192.168.0.100。
路由器划分vlan有什么用
路由器划分VLAN,是将路由器配置为各VLAN的网关,实现VLAN间路由,也就是所说的单臂路由。
路由器配置VLAN,不能将物理端口划分到VLAN中,而要通过将虚拟子接口划分到VLAN中并且为其配置封装协议 dot1q。
详细解说:
路由器提供VLAN间路由只能做单臂路由,也就是设置子接口和封装协议。
第一步:在交换机上建立VLAN,并将交换机的各端口按照你的意愿划分到你所创建的VLAN中。
实例:
interface range fastetherner 0/1-8
switchport access vlan 10
interface range fastethernet 0/9-16
switchprt aceess vlan 20
interface range fastethernet 0/17-23
switchprt aceess vlan 30
interface fastethernet 0/24 *重要的一步:设置交换机上的trunk 口
switchport mode trunk
switchport trunk allow vlan all *这条是为trunk打开使每个vlan都能通过的命令,使trunk口能传输各vlan的数据帧。
第二步,在路由器上的一个端口上设置子接口,并为子接口配置ip地址,此ip地址将自动成为各VLAN 的网关。
router#interface fa0/0
no ip addreess *使之成为二层口,去掉其ip地址
下面开始配置子接口,子接口配置好tunck封装模式之后,就成为了trunk口
interface fa0/0.10 *为vlan 10划分出一个子接口
encapsulate dot1q 10 *为vlan 10 配置此子接口的trunk封装模式
ip adrress 192.168.10.1 255.255.255.0 *为vlan 10 的子接口配置ip地址
interface fa0/0.20 *为vlan 20划分出一个子接口
encapsulate dot1q 20 *为vlan 20 配置此子接口的trunk封装模式
ip adrress 192.168.20.1 255.255.255.0 *为vlan 20 的子接口配置ip地址
interface fa0/0.30 *为vlan 30划分出一个子接口
encapsulate dot1q 30 *为vlan 30 配置此子接口的trunk封装模式
ip adrress 192.168.30.1 255.255.255.0 *为vlan 30 的子接口配置ip地址
最后,为保险起见,在路由器的全局模式使用
router#ip routing。
OK,配置完成。
这时在vlan 10中的客户端ping 一下在vlan 20中的客户端,试试。
【注意事项】
1,在给路由器的子接口配置IP地址之前,一定要先封装dot1q协议。
2,各个VLAN内的主机,要以相应VLAN子接口的IP地址作为网关。














发表评论