> 技术文档 > eNSP实战 - 打通“部门墙”,VLAN间路由(单臂路由)配置详解

eNSP实战 - 打通“部门墙”,VLAN间路由(单臂路由)配置详解


引言:当VLAN遇见路由

在现代企业网络中,VLAN(虚拟局域网) 是划分广播域、提升网络性能和安全性不可或缺的技术。它将一个物理网络在逻辑上划分为多个独立的广播域。然而,一个随之而来的核心问题就是:不同VLAN之间的主机如何通信?

答案就是 VLAN间路由(Inter-VLAN Routing)!今天,我们将借助华为强大的网络模拟器 eNSP(Enterprise Network Simulation Platform) ,动手配置一种经典的VLAN间路由解决方案:单臂路由(Router-on-a-Stick)。通过这篇博客,你不仅能理解其原理,更能亲手在模拟环境中实现它!

一、实验目标与环境

  1. 目标:

    • 理解VLAN间通信的必要性。

    • 掌握单臂路由(Router-on-a-Stick)的工作原理。

    • 熟练使用eNSP搭建网络拓扑。

    • 掌握在交换机上配置VLAN、Access/Trunk端口。

    • 掌握在路由器上配置子接口和802.1Q封装。

    • 使用ping命令验证不同VLAN间主机的连通性。

  2. 实验工具: 华为 eNSP (版本建议V100R003C00或更新)

  3. 所需设备 (在eNSP中):

    • 路由器: AR2220 x 1

    • 三层交换机: S5700 x 1 (也可用二层交换机+SVI,但本实验用单臂路由演示核心思想)

    • 终端: PC x 2

    • 连接线: 自动选择或手动指定(路由器交换机用GE,交换机PC用Ethernet)

      二、拓扑设计与规划

      让我们设计一个简单但清晰的拓扑:       

      •  [PC1] (VLAN 10: 192.168.10.10/24)
                     |
                     | (Access, VLAN 10)
                     |
                  [S5700] (Switch)
                     | (Trunk, Allow VLAN 10, 20)
                     | (GE0/0/1)
                     |
                     | (GE0/0/0) (GE0/0/0) [AR2220] (Router)
                     |
                  [S5700]
                     | (Access, VLAN 20)
                     |
                 [PC2] (VLAN 20: 192.168.20.20/24)

  • IP规划:

    • PC1: 192.168.10.10/24, 网关: 192.168.10.1 (指向路由器VLAN10子接口)

    • PC2: 192.168.20.20/24, 网关: 192.168.20.1 (指向路由器VLAN20子接口)

    • 路由器子接口 GE0/0/0.10192.168.10.1/24 (对应VLAN 10)

    • 路由器子接口 GE0/0/0.20192.168.20.1/24 (对应VLAN 20)

  • VLAN规划:

    • VLAN 10: 部门A (PC1)

    • VLAN 20: 部门B (PC2)

 

三、单臂路由原理简述

单臂路由的核心思想是:利用路由器的一个物理接口,通过创建多个逻辑子接口(Sub-Interface)来承担不同VLAN的网关职责。

  1. 数据流 (以PC1 ping PC2为例):

    • PC1 (192.168.10.10) 发现目标PC2 (192.168.20.20) 不在同一网段,将数据包发送给自己的网关 (192.168.10.1)。

    • 交换机收到数据包,根据PC1连接的端口属于VLAN 10,给数据帧打上VLAN 10的标签。

    • 交换机通过Trunk链路将带VLAN 10标签的数据帧发送给路由器。

    • 路由器收到数据帧,由其物理接口GE0/0/0接收。路由器查看数据帧的VLAN标签 (10),将其交给对应的子接口GE0/0/0.10处理。

    • 子接口GE0/0/0.10剥离VLAN标签,进行三层路由查找。发现目标地址192.168.20.20属于子接口GE0/0/0.20的直连网络。

    • 路由器将数据包重新封装,目标MAC地址改为PC2的MAC(通过ARP解析获得),源MAC改为子接口GE0/0/0.20的MAC,并给数据帧打上VLAN 20的标签。

    • 路由器通过物理接口GE0/0/0将带VLAN 20标签的数据帧发送回交换机。

    • 交换机通过Trunk链路收到带VLAN 20标签的数据帧,根据目标MAC地址和VLAN信息,将数据帧转发给连接PC2的Access端口(属于VLAN 20)。

    • PC2收到数据帧。

关键点: 路由器的一个物理接口通过子接口“模拟”成连接到了多个VLAN(逻辑网络),并作为这些VLAN的网关。交换机与路由器之间的链路必须是Trunk链路,以传递带VLAN标签的帧。

四、eNSP 配置步骤详解 (附关键命令与截图)

