贝博恩创新科技网

多VLAN如何统一访问互联网?

核心原理:为什么需要特殊配置?

想象一下这个场景:

多VLAN如何统一访问互联网?-图1
(图片来源网络,侵删)
  • 你有一台路由器(或防火墙),它有一个连接互联网的接口(WAN 口,IP地址为 2.3.4)。
  • 你有一台支持VLAN的二层交换机,下面连接了三个部门:销售部、技术部和访客部,分别属于 VLAN 10, 20, 30。
  • 销售部电脑的IP地址是 168.10.x,技术部是 168.20.x,访客部是 168.30.x

问题来了: 交换机是二层设备,它只认识MAC地址,不认识IP地址,它知道 168.10.x 属于VLAN 10,但它不知道这个数据包该如何发往互联网(2.3.4)。

解决方案: 我们需要一个三层网关来扮演“翻译官”的角色,这个网关需要:

  1. 连接到交换机,并能处理多个VLAN的流量。
  2. 连接到互联网(比如路由器的WAN口)。
  3. 为每个VLAN分配一个网关地址(VLAN 10的网关是 168.10.1,VLAN 20的网关是 168.20.1)。

当销售部的电脑要访问 8.8.8 时:

  1. 它发现目标地址不在自己的 168.10.0/24 网段,于是把数据包发往自己的网关 168.10.1
  2. 三层网关收到数据包,发现它需要发往互联网。
  3. 网关会进行网络地址转换,将源IP 168.10.x 替换成它自己的公网IP 2.3.4,然后再发送出去。
  4. 从互联网返回的数据包,目标地址是 2.3.4,网关收到后,根据会话表记录,再将数据包转发回最初发起请求的 168.10.x 电脑。

这个“三层网关”角色通常由以下设备之一来扮演:

多VLAN如何统一访问互联网?-图2
(图片来源网络,侵删)
  • 路由器(特别是支持子接口或中继功能的路由器)
  • 三层交换机(功能强大,集二层交换和三层路由于一体)
  • 防火墙(最常见、最安全的方案)
  • 带路由功能的软路由(如 pfSense, OpnSense, OpenWRT等)

常用技术实现方案

主要有两种主流技术来实现多VLAN的网关功能:Router-on-a-Stick (单臂路由)三层交换

Router-on-a-Stick (单臂路由)

这是在传统路由器和普通二层交换机之间非常流行的方案。

  • 核心思想: 在路由器上创建多个子接口,每个子接口对应一个VLAN,并配置该VLAN的网关IP地址,交换机和路由器之间通过一条中继链路 连接,允许所有VLAN的流量都通过这条物理链路传输。
  • 拓扑:
    • 交换机:连接PC的端口划入对应VLAN,连接路由器的端口设置为 Trunk 模式。
    • 路由器:物理接口连接交换机,在该接口上创建多个逻辑子接口(如 G0/0.10, G0/0.20),每个子接口绑定一个VLAN ID和IP地址。
  • 优点:
    • 灵活,利用现有设备(普通交换机+路由器)即可实现。
    • 配置相对简单。
  • 缺点:
    • 所有VLAN间的流量和互联网流量都经过这条物理链路,可能成为性能瓶颈。
    • 路由器性能可能成为瓶颈。

三层交换

这是现代企业网络中最推荐、性能最高的方案。

  • 核心思想: 使用一台三层交换机,它同时具备二层交换和三层路由的能力,直接在交换机上为每个VLAN创建SVI (Switch Virtual Interface),即VLAN接口,并配置网关IP地址。
  • 拓扑:
    • 交换机:连接PC的端口划入对应VLAN,交换机内部直接路由VLAN间的流量。
    • 交换机:将一个物理接口作为路由接口(或连接到防火墙/路由器的接口),用于连接互联网。
  • 优点:
    • 性能极高:VLAN间的流量在交换机内部通过硬件转发,速度快,延迟低。
    • 架构简洁:一台设备即可完成大部分工作,简化网络拓扑。
    • 可扩展性强:易于添加新的VLAN和网关。
  • 缺点:

    设备成本相对较高(需要三层交换机)。

    多VLAN如何统一访问互联网?-图3
    (图片来源网络,侵删)

详细配置步骤(以方案一:Router-on-a-Stick为例)

假设我们使用以下环境:

  • 交换机: Cisco Catalyst 2960
  • 路由器: Cisco ISR 4000系列
  • VLAN规划:
    • VLAN 10: 销售部, 网段 168.10.0/24, 网关 168.10.1
    • VLAN 20: 技术部, 网段 168.20.0/24, 网关 168.20.1
    • VLAN 30: 访客部, 网段 168.30.0/24, 网关 168.30.1
  • 互联网连接: 路由器 G0/1 接口连接ISP,IP为 0.113.10,网关为 0.113.1

步骤1:在交换机上配置VLAN和Trunk

  1. 创建VLAN:

    Switch> enable
    Switch# configure terminal
    Switch(config)# vlan 10
    Switch(config-vlan)# name Sales
    Switch(config-vlan)# exit
    Switch(config)# vlan 20
    Switch(config-vlan)# name Tech
    Switch(config-vlan)# exit
    Switch(config)# vlan 30
    Switch(config-vlan)# name Guest
    Switch(config-vlan)# exit
  2. 将端口划入VLAN (假设连接销售部PC的端口是F0/1):

    Switch(config)# interface range f0/1-5  // 假设F0/1到F0/5是销售部端口
    Switch(config-if-range)# switchport mode access
    Switch(config-if-range)# switchport access vlan 10
    Switch(config-if-range)# exit
    Switch(config)# interface range f0/6-10 // 技术部
    Switch(config-if-range)# switchport mode access
    Switch(config-if-range)# switchport access vlan 20
    Switch(config-if-range)# exit
    Switch(config)# interface range f0/11-15 // 访客部
    Switch(config-if-range)# switchport mode access
    Switch(config-if-range)# switchport access vlan 30
    Switch(config-if-range)# exit
  3. 配置连接路由器的Trunk链路 (假设是F0/24):

    Switch(config)# interface f0/24
    Switch(config-if)# switchport mode trunk
    Switch(config-if)# switchport trunk allowed vlan 10,20,30 // 允许所有VLAN通过
    Switch(config-if)# end
    Switch# write memory // 保存配置

