简介:这是一份面向初级网络工程师与网络专业学生的eNSP校园网实战案例,聚焦千人规模中小型初高中校园网的安全设计与搭建,可作为毕业设计、课程设计的参考模板。资源包共30个文件,包含11个xml、11个efz、5个zip、1个cfg、1个doc及1个topo文件,涵盖拓扑工程、设备配置与说明报告,压缩包约2.36MB。拓扑采用核心、汇聚、接入三层架构,综合运用VLAN、VRRP、MSTP、OSPF、ACL、NAT、DHCP、链路聚合、无线、防火墙、Telnet、HTTP、FTP、DNS及双出口等技术,覆盖初级网络工程师需掌握的主要知识点。已有789人学习下载。读者可借助配置好的拓扑文件与配套报告,在模拟环境中复现并验证各项配置,理解冗余备份、流量控制与安全防护的实现思路,为网络设计与维护实践积累经验。
1. 千人校园网到底该怎么划:从一台 eNSP 模拟器说起
很多做校园网项目的朋友一上来就问我:一千人的初高中校园网,到底该用几台交换机、几个 VLAN、出口带宽怎么估?我一般不会直接回答,而是先让他打开 eNSP 把拓扑搭出来跑一遍。原因很简单——校园网这东西,纸面上算得再漂亮,不跑一遍流量你永远不知道广播域划大了会出什么事。这份资源就是一套基于 eNSP 的千人规模中小型校园网完整设计方案,覆盖从接入层到出口的整条链路,适合正在做课程设计的学生、准备校招网络岗的求职者,以及需要快速搭一套可演示拓扑的运维新人。它解决的核心问题是:让你在一个模拟环境里,把 VLAN 划分、三层互通、DHCP 部署、NAT 出口、ACL 管控这几件事串成一条完整的线,而不是东拼西凑。下面我按实际拆解的顺序,把这份方案里真正能落地的部分讲透。
2. 拓扑与地址规划:千人校园网的骨架怎么搭
2.1 三层架构在 eNSP 里怎么映射
校园网的标准做法是核心-汇聚-接入三层结构,但一千人的规模不算大,常见做法是核心层兼做汇聚,也就是两层半架构。具体到 eNSP 里,我一般这样映射:核心用一台 AR 系列路由器或者三层交换机(比如 S5700),汇聚用二层交换机堆叠或者直接由核心下联,接入层用 S3700 或 S5700 系列交换机接终端。
为什么不用严格的三层?因为一千个终端如果按每栋楼 200~300 人算,也就三四栋楼,每栋楼一台接入交换机足够。再单独设一层汇聚,设备数量上去了,配置复杂度也上去了,但实际转发路径并没有优化多少。这是我在实际项目中反复验证过的结论——规模不到三千人,两层半架构的性价比最高。
拓扑搭好后,先别急着配 VLAN,把设备命名和接口描述做规范。这一步很多人跳过,后面排错的时候对着一堆 GE0/0/1 完全不知道哪根线连哪。我习惯用to-Core、to-Access-Building1这种命名,接口描述写清楚对端设备和用途。
2.2 VLAN 与 IP 地址的对应关系
千人校园网的 VLAN 划分,核心原则是按功能分区,不是按楼层分区。常见的划分方式如下:
| VLAN ID | 用途 | 网段示例 | 网关位置 |
|---|---|---|---|
| VLAN 10 | 教学区有线 | 192.168.10.0/24 | 核心三层 |
| VLAN 20 | 办公区有线 | 192.168.20.0/24 | 核心三层 |
| VLAN 30 | 学生宿舍有线 | 192.168.30.0/23 | 核心三层 |
| VLAN 40 | 无线 AP 管理 | 192.168.40.0/24 | 核心三层 |
| VLAN 50 | 服务器区 | 192.168.50.0/24 | 核心三层 |
| VLAN 99 | 设备管理 | 192.168.99.0/24 | 核心三层 |
注意学生宿舍用了 /23 而不是 /24,因为一千人里宿舍终端可能占到六七百个,一个 /24 只有 254 个可用地址,不够分。这是很多人第一次做校园网最容易翻车的地方——地址池算少了,DHCP 分配一半就没了。
在 eNSP 里配置 VLAN 和网关接口,核心交换机上的操作大概是这样:
# 核心交换机上创建 VLAN vlan batch 10 20 30 40 50 99 # 配置 VLANIF 接口作为网关 interface Vlanif10 ip address 192.168.10.1 255.255.255.0 description Teaching-Area-Gateway interface Vlanif30 ip address 192.168.30.1 255.255.254.0 description Dormitory-Gateway # 下联接入交换机的接口配成 Trunk interface GigabitEthernet0/0/1 port link-type trunk port trunk allow-pass vlan 10 20 30 40 50 99 description to-Access-Building1这段配置的逻辑很直白:VLANIF 是三层接口,负责各网段之间的路由;Trunk 接口负责把多个 VLAN 的流量透传到接入层。参数上唯一需要注意的是255.255.254.0这个掩码,它对应 /23,可用地址从 192.168.30.1 到 192.168.31.254,总共 510 个,足够宿舍区用。
接入层交换机上则只需要创建对应的 VLAN,把连接终端的接口划到对应 VLAN 里,上联口配 Trunk。这里有个细节:接入层不需要配 VLANIF,网关都在核心上,接入层只做二层转发。这样做的目的是减少三层接口数量,降低管理复杂度。
3. DHCP 与路由配置:让一千台终端自动拿到地址
3.1 DHCP 池的规划与部署位置
一千人的校园网,手动配 IP 是不可能的,必须上 DHCP。DHCP 服务放在哪里,有两种常见方案:一是放在核心交换机上,二是单独弄一台服务器。eNSP 里我建议直接放在核心交换机上,配置简单,也不用额外模拟服务器。
DHCP 池的规划要和 VLAN 一一对应,每个 VLAN 一个地址池。核心交换机上的配置:
# 开启 DHCP 服务 dhcp enable # 教学区地址池 ip pool vlan10 network 192.168.10.0 mask 255.255.255.0 gateway-list 192.168.10.1 dns-list 114.114.114.114 223.5.5.5 lease day 3 # 宿舍区地址池 ip pool vlan30 network 192.168.30.0 mask 255.255.254.0 gateway-list 192.168.30.1 dns-list 114.114.114.114 223.5.5.5 lease day 1 # 在 VLANIF 接口上调用全局地址池 interface Vlanif10 dhcp select global interface Vlanif30 dhcp select global参数说明:lease day 3是租期三天,教学区终端相对固定,租期可以长一点;宿舍区终端流动性大,租期设一天,地址回收更快。dns-list配两个,一个主用一个备用,这是基本操作。dhcp select global表示接口使用全局地址池,不是接口地址池,别搞混了。
3.2 静态路由与默认路由的配合
核心交换机上各 VLANIF 之间是直连路由,自动生成,不用手动配。但核心到出口路由器这一段需要配路由。常见做法是核心上配一条默认路由指向出口路由器,出口路由器上配回程路由指向核心。
# 核心交换机:默认路由指向出口 ip route-static 0.0.0.0 0.0.0.0 10.0.0.2 # 出口路由器:回程路由指向核心 ip route-static 192.168.0.0 255.255.0.0 10.0.0.1这里 10.0.0.0/30 是核心和出口之间的互联段,用 /30 是为了节省地址。回程路由写192.168.0.0 255.255.0.0是一条汇总路由,把 192.168.10.0/24 到 192.168.50.0/24 全部覆盖了。这样比逐条写精确路由简洁得多,而且新增 VLAN 的时候不用改出口路由器的配置。
如果你在 eNSP 里跑完发现终端拿不到地址,先检查三件事:VLANIF 接口是不是 up 的、DHCP 有没有在接口上调用、地址池的网段和 VLANIF 是不是在同一个网段。这三个问题占了 DHCP 故障的八成以上。
4. 出口 NAT 与 ACL:校园网的边界怎么守
4.1 NAT 出口配置与地址转换
校园网内部用的是私有地址,出口必须做 NAT。eNSP 里出口路由器上配 Easy IP 是最常见的做法,直接把接口地址拿来做转换:
# 定义允许 NAT 的流量 acl number 2000 rule 5 permit source 192.168.0.0 0.0.255.255 # 在出口接口上调用 NAT interface GigabitEthernet0/0/0 nat outbound 2000 description to-InternetACL 2000 是基本 ACL,匹配源地址。rule 5 permit source 192.168.0.0 0.0.255.255这条规则的意思是允许 192.168.0.0/16 网段的所有流量做 NAT。反掩码0.0.255.255对应的是 /16,别写成0.0.0.255,那是 /24,只覆盖一个网段。
nat outbound 2000放在出口接口上,表示从内网出去流量做源地址转换。Easy IP 的好处是不用额外配地址池,直接复用接口地址。缺点是如果出口有多个公网地址,没法做负载分担。一千人的校园网出口一般就一条线路,Easy IP 够用了。
4.2 ACL 管控策略:哪些流量不该出去
校园网和普通企业网最大的区别是:你得管住学生。不是所有流量都能往外跑,晚自习时间限制娱乐流量、禁止访问某些端口,这些都是常见需求。ACL 就是干这个的。
# 高级 ACL:限制宿舍区在特定时间段访问外网 acl number 3000 rule 5 deny tcp source 192.168.30.0 0.0.1.255 destination-port eq 80 time-range study-time rule 10 deny tcp source 192.168.30.0 0.0.1.255 destination-port eq 443 time-range study-time rule 100 permit ip source 192.168.30.0 0.0.1.255 # 定义时间范围 time-range study-time periodic weekdays 08:00 to 11:30 periodic weekdays 14:00 to 17:00这段配置的逻辑是:在 study-time 这个时间段内,宿舍区的 HTTP 和 HTTPS 流量被拒绝,其他流量放行。注意 ACL 的匹配顺序是从小到大,rule 5 和 rule 10 先匹配,命中就执行 deny,不命中继续往下走,最后 rule 100 兜底放行。
时间范围的配置要注意periodic的语法,weekdays表示周一到周五,08:00 to 11:30是时间段。如果你想区分单双周,eNSP 里支持weekday和weekend,但不支持更复杂的日历排班,那种需求得上专业的流控设备。
ACL 配完之后,记得在接口上调用:
interface GigabitEthernet0/0/1 traffic-filter inbound acl 3000方向是 inbound,因为你要过滤的是从宿舍区进来的流量。方向搞反了策略不生效,这是新手最常见的错误之一。
5. 避坑与排查:eNSP 跑校园网最容易翻车的五个地方
5.1 现象:终端能 ping 通网关但上不了外网
原因:核心交换机上没配默认路由,或者出口路由器上没配回程路由。数据包到了核心之后不知道往哪走,直接丢了。
解决:在核心上display ip routing-table看一下有没有 0.0.0.0/0 的路由条目。没有就补ip route-static 0.0.0.0 0.0.0.0 <出口地址>。然后在出口路由器上确认回程路由覆盖了所有内网网段。
5.2 现象:DHCP 分配地址很慢或者分配失败
原因:地址池网段和 VLANIF 网段不一致,或者地址池里的地址不够用。宿舍区用 /24 的池子分给 /23 的网段,分到 254 个就没了。
解决:display ip pool查看地址池使用情况,确认network命令里的掩码和 VLANIF 的掩码一致。宿舍区这种终端密集的区域,地址池至少留 20% 的余量。
5.3 现象:跨 VLAN 能通但速度很慢
原因:eNSP 模拟器的性能限制。eNSP 跑在一台普通电脑上,同时模拟几十台设备的时候 CPU 占用很高,转发延迟会明显增大。这不是配置问题,是模拟器的物理限制。
解决:减少同时运行的设备数量,把不用的设备关掉。或者把拓扑简化,用一台设备模拟多个角色。如果只是验证配置逻辑,不需要所有终端都开机。
5.4 现象:ACL 配了但不生效
原因:ACL 规则的方向搞反了,或者 ACL 没有在接口上调用。还有一种情况是 ACL 规则顺序不对,permit 写在了 deny 前面,导致 deny 永远匹配不到。
解决:display acl 3000查看规则命中计数,如果所有规则的命中数都是 0,说明流量根本没匹配上这条 ACL。检查接口下的traffic-filter方向,inbound 是过滤进入接口的流量,outbound 是过滤出去的。
5.5 现象:NAT 配了但内网还是上不了网
原因:ACL 2000 里的源地址范围写错了,或者 NAT 没有应用在正确的接口上。还有一种可能是出口路由器的默认路由没配,数据包到了路由器但不知道怎么转发。
解决:在出口路由器上display nat session all看有没有 NAT 会话表项。没有的话说明流量没触发 NAT,检查 ACL 匹配范围和接口调用。有会话表项但上不了网,检查出口路由器的默认路由。
6. 进阶技巧:用流量统计验证你的 ACL 到底有没有生效
配完 ACL 之后,很多人不知道怎么验证策略是不是真的在过滤流量。eNSP 里有一个很实用的功能:ACL 规则命中计数。你可以在 ACL 规则后面加counting参数,然后查看命中次数。
acl number 3000 rule 5 deny tcp source 192.168.30.0 0.0.1.255 destination-port eq 80 time-range study-time counting rule 100 permit ip source 192.168.30.0 0.0.1.255 counting加完counting之后,用display acl 3000就能看到每条规则匹配了多少个包。如果 rule 5 的计数一直是 0,要么是时间范围没生效,要么是流量根本没走这条 ACL。
我一般会这样验证:先在一个终端上持续 ping 外网地址,然后在核心交换机上反复执行display acl 3000,观察计数有没有增长。如果计数在涨但终端还是不通,说明 ACL 匹配上了但后续的 NAT 或者路由有问题。如果计数不涨,说明流量没走到这条 ACL 上,检查接口调用方向。
还有一个技巧是用terminal monitor和terminal debugging打开调试信息,配合debugging ip icmp看 ICMP 包的走向。但 eNSP 里调试信息刷屏很快,建议只在排一个具体问题的时候开,排完马上关掉,不然设备响应会变慢。
最后说一个我踩过的坑:eNSP 的时间范围功能依赖模拟器的时间,如果你在模拟器里改了系统时间,time-range 的生效逻辑会跟着变。测试时间策略的时候,先把模拟器的系统时间调到策略生效的时间段内,不然你会以为配置写错了,其实是时间没对上。从那以后我每次配 time-range 都先display clock确认一下模拟器时间,这个习惯帮我省了不少排查时间。希望帮到你。
本文还有配套的精品资源,点击获取