注意: 启动设备后,请耐心等待设备完全初始化(命令行提示符稳定出现)。截图示例将在关键步骤提供。

  1. 搭建拓扑:

    • 启动eNSP,按上面描述的拓扑图拖放设备并连线。

    • 启动所有设备。(截图1:eNSP拓扑图)

  2. 配置交换机 (S5700):

    • 双击打开S5700命令行。

    • 创建VLAN:

 system-view
vlan batch 10 20  // 同时创建VLAN 10和20

配置连接PC的端口为Access模式并划分VLAN:

假设PC1连接G0/0/1,PC2连接G0/0/2。

 interface GigabitEthernet 0/0/1
  port link-type access      // 设置为Access模式
  port default vlan 10       // 划分到VLAN 10
  quit

interface GigabitEthernet 0/0/2
  port link-type access      // 设置为Access模式
  port default vlan 20       // 划分到VLAN 20
  quit

 配置连接路由器的端口为Trunk模式并允许相关VLAN通过:

  • 假设连接路由器的接口是G0/0/24 (使用GE口)。

 interface GigabitEthernet 0/0/24
  port link-type trunk       // 设置为Trunk模式
  port trunk allow-pass vlan 10 20  // 允许VLAN 10和20的流量通过
  quit

 保存配置:

 save  // 确认保存

 

配置路由器 (AR2220):

  • 双击打开AR2220命令行。

 system-view
interface GigabitEthernet 0/0/0.10  // 创建子接口.10
  dot1q termination vid 10         // 指定该子接口处理VLAN 10的流量 (封装802.1Q)
  ip address 192.168.10.1 255.255.255.0  // 配置VLAN 10的网关IP
  arp broadcast enable             // 启用ARP广播(重要!否则子接口无法主动发ARP)
  quit

interface GigabitEthernet 0/0/0.20  // 创建子接口.20
  dot1q termination vid 20         // 指定该子接口处理VLAN 20的流量
  ip address 192.168.20.1 255.255.255.0  // 配置VLAN 20的网关IP
  arp broadcast enable             // 启用ARP广播
  quit

 (可选但推荐)启用路由器的IP路由功能: 默认通常是开启的,但确认一下:

  ip routing  // 确保IP路由已启用

 保存配置:

 save

 

  1. 配置PC:

    • 双击PC1,在配置窗口设置:

      • IP地址: 192.168.10.10

      • 子网掩码: 255.255.255.0

      • 网关: 192.168.10.1 (指向路由器子接口GE0/0/0.10)

    • 双击PC2,在配置窗口设置:

      • IP地址: 192.168.20.20

      • 子网掩码: 255.255.255.0

      • 网关: 192.168.20.1 (指向路由器子接口GE0/0/0.20)

    • (截图4:PC1和PC2的IP配置)

 

五、验证测试

1. 关键测试命令与预期输出

# PC1测试网关(预期:成功)
C:\\> ping 192.168.10.1

Pinging 192.168.10.1 with 32 bytes of data:
Reply from 192.168.10.1: bytes=32 time=1ms TTL=255
Reply from 192.168.10.1: bytes=32 time<1ms TTL=255
Reply from 192.168.10.1: bytes=32 time<1ms TTL=255
Reply from 192.168.10.1: bytes=32 time<1ms TTL=255

# PC1测试PC2(预期:成功)
C:\\> ping 192.168.20.20

Pinging 192.168.20.20 with 32 bytes of data:
Reply from 192.168.20.20: bytes=32 time=2ms TTL=254
Reply from 192.168.20.20: bytes=32 time=1ms TTL=254
Reply from 192.168.20.20: bytes=32 time=1ms TTL=254
Reply from 192.168.20.20: bytes=32 time=2ms TTL=254

# 路由器查看路由表(预期:包含两个直连网段)
display ip routing-table

Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
         Destinations : 5        Routes : 5

Destination/Mask    Proto   Pre  Cost     Flags NextHop         Interface
      192.168.10.0/24  Direct  0    0           D   192.168.10.1    GE0/0/0.10
      192.168.10.1/32  Direct  0    0           D   127.0.0.1       GE0/0/0.10
      192.168.20.0/24  Direct  0    0           D   192.168.20.1    GE0/0/0.20
      192.168.20.1/32  Direct  0    0           D   127.0.0.1       GE0/0/0.20

 2. 抓包分析关键点

 # Trunk链路上抓包分析(eNSP抓包工具)
1. PC1 -> 网关:
   - 源MAC: PC1_MAC
   - 目的MAC: 路由器GE0/0/0.10_MAC
   - VLAN标签: 10 (0x8100 0x000a)
   
2. 路由器 -> PC2:
   - 源MAC: 路由器GE0/0/0.20_MAC
   - 目的MAC: PC2_MAC
   - VLAN标签: 20 (0x8100 0x0014)

