简介:面向计算机网络课程设计的校园网方案文档,以淮海工学院东港学院为背景,适合计算机及相关专业学生完成综合实践、课程报告与方案演练。内容围绕办公区、教学区、生活区的信息点分布展开,涵盖需求分析、网络拓扑与子网划分、IP地址与网关规划、设备选型及经费预算,并涉及WEB、FTP、DNS等服务器的配置思路与楼宇布线设计,可帮助读者理解从需求分析到方案落地的完整设计链路。压缩包内共1个doc文件,约1.34MB,篇幅集中、便于直接查阅和整理报告框架;文档结构包含设计目的、题目要求、小组分工与设计说明书等部分,便于按章节查找关键内容。目前已有2034人学习,适合需要参考校园网设计流程、完善课程设计文档或对照检查方案完整性的读者,也可作为网络规划与设备选型思路的对照材料。
1. 从 1000 个信息点说起:一份计算机网络课程设计的完整闭环
计算机网络课程设计的题目里,「设计一个校园网」是最容易写成 PPT 的那一类——拓扑图一画、设备型号一列,报告就交上去了。真到答辩现场,导师一句「计算机系大楼 120 个信息点,你给的那台 24 口交换机够吗」就能把人问住。这份某高校 A 校区的校园网方案把整条链路走完了:办公区 111 个信息点、教学区按 120 再加若干栋每栋 40 计算、生活区按门洞计,总量收敛到 1000 个节点规模;核心—汇聚—接入三层拓扑用千兆光纤互联;一段 4 个 C 类的公网地址靠 VLSM 切到每栋楼;服务器区还要把 DNS、WEB、FTP 三台机器真的配起来跑通,最后给出设备清单和预算出处。它适合两类人:正在赶课设、需要一份结构完整能照着填的报告框架的在校开发者,以及想补一遍网络规划实操、把「划分子网」从试卷搬回机房的熟手。
2. 需求分析与信息点盘点:111 个办公点、520 个教学点怎么算出来的
一份校园网方案能不能站住脚,第一关不是拓扑画得多漂亮,而是信息点数目对不对得上。设备清单里的交换机端口数、光缆芯数、配线架数量、预算总额,全是从这张表里推出来的。数字错一位,后面全是连锁反应,这是我在带新人时反复强调的第一条血泪经验。
2.1 三个功能区与信息点统计表
原文把校区切成办公区、教学区、生活区三块,每块的信点要求描述得挺细,但细看会发现它只给了部分楼的确定数字,剩下的靠「每栋 40 个」「每个门洞 1 个」这类规则推。落地时必须先把规则显式写出来,否则不同人算出来的总数能差出两三百个点。
| 区域 | 建筑 | 信息点数 | 计算依据 |
|---|---|---|---|
| 办公区 | 教务处 | 25 | 原文给定 |
| 办公区 | 党政办公楼 | 26 | 原文给定 |
| 办公区 | 图书馆 | 60 | 原文给定 |
| 教学区 | 计算机系大楼 | 120 | 原文给定 |
| 教学区 | 其余系部楼与教学楼 | 40 × 10 = 400 | 每栋 40,栋数按实际统计 |
| 生活区 | 宿舍楼群 | 门洞数 × 1 ≈ 90 | 每门洞 1 个信点 |
| 公共 | 网管中心、机房、出口设备 | 约 30 | 管理口与预留 |
| 合计 | — | 约 751,按 1000 规模收敛 | 含 25% 以上冗余 |
这张表的关键不是数字本身,而是「合计」那一行怎么从 751 变成 1000。原文说的是「整个校园的信息节点设计为 1000 个左右」,这个放大系数不是拍脑袋,通常来自三块:每个弱电间预留 10%~20% 的空闲端口用于临时接入;无线 AP 的上行口;以及未来 3~5 年新增点位。做预算时按 1000 个点买设备,比按 751 买再补单,报价单上的零头会好看得多。
2.2 从信息点到交换机端口:24 口为什么只能当 22 口用
信息点数目出来之后,下一步是折算交换机台数。这里最容易翻车的地方是拿信息点数直接除以 24。一台 24 口接入交换机的实际可用端口要减掉三类:一个上联口(接汇聚或核心)、一个管理/堆叠口,剩下的才是能给终端用的。所以 24 口机器按 22 个信息点算,48 口按 46 个算,配比才安全。
按这个口径重算:计算机系大楼 120 个点,至少 6 台 24 口接入交换机(132 端口,余量够);每栋 40 个点的教学楼配 2 台;办公区的教务处 25 个点其实一台 24 口刚好卡死,没有余量,实务上要么上 48 口,要么多配一台小机器做堆叠。这种「刚好卡死」的配置在答辩时特别容易被追问,我一般会在方案里直接写一句「本楼按 48 口接入配置,冗余 23 口」。
原文给出的设备总数是「交换机约 50 台,其中主干交换机 5 台,配千兆光纤接口」,这个盘子跟上面的折算基本对得上:5 台主干(1 台核心 + 4 台汇聚)+ 45 台左右接入,覆盖 1000 个点。
2.3 业务需求倒推出来的四个硬指标
需求分析章节里最容易写成八股文的就是「网络应该先进、可扩展、安全」这几句。真正能落到设备参数上的是下面四条,每一条都对应一个具体配置项:
第一条,主干千兆、桌面百兆。这条决定了核心和汇聚之间必须走光纤 + 千兆模块,接入交换机上联口必须至少有一个千兆口或者光纤扩展槽,不能用纯百兆上联凑数。
第二条,出口带宽。原文写的是「10M 光纤接入」并给了 ISDN 与 DDN 专线两个备选。10M 出口放到今天看很小,但在方案里它决定了出口路由器的选型和 NAT 并发能力,也决定了要不要上流量整形。做课设时保留这个数字没问题,只要在报告里补一句「出口设备需支持后续带宽升级到 100M 的接口能力」。
第三条,内容过滤与病毒防护。原文明确要求「必须安装内容过滤器」和「构建完整的网络防毒系统」,这直接落到设备清单里那台百兆企业级防火墙上,不是可选件。
第四条,可管理性。要求「全网的智能化管理,管理员能方便高效地管理」,对应的是网管软件那一项预算,以及每台交换机都要能被网管平台纳管(支持 SNMP)。这一条经常被忽略,结果设备买回来发现入门款接入交换机不支持标准 MIB,网管平台只能看到核心,那套软件等于白买。
注意:需求分析里每写一个「必须」,设备清单里就得有一行对应的东西。报告被挑毛病,十次有八次是这两处对不上。
3. 拓扑与地址规划:三层结构、千兆光纤和 4 个 C 类地址怎么切
需求盘清楚了,接下来是把 1000 个点接到一张图上,并且给每个点一个能说清楚的地址。这一章是整份方案里技术含量最高、也最容易被追问的部分。
3.1 核心—汇聚—接入三层拓扑与光缆走向
原文的拓扑思路是标准的星型三层:网管中心机房作为核心节点,向实验楼、图书馆、教学楼、宿舍楼四个方向各拉一条主干,形成 1 个核心 + 4 个汇聚的主干结构。核心交换机与汇聚交换机之间用千兆光纤,楼内再用超五类双绞线到桌面。
物理层的选型原文写得很具体:中控室到各主干节点全部用 8 芯室外光缆,楼内用 6 芯室内光缆加超五类。这两个数字背后有讲究——8 芯室外光缆不是 8 芯全用,通常按「2 芯收发 + 2 芯备份 + 其余预留」分配,一条主干上跑一对千兆,另外留一对给未来的链路聚合或第二张网;6 芯室内光缆同理,一个楼里的汇聚到各楼层接入,用 2 芯,剩下的留给扩容。
选星型而不是环网,对校园网这种场景是合理的:故障隔离简单,一个楼的光缆断了不影响其他楼;布线成本可控;管理上每个汇聚节点都是独立的三层边界,出问题好定位。缺点是核心交换机成了单点,所以原文才要求核心设备带冗余电源——这一条在预算里那台 25000 元的核心交换机上体现为选配项,报告里最好单独列出来。
3.2 VLAN 与网关配置:把三层边界落到命令上
拓扑图只是逻辑关系,真正让不同楼之间能通又不能乱通的,是 VLAN 划分和三层网关。常见的做法是按功能区切 VLAN,办公、教学、生活、服务器各一个主 VLAN,再按楼栋细分子 VLAN。核心交换机上配 SVI 作为网关,汇聚交换机只做二层透传。
# 核心交换机:按功能区建 VLAN vlan 10 name office vlan 20 name teaching vlan 30 name dorm vlan 40 name server vlan 50 name manage # 核心上配置各 VLAN 的三层网关(SVI) interface Vlan10 ip address 10.10.0.1 255.255.252.0 # 办公区 /22,可容纳 1022 台主机 interface Vlan20 ip address 10.20.0.1 255.255.0.0 # 教学区 /16,按楼栋再切 interface Vlan30 ip address 10.30.0.1 255.255.240.0 # 生活区 /20 interface Vlan40 ip address 10.40.0.1 255.255.255.0 # 服务器区 /24 interface Vlan50 ip address 10.50.0.1 255.255.255.0 # 网管 VLAN /24 # 到出口路由器的默认路由 ip route 0.0.0.0 0.0.0.0 10.0.0.2这段配置里有三个参数值得逐个说。ip address后面掩码长度对应的是主机容量:/22有 1022 个可用地址,办公区 111 个信息点用不满,留出的空间是给无线、打印机、访客和后续扩容的;/16看着夸张,但教学区下面还要按楼栋切二级子网,用大段做地址池反而好管。默认路由指向出口路由器的内网口10.0.0.2,这是核心与出口互联那段 /30 小网里的对端地址,实务上建议单独给它一个 VLAN 或者用路由口,别混在业务网段里。
汇聚交换机的配置就简单了,只做二层,把上行口配成 trunk,允许业务 VLAN 通过:
# 汇聚交换机:到核心的上行口做 trunk interface GigabitEthernet1/0/25 switchport mode trunk switchport trunk allowed vlan 10,20,30,40,50switchport trunk allowed vlan这一行一定要写全,不能图省事用all。默认允许所有 VLAN 通过,等于把广播域从楼栋一路铺到核心,一个楼里出现环路或者广播风暴,整网跟着抖。我在实际项目里见过一次,就是因为上行口没做 VLAN 裁剪,宿舍区一台机器网卡故障狂发广播,办公区的 OA 直接卡死半小时。这就是所谓的「玄学故障」,最后靠抓包才定位到。
3.3 VLSM 子网划分:4 个 C 类地址与内网地址池
原文给的条件是「预留的 INTERNET 地址 219.219.90/24 ~ 219.219.93/24」,即连续 4 个 C 类网段。这里有个设计取舍要讲清楚:直接把公网地址分到桌面,在今天的网络环境里是不现实的,安全上也站不住。合格的做法是双轨——4 个 C 类段用于出口 NAT 池和 DMZ 里对外发布的服务;内网另起私有地址池,按信息点规模做 VLSM。
内网池建议直接从10.0.0.0/8里切,按第 2 章统计的信息点数分配。上面那段 SVI 配置里的地址就是切分结果。接着要往下切到具体楼宇,这时候手算容易错,写个脚本跑一遍最省事,也方便报告里贴出「子网规划明细表」。
import ipaddress def vlsm(pool_cidr, demands): """ pool_cidr: 待划分的内网地址池 demands: [(名称, 需要的主机数), ...] 返回: [(名称, 需求, 子网, 可用数, 首地址, 末地址), ...] """ pool = ipaddress.ip_network(pool_cidr) cursor = int(pool.network_address) plan = [] # 按需求从大到小排,保证大块先占位,对齐不会出错 for name, hosts in sorted(demands, key=lambda x: -x[1]): need = hosts + 2 # 加网络地址和广播地址 host_bits = (need - 1).bit_length() # 向上取整到 2 的幂 prefix = 32 - host_bits net = ipaddress.ip_network((cursor, prefix)) plan.append(( name, hosts, str(net), net.num_addresses - 2, str(net.network_address + 1), str(net.broadcast_address - 1) )) cursor += net.num_addresses # 游标推到下一块起始地址 return plan demands = [ ("教学区-计算机系大楼", 120), ("办公区-图书馆", 60), ("教学区-系部教学楼", 40), ("办公区-党政办公楼", 26), ("办公区-教务处", 25), ("生活区-单楼门洞", 1), ] for row in vlsm("10.20.0.0/16", demands): print("{:<20}{:>5} {:<18}{:>6} {:<16}{}".format(*row))脚本的核心逻辑只有三行:need = hosts + 2把网络号和广播地址算进去;(need - 1).bit_length()求的是「至少要几位二进制才能放下这么多地址」,这是个向上取整到 2 的幂的常用写法;ipaddress.ip_network((cursor, prefix))直接用整数起始地址加前缀构造子网,省掉手算掩码对齐的麻烦。跑出来的结果就是可以贴进报告的子网表:
| 楼宇 | 需求点数 | 子网 | 可用地址 | 网关 |
|---|---|---|---|---|
| 计算机系大楼 | 120 | 10.20.0.0/25 | 126 | 10.20.0.1 |
| 图书馆 | 60 | 10.20.0.128/26 | 62 | 10.20.0.129 |
| 系部教学楼(单栋) | 40 | 10.20.0.192/26 | 62 | 10.20.0.193 |
| 党政办公楼 | 26 | 10.20.1.0/27 | 30 | 10.20.1.1 |
| 教务处 | 25 | 10.20.1.32/27 | 30 | 10.20.1.33 |
生活区那个「每个门洞 1 个信息点」的需求,脚本会算出 /30,看着没错但实际不合理——为单个点位切一个网段,路由表会被撑爆。正常做法是把整栋宿舍楼的所有门洞归到一个 VLAN,用 DHCP 分配,一层楼一个子网就够了。这类「算得对但设计不对」的地方,是答辩时展示思考深度的好机会,报告里加一句说明比闷头按脚本输出强。
3.4 设备选型表与预算怎么组织
原文的设备清单分三块:线材、整机设备、模块与软件,价格精确到元。这个组织方式值得照抄,因为网络项目的钱大头在模块和光缆上,不单列很容易被漏。按原文口径整理成型号代称版:
| 类别 | 设备 | 数量 | 单价(元) | 用途 |
|---|---|---|---|---|
| 整机 | 核心三层交换机 S-3926 | 1 | 25000 | 网管中心核心 |
| 整机 | 汇聚交换机 S-3726 | 5 | 17800 | 四栋主干节点 |
| 整机 | 接入交换机 S-1024 | 17 | 930 | 楼内接入 |
| 整机 | 模块化路由器 R-2501 | 1 | 23000 | 出口 |
| 整机 | 企业级防火墙 F-1800 | 1 | 11000 | 出口安全 |
| 整机 | 塔式服务器 T-168 | 5 | 11999 | 各类服务器 |
| 模块 | 千兆电口模块 | 1 | 4950 | 核心上联 |
| 模块 | 百兆多模光纤模块 | 4 | 3750 | 汇聚上行 |
| 模块 | GBIC 千兆光模块 | 3 | 9950 | 主干光口 |
| 模块 | 堆叠模块 | 1 | 2450 | 核心堆叠 |
| 软件 | 网管平台(250 节点) | 1 | 15600 | 全网管理 |
| 软件 | 服务器操作系统授权 | 3 | 5000 | 服务器 |
线材那块原文写得最细:12 芯室外多模铠装光缆 750 米、超五类屏蔽双绞线 200 米、超五类非屏蔽 2500 米,合计 42610 元。这个量级跟 1000 个信息点的规模对得上——2500 米非屏蔽线按每个信息点平均 25 米算,正好 1000 点位左右,说明作者是倒推过的。
预算表在课程设计里有个硬要求:每一项都要注明价格出处。这是老师最爱查的地方,因为大部分人直接抄厂商报价单。实务上按「官网公开报价 / 电商平台报价 / 经销商询价」三类标注,同一类价格来源保持一致,看上去才是一份真做过的预算。
4. 服务器区落地:DNS 区域、Apache 站点与 vsftpd 权限的完整配置
设备清单里 5 台服务器、7 个角色,是整份方案里唯一能真正「跑起来看效果」的部分。原文用 Windows Server 的图形向导讲 DNS 创建流程,步骤写得很细但没有可复现的配置文件,而答辩演示最怕的就是跟着向导点一遍点错。下面给的是等价的可抄配置,Windows 图形界面和 Linux 命令行两边都能对上。
4.1 服务器角色分配与地址规划
原文列的七个角色可以压到 5 台物理机上:两台主服务器(一台跑 DNS,一台跑邮件)、一台 WWW 服务器(Apache + PHP + MySQL)、一台电子阅览/备课服务器(文件服务 + 代理)、一台图书管理与光盘服务。做课设时不必真的凑 5 台,用虚拟化在一台机器上开 5 个实例就够了,IP 按服务器区/24段分配。
| 角色 | 主机名 | IP | 端口 |
|---|---|---|---|
| DNS | dns1 | 10.40.0.10 | 53/udp, 53/tcp |
| WEB | www | 10.40.0.20 | 80, 443 |
| FTP | ftp | 10.40.0.21 | 21, 30000-30100 |
| OA | oa | 10.40.0.22 | 80 |
| 数据库 | db | 10.40.0.30 | 3306 |
这五个地址要和第 3 章的子网规划对齐,服务器区单独一个 VLAN 40,网关10.40.0.1,在防火墙上把这一段划成 DMZ,只放行 53、80、21 的入向流量,其他一律拒绝。这一步在报告里就一句话,但在实际演示时是整个方案安全性的落脚点。
4.2 DNS 服务器:正向区、反向区与验证
DNS 是四个组员分工里最容易出问题的一环,因为它牵涉两张表:正向把名字映射到地址,反向把地址映射回名字。原文的操作步骤里选了「反向搜索」这个区域类型,实际上正确做法是正反两张都建,只建一张会导致nslookup能查到 IP 却查不到域名,演示时很尴尬。
# 1) 主配置:/etc/named.conf 里追加两个区 zone "campus.local" IN { type master; file "/var/named/campus.local.zone"; allow-update { none; }; }; zone "0.40.10.in-addr.arpa" IN { # 对应 10.40.0.0/24 服务器区 type master; file "/var/named/10.40.0.rev"; allow-update { none; }; };zone名和文件名是参数里最要命的两处。正向区名就是你用的内网域名,这里用campus.local;反向区名是网络地址倒着写再加上in-addr.arpa,10.40.0.0/24倒过来是0.40.10,所以区名是0.40.10.in-addr.arpa,最后一个 0 是 0 号网段省略不写。allow-update { none; }表示禁止动态更新,课设环境里开启动态更新等于给自己埋雷,任何人都能往区里塞记录。
; /var/named/campus.local.zone 正向区 $TTL 86400 @ IN SOA dns1.campus.local. admin.campus.local. ( 2024051501 ; serial 每次改完必须 +1 3600 ; refresh 900 ; retry 604800 ; expire 86400 ) ; minimum IN NS dns1.campus.local. dns1 IN A 10.40.0.10 www IN A 10.40.0.20 ftp IN A 10.40.0.21 oa IN A 10.40.0.22 db IN A 10.40.0.30这份 zone 文件的语法细节比想象中严格。SOA记录里serial是版本号,改一次文件就要加一次,忘了加会导致从服务器不同步;@代表当前区名,IN是 class,NS记录必须有且指向本区的权威服务器,少了这条named直接起不来。主机记录那几行的格式是「主机名 + IN + A + 地址」,dns1这种带名字的记录是相对名,实际解析出来是dns1.campus.local。
反向区文件结构一样,记录类型换成PTR,主机名部分只写最后一段:
; /var/named/10.40.0.rev 反向区 $TTL 86400 @ IN SOA dns1.campus.local. admin.campus.local. ( 2024051501 3600 900 604800 86400 ) IN NS dns1.campus.local. 10 IN PTR dns1.campus.local. 20 IN PTR www.campus.local. 21 IN PTR ftp.campus.local.写完配置,验证这一步不能省。named-checkzone先做语法检查,再用dig做正反查:
named-checkzone campus.local /var/named/campus.local.zone systemctl restart named # 正向:应该返回 10.40.0.20 dig @10.40.0.10 www.campus.local +short # 反向:应该返回 www.campus.local. dig @10.40.0.10 -x 10.40.0.20 +shortnamed-checkzone的两个参数分别是区名和文件路径,报错会直接指出第几行哪个字段有问题,比看named日志快十倍。dig的@指定查询的服务器,必须指到本机 DNS,不能用系统默认解析器,否则查到的可能是外网结果,白高兴一场。-x是反向查询的简写,后面跟 IP。
提示:Windows Server 的 DNS 管理器里对应的操作是「正向查找区域 → 新建区域 → 主要区域」,反向区在「反向查找区域」里建,网络 ID 填
10.40.0。配置完成后在「监视」选项卡里用「简单查询」和「递归查询」各测一次,两个都 PASS 才算过。
4.3 WEB 服务器:Apache 虚拟主机与 PHP 联通
WWW 服务器在原文里的定位是「远程服务管理及 WEB 站点管理,Apache + PHP + MySQL 形成动态站」。落地到一个可演示的站点,最少要三样东西:虚拟主机配置、一个能跑 PHP 的首页、一个能连上的数据库。
# /etc/httpd/conf.d/campus.conf <VirtualHost *:80> ServerName www.campus.local DocumentRoot /var/www/campus <Directory /var/www/campus> Options FollowSymLinks AllowOverride None Require all granted </Directory> ErrorLog /var/log/httpd/campus-error.log CustomLog /var/log/httpd/campus-access.log combined </VirtualHost>ServerName必须和你 DNS 里的 A 记录一致,不一致会导致浏览器地址栏的域名和站点对不上;DocumentRoot是站点根目录,权限要单独设;Require all granted是 Apache 2.4 之后的写法,2.2 时代是Order allow,deny,抄老教程会直接 403。日志两个路径分开写,排错时一眼能看出是 PHP 报错还是访问被拒。
PHP 首页写个联通性测试,把数据库连接一起验掉:
<?php // /var/www/campus/index.php $host = '10.40.0.30'; $db = 'campus'; $user = 'web'; $pass = 'ChangeMe_2024'; $conn = new mysqli($host, $user, $pass, $db); if ($conn->connect_error) { die('DB connect failed: ' . $conn->connect_error); } echo 'WEB + PHP + MySQL OK, server time: ' . date('Y-m-d H:i:s');这段代码的用途不是做业务,是演示时证明三层都通。new mysqli的四个参数依次是主机、库名、账号、密码,任何一个错都会走connect_error分支,页面上直接打出原因,比在浏览器里看白屏强。数据库账号web只给SELECT权限,别图省事用 root,这条在报告的安全章节里能写一笔。
4.4 FTP 服务器:匿名、上传账号与被动模式端口
FTP 在校园网里的典型需求是「公共资源下载人人可下,教师上传要账号」。vsftpd 的配置项不多,但每一个都影响能不能连通。
# /etc/vsftpd/vsftpd.conf 关键项 anonymous_enable=YES # 允许匿名下载公共资源 anon_upload_enable=NO # 匿名只读 local_enable=YES # 本地账号可登录 write_enable=YES # 允许写(对本地账号生效) local_umask=022 chroot_local_user=YES # 把用户锁在家目录 pasv_enable=YES pasv_min_port=30000 pasv_max_port=30100chroot_local_user=YES是安全底线,不加这个用户能顺着..爬到整个文件系统。pasv_min_port和pasv_max_port是给防火墙用的——被动模式下服务端会临时开一个端口让客户端来连,不限定范围防火墙就没法开洞,表现是「能登录、列不出目录」,这个现象我在至少三个课设里见过,全是卡在这一步。
# 建一个只读下载账号和一个教师上传账号 useradd -d /srv/ftp/pub -s /sbin/nologin ftpdown useradd -d /srv/ftp/teacher -s /sbin/nologin tch01 passwd tch01 chmod 755 /srv/ftp/pub chown tch01:tch01 /srv/ftp/teacher systemctl restart vsftpdsbin/nologin是必须的,FTP 账号不需要 shell 登录权限,给了就是多一个入口。目录权限 755 让匿名用户能进入并读取,但写不进去;教师目录改属主给tch01,配合write_enable=YES才能上传。改完重启服务,用ftp命令或者 FileZilla 各测一次上传下载,两种客户端都过一遍最好——命令行走主动模式,图形客户端默认被动模式,正好覆盖两条路径。
5. 避坑与排查:这套方案里最容易翻车的 5 个细节
下面这五条不是从书上抄的,是这类校园网方案在配置和答辩环节里反复出现的翻车点。每一条按「现象 → 原因 → 解决」走,照着对一遍能省下不少时间。
5.1 跨 VLAN 能 ping 网关不能 ping 主机
现象:接入交换机下的机器能 ping 通本楼网关,但 ping 不通别的楼的主机,跨楼访问一律超时。
原因:九成是汇聚交换机到核心的 trunk 口没放行对应 VLAN。默认 trunk 允许所有 VLAN 通过,但很多型号在配置了switchport trunk allowed vlan之后只放行列出的那几个,新增 VLAN 忘了加进去,包到了汇聚就被丢掉。另一种可能是核心上的 SVI 起了但ip routing没开,包进来出不去。
解决:先在汇聚上show interface trunk看允许列表对不对,再在核心上show ip route确认有对应的直连网段。逐跳traceroute定位到哪一跳断的,比在终端上反复重配 IP 快。
5.2 DNS 反查失败导致网页打开慢
现象:浏览器输域名能打开,但要等三五秒;nslookup IP直接报错。
原因:只建了正向区没建反向区。很多服务(邮件、SSH、部分 Web 框架)在连接时会做一次反查,反查超时就会卡住,表现出来就是「网站能开但很慢」,属于典型的黑匣子式故障。
解决:按第 4.2 节的10.40.0.rev把反向区补齐,每个 A 记录配一条对应的 PTR。补完用dig -x验证,短时间没生效就systemctl restart named。
5.3 FTP 能登录但列不出目录
现象:账号密码输对了,登录成功,执行ls卡住,最后报425 Failed to establish connection。
原因:被动模式端口没在防火墙上放行。控制连接走 21 端口没问题,数据连接要服务端另开端口,防火墙默认全拦。内网测试时如果客户端和服务端在同一网段,可能碰巧不走防火墙就没问题,一跨网段就暴露。
解决:vsftpd.conf里把pasv_min_port和pasv_max_port限定成一段(比如 30000-30100),防火墙上放行这段 TCP。同时pasv_address要配成服务端的对外地址,否则服务端在 NAT 后面会告诉客户端一个内网 IP,客户端连不上。
5.4 设备清单的端口数和信息点数对不上
现象:报告交上去被打回,理由是「计算机系大楼 120 个点,你只配了 5 台 24 口交换机」。
原因:拿 120 ÷ 24 = 5 直接算的,忘了每台机器要留上联口和管理口,也忘了冗余。5 台 24 口总共 120 个端口,全接满就没口上联了。
解决:按 22 个可用口折算,120 个点至少 6 台。更稳的做法是在报告里附一张「信息点—端口—设备」对照表,每个楼栋单独列,让数字自己说话。这张表做出来之后,后面的预算、光缆长度、配线架数量全都能从它推。
5.5 光模块和交换机插槽对不上
现象:千兆模块买回来了,插不进交换机的扩展槽,或者插进去不亮灯。
原因:光模块分 GBIC、SFP、SFP+ 几种封装,不同代际的交换机插槽不兼容;多模模块配单模光纤也不亮。原文清单里同时出现了「百兆多模光纤模块」和「GBIC 千兆光模块」,这两者对应的设备型号和插槽是不一样的,采购前必须逐个核对。
解决:选型阶段就把「交换机型号 + 插槽类型 + 模块型号 + 光纤类型」做成一张四列表,四个字段必须同时匹配。多模光纤配多模模块(波长 850nm,传输几百米内),单模配单模(1310nm,可上公里级),室外主干用多模铠装是合理的,因为校园内主干距离一般不超过 500 米。
6. 二次开发:把纸面方案改成可演示、可答辩的活环境
这份方案作为报告是完整的,但真拿去答辩或者当毕设基础,纸面拓扑的说服力有限。我的做法是把它拆成两层:网络层用模拟器搭,服务器层用容器起,两边用一张宿主网卡对接,整个演示环境一台笔记本就能跑。
网络层优先选支持命令行配置的模拟器,把第 3 章的 SVI 和 trunk 配置原样敲进去,验证 VLAN 间路由和默认路由。模拟器里跑通之后,把配置文件导出贴进报告附录,比截图有说服力得多。这里有个小技巧:模拟器里给核心交换机配一个环回口当管理地址,所有验证从管理口发起,报告里写「通过带外管理验证全网可达」,专业度立刻不一样。
服务器层用容器最快,三个服务各起一个,按第 4 章规划的 IP 挂在同一个自定义网络上:
# 建一个与服务器区同网段的桥接网络 docker network create --subnet=10.40.0.0/24 campus-net # DNS docker run -d --name dns1 --network campus-net --ip 10.40.0.10 \ -v /opt/dns/named.conf:/etc/bind/named.conf \ -v /opt/dns/zones:/etc/bind/zones \ -p 53:53/udp -p 53:53/tcp bind9:9.18 # WEB docker run -d --name www --network campus-net --ip 10.40.0.20 \ -v /opt/www:/var/www/html -p 80:80 php:8.2-apache # FTP(被动端口段要和配置文件一致) docker run -d --name ftp --network campus-net --ip 10.40.0.21 \ -p 21:21 -p 30000-30100:30000-30100 \ -v /opt/ftp:/home/vsftpd vsftpd:latest--subnet和--ip这两处是关键,必须和第 4 章规划的10.40.0.0/24对齐,否则容器里的 DNS 记录指向的地址和你实际起的服务对不上,验证时会一直失败。卷挂载的三个路径分别对应配置、站点、FTP 目录,改配置不用进容器,宿主机上改完重启容器即可。验证顺序建议固定成:dig查域名 →curl拉首页 →ftp传文件,三步都过说明整条链路是通的。
再往下做一层,就是把监控接进来。核心交换机开 SNMP,用一台轻量采集器定时拉接口流量和 CPU,画成曲线放进报告,能补上原文需求里「智能化管理」那一项的空缺。这部分不用做全,抓两三个关键指标就够,重点是让方案里有「运行数据」而不只是「设计参数」。
最后说个血泪经验。我头一次做这类方案时,报告写完、设备清单列完就直接交了,直到答辩前一天才想起来要把 DNS 配一遍,结果发现子网表里给服务器区划的地址和拓扑图上的标注差了一个段,全部要返工。从那以后我每次写网络方案,都强制先跑一遍「地址—拓扑—设备」三表对照:子网表里的每个网关地址,必须在拓扑图上能找到对应的设备接口;设备清单里的每个型号,必须在拓扑图上有一个位置。三张表对不上的地方,一定是设计还没想清楚的地方,早发现比晚发现省太多事。
希望帮到你。
本文还有配套的精品资源,点击获取