华为ENSP实战:VLAN+DHCP+静态路由+NAT实现多部门上网 1. 项目概述与实验目标最近在带新人做网络基础实验发现很多朋友对出口NAT网络地址转换的配置尤其是结合VLAN、DHCP和路由的完整流程理解上总是差那么一口气。纸上得来终觉浅绝知此事要躬行。正好手头有个挺典型的公司多部门上网场景实验我用华为的ENSP模拟器完整跑了一遍把每一步的配置逻辑、背后的原理以及我踩过的那些坑都详细记录下来。这个实验模拟了一个典型的中小型企业网络市场部VLAN 2和技术部VLAN 3位于不同网段都需要通过公司唯一的路由器访问互联网。核心交换机负责内网隔离和地址分配出口路由器则肩负着网关、NAT转换和路由转发的重任。最终的目标很明确让两个部门的PC都能自动获取IP地址并成功ping通模拟互联网的公网地址192.169.1.2。别看目标简单里面涉及了二层交换、三层路由、动态地址分配和地址转换等多个网络核心技术的联动是检验你网络知识是否扎实的一块很好的试金石。2. 实验拓扑设计与设备选型考量2.1 拓扑结构解析我们先来看看这个实验的“骨架”——网络拓扑。拓扑是网络设计的蓝图理解它才能理解数据包的旅行路径。本次实验采用了经典的三层架构模型接入层、汇聚层在本实验中核心交换机兼任、核心层出口路由器。终端层PC1和PC2分别模拟市场部和技术部的用户主机。它们不需要配置静态IP而是通过DHCP自动获取。接入/汇聚层一台华为三层交换机实验中命名为CORE。它在这里扮演了多重角色二层接入交换机通过Access端口将PC1和PC2划入不同的VLAN2和3实现基础的广播域隔离。三层路由交换机为VLAN 2和VLAN 3创建VLANIF接口并配置IP地址192.168.2.254/24和192.168.3.254/24充当这两个网段的网关。同时它与路由器互联的接口也划入一个独立的VLAN 100。DHCP服务器在VLANIF接口上启用基于接口的DHCP服务为各自VLAN内的PC分配IP地址、网关和DNS实验未配DNS。出口层一台华为路由器实验中命名为ROUTER。这是连接内网和公网的关键节点核心功能包括内网网关其G0/0/1接口IP:192.168.100.1/24是核心交换机VLAN 100的网关。NAT设备在连接公网的G0/0/0接口上配置NAT Outbound将内网192.168.0.0/16的私网地址转换为公网接口地址192.169.1.1。路由枢纽配置指向内网网段和公网默认路由确保数据包能正确往返。模拟公网另一台独立的路由器仅配置一个公网IP地址192.169.1.2/24用于模拟互联网上的某个服务器作为我们ping测试的目标。注意很多初学者会混淆交换机上port default vlan和路由器上ip address的配置场景。记住交换机端口下的port default vlan是给不带标签的数据帧打上VLAN标签Access口或指定默认VLANHybrid/Trunk口属于二层操作。而路由器接口下的ip address是配置三层逻辑接口的IP地址用于路由。在这个拓扑里交换机与路由器之间的链路虽然在交换机侧用Access模式加入了VLAN 100但在路由器看来这只是一个普通的点到点三层链路路由器接口直接配置IP即可无需也不能配置VLAN。2.2 设备选型与模拟器避坑指南实验原文中特别提到了一句“华为的ENSP模拟器有的路由器NAT配置了不生效我在这里使用的是AR1220系列。” 这句话价值千金是典型的实战踩坑经验。我刚开始接触ENSP时也在这里栽过跟头。ENSP作为一款功能强大的免费模拟器其内部不同的路由器型号对应着不同的软件版本和特性集。像NAT、复杂的路由策略、某些安全特性等在低端或旧版的设备镜像中可能支持不全或者存在已知的Bug。AR1220系列属于中端企业路由器镜像其软件版本对基础NAT尤其是出方向NAT的支持非常稳定和完整。所以给你的建议是在进行任何涉及高级特性的实验前先确认所用设备镜像的可靠性。对于华为数据通信实验AR1220、AR2220、AR3260等系列的路由器以及S5700、S6720等系列的交换机都是经过大量验证的“稳定选择”。你可以在ENSP的官方论坛、技术社区或者像本文这样的实验分享中积累这些“设备选型白名单”。这能帮你节省大量排查“为什么配置对了却不生效”的时间。3. 核心交换机配置详解核心交换机CORE的配置是整个内网的基石我们需要完成VLAN划分、三层接口配置、DHCP服务开启以及上联路由的设定。3.1 基础环境与VLAN规划首先我们进入系统视图并关闭信息中心undo info-center enable以避免大量日志干扰我们的操作界面。然后为设备命名以便管理。system-view [Huawei] undo info-center enable [Huawei] sysname CORE接下来是VLAN规划。我们创建三个VLANVLAN 2分配给市场部网段规划为192.168.2.0/24。VLAN 3分配给技术部网段规划为192.168.3.0/24。VLAN 100作为管理/互联VLAN用于核心交换机与出口路由器的对接网段规划为192.168.100.0/24。使用vlan batch命令可以一次性批量创建非常高效。[CORE] vlan batch 2 3 1003.2 三层接口与DHCP服务配置创建好VLAN后需要为每个VLAN配置一个三层逻辑接口VLANIF并在这个接口上配置IP地址使其成为该网段的网关。[CORE] interface Vlanif 2 [CORE-Vlanif2] ip address 192.168.2.254 24 // 配置VLAN 2的网关IP [CORE-Vlanif2] dhcp select interface // 启用基于此接口的DHCP服务 [CORE-Vlanif2] quit [CORE] interface Vlanif 3 [CORE-Vlanif3] ip address 192.168.3.254 24 [CORE-Vlanif3] dhcp select interface [CORE-Vlanif3] quit [CORE] interface Vlanif 100 [CORE-Vlanif100] ip address 192.168.100.2 24 // 配置与路由器互联的IP [CORE-Vlanif100] quit关键点解析dhcp select interface是华为设备上一个非常便捷的DHCP配置方式。执行此命令后交换机会自动以该接口的IP地址作为客户端的网关并从该接口所在网段中排除接口IP地址后自动分配一个地址池给客户端。无需手动创建地址池和配置网关、DNS等选项非常适合小型、简单的网络环境。3.3 二层接口配置与链路类型选择现在我们需要将物理端口划分到对应的VLAN中。连接PC的端口G0/0/1, G0/0/2这些端口连接的是终端设备PC它们发送和接收的是不带VLAN标签的“普通”以太网帧。因此我们将端口链路类型设置为access并指定其所属的VLAN。[CORE] interface GigabitEthernet 0/0/1 [CORE-GigabitEthernet0/0/1] port link-type access [CORE-GigabitEthernet0/0/1] port default vlan 2 // 将端口划入VLAN 2 [CORE-GigabitEthernet0/0/1] quit [CORE] interface GigabitEthernet 0/0/2 [CORE-GigabitEthernet0/0/2] port link-type access [CORE-GigabitEthernet0/0/2] port default vlan 3 [CORE-GigabitEthernet0/0/2] quit连接路由器的端口G0/0/3原文在这里的注释提到了两种可能“设置为access路由器才能识别或者trunk端口设置PVID。” 这是一个需要深入理解的细节。方案一Access模式这是本实验采用的方式。将交换机连接路由器的端口也设为Access并归属到VLAN 100。这意味着从该端口发出的数据帧会被剥离VLAN 100的标签以纯二层帧的形式送达路由器。路由器接口G0/0/1直接配置IP地址192.168.100.1/24。此时这条链路是一个纯粹的三层点到点链路VLAN 100仅在交换机内部有意义。这是交换机与路由器做三层对接时最简单、最常用的方法。方案二Trunk模式如果将端口设为Trunk并允许VLAN 100通过同时设置端口的PVIDPort VLAN ID为100。那么从交换机发往路由器的、属于VLAN 100的数据帧会带着标签发出。这就要求路由器的接口必须支持子接口Sub-interface或能够处理带VLAN标签的帧部分设备支持但非标准做法。通常我们会在路由器上创建子接口如G0/0/1.100并封装dot1q再配置IP地址。这种方式常用于“单臂路由”场景即一台路由器通过一个物理接口为多个VLAN提供网关服务。在本实验的拓扑中路由器只有一个接口与交换机相连且只为VLAN 100服务因此使用Access模式是更简洁、更推荐的选择。我们采用方案一[CORE] interface GigabitEthernet 0/0/3 [CORE-GigabitEthernet0/0/3] port link-type access [CORE-GigabitEthernet0/0/3] port default vlan 100 [CORE-GigabitEthernet0/0/3] quit3.4 路由配置指向出口网关核心交换机CORE自身有两个直连网段192.168.2.0/24和192.168.3.0/24以及一个与路由器直连的网段192.168.100.0/24。对于PC要访问的公网192.169.1.0/24及其他所有未知网段CORE并不知道路径。因此我们需要在CORE上配置一条默认路由告诉它“所有你不知道怎么走的数据包都发给192.168.100.1路由器去处理。”[CORE] ip route-static 0.0.0.0 0.0.0.0 192.168.100.1这条命令中0.0.0.0 0.0.0.0代表任意目标网络192.168.100.1就是下一跳地址即路由器内网接口的IP。4. 出口路由器配置详解路由器ROUTER是连接内外网的枢纽配置重点是接口地址、路由和NAT。4.1 接口与基础路由配置首先同样进行基础设置和命名。system-view [Huawei] undo info-center enable [Huawei] sysname ROUTER配置内网接口连接核心交换机和公网接口的IP地址。[ROUTER] interface GigabitEthernet 0/0/1 [ROUTER-GigabitEthernet0/0/1] ip address 192.168.100.1 24 [ROUTER-GigabitEthernet0/0/1] quit [ROUTER] interface GigabitEthernet 0/0/0 [ROUTER-GigabitEthernet0/0/0] ip address 192.169.1.1 24 [ROUTER-GigabitEthernet0/0/0] quit接下来配置路由。路由器需要知道两件事如何到达内网PC所在的网段当公网服务器回包给PC源IP已被NAT转换为192.169.1.1时路由器需要将回包正确地送到核心交换机。因此需要添加指向内网网段的路由。[ROUTER] ip route-static 192.168.0.0 16 192.168.100.2这里使用了一条聚合路由192.168.0.0/16它涵盖了192.168.2.0/24和192.168.3.0/24等所有192.168.x.x的网段下一跳是核心交换机的VLANIF 100地址192.168.100.2。这比写两条明细路由更简洁。如何到达公网互联网对于内网PC发往公网的流量路由器需要知道出口。配置一条默认路由指向模拟公网的对端地址或者在实际环境中指向运营商的网关。[ROUTER] ip route-static 0.0.0.0 0.0.0.0 192.169.1.2注意在实际企业环境中这条默认路由的下一跳通常是运营商提供的网关地址而不是某个具体的公网服务器IP。本实验中192.169.1.2既是对端服务器也充当了“互联网网关”的角色这是一种简化的模拟。4.2 ACL与NAT Outbound配置NAT的核心是地址转换规则。我们需要定义一个访问控制列表ACL来匹配需要被转换的内网私网地址流量。[ROUTER] acl 2000 [ROUTER-acl-basic-2000] rule permit source 192.168.0.0 0.0.255.255 [ROUTER-acl-basic-2000] quit这里创建了基本ACL 2000并添加了一条规则允许源IP地址为192.168.0.0/16网段的流量。0.0.255.255是反掩码表示前16位192.168必须匹配后16位任意。这条ACL定义了哪些内网地址有资格进行NAT转换。然后在连接公网的接口G0/0/0上应用NAT Outbound策略并关联刚才定义的ACL。[ROUTER] interface GigabitEthernet 0/0/0 [ROUTER-GigabitEthernet0/0/0] nat outbound 2000 [ROUTER-GigabitEthernet0/0/0] quit这条命令的含义是从该接口G0/0/0发出的、匹配ACL 2000的流量将其源IP地址转换为该接口的IP地址192.169.1.1。这是一种最常用的“一对一”或“多对一”的端口复用NAPTNetwork Address Port Translation方式。5. 模拟公网与测试验证5.1 公网路由器配置公网路由器的配置极其简单仅需配置接口IP用于模拟互联网上的一个节点。system-view [Huawei] interface GigabitEthernet 0/0/0 [Huawei-GigabitEthernet0/0/0] ip address 192.169.1.2 24 [Huawei-GigabitEthernet0/0/0] quit配置完成后可以测试一下与公司出口路由器公网地址的连通性确保底层链路是通的。[Huawei] ping 192.169.1.15.2 终端测试与NAT会话查看现在来到验证环节。在ENSP中启动PC1和PC2它们应该能通过DHCP自动获取到192.168.2.0/24和192.168.3.0/24网段的IP地址网关分别是192.168.2.254和192.168.3.254。在PC1或PC2的命令行中执行ping 192.169.1.2如果配置全部正确你应该能看到成功的回复。最关键的验证步骤在出口路由器ROUTER上使用display nat session all命令查看NAT会话表。这是证明NAT正在工作的铁证。[ROUTER] display nat session all你会看到类似原文输出的会话信息例如NAT Session Table Information: Protocol: ICMP(1) SrcAddrVpn: 192.168.2.253 // 内网PC的真实私网IP DestAddrVpn: 192.169.1.2 // 目标公网IP ... NAT-Info NewSrcAddr: 192.169.1.1 // 转换后的公网IP路由器出口地址 NewDestAddr: ----这条记录清晰地展示了NAT的过程内网主机192.168.2.253访问192.169.1.2的ICMP请求在出口被转换成了源IP为192.169.1.1。回包时路由器再根据会话表将目标IP192.169.1.1转换回192.168.2.253从而完成一次完整的通信。6. 常见问题排查与深度解析实验做完了但真正学到东西往往是在排错过程中。下面我总结几个新手最容易出问题的地方和排查思路。6.1 PC无法获取IP地址DHCP失败现象PC显示“自动获取IP”失败或者获取到169.254.x.x这样的APIPA地址。排查思路检查物理与链路层确认PC与交换机、交换机与路由器之间的线缆在ENSP中已正确连接显示绿色小点。检查交换机端口是否为up状态display interface brief。检查VLAN配置在交换机上使用display vlan确认PC所连端口如G0/0/1确实被划分到了正确的VLAN如VLAN 2。检查三层接口与DHCP使用display ip interface brief Vlanif 2查看VLANIF 2接口的IP地址和状态是否为up。使用display dhcp server statistics查看DHCP报文统计看是否有Discover报文收到。防火墙干扰检查交换机和路由器上是否启用了防火墙并丢弃了DHCP报文默认情况下华为设备全局和接口的防火墙通常是关闭的。可以使用display current-configuration | include firewall或display current-configuration | include dhcp来快速查看相关配置。6.2 PC能获取IP但无法Ping通网关现象PC有正确的IP和网关但ping自己的网关如192.168.2.254不通。排查思路网关接口状态在交换机上检查VLANIF 2接口是否down可能是没有vlan 2的成员端口处于up状态导致VLANIF自动关闭。本地ARP表在PC上执行arp -a看是否能学习到网关192.168.2.254的MAC地址。如果为空说明ARP请求未收到回复可能是二层隔离或网关接口问题。在交换机上使用display arp vlan 2查看VLAN 2的ARP表看是否有PC的ARP条目。IP地址冲突极小概率但可能存在IP地址冲突。6.3 能Ping通网关但无法Ping通公网现象PC能ping通192.168.2.254但ping不通192.169.1.2。排查思路逐跳排查法第一步检查核心交换机路由在核心交换机CORE上ping 192.169.1.2。如果不通说明问题在CORE到ROUTER或更远。检查CORE的默认路由display ip routing-table | include 0.0.0.0/0。检查CORE与ROUTER的互联ping 192.168.100.1。第二步检查出口路由器路由与NAT在路由器ROUTER上ping 192.169.1.2。如果不通检查ROUTER的公网接口配置和默认路由。如果ROUTER能ping通192.169.1.2但PC不通问题很可能在NAT或回程路由。重点检查NAT使用display nat outbound查看NAT绑定是否正确。使用display nat session all在PC执行ping命令的同时查看确认是否有新的NAT会话生成。如果没有检查ACL 2000的规则是否匹配PC的源IPdisplay acl 2000以及NAT是否应用在了正确的出接口G0/0/0上。检查回程路由在模拟公网路由器上ping 192.169.1.1是通的因为它有直连路由。但公网路由器要回包给PC目的IP是192.169.1.1这个包能送到ROUTER。ROUTER收到后需要根据NAT会话表转换目的IP并根据路由表转发给CORE。确保ROUTER上有指向192.168.0.0/16的路由且下一跳192.168.100.2是可达的。6.4 NAT会话表无条目或转换异常现象display nat session all看不到任何条目或者看到的条目中NewSrcAddr不是预期的公网IP。深度解析流量未匹配ACLNAT Outbound只转换匹配ACL的流量。确保你的ACL规则rule permit source ...准确覆盖了需要上网的内网网段。可以使用display acl 2000查看匹配计数matched次数在PC上ping公网的同时观察计数是否增加。NAT未应用在出接口确认nat outbound 2000命令是在连接公网的物理接口或子接口视图下配置的。如果在环回口或错误接口上配置是不会生效的。存在更精确的路由导致流量不从NAT接口发出这是高级但常见的问题。假设路由器有多个出口比如G0/0/0和G0/0/1都连接公网。如果去往192.169.1.2的流量因为某种路由策略如策略路由、更精确的静态路由被导向了G0/0/1而NAT只配置在G0/0/0上那么转换就不会发生。务必确保需要NAT的流量其实际出接口就是你配置了NAT的那个接口。模拟器特性回归到最初的选择如果你严格按照配置操作却无效首先怀疑设备镜像问题。换用AR1220、AR2220等型号再试。这个实验虽然规模小但“麻雀虽小五脏俱全”完整串联了企业网络从内网接入到出口上网的核心配置环节。理解每一步背后的“为什么”比记住配置命令更重要。比如为什么交换机连路由器用Access模式为什么回程路由要指向核心交换机为什么NAT要配在公网接口上把这些原理搞通再遇到复杂的网络环境你也能从容地分解和设计。