七、总结与扩展

单臂路由 vs 三层交换机路由对比

特性 单臂路由 三层交换机(SVI) 实现方式 路由器子接口+Trunk 交换机虚拟接口(SVI) 性能 较低(CPU处理封装/解封装) 极高(硬件ASIC加速) 带宽瓶颈 单条物理链路 背板带宽 配置复杂度 中等 简单 适用场景 小型网络/VLAN较少 中大型企业网络 成本 低(节省路由器接口) 较高(需三层交换机)

 三层交换机配置示例(对比参考)

 # 在三层交换机上配置SVI实现VLAN间路由
system-view
vlan batch 10 20

interface Vlanif 10
 ip address 192.168.10.1 255.255.255.0
 quit

interface Vlanif 20
 ip address 192.168.20.1 255.255.255.0
 quit

# 端口配置(Access模式,同单臂路由的交换机配置)

六、可能遇到的问题与排错

  1. Ping不通网关:

    • 检查物理连接和接口状态: 确保eNSP中线路连接正确,设备接口物理状态UP。在路由器/交换机用 display interface 查看。

    • 检查PC IP和网关配置: 确认PC的IP地址、掩码、网关填写无误。

    • 检查交换机Access端口VLAN配置: 确认连接PC的端口确实配置了正确的port link-type accessport default vlan

    • 检查路由器子接口配置: 确认子接口的dot1q termination vid值正确,IP地址配置正确,并且 arp broadcast enable 已配置。

  2. Ping不通对端PC:

    • 确保网关能Ping通: 先解决PC Ping不通自己网关的问题。

    • 检查交换机Trunk配置: 确认连接路由器的交换机端口配置了port link-type trunkport trunk allow-pass vlan 10 20 (包含需要通信的VLAN)。

    • 检查路由器子接口配置: 再次确认两个子接口的VLAN ID和IP地址配置正确。

    • 检查路由器路由表: 在路由器上使用 display ip routing-table, 应该能看到192.168.10.0/24 和 192.168.20.0/24 的直连 (Direct) 路由。(截图8:路由器路由表)

    • 抓包分析: eNSP的抓包工具是强大的排错手段。在交换机连接路由器的Trunk端口或者路由器物理端口上启动抓包,观察Ping过程中的数据帧是否携带了正确的VLAN标签,ARP请求/响应是否正常。

 

七、总结

通过本次eNSP实验,我们成功实现了:

  1. VLAN的创建与端口划分: 在交换机上隔离了PC1和PC2到不同的广播域(VLAN 10和20)。

  2. 单臂路由配置: 在路由器上利用一个物理接口(GE0/0/0)创建了两个逻辑子接口(.10和.20),分别作为VLAN 10和VLAN 20的网关。

  3. VLAN间路由验证: 成功让属于不同VLAN的PC1和PC2实现了三层IP通信。

单臂路由的优点: 节省路由器物理接口,成本较低,适合小型网络或VLAN数量不多的场景。
单臂路由的缺点: 所有VLAN间流量都需要经过路由器这一条物理链路,容易形成瓶颈。路由器需要处理所有VLAN间流量的封装/解封装,性能压力较大。

实际应用中的演进: 在稍具规模的企业网中,更常用三层交换机(Layer 3 Switch) 通过 SVI(Switch Virtual Interface) 来实现VLAN间路由。三层交换机在硬件层面集成路由功能,性能远高于单臂路由方案。eNSP同样支持三层交换机的配置,后续博客可以探讨。

八、eNSP 的优势与学习建议

  • 零成本: 免费获取和使用。

  • 高度仿真: 模拟华为主流路由器和交换机,支持丰富的协议和功能。

  • 安全便捷: 无需真实设备,避免误操作风险,随时随地搭建复杂网络。

  • 强大工具: 集成抓包、设备监控、拓扑绘制,方便学习和排错。

学习建议:

  1. 从基础拓扑开始: 先掌握单台设备基本配置、直连路由、静态路由。

  2. 理解协议原理: eNSP是实践工具,核心是对OSI/TCP/IP模型、ARP、VLAN、STP、RIP/OSPF等协议的理解。

  3. 善用帮助和文档: 设备命令行内置?帮助,华为官网提供详细配置指南。

  4. 多实验、多排错: 网络技能是“配”出来的,遇到问题利用抓包和display命令仔细分析。

 

参考文献/延伸阅读

  1. 华为eNSP官方文档

  2. 华为数通学习指南 (HCIA/HCIP相关)

  3. RFC 一致文档 (如802.1Q)

  4. 经典网络教材 (如《计算机网络:自顶向下方法》、《TCP/IP详解卷1》)