eNSP综合组网实验:VLAN、单臂路由与静态路由全流程
准备HCIA/HCIP认证的朋友十有八九都跟eNSP这个模拟器打过交道。但说实话很多人练的都是单点实验今天配个VLAN明天配个静态路由真正把二层交换、VLAN划分、单臂路由、直连路由和静态路由串成一张完整组网拓扑来做的反而比较少。我自己备考HCIA那会儿最想要的就是一个大而全的综合实验——既能覆盖考点又能模拟真实项目里的组网逻辑。这篇文章就是干这个事的用eNSP搭一个两台二层交换机、两台路由器、四个VLAN的综合组网从拓扑规划、IP编址、接口配置、路由配置到连通性验证和故障排查全链路走一遍。适合正在准备HCIA/HCIP的朋友也适合已经入行想梳理组网基础的同学。1. 实验目标与拓扑设计为什么这个组网能覆盖HCIA/HCIP大半考点1.1 综合实验的价值考点之间是互相咬合的单看每一个知识点都不难VLAN是什么、Access口和Trunk口有什么区别、单臂路由怎么做、静态路由怎么写。但这些知识点一旦放到同一张拓扑里它们之间就会互相影响。比如VLAN没在交换机上创建单臂路由配得再对也没用Trunk口没放行VLAN子接口收不到任何报文静态路由下一跳写错跨路由器就是一直ping不通。这种牵一发动全身的联调过程恰恰是考试和真实项目里最考验人的地方。从考点覆盖来看这份实验清单基本对应HCIA的核心内容VLAN的创建、Access口和Trunk口的配置802.1Q标签的原理与子接口dot1q termination的关系单臂路由的完整实现直连路由自动生成的机制静态路由的配置与路由选路分层排错命令的使用display vlan、display ip routing-table、ping等对准备HCIP的朋友这份实验的价值在于打牢基础。HCIP的路由交换题目底层逻辑还是这些VLAN隔离、三层网关、路由可达。基础不牢后面学OSPF、VXLAN之类的坑会一个接一个。1.2 拓扑规划两台交换机、两台路由器、四个VLAN这个实验的拓扑我采用最清晰、也最容易在eNSP里复现的形态设备选型如下SW1和SW2是二层交换机型号选S5700R1和R2是路由器型号选AR2220eNSP里常用的那个路由器镜像即可PC1、PC2接SW1分别属于VLAN 10和VLAN 20PC3、PC4接SW2分别属于VLAN 30和VLAN 40SW1的上联口接R1的GE0/0/0链路类型为TrunkR1在这个物理口上创建子接口终结VLAN 10和VLAN 20的网关SW2的上联口接R2的GE0/0/1链路类型为TrunkR2在对应物理口上创建子接口终结VLAN 30和VLAN 40的网关R1的GE0/0/1与R2的GE0/0/0直连互联网段为10.0.12.0/30。这样设计的好处是每台路由器都同时承担单臂路由、直连路由、静态路由三种角色。PC1到PC2的通信走单臂路由PC1到PC3的通信则要经过VLAN接入→单臂路由→路由器直连链路→静态路由→对端单臂路由的完整链路一次实验把二三层转发全部串起来。提示这里刻意不用三层交换机而是用路由器做VLAN间路由目的是把单臂路由这个考点单独拎出来练。真实项目里很多场景会用三层交换机的VLANIF接口但单臂路由的原理理解到位了VLANIF完全是同一套思路的另一种实现后面想扩展随时可以切换。1.3 IP编址给每个角色分配合法的地址IP规划是组网实验里最容易被忽略、但出错代价最高的一步。我的建议是在eNSP里连线之前先拿张纸把地址表写清楚想清楚每台设备的每个接口属于哪个网段、网关是谁再动手配。设备/接口所属VLAN/网段IP地址说明PC1VLAN 10 / 192.168.10.0/24192.168.10.1/24网关192.168.10.254PC2VLAN 20 / 192.168.20.0/24192.168.20.1/24网关192.168.20.254PC3VLAN 30 / 192.168.30.0/24192.168.30.1/24网关192.168.30.254PC4VLAN 40 / 192.168.40.0/24192.168.40.1/24网关192.168.40.254R1 GE0/0/0.10VLAN 10192.168.10.254/24单臂路由子接口R1 GE0/0/0.20VLAN 20192.168.20.254/24单臂路由子接口R2 GE0/0/1.30VLAN 30192.168.30.254/24单臂路由子接口R2 GE0/0/1.40VLAN 40192.168.40.254/24单臂路由子接口R1 GE0/0/1互联网段10.0.12.0/3010.0.12.1/30与R2直连R2 GE0/0/0互联网段10.0.12.0/3010.0.12.2/30与R1直连这里解释一下为什么路由器之间的互联链路用/30这个网段只需要两端的两个可用地址10.0.12.1和10.0.12.2用/30既不浪费地址又能避免广播地址和网段内其他设备冲突。其实用/24也能跑通实验但实际项目里点对点链路习惯用/30这是值得从实验阶段就养成的编址习惯。网关地址统一用.254而不是.1是我个人的小习惯。这样可以让PC地址和网关地址从视觉上明显区分开排错的时候看一眼地址就知道谁是网关、谁是终端不用再对着表格翻。2. 交换机侧配置VLAN、Access口与Trunk口的边界2.1 SW1的完整配置命令先进入系统视图创建VLANsystem-view sysname SW1 vlan batch 10 20然后配置连接PC的接口为Access口分别划入对应VLANinterface GigabitEthernet0/0/1 port link-type access port default vlan 10 quit interface GigabitEthernet0/0/2 port link-type access port default vlan 20 quit配置上联R1的接口为Trunk口并放行VLAN 10和VLAN 20interface GigabitEthernet0/0/3 port link-type trunk port trunk allow-pass vlan 10 20 quit这里面有几个细节必须说清楚。第一个是vlan batch命令如果不在交换机上先创建VLAN后面的port default vlan就是空的接口属于一个不存在的VLAN报文进来也没法正确打标二层转发直接失败。第二个是Access口的语义Access口只属于一个VLAN收到PC发来的普通以太网帧时交换机会根据port default vlan给帧打上对应的802.1Q标签再在交换机内部转发向PC发送帧时会把标签剥离掉PC看到的始终是普通以太网帧。第三个是Trunk口的语义Trunk口允许携带多个VLAN的Tagged帧经过。SW1的GE0/0/3上联R1它要同时承载VLAN 10和VLAN 20的数据所以必须是Trunk并且要显式放行这两个VLAN。注意在设备默认配置下Trunk口只放行VLAN 1。不写port trunk allow-pass vlan 10 20VLAN 10和20的帧根本过不去子接口上抓包什么都看不到。这个特性在eNSP里也是严格模拟的千万别想当然。2.2 SW2的配置与SW1的差异SW2的逻辑和SW1完全一样只是VLAN编号和PC的归属不同。很多人在这个实验里把SW2配错不是因为命令不会而是因为照抄SW1后忘了改编号。配置时我把SW2的命令原样贴在这里方便对照检查system-view sysname SW2 vlan batch 30 40 interface GigabitEthernet0/0/1 port link-type access port default vlan 30 quit interface GigabitEthernet0/0/2 port link-type access port default vlan 40 quit interface GigabitEthernet0/0/3 port link-type trunk port trunk allow-pass vlan 30 40 quit2.3 交换机侧的验证命令配置完交换机先别急着配路由器用几条display命令确认状态为后面排错留一份健康基线display vlan查看VLAN是否存在以及每个VLAN下有哪些接口display port vlan查看具体端口的工作模式、PVID和放行VLAN列表display interface GigabitEthernet0/0/3查看Trunk口的物理状态和协议状态是否为Up。我习惯在配路由器之前先看一眼交换机的MAC地址表display mac-address。如果PC1连上SW1后在MAC地址表里能看到PC1的MAC说明二层链路和Access口配置已通如果学不到说明PC没启动、网线没接对或Access口VLAN配错。这种从底层往上查的思路在整个实验的排错阶段会反复用到。3. 路由器侧配置单臂路由子接口的完整命令3.1 单臂路由的原理一根物理线路多个逻辑网关单臂路由的单臂指的是路由器只用一根物理线缆连接交换机却在物理接口上划出多个子接口每个子接口终结一个VLAN的流量。子接口收到的以太网帧是带VLAN Tag的路由器通过子接口上配置的dot1q termination vid来判断帧属于哪个VLAN从而用对应的IP地址作为该VLAN的网关。可以这样理解物理接口就像一个公寓大门子接口是公寓里的各个房间。门还是那一个但每个房间有门牌号VLAN ID。交换机的Trunk口把来自不同VLAN的帧都送到大门路由器看门牌号决定交给哪个房间处理。这也解释了为什么交换机上联口必须是Trunk——只有Trunk口才会让Tagged帧穿过链路到达路由器。3.2 R1的配置两个子接口加一个互联接口R1的完整配置如下system-view sysname R1 interface GigabitEthernet0/0/0.10 dot1q termination vid 10 ip address 192.168.10.254 255.255.255.0 arp broadcast enable quit interface GigabitEthernet0/0/0.20 dot1q termination vid 20 ip address 192.168.20.254 255.255.255.0 arp broadcast enable quit interface GigabitEthernet0/0/1 ip address 10.0.12.1 255.255.255.252 quit这段配置里有三个关键点任何一个出错都会导致实验失败。第一dot1q termination vid 10。这条命令告诉路由器子接口专门处理VLAN 10的Tagged帧。没有这条命令子接口就像一个没有门牌号的信箱帧到了也不知道往哪投。一个子接口只能绑定一个VLAN ID所以VLAN 10和VLAN 20必须用两个子接口。第二arp broadcast enable。在eNSP中这条命令在很多版本和镜像下是必须的。原因是子接口默认不处理ARP广播报文而PC要ping网关第一步必须通过ARP解析到网关的MAC地址。如果不开启ARP广播使能PC发出谁是192.168.10.254的ARP请求得不到回应Ping自然失败。这个坑几乎每个第一次做单臂路由实验的人都会踩网上讨论也很多建议直接养成写上它的习惯。第三子接口的IP地址必须和VLAN内PC的IP处于同一网段并且与你规划的网关一致。如果PC的网关填了192.168.10.254而子接口配的是192.168.10.100PC的ARP请求根本找不到网关三层永远不通。3.3 R2的配置对称设计但千万别照抄端口编号R2的配置逻辑和R1一样但接口编号和VLAN不同。这里有个小小的陷阱R1用GE0/0/0做单臂路由、GE0/0/1做互联R2则相反用GE0/0/1做单臂路由、GE0/0/0做互联。如果照抄R1而不看网线实际插在哪个口很容易把IP配到错误的接口上。system-view sysname R2 interface GigabitEthernet0/0/0 ip address 10.0.12.2 255.255.255.252 quit interface GigabitEthernet0/0/1.30 dot1q termination vid 30 ip address 192.168.30.254 255.255.255.0 arp broadcast enable quit interface GigabitEthernet0/0/1.40 dot1q termination vid 40 ip address 192.168.40.254 255.255.255.0 arp broadcast enable quit配置完成后用display ip interface brief确认所有接口状态。物理接口应该显示UpIP地址正确子接口也应该是Up状态。如果子接口一直Down通常的原因是物理口没有接对网线或者对端交换机端口没有起来。先把物理层搞定再谈三层配置。4. 静态路由与路由选路跨设备互通的最后一块拼图4.1 直连路由是怎么自动出现的路由器只要在接口上配置了IP地址并且接口是Up状态系统就会自动生成一条直连路由。比如R1的GE0/0/0.10配了192.168.10.254/24路由表里就会自动出现一条192.168.10.0/24出接口是GE0/0/0.10。直连路由是不用写的路由。这也解释了为什么单臂路由配完之后VLAN 10和VLAN 20已经能互通R1知道这两个网段都挂在它自己身上报文从子接口进来查路由表发现目标网段是直连直接从对应子接口转发出去。但问题来了R1对远端的VLAN 30和VLAN 40一无所知R2对VLAN 10和VLAN 20也一无所知。PC1发给PC3的报文到了R1之后R1查路由表发现192.168.30.0/24不在直连列表里也没有其他任何路由只能把报文丢弃。所以必须在两台路由器上互相配置静态路由把各自不认识的网段指给对方。4.2 静态路由配置下一跳的选择逻辑R1需要告诉系统去往192.168.30.0/24和192.168.40.0/24把报文交给10.0.12.2ip route-static 192.168.30.0 255.255.255.0 10.0.12.2 ip route-static 192.168.40.0 255.255.255.0 10.0.12.2R2需要告诉系统去往192.168.10.0/24和192.168.20.0/24把报文交给10.0.12.1ip route-static 192.168.10.0 255.255.255.0 10.0.12.1 ip route-static 192.168.20.0 255.255.255.0 10.0.12.1静态路由的核心是下一跳的写法。这里写的是对端路由器的互联IP地址含义是把报文交给这个IP至于怎么送到它那属于直连网段的事。因为10.0.12.0/30是直连网段R1可以通过ARP解析到10.0.12.2的MAC地址再把报文封装成二层帧发出去。华为路由器上也支持把静态路由写成出接口的形式比如ip route-static 192.168.30.0 255.255.255.0 GigabitEthernet0/0/1。但对于以太网链路我强烈建议写下一跳而不是出接口。原因涉及路由递归和链路状态判断的细节出接口方式下路由器会先把下一跳当作直连来处理如果中间链路存在多条路径或封装变化容易出现查表行为和预期不一致的情况写下一跳更贴近真实的转发逻辑也更方便后期调整路径。小技巧如果路由条目特别多也可以用缺省路由收尾。比如R2如果只有一条出口可以写ip route-static 0.0.0.0 0.0.0.0 10.0.12.1让所有去往未知网段的流量都交给R1。但在本实验中显式写出四条明细静态路由更贴合HCIA/HCIP的考点也能让你在路由表里看清每一条条目的来源和目的。4.3 路由表检查display ip routing-table怎么看配置完静态路由一定要在两台路由器上都看一眼路由表display ip routing-tableR1上应该能看到以下关键条目192.168.10.0/24Direct直连192.168.20.0/24Direct直连10.0.12.0/30Direct直连192.168.30.0/24Static静态192.168.40.0/24Static静态如果静态路由条目没有出现最常见的原因是下一跳不可达——也就是说10.0.12.2这个地址对应的R2接口没有配IP或者两台路由器之间的链路没有Up。还有一个容易忽略的原因是掩码写错比如把192.168.30.0/24写成了192.168.30.0/16路由表里会出现一条莫名其妙的大范围路由排错时非常迷惑。5. 验证与排错从PC1到PC4的完整连通性测试5.1 分层验证不要一上来就跨设备ping配置全做完PC1直接ping PC4ping不通怎么办这是每个做综合实验的人都会经历的瞬间。我的经验是永远不要从最远的目标开始验证而是从最近的目标开始一层一层往外测。第一层PC1 ping 127.0.0.1确认网卡正常启动。 第二层PC1 ping自己的网关192.168.10.254确认VLAN、Trunk、单臂路由子接口、ARP全部正常。 第三层PC1 ping PC2192.168.20.1确认同一台路由器下的跨VLAN单臂路由转发正常。 第四层PC1 ping R2互联接口10.0.12.2确认两台路由器的直连链路和配置正常。 第五层PC1 ping PC3192.168.30.1确认静态路由和R2侧单臂路由正常。每一步ping不通问题就精确锁定在那一层不需要把整个拓扑从头翻一遍。这就是分层排查的价值——它把整个网络拆成了网关通不通、邻居通不通、远端正不正常三个独立问题。5.2 实验中最容易翻车的5个坑我把自己做这个实验踩过的坑以及朋友问过我的问题汇总成一张表希望能帮你节约一些查错时间现象大概率原因排查手段PC1 ping不通网关子接口缺arp broadcast enable在路由器上执行display arp发现无表项PC1 ping不通网关PC网关地址填错或IP与网关不在同一网段检查PC的网络属性配置PC1 ping不通PC2VLAN没创建或Trunk口没放行display vlan、display port vlanPC1 ping不通PC3静态路由缺失或下一跳错误两台路由器上分别display ip routing-tablePC1 ping不通PC3R2的子接口IP或网关配错display ip interface brief第一个坑值得单独多说两句eNSP的子接口在很多镜像里必须要配置arp broadcast enable才能响应ARP请求。很多人在真机或文档里见过单臂路由配置觉得dot1q termination ip address就够了结果在eNSP里PC就是ping不通网关。排查时看display arp发现路由器上一个ARP表项都没有原因就是子接口默认不处理ARP广播。补上这条命令后ARP表项正常生成ping立刻通过。第二个容易翻车的地方是静态路由的单向问题只写了R1去往对端的路由没写R2回程的路由。PC1发给PC3的报文过去了但PC3回复PC1的报文到了R2之后R2查路由表找不到192.168.10.0/24的条目直接丢弃。现象是PC1 ping R2互联地址通但ping PC3不通。遇到这种情况不要怀疑VLAN和单臂路由先把两台路由器的路由表都查一遍确认双向都有路由。提示在eNSP的PC命令行里做ping测试如果觉得第一次ARP解析导致超时误判可以多ping几次或者使用持续ping模式再终止。另外ping 目标IP默认发4个包如果前两个超时后两个通大概率是首次ARP解析造成的不代表链路不稳定。5.3 进阶验证tracert和抓包连通性测试通过之后如果想把这个实验的价值榨干还可以做两个进阶验证。第一个是路由追踪。在PC1上执行tracert 192.168.30.1可以看到完整路径第一跳是192.168.10.254R1子接口第二跳是10.0.12.2R2互联接口第三跳是192.168.30.254R2子接口。这条路径一次性把整个数据平面的转发链画了出来比看十遍路由表都直观。第二个是eNSP自带的抓包功能。在SW1的GE0/0/3这个Trunk口上启动抓包然后让PC1去ping PC2能看到两类关键报文一类是带VLAN 10标签的ARP请求和ICMP报文一类是带VLAN 20标签的回复报文。亲眼看到802.1Q标签里那四个字节的VLAN ID、Trunk口和Access口对标签的不同处理比背任何概念都管用。6. 回到HCIA/HCIP这份实验要练到什么程度才算过关6.1 对照考试内容的自检清单做完实验不等于学完了。我建议用下面这份清单自查每一条都能不看配置命令说清楚才算真正掌握VLAN的作用是什么为什么需要VLANAccess口和Trunk口的本质区别是什么802.1Q标签的意义Tagged帧和Untagged帧的区别Trunk口为什么要放行VLAN单臂路由的原理为什么路由器需要子接口dot1q termination vid做了什么直连路由什么时候自动出现接口Down掉之后直连路由会怎样静态路由的下一跳应该写什么出接口写法和下一跳写法为什么推荐后者排错思路ping不通网关、ping不通同路由器下其他VLAN、ping不通对端设备分别先查什么这些内容在HCIA的考试里都是高频考点在HCIP的笔试和实验题里也经常以组合形式出现。尤其是排错思路这一条很多考生知识都会但遇到综合故障就不知道从哪下手原因就是平时缺少分层排查的训练。6.2 从HCIA到HCIP这个实验还可以怎么扩展如果你已经能不看笔记把这个实验从头到尾配完并且能独立处理上面说的那5个坑我建议做三个方向的扩展。第一个方向把路由器换成三层交换机。在S5700上创建VLANIF 10、VLANIF 20配置IP后直接实现VLAN间路由再配合静态路由打通远端网段。对比一下VLANIF和单臂路由子接口的实现差异能帮你理解为什么企业网核心更常用三层交换机也是HCIP路由交换的基础内容。第二个方向把静态路由换成动态路由。在R1和R2上启用OSPF宣告所有网段观察路由表的条目来源从Static变成OSPF理解管理距离、度量值和路由优先级的概念。HCIP必考的OSPF恰好可以作为这个实验的自然延伸。第三个方向做网关冗余实验。增加一台核心路由器让两台路由器对VLAN 10/VLAN 20的网关做VRRP备份验证主备切换时的网关漂移和ARP更新过程。这个方向涉及的知识点在面试和实际项目中都非常爱被问到。我在实际备考HCIA的时候这个综合实验前前后后做了三遍第一遍看教程抄命令第二遍不看教程自己配第三遍故意把所有坑都踩一遍再排掉。收获最大的就是第三遍因为排错才是真正逼着你把原理和命令对应起来的环节。工作以后回头看早期在eNSP里养成的分层排查习惯在真机上排查网络故障时依然是我最顺手的工具。希望这份实验记录也能帮你把组网的基础打得扎实一点。