简介:这是一份面向网络工程专业学生和初学者的《交换机和路由器的配置》课程设计报告,适合在 Cisco Packet Tracer 5.0 模拟环境下完成网络设备配置实训。文档按需求分析、概要设计、详细设计、调试与操作说明、参考文献、附录的顺序编排,给出路由器添加 100M FastEthernet 光纤模块、光缆互联、直通线与交叉线连接、VLAN 划分、生成树协议、三层交换及路由配置等完整思路,并详解 ping 命令的工作流程和 show ip route 路由表查看方法,可用于排查 Request Timed Out、Destination Host Unreachable 等常见网络故障。压缩包共 1 个 doc 文件,大小 562KB,内容完整、目录清晰,可直接作为实验报告、课程设计说明书或复习笔记使用。此外,文档明确列出设备清单与网络拓扑,包含两台 Cisco 2621 路由器、多台 Catalyst 2960/3560 交换机及六台 PC 的连接关系,方便逐步复现配置过程。目前已有 460 人浏览学习,适合需要完成同类交换机与路由器配置任务、快速搭建网络拓扑并验证连通性的读者。
1. 交换机和路由器的配置课程设计:别让教材命令卡在第一步
很多人打开这类课程设计时,以为最难的是敲命令——VLAN、静态路由、Trunk,教材上写得清清楚楚。真正卡住你的往往不是命令本身,而是你手里只有零散命令,没有一张能回答“这台设备该配什么、那台设备该挂哪个网段、配完怎么证明全网通了”的拓扑和验证闭环。这份交换机和路由器的配置课程设计资源的价值就在补上这一环:它把整个实验拆成可复现的环境搭建、地址规划和完整脚本,从二层交换到三层路由逐个落地。适合正在做课程设计的学生、备考网络工程师认证的人,以及刚入行需要快速上手真实设备配置的运维新人。
2. 实验环境与拓扑规划:用模拟器搭一套能反复折腾的网络
2.1 模拟器选型:GNS3 的边界在哪
做交换机和路由器配置课程设计,第一步不是写配置,而是选对实验环境。常见的选择有两类:一类是集成度高的模拟器,界面友好、设备拖出来就能用;另一类是更接近真实设备的仿真环境,能加载真实系统镜像,GNS3 就属于后者。
我一般会建议优先用 GNS3 而不是纯图形化模拟器,原因有三个:
- 它支持加载真实的设备系统镜像,命令输出和真实设备几乎一致,课程设计里写的配置思路能直接迁移到机架上。
- 自带抓包能力,可以直观看到 VLAN 标签、ARP 请求、路由协议报文,排查“为什么不通”时非常有价值。
- 拓扑可以保存成工程文件,反复折腾不心疼,配坏了就回滚快照。
但 GNS3 也有边界。它对内存要求不低,如果电脑只有 4GB 内存,跑三台路由器和两台交换机就会明显卡顿,这种情况建议精简设备数量。另外,模拟器里没有真实线缆的电气特性,某些物理层故障(如网线顺序错、端口协商失败)它模拟不了,这类问题只能在真机上才能复现。选型时心里要清楚:模拟器解决的是逻辑配置问题,物理层问题它管不了。
| 对比项 | GNS3 | 纯图形化模拟器 |
|---|---|---|
| 真实系统镜像 | 支持 | 不支持 |
| 抓包分析 | 方便 | 受限 |
| 资源占用 | 较高 | 较低 |
| 命令迁移到真机 | 几乎无损 | 部分命令有差异 |
| 适合场景 | 课程设计、认证备考 | 入门体验、基础实验 |
2.2 拓扑与 IP 规划:一张能直接抄的地址表
环境选好之后,先画拓扑,再填 IP。我见过太多人上来就配置设备,配到一半发现 VLAN 网段和路由器互联地址重叠,只能推倒重来。这门课程设计我用的是一个经典且不复杂的拓扑:两台交换机 SW1、SW2,两台路由器 R1、R2,四台 PC 分别接入不同 VLAN。
拓扑结构是这样的:
- PC1 和 PC3 属于 VLAN 10,网段是 192.168.10.0/24,网关是 192.168.10.1。
- PC2 和 PC4 属于 VLAN 20,网段是 192.168.20.0/24,网关是 192.168.20.1。
- SW1 与 SW2 之间用 Trunk 链路互联。
- SW1 通过三层接口或路由器子接口连接 R1,SW2 连接 R2。
- R1 与 R2 之间用 192.168.100.0/30 的互联网段,掩码 30 位,只容纳两个可用地址。
把地址整理成表,配置时就不会乱:
| 设备 | 接口 | IP 地址 | 所属 VLAN / 用途 |
|---|---|---|---|
| PC1 | 网卡 | 192.168.10.10/24 | VLAN 10 |
| PC2 | 网卡 | 192.168.20.10/24 | VLAN 20 |
| PC3 | 网卡 | 192.168.10.11/24 | VLAN 10 |
| PC4 | 网卡 | 192.168.20.11/24 | VLAN 20 |
| SW1 | VLANIF 10 | 192.168.10.1/24 | 网关 |
| SW1 | VLANIF 20 | 192.168.20.1/24 | 网关 |
| SW1 | 上行口 | 192.168.100.1/30 | 互联 R1 |
| SW2 | 上行口 | 192.168.100.2/30 | 互联 R2 |
| R1 | 下行口 | 192.168.100.1/30 | 连接 SW1 |
| R1 | 回环口 | 1.1.1.1/32 | 模拟外网 |
| R2 | 下行口 | 192.168.100.2/30 | 连接 SW2 |
| R2 | 回环口 | 2.2.2.2/32 | 模拟外网 |
地址规划时有几条原则:用户网段用 24 位掩码,够用又不浪费;设备互联用 30 位掩码,严格点对点;回环地址用 32 位,方便模拟路由协议和管理地址。把这些写进文档,配置的时候照抄即可,不需要现场算。
2.3 启动设备前的三个检查项
拓扑和地址表就位后,先别急着敲配置,我习惯做三个启动检查,能省掉后面一大半故障排查时间。
第一,给每台设备设置唯一的主机名。模拟器里默认设备名全是“Router”或“Switch”,一旦开多个窗口,配置串台是常有的事。启动后第一件事就是改名,比如 SW1、SW2、R1、R2,后面看日志、看配置都清楚。
第二,确认所有接口初始状态。部分模拟器镜像的接口默认是 shutdown 状态,必须手动 no shutdown。这个问题在后续配置时特别容易忽略,接口配了 IP 却起不来,ping 永远不通,其实只是少了一条命令。
第三,检查抓包接口是否关联正确。如果打算抓 VLAN 标签或路由协议报文,提前把 Wireshark 关联到对应链路,而不是等出问题再找。抓包接口错误会把正常的报文误判成故障,这种弯路我走过不止一次。
3. 交换机与路由器的核心配置:从 VLAN 到静态路由的完整落地
3.1 交换机基础:VLAN 划分与 Trunk 链路
环境跑起来之后,先做交换机这层。VLAN 划分是整个课程设计的地基,VLAN 没配好,后面三层全白搭。SW1 和 SW2 的配置思路是一样的,下面以 SW1 为例,完整配置流程如下:
# 进入系统视图 system-view # 创建 VLAN 10 和 VLAN 20 vlan 10 description User_VLAN10 quit vlan 20 description User_VLAN20 quit # 将接入 PC 的接口划入对应 VLAN interface 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 # 配置上行 Trunk 口,放行 VLAN 10 和 20 interface GigabitEthernet0/0/24 port link-type trunk port trunk allow-pass vlan 10 20 quit这段配置做了四件事:创建 VLAN、给 VLAN 加描述、把接入接口设为 access 模式并划入 VLAN、把上行口设为 trunk 并放行指定 VLAN。命令逻辑上,access 口是连接终端的,只能属于一个 VLAN;trunk 口是连接交换机或路由器的,可以同时承载多个 VLAN 的流量。
参数上要注意port trunk allow-pass vlan后面的列表,默认 trunk 口只放行 VLAN 1,如果你漏了这行,VLAN 10 和 20 的流量在跨交换机时会被直接丢弃,而 ping 不通的现象会和网线故障一样,极具迷惑性。SW2 上执行同样的配置,只是接口编号按实际连接调整。
3.2 三层网关:VLAN 间路由的两种做法
VLAN 划好之后,VLAN 10 和 VLAN 20 之间还是隔离的,要让它们互通,必须做三层网关。常见做法有两种:一是用路由器子接口(单臂路由),二是用三层交换机的 VLANIF 接口做网关。
课程设计环境里如果直接用交换机做三层网关,配置最简洁。在支持三层转发的交换机上启用 IP 路由,并给 VLANIF 接口配地址:
# 启用三层路由功能 ip routing # 配置 VLAN 10 的网关地址 interface Vlanif10 ip address 192.168.10.1 255.255.255.0 quit # 配置 VLAN 20 的网关地址 interface Vlanif20 ip address 192.168.20.1 255.255.255.0 quitip routing是决定交换机能否转发三层报文的关键命令,很多模拟器里的交换机镜像默认只做二层,不敲这行,VLANIF 接口配置得再对,VLAN 间流量也不会被路由。VLANIF 接口的 IP 地址就是各 VLAN 内 PC 的网关,PC 上配置的网关必须和这个地址一致,否则数据包发到网关后发现“这不是我的地址”,直接被丢弃。
如果手上没有三层交换机,只有二层交换机和路由器,那就改用单臂路由:路由器的一个物理接口拆成多个子接口,每个子接口对应一个 VLAN:
interface GigabitEthernet0/0/0.10 dot1q termination vid 10 ip address 192.168.10.1 255.255.255.0 quit interface GigabitEthernet0/0/0.20 dot1q termination vid 20 ip address 192.168.20.1 255.255.255.0 quit子接口必须配置dot1q termination vid,告诉路由器这个子接口处理带哪个 VLAN 标签的帧;同时物理接口本身不要配 IP,只是作为 VLAN 标签的入口。单臂路由的缺点是所有 VLAN 间流量都挤在一条物理链路上,规模大了容易成为瓶颈。课程设计的拓扑里,我更推荐用三层交换机方案,配置少、效果好,也更贴近真实组网。
3.3 静态路由与默认路由:让全网互通
VLAN 间互通只是第一步,课程设计通常还要求两个区域之间能通信,也就是路由器层面的路由打通。R1 和 R2 上要配互联接口地址和回环地址,然后写静态路由。R1 的配置如下:
# 配置下行互联接口 interface GigabitEthernet0/0/0 ip address 192.168.100.1 255.255.255.252 no shutdown quit # 配置回环接口模拟外网 interface LoopBack0 ip address 1.1.1.1 255.255.255.255 quit # 写去往对端回环网段的静态路由 ip route-static 2.2.2.2 255.255.255.255 192.168.100.2 # 写默认路由,把所有未知流量交给对端 ip route-static 0.0.0.0 0.0.0.0 192.168.100.2R2 上做对称配置,回环地址换成 2.2.2.2,静态路由指向 1.1.1.1,下一跳是 192.168.100.1。
静态路由的三要素是目的网段、掩码、下一跳。注意下一跳必须是与本设备直连的地址,不是对端设备的回环地址,否则路由器根本不知道往哪儿送。写成 192.168.100.2 是因为这是 R2 上与 R1 直连的那个接口地址,数据包只有先到它,R2 才会继续转发。
默认路由0.0.0.0 0.0.0.0匹配所有目的地址,放在最后作为兜底。这里两条路由都指向同一个下一跳,初看有点冗余,实际分工不同:静态路由精确匹配 2.2.2.2,默认路由处理其余流量。在这个拓扑里,默认路由其实已经能覆盖去往 2.2.2.2 的流量,但写上精确静态路由可以让路由表更清晰,排查时一眼能看出预期路径。
配置完成后,从 PC1 ping 2.2.2.2 能通,说明 VLAN、三层网关、路由三层全部正常。如果只通了网关但 ping 不通对端回环,问题通常出在路由器上;如果网关都不通,问题出在交换机 VLAN 或网关配置上。这个排查顺序后面还会细说。
4. 配置实战中的避坑清单:五个反复出现的故障点
4.1 现象:PC 能 ping 通网关,但 ping 不通另一个 VLAN 的 PC
这是课程设计里最常见的故障。PC1 ping 192.168.10.1 是通的,ping 192.168.20.10 却不通。原因通常是三层交换机上没启用ip routing,VLANIF 接口虽然配了地址,但设备只做二层转发,不会在 VLAN 间路由报文。
解决方法是检查交换机路由功能是否开启,执行show ip route看有没有直连路由条目。如果没有,补上ip routing,问题立刻消失。这个坑的隐蔽之处在于 VLANIF 接口状态是 up 的,看着一切正常,实际三层转发根本没启用。
4.2 现象:Trunk 口配了 allowed vlan,跨交换机还是不通
SW1 和 SW2 之间的 Trunk 口明明配置了放行 VLAN 10 和 20,但 VLAN 10 的 PC 跨交换机 ping 不通。抓包发现帧到达 SW2 入口时被丢弃。原因可能是两台交换机 Trunk 口的 native VLAN 不一致。如果 SW1 的 Trunk 口 native VLAN 是 1,SW2 的是 10,两边对不带标签的帧理解不同,就会导致异常丢包。
解决方法是把两端 native VLAN 改成一致,或者明确地都设置为默认 VLAN 1,不要一边改一边不改。另外检查port trunk allow-pass vlan列表是否两端对称,只放行了 VLAN 10 而漏了 VLAN 20,会让 VLAN 20 的流量在 Trunk 上静默丢弃。
4.3 现象:静态路由写了,ping 对端回环还是不通
R1 上已经写了ip route-static 2.2.2.2 255.255.255.255 192.168.100.2,从 R1 ping 2.2.2.2 不通。用 traceroute 看,数据包到了 192.168.100.2 之后就断了。原因往往不是这条路由写错,而是 R2 上没有回程路由。R2 收到来自 1.1.1.1 的包,它知道目的地址是 1.1.1.1,但路由表里没这条,直接丢弃并返回 ICMP 不可达。
解决方法是检查回程方向:在 R2 上补一条去往 1.1.1.1 的静态路由。静态路由是单向的,每条路由只管自己设备怎么转发,不能指望对端“自动知道”回来的路。排查时必须把两个方向都查一遍,这是路由配置的常识,也是初学者最容易漏掉的一环。
4.4 现象:接口配了 IP 但状态是 administratively down
配置完接口 IP 后,show ip interface brief显示接口状态是 down,甚至显示 administratively down。原因是模拟器镜像默认把部分接口设为 shutdown 状态,接口管理状态被关闭,物理层无论如何不会起来。
解决方法是在接口视图下执行no shutdown。在真实设备上,某些接口默认也是关闭的,配置 IP 后必须手动打开。我习惯在每段接口配置末尾都写no shutdown,而不是只写 IP 地址,这样即使换了环境也不会踩这个坑。
4.5 现象:配置保存了,重启后全部丢失
课程设计答辩前,学生把设备配置都敲好了,模拟器一重启,所有配置回到出厂状态。原因是只把运行配置写进了内存(running-config),没有保存到启动配置(startup-config)。模拟器关闭时,运行配置默认不写入磁盘。
解决方法是每台设备配置完成后都执行保存命令,交换机用save,路由器用write memory或copy running-config startup-config,保存后确认提示成功。我习惯在整个拓扑全部调通后,逐台设备依次保存,并在工程文件里额外导出一份配置文件备份。这样就算模拟器崩溃,也能快速恢复,不至于熬夜重配。
5. 验证方法与一个进阶技巧:用 ping 和 traceroute 说话,再把配置模板化
5.1 验证闭环:从接口状态到端到端连通
配置全部完成后,很多人习惯“能 ping 通就算完事”,但 ping 通只是一个结果,过程中哪跳最快、哪跳有丢包、MAC 表是否正确,这些信息能帮你判断网络是不是真的健康。我每次做完配置都会走一遍固定的验证矩阵:
| 验证项 | 命令 | 预期结果 |
|---|---|---|
| 接口状态 | show ip interface brief | 所有接口 up |
| 路由表 | show ip route | 直连加静态路由齐全 |
| MAC 地址表 | show mac address-table | 各 VLAN 内 MAC 正确学习 |
| 二层连通 | ping 网关地址 | 通 |
| VLAN 间路由 | ping 另一个 VLAN 的 PC | 通 |
| 跨路由通信 | ping 对端回环地址 | 通,且 traceroute 路径正确 |
| 链路质量 | ping 加 repeat 100 | 无丢包,延迟稳定 |
验证时先看接口再看路由表,最后做端到端 ping。如果某一步不通,用 traceroute 定位断点:断在网关说明二层问题,断在路由器之间说明路由协议或静态路由问题。抓包看 ICMP 报文也能快速区分是请求没到还是回复没回来。
5.2 进阶技巧:把配置模板化,五分钟生成整套配置
当课程设计需要搭建多套相同结构的拓扑时,逐台手敲配置效率太低,也容易抄错。我习惯把配置写成模板,用脚本批量生成。以华为风格命令为例,用 Python 做字符串替换:
# 设备配置模板生成脚本 vlan_config = """ vlan {vlan_id} description {vlan_name} quit """ trunk_config = """ interface {trunk_port} port link-type trunk port trunk allow-pass vlan {vlan_list} quit """ devices = [ {"hostname": "SW1", "vlan_id": 10, "vlan_name": "User_VLAN10", "trunk_port": "GigabitEthernet0/0/24"}, {"hostname": "SW2", "vlan_id": 20, "vlan_name": "User_VLAN20", "trunk_port": "GigabitEthernet0/0/24"}, ] for device in devices: config = f"system-view\nsysname {device['hostname']}\n" config += vlan_config.format(vlan_id=device["vlan_id"], vlan_name=device["vlan_name"]) config += trunk_config.format(trunk_port=device["trunk_port"], vlan_list="10 20") with open(f"{device['hostname']}.cfg", "w") as f: f.write(config) print(f"{device['hostname']}.cfg 已生成")这个脚本的核心思想是把配置拆成可复用的片段,用字典维护每台设备的差异项(主机名、VLAN 编号、接口名),批量生成独立的配置文件。参数说明:vlan_id是 VLAN 编号,vlan_name是描述,trunk_port是 Trunk 接口名,vlan_list是放行列表。这套方法在真实运维里也常用,几十台接入交换机的开局配置,靠脚本生成远比手敲可靠。
从那以后,我每次做网络类课程设计或项目开局,都强制自己先画拓扑、再填地址表、最后写配置,配完按验证矩阵逐项打勾。这套流程看着笨,但真的能避免百分之九十的低级故障。希望帮到你。
本文还有配套的精品资源,点击获取