第一堂课刚上完,HCSA第一次作业就布置下来了:一个小型分支网络,两台交换机、一台路由器、四台PC,要求划分VLAN、启用DHCP让终端自动获取IP、不同VLAN之间能互通,最后还要能访问模拟外网。刚拿到题目我心想,这不就几条命令的事?结果真正动手才发现,从eNSP环境折腾到最后一个拓扑全绿,断断续续花了一个周末。
这篇文章把我完成这次作业的全过程完整记录下来了:HCSA课程到底在考核什么、eNSP安装和启动有哪些需要提前避开的坑、拓扑和IP地址规划怎么做、每台设备的具体配置命令的含义、验证连通性的完整思路,以及我反复修改了好几遍才交出去的报告写法。通篇没有藏着掖着,适合正在做HCSA/HCIA实验,或者第一次在eNSP上做组网作业的初学者直接照着参考。
1. 第一次作业到底在考核什么,这不只是一份“配通”的作业
1.1 HCSA课程为什么把第一份作业设计成“组一个小网”
HCSA(华为认证ICT工程师,数通方向的课程体系里不少资料也直接写作HCIA)面向的是零基础入门,课程目标不是让你背命令,而是让你明白网络是怎么分层、VLAN为什么存在、VLAN之间怎么通信、路由器如何选路。第一次作业通常就是把前面十几节课的概念全部落到真实设备上。
我拿到的题目是一个很典型的“小型企业分支网络”需求:公司两个部门,办公和研发,各自处于一个VLAN;两台交换机提供接入;一台路由器用于出口;所有终端必须能从DHCP自动获取地址;部门内互通、跨部门也互通,并且还能访问上联的模拟外网。
这个题目看起来不起眼,实际上把整个HCSA课程的骨架串起来了:VLAN隔离、Trunk透传、VLANIF三层网关、静态路由、默认路由、DHCP。第一次作业就考这些东西不是拔高,而是老师用来确认你脑子里已经形成了“交换”和“路由”的清晰概念。
1.2 作业评分看的是哪几项
根据我这次交完作业后跟老师的交流,HCSA第一次作业的评分点主要集中在三个维度:
- 网络是否按要求实现:VLAN是不是真的隔离了,DHCP能不能自动分发地址,跨VLAN是否互通,外网访问是否通。这是硬指标,只要有一项不合格,报告写得再漂亮也会被打回来。
- 配置是否规范:设备命名是否清楚、VLAN和IP的编号是否合理统一、命令里有没有多余的废配置、有没有使用莫名其妙的静态路由。比如把VLAN命名成VLAN 1、把地址做成192.168.1.0/24一网打尽,虽然能通,但老师一眼就能看出你只是试出来的,不是设计出来的。
- 实验报告能不能讲清楚原理:拓扑图是否完整、地址规划表是否清晰、验证截图是否齐全、每条配置有没有说明作用。这一点非常容易被新手忽略,很多人觉得eNSP里跑通就完事了,结果报告写得像流水账,最后分数反而不如那些配置不完整但报告讲得明白的同学。
1.3 我这边的作业拓扑,给你一个可以直接用的参考
这次实验我用到的设备清单如下:
- AR2220 路由器两台:AR1作为办公网出口路由器,AR2模拟对端的ISP或外网设备。
- S5700交换机两台:SW1作为核心/汇聚,SW2作为接入。S5700在eNSP里支持VLANIF三层功能,做实验非常方便。
- PC终端四台:PC1、PC2属于办公VLAN,PC3、PC4属于研发VLAN。
拓扑连接方式是:PC1、PC2接SW1的GE0/0/1和GE0/0/2;PC3、PC4接SW2的GE0/0/1和GE0/0/2;SW1的GE0/0/5与SW2的GE0/0/5互联;SW1的GE0/0/10连接AR1的GE0/0/0;AR1的GE0/0/1连接AR2的GE0/0/0;AR2的GE0/0/1再接一台PC作为外网服务器,用于验证“访问外网”。
这个拓扑不复杂,但已经包含了作业需要的所有技术点。如果你老师给的拓扑更复杂,比如多了一台核心交换机、多了几个VLAN,思路是完全一样的,后面章节的规划和配置方法照样适用。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境准备:eNSP先折腾明白,拓扑才有一半的胜算
2.1 安装版本与Windows环境组合
HCSA实验基本都在eNSP(Enterprise Network Simulation Platform)里完成。第一次安装eNSP时最容易踩的坑是版本组合不匹配,导致设备拖进画布后启动失败。
我这次使用的组合是:eNSP V100R003C00SPC100搭配Oracle VirtualBox 5.2.44,外加Wireshark用于抓包。安装顺序建议是:先装VirtualBox,再装eNSP,最后装Wireshark。如果先装eNSP再装VirtualBox,eNSP很可能识别不到虚拟化组件,启动设备时会直接报错。
系统方面,Windows防火墙和杀毒软件对VirtualBox的虚拟网卡经常有拦截行为。我安装时把VirtualBox和eNSP的安装目录、以及VirtualBox的虚拟网卡都加入了防火墙白名单,排除了一部分启动失败的隐患。另外,如果你的电脑上还装了VMware,建议先卸载掉VirtualBox那一侧再用eNSP,否则两个虚拟化软件的内核驱动会互相抢资源,AR设备启动失败的概率非常高。
2.2 AR设备启动失败的完整排查链路
eNSP里最经典的问题是:把AR2220拖到画布,双击启动后设备型号图标很长时间不亮,最后提示“启动失败(错误代码40)”或者“启动失败(错误代码20)”。
我第一次遇到时慌了半天。后来按照下面的顺序排查,问题基本能解决:
第一步,打开VirtualBox主程序,查看左侧虚拟机列表里是否出现了以AR_Base命名的虚拟机,试着单独启动它。如果不带图形界面能启动说明VirtualBox本体没问题,问题出在eNSP调用环节。
第二步,如果VirtualBox提示VT-x/AMD-V不可用,进BIOS打开CPU虚拟化选项。这个在现代电脑上一般默认开启,但部分品牌机默认是关的。
第三步,检查杀毒软件是否拦截了VBoxSVC进程。打开任务管理器,如果找不到VBoxSVC,多半是启动时被拦截了,把VirtualBox相关进程和目录加入白名单后重启。
第四步,卸载后彻底重装。注意卸载时要把C盘Program Files下的Oracle目录以及当前用户目录下的.VirtualBox配置残留都删干净,否则重装后问题依旧。
提示:每次启动eNSP里的设备前,先确认VirtualBox后台服务已经正常启动。如果AR还是反复启动失败,把画布里所有设备全部删除,关闭eNSP后重启VirtualBox服务再打开,很多时候比反复点“启动”按钮有用得多。
2.3 一个小习惯:先“保存工程”再做配置
eNSP里的设备配置和画布状态默认是不会自动保存的。我第一次做完作业后,得意洋洋地把eNSP关闭,第二天重新打开工程,发现所有设备配置全没了,因为只在设备上输入了命令,既没有在设备上执行save,也没有保存eNSP工程文件。
正确做法是:每个设备配置完成后,在用户视图下执行save,按Y确认文件名;每完成一个阶段,在eNSP菜单里点击保存工程。实验全部做完之后,再另存一份带验证结果的工程,后面写实验报告需要截图时可以直接打开这个工程重新查看。
3. 拓扑设计与地址规划,先把“地图”画对
3.1 每个接口接哪里,先在纸上标清楚
做实验的人最容易犯的一个毛病是打开eNSP就开始连线,连完线再想IP规划,最后配置时连自己都不记得哪根线接在哪个接口上。
我的建议是:动手前先拿一张纸把设备、接口、网段画出来。比如我这次的接口分配是这样的:
- PC1接SW1的GE0/0/1,PC2接SW1的GE0/0/2,这两个属于VLAN10办公。
- PC3接SW2的GE0/0/1,PC4接SW2的GE0/0/2,这两个属于VLAN20研发。
- SW1的GE0/0/5接SW2的GE0/0/5,用于交换机之间Trunk透传。
- SW1的GE0/0/10接AR1的GE0/0/0,作为内网网关的下行互联口。
- AR1的GE0/0/1接AR2的GE0/0/0,作为出口方向。
- AR2的GE0/0/1接外网PC,用于验证外网访问。
把接口编号写清楚,配置时只需要照着自己画好的表抄。实际做作业时,接口连错线导致设备接口状态down,或者配置时记不住端口号来回切换,浪费的时间远远多于画这张表的时间。
3.2 IP地址规划表,这张表是作业报告的灵魂
我这次使用的地址规划如下:
| 对象 | 所属VLAN/位置 | 网段 | 网关/接口地址 |
|---|---|---|---|
| 办公PC(PC1/PC2) | VLAN 10 | 192.168.10.0/24 | 网关192.168.10.1(SW1的VLANIF10) |
| 研发PC(PC3/PC4) | VLAN 20 | 192.168.20.0/24 | 网关192.168.20.1(SW1的VLANIF20) |
| SW1与AR1互联 | 三层互联 | 192.168.100.0/30 | SW1侧192.168.100.1,AR1侧192.168.100.2 |
| AR1与AR2互联 | 出口互联 | 202.100.1.0/30 | AR1侧202.100.1.1,AR2侧202.100.1.2 |
| 外网服务器 | 模拟外部服务 | 202.100.1.10/24的一种简化做法 | 网关202.100.1.2 |
这里插一句为什么用192.168.100.0/30和202.100.1.0/30来做设备间互联:/30掩码的网段只有两个可用地址,正好给点对点链路的两个接口使用,不会浪费地址空间,也让路由表更清晰。这个细节写在报告里,老师会觉得你已经有工程规划的思维了。
3.3 为什么第一次作业就把网关注到三层交换机上
很多初学者不理解:PC明明接在交换机上,为什么不能直接互访,非要配一个VLANIF?
因为VLAN把广播域隔离了。办公和研发两个部门被划到不同的VLAN后,二层广播报文不会跨VLAN传播,这实现了隔离。但隔离之后,不同VLAN的终端要通信,就必须经过三层路由转发。VLANIF就是交换机上的三层逻辑接口,给它配置IP地址后,它就成为了该VLAN内所有终端的三层网关。
如果只使用二层交换机,没有VLANIF,就无法完成VLAN间路由,所有跨VLAN访问都会失败。所以HCSA第一次作业里“网关配在哪台设备上”这个问题,本身就是考核点。我选择把VLANIF10和VLANIF20都配在SW1上,SW2只做二层接入,这样整个网络的网关位置非常清晰。
4. 配置逐条拆解,从第一台设备到全网互通
4.1 交换机命名和创建VLAN
从SW1开始配置。进入系统视图,给设备设置名称,然后批量创建VLAN:
code复制system-view
sysname SW1
vlan batch 10 20
quit
这里使用vlan batch而不是一条条输入vlan 10、vlan 20,是因为batch用法可以一次创建多个VLAN,更简洁,也符合大型网络里批量创建VLAN的习惯。作业里如果只有两个VLAN区别不大,但养成用batch的习惯后面做复杂实验会方便很多。
SW2也是一样:
code复制system-view
sysname SW2
vlan batch 10 20
quit
注意一个容易忽略的点:SW2虽然是纯接入设备,但也必须创建VLAN10和VLAN20,否则从SW1透传过来的带VLAN标签的帧到达SW2后,SW2因为不认识这个VLAN会直接丢弃。
4.2 接入接口:access和默认VLAN
交换机连接PC的接口通常配置为access模式。SW1连接PC1和PC2的接口配置如下:
code复制interface GigabitEthernet0/0/1
port link-type access
port default vlan 10
quit
interface GigabitEthernet0/0/2
port link-type access
port default vlan 10
quit
SW2连接PC3和PC4的接口同理,只是default vlan改成20:
code复制interface GigabitEthernet0/0/1
port link-type access
port default vlan 20
quit
interface GigabitEthernet0/0/2
port link-type access
port default vlan 20
quit
access接口的行为是:从PC收到的无标签数据帧,打上接口默认VLAN的标签后进入交换机内部转发。所以接口默认VLAN是10,接在这个接口上的PC就自动归入VLAN10。
4.3 交换机之间互联:trunk的选型和配置
SW1和SW2之间的互联链路必须允许VLAN10和VLAN20的帧双向通过,所以配置为trunk:
code复制interface GigabitEthernet0/0/5
port link-type trunk
port trunk allow-pass vlan 10 20
quit
SW2侧做同样配置:
code复制interface GigabitEthernet0/0/5
port link-type trunk
port trunk allow-pass vlan 10 20
quit
trunk链路承载的是802.1Q带标签的帧。它和access的核心区别在于:trunk可以让多个VLAN的流量在同一条物理链路上传输,access只负责把终端塞进某一个VLAN。第一次作业中有很多同学忘记在trunk上放行全部所需VLAN,只写了允许VLAN10,结果VLAN20的PC在SW2下连网关都ping不通,排查半天。
检查trunk配置时可以使用命令display port vlan,它会列出每个接口的链路类型、默认VLAN和允许通过的VLAN列表。
4.4 VLANIF:给每个广播域装上网关
SW1是三层交换机,给它配置VLANIF接口地址:
code复制interface Vlanif10
ip address 192.168.10.1 255.255.255.0
quit
interface Vlanif20
ip address 192.168.20.1 255.255.255.0
quit
VLANIF是交换机上的三层逻辑接口,配置IP后就是该VLAN内终端的三层网关。需要注意的是,只有当VLAN里至少有一个物理接口属于该VLAN,并且链路状态正常时,VLANIF接口状态才会显示为up。如果display ip interface brief看到VLANIF处于down状态,先检查VLAN里有没有接入接口、接口是不是shutdown。
4.5 默认路由:让内网能访问外网
SW1上需要配置一条默认路由,把去往未知网段的报文都交给出口路由器AR1:
code复制ip route-static 0.0.0.0 0 192.168.100.2
这条命令的含义是:路由表中没有精确匹配项的所有目的地址,都交给下一跳192.168.100.2处理。192.168.100.2就是AR1面向SW1的接口地址。
这里要特别强调:静态路由是单向的。只在SW1写默认路由只能保证“出去”的报文能到达AR1,如果AR1没有配置回程路由,响应报文到了AR1之后不知道该往哪里转发,PC端就会表现为ping不通外网。
4.6 AR1和AR2的接口与路由,别忽略回程
AR1的配置:
code复制system-view
sysname AR1
interface GigabitEthernet0/0/0
ip address 192.168.100.2 255.255.255.252
quit
interface GigabitEthernet0/0/1
ip address 202.100.1.1 255.255.255.252
quit
ip route-static 192.168.10.0 255.255.255.0 192.168.100.1
ip route-static 192.168.20.0 255.255.255.0 192.168.100.1
ip route-static 0.0.0.0 0 202.100.1.2
解释一下这些路由的作用:两条静态回程路由告诉AR1,去往192.168.10.0/24和192.168.20.0/24这两个内网网段,要把报文交给192.168.100.1(也就是SW1),由SW1继续转发;默认路由则告诉AR1,去往任何未知外部地址,都交给202.100.1.2(AR2)处理。
AR2的配置:
code复制system-view
sysname AR2
interface GigabitEthernet0/0/0
ip address 202.100.1.2 255.255.255.252
quit
interface GigabitEthernet0/0/1
ip address 202.100.1.1 255.255.255.24
quit
ip route-static 0.0.0.0 0 202.100.1.1
AR2模拟外网设备,它的默认路由指向AR1,这样外网服务器回访内网PC时也能找到回来的路。第一次作业最容易漏掉的就是这些“回程路由”,数据包出去容易,回来难,很多人卡在这一步。
4.7 DHCP配置:从手动配IP到自动获取
在SW1上开启DHCP服务,并给VLANIF接口配置基于接口的地址池:
code复制dhcp enable
quit
interface Vlanif10
dhcp select interface
dhcp server dns-list 114.114.114.114 223.5.5.5
quit
interface Vlanif20
dhcp select interface
dhcp server dns-list 114.114.114.114 223.5.5.5
quit
dhcp select interface表示使用接口地址所在网段作为DHCP地址池,不需要手动指定network和mask,是最适合初学者的方式。DHCP服务器会从192.168.10.0/24这个网段里挑一个空闲地址分配给接入VLAN10的终端,VLAN20同理。
PC端只需要把IPv4配置改成DHCP方式。在PC命令行输入ipconfig,如果能看到一个192.168.10.x或192.168.20.x的地址,说明DHCP工作正常。
4.8 验证顺序:由近及远逐层ping
完整的连通性验证应该按下面的顺序执行,哪一层不通就针对哪一层排查:
- 在PC上执行
ipconfig,确认获取到IP地址和网关地址。 - 在PC1上ping自己的网关192.168.10.1,验证VLAN和网关配置。
- 在PC1上ping同一VLAN的PC2(192.168.10.10或其他已获取地址),验证同一广播域内二层转发。
- 在PC1上ping不同VLAN的PC3(192.168.20.10),验证VLANIF三层路由。
- 在PC1上ping出口方向202.100.1.2,验证默认路由和回程路由。
- 在PC1上ping外网服务器地址,验证整条链路。
如果第2步不通,重点检查access接口的default vlan、VLANIF是否up;如果第4步不通,检查VLANIF20有没有配置、路由表里有没有192.168.20.0/24这个直连路由;如果第5步不通,多半是SW1的默认路由或AR1的回程路由配置有问题。
5. 实测中踩过的三个坑,我把排查链路完整写出来
5.1 坑一:跨VLAN的PC互不通,问题却不在VLAN
第一个晚上我遇到了一个非常经典的故障:PC1能ping通PC2(同一VLAN),也能ping通网关192.168.10.1,但PC1 ping PC3(不同VLAN)始终不通。
我当时的排查路径是这样的:先看了SW2上的VLAN配置,显示正常;又看了SW1和SW2之间的trunk,放行列表也正确;甚至怀疑是PC3没获取到IP,反复在PC3上执行ipconfig。折腾了很久,最后在SW1上执行display ip interface brief才发现,VLANIF20的接口地址根本没配置。我只配了VLANIF10,漏了VLANIF20,PC3根本没有网关,跨VLAN当然不通。
这个教训让我总结出了一套排查思路:
- 同VLAN内不通:优先检查接入接口VLAN归属、物理链路状态。
- 跨VLAN不通:优先检查网关接口(VLANIF)是否配置、是否up。
- 内网到外网不通:优先检查默认路由和所有回程路由。
以后碰到网络不通,不要一上来就怀疑VLAN配置有问题,先按“链路层→网络层→路由”的顺序逐层检查。
5.2 坑二:trunk放行VLAN时漏掉了其中一个
第二天我重置配置重新做了一遍,这次换了个坑。VLAN10的PC1和PC2都正常,VLAN20的PC3却获取不到IP地址,无法从DHCP服务器获取地址,自然也无法通信。
排查时我在SW2上执行display port vlan,发现GE0/0/5的trunk允许列表里只有VLAN10,没有VLAN20。原来我第一次配置trunk时用了port trunk allow-pass vlan 10,没有把20加进去。VLAN20的DHCP discover报文到了SW2的trunk接口后,因为接口不允许VLAN20通过,报文直接被丢弃,根本到不了SW1上的DHCP服务器。
修正方法是在两台交换机上都执行:
code复制interface GigabitEthernet0/0/5
port trunk allow-pass vlan 10 20
quit
修改后再看display port vlan,确认两个VLAN都在允许列表里,PC3立即就从DHCP获取到了192.168.20.x地址。
这个坑非常隐蔽,因为trunk配置不报错,也不会影响其他VLAN的通信,只有使用被漏掉的VLAN的PC才会出现故障。所以每次trunk配置完,养成检查放行列表的习惯特别重要。
5.3 坑三:配置全绿却没保存,工程关闭后一切归零
第三天下午,所有功能都验证通过了,我还特意在外网PC上ping通了内网PC,心里美滋滋地关了电脑。结果第二天打开工程文件,所有设备配置变成了出厂状态,画布上一片空白,连设备型号都快认不出来了。
原因很简单:我自始至终没有在设备上执行save命令,eNSP的工程也没保存成独立文件。每次实验做完,要记得在两个地方保存:一是在每台设备用户视图下执行save,保存设备的配置文件;二是在eNSP菜单里保存工程文件,保存画布拓扑和所有设备的配置状态。
正确的收尾流程应该是:配置完毕且验证通过后,逐台设备执行save,然后在eNSP中保存工程文件;再用“另存为”保留一份带最终验证结果的工程,方便后面写实验报告时随时打开截图。
5.4 不算坑但很影响心情的小问题:eNSP启动设备真的很慢
eNSP模拟器里的AR设备启动需要十几秒到半分钟,启动过程在任务管理器里能看到VBox进程的CPU占用很高。刚开始我以为是设备卡死了,反复双击启动按钮,结果把设备状态搞得更乱。
正确做法是:每次只启动当前需要操作的设备,等状态灯变绿后再进行下一步。不需要同时把拓扑里所有设备都点开,尤其是在内存只有8G或16G的电脑上,同时启动多台AR很容易触发虚拟化资源不足,导致设备启动失败或延迟。
6. 实验报告怎么写才能在第一次作业里拿高分
6.1 报告结构:按“问题—方案—验证”来组织
HCSA作业的评分不只看eNSP里的实验结果,实验报告占分比重很高。我改了三版才摸到老师想要的结构,最终使用的报告章节如下:
- 实验目的:用两三句话说清楚这次实验要做什么。
- 网络拓扑:画一张带完整接口标注的拓扑图,接口编号、设备型号、连线关系都要清楚。
- 地址规划表:VLAN编号、网段、网关、互联地址全列成表格。
- 设备配置及说明:按设备分段,贴出关键配置命令,每条命令后面附加注释说明作用。
- 验证过程与截图:按之前的验证顺序放ping结果和display输出,每张截图下面写一句结论。
- 问题记录与心得:记录排查过程和解决方法,这一步反而是加分项。
这个结构看着简单,但每多写一个细节,报告的可信度就高一分。
6.2 每段配置写“为什么”,而不是只贴命令
我第一次写报告时,把所有配置命令直接堆在一起,每台设备一大段,自以为很完整。老师批注里就写了一句:这些命令是什么意思?为什么这么写?
后来我改成对每条关键命令加注释。比如在vlan batch 10 20后面写“批量创建VLAN10和VLAN20,用于隔离办公与研发两个广播域”;在interface Vlanif10后面写“创建VLAN10的三层网关接口,使VLAN10内的终端能够通过该地址与其他网段通信”。这些原理性的说明,比单纯堆命令有价值得多。
报告末尾的问题记录也可以这样写:先写现象,再写我的排查步骤,最后写问题的根本原因和解决办法。这向老师传达了一个信息——你不仅会抄配置,还会自己定位问题。
6.3 交作业前的自查清单
最后分享一个我每次交作业前都会核对一遍的清单:
- 所有PC都能通过DHCP获取到IP地址吗?
- 同VLAN内互通、跨VLAN互通、外网访问全部验证通过了吗?
- 每台设备都执行了save,工程文件保存到了本地吗?
- 报告里的拓扑图带接口标注了吗?地址规划表完整吗?
- 每条关键配置都有“为什么”的说明吗?
- 验证过程的截图和结论是一一对应的吗?
这份清单看起来基础,但HCSA第一次作业真正会扣分的点,几乎全部集中在这几项里。
这次作业做完,我最大的收获不是记住了十几条配置命令,而是第一次建立了“先规划、再配置、按层排查”的做事习惯。刚开始我也想过偷懒,让所有PC都在一个网段里,交一个能ping通的作业就算了。但那样交出去的作业,根本体现不出VLAN隔离、三层网关、路由回程这些核心概念,也拿不到老师讲解时要求你注意的那些细节。
如果你现在刚开始做HCSA第一次作业,我的建议是:别着急打开eNSP就开干,先拿张纸把拓扑和地址规划画好,再动手配置。这个习惯真的能帮你少走一大半弯路。等这份作业认真做完,后面再学OSPF、ACL、VLAN聚合这些内容,你会发现自己