步骤2:在路由器上配置子接口和NAT

  1. 创建子接口并配置IP地址 (网关):

    Router> enable
    Router# configure terminal
    // 配置VLAN 10的子接口
    Router(config)# interface g0/0.10
    Router(config-subif)# encapsulation dot1Q 10 // 绑定VLAN 10
    Router(config-subif)# ip address 192.168.10.1 255.255.255.0 // 设置VLAN 10的网关
    Router(config-subif)# exit
    // 配置VLAN 20的子接口
    Router(config)# interface g0/0.20
    Router(config-subif)# encapsulation dot1Q 20
    Router(config-subif)# ip address 192.168.20.1 255.255.255.0
    Router(config-subif)# exit
    // 配置VLAN 30的子接口
    Router(config)# interface g0/0.30
    Router(config-subif)# encapsulation dot1Q 30
    Router(config-subif)# ip address 192.168.30.1 255.255.255.0
    Router(config-subif)# exit
  2. 配置连接互联网的接口和默认路由:

    Router(config)# interface g0/1
    Router(config-if)# ip address 203.0.113.10 255.255.255.252 // ISP分配的公网IP
    Router(config-if)# no shutdown
    Router(config-if)# exit
    // 设置默认路由,所有未知流量都发往ISP网关
    Router(config)# ip route 0.0.0.0 0.0.0.0 203.0.113.1
  3. 配置网络地址转换: 这是让内网PC能上网的关键,我们使用最简单的PAT (Port Address Translation),也叫NAT Overload,让所有内网PC共享一个公网IP。

    // 定义一个ACL,匹配所有内网地址
    Router(config)# ip access-list standard NAT_ACL
    Router(config-std-nacl)# permit 192.168.10.0 0.0.0.255
    Router(config-std-nacl)# permit 192.168.20.0 0.0.0.255
    Router(config-std-nacl)# permit 192.168.30.0 0.0.0.255
    Router(config-std-nacl)# exit
    // 在连接互联网的接口上应用NAT
    Router(config)# interface g0/1
    Router(config-if)# ip nat outside // 定义为外部接口
    Router(config-if)# exit
    Router(config)# interface g0/0
    Router(config-if)# ip nat inside // 定义为内部接口(物理接口本身,子接口会继承)
    Router(config-if)# exit
    // 应用NAT规则
    Router(config)# ip nat inside source list NAT_ACL interface g0/1 overload
  4. 保存配置:

    Router# write memory

一个更完整、更安全的方案:引入防火墙

在生产环境中,通常不会直接用路由器做网关,而是使用防火墙,防火墙集成了路由、NAT、状态检测、访问控制等强大功能,安全性更高。

拓扑变为: 互联网 -> 防火墙 -> 交换机

配置思路:

  1. 防火墙配置:

    • WAN口: 连接ISP,配置公网IP。
    • LAN口: 连接交换机,将此接口设置为 Trunk 模式,并允许所有VLAN通过。
    • VLAN接口: 在防火墙上为每个VLAN创建对应的接口(逻辑子接口),并配置内网网关IP(168.10.1, 168.20.1 等)。
    • NAT策略: 配置和上面路由器一样的PAT策略,将内网地址转换为WAN口IP。
    • 安全策略: 这是防火墙的核心优势,可以配置精细的访问控制,
      • 允许 所有内网用户访问互联网。
      • 禁止 访客部 访问公司服务器(VLAN 10, 20)。
      • 禁止 访客部 使用公司内部的打印机等特定服务。
  2. 交换机配置:

    • 和之前一样,创建VLAN,划分端口。
    • 连接防火墙的端口设置为 Trunk 模式。

这种架构下,防火墙成为了所有流量的安全检查点,既能实现多VLAN上网,又能保障网络安全,是企业部署的最佳实践。


排错思路

如果配置完成后无法上网,请按以下步骤排查:

  1. 检查PC端:

    • PC的IP地址、子网掩码、默认网关是否配置正确?(网关必须是 168.x.1
    • ping 自己的网关地址(如 ping 192.168.10.1),看是否通,如果不通,说明PC到网关的链路有问题。
    • ping 同一VLAN内的其他PC,看是否通,如果不通,说明二层交换有问题。
  2. 检查交换机端:

    • PC连接的交换机端口是否正确划入了VLAN? (show vlan brief)
    • 连接路由器/防火墙的Trunk端口是否配置正确? (show interfaces trunk)
  3. 检查路由器/防火墙端:

    • 子接口/VLAN接口是否 up/up 状态? (show ip interface brief)
    • 能否 ping 通各个VLAN的网关地址?
    • 能否 ping 通互联网的下一跳(ISP网关 0.113.1)?
    • 检查NAT配置是否正确,NAT转换是否生效? (show ip nat translations)
    • 检查路由表是否有默认路由? (show ip route)

通过以上步骤,您应该能够成功实现多VLAN访问互联网的需求。

分享:
扫描分享到社交APP
上一篇
下一篇