Cisco Packet Tracer入门与PVST多生成树实战配置 📅 发布时间:2026/9/16 19:32:24 👁 浏览次数: 网络这行有个挺讽刺的现象不少人考完笔试背得出OSI七层、能默写STP选举规则但一让他把两台交换机接起来抓一次收敛过程手就停了。问题不在理论在于缺少一个可以随便折腾、炸了也不心疼的环境。思科模拟器Cisco Packet Tracer就是干这个的——它把路由、交换、无线、IoT 这些设备的命令行和转发行为搬进一个桌面软件里让你在自己的笔记本上就能反复演练。我用了很多年从早年的 6.x 一路跟到 7.3、8.0也带过不少新人入门这篇就把安装、界面、第一个最小拓扑以及热词里提到的 PVST 多生成树实战按我自己的操作习惯完整讲一遍。零基础能照着做有一定经验的人也能在里面找到一些说明书不会写的细节。1. 先搞清楚 Packet Tracer 到底模拟了什么很多人第一次打开这个软件会有一个误解以为它是个网络设备仿真器能还原真机的全部行为。实际用几次就会发现它的定位更接近教学用的行为模型。搞清楚这条边界比急着敲命令重要得多因为它直接决定你该拿它练什么、不该拿它练什么。1.1 它和真机、其他仿真方案的差别Packet Tracer 的核心是仿真而不是模拟转发面。你敲进交换机的每条命令都是被软件里的一段逻辑解释后执行的而不是真的跑了一份 IOS 镜像。这个设计带来的好处很直接一个 200MB 出头的安装包就能在普通办公本上拉起几十台设备启动快、占用低、拓扑随便画。代价也很明显。真机上一些依赖硬件芯片的行为比如 PBR 的复杂匹配、QoS 队列的实际调度、硬件转发表的容量上限它要么简化实现要么干脆不支持。我自己踩过的典型例子是在真机上用show interfaces看计数器的变化曲线在模拟器里永远看不到那种细微的抖动。所以我的习惯是概念验证、命令语法、协议收敛过程放模拟器性能、硬件特性、兼容性验证上真机。两者不是替代关系是分工关系。1.2 哪些实验该放在这里做按我的经验下面这几类实验在 Packet Tracer 上的收益最高性价比也最好实验类型适合程度说明VLAN、Trunk、VTP非常适合逻辑行为完整收敛过程可视STP / PVST / RSTP非常适合端口角色变化能直接看到静态路由、RIP、OSPF、EIGRP非常适合邻居建立、路由表变化清晰ACL、NAT、DHCP适合语法与匹配逻辑准确无线、IoT 传感器适合这是它的特色模块QoS、硬件性能、镜像流量不适合行为被大幅简化大规模 BGP 选路一般少量邻居可以规模上去后吃力这张表不是拍脑袋写的。我刚学网络那阵子花了两天在模拟器上调 QoS 的队列怎么调都看不到想要的效果后来才知道那部分根本没有完整的实现。那次之后我就养成了一个习惯动手之前先查一遍该特性在当前版本里的支持程度能省掉大量无效时间。1.3 版本选择上我的一些偏好7.3 和 8.0 这两个版本被提得最多。我的看法是如果只是做路由交换的基础实验7.3 完全够用稳定性也好老机器上更友好如果你想碰新的无线控制器、更完整的 IoT 功能或者需要和较新版本的课程文件互通那就上 8.0。需要提醒的一件事是保存格式的兼容性。用 8.0 存的.pkt文件拿到 7.3 上大概率打不开反过来一般没问题。我的做法是课程资料统一用一个版本避免在课堂或团队协作时出现文件打不开的尴尬。2. 安装这一步真正容易出问题的地方安装本身不难难的是新手往往在几个不起眼的地方卡住然后误以为是软件有毛病。下面这几件事我在帮别人处理问题时反复遇到值得单独拎出来说。2.1 账号和安装包来源这件事新版本的 Packet Tracer 首次启动时会要求你用一个学习平台的账号登录目的是把课程和你本地的实验进度关联起来。这件事本身没什么门槛按提示去注册一个免费账号就行流程都是官方页面上的正常操作。这里我要强调一点只从官方渠道获取安装包。网上那些来路不明的绿色版注册版本身就存在被篡改的风险而且版本号混乱出了问题你连排查的基准都没有。学习工具而已没必要为了省两分钟去冒这个险。2.2 Windows 和 macOS 上的安装差异Windows 上的流程比较直白双击安装包一路下一步中间可能会提示安装一个虚拟网卡驱动这是为了让模拟的设备和本机之间能做某些连通性实验用的正常允许就行。装完之后建议右键以管理员身份运行一次让它在首次启动时完成必要的文件释放。macOS 上的坑更多一点。较新的系统对应用来源限制得比较严第一次打开可能弹窗提示无法验证开发者这时候去系统设置 - 隐私与安全性里手动放行一次就可以。另外苹果芯片的机器上个别老版本运行起来会有界面卡顿我的建议是尽量用较新的版本或者接受它是通过兼容层运行的这一事实——功能不受影响只是偶尔滚动画布时会掉帧。还有一个所有平台通用的建议安装路径不要带中文和空格。这个坑太经典了路径里有中文某些实验里的文件读写会莫名其妙失败排查半天才发现是路径问题。2.3 首次启动后的三项设置装好之后别急着画拓扑先把三个地方调一下后面会舒服很多界面语言菜单里有语言选项选中文之后大部分菜单会变中文但设备本身的命令行输出还是英文。这是正常的因为 IOS 的命令本来就是英文别指望它变成中文早点适应英文回显反而是好事。工作区自动保存间隔在偏好设置里把自动保存打开间隔设成几分钟。模拟器崩一下、笔记本没电一下你半小时的拓扑就没了这个设置救过我很多次。字体和画布缩放如果你用的是高分屏默认字体可能会小到看不清设备图标下面的标签在偏好设置里适当放大一点。3. 把界面拆成四块来看理解成本立刻降下来第一次打开软件的人普遍会觉得东西好多不知道从哪下手。其实整个界面可以粗暴地分成四块理解了每块的职责操作路径就清晰了。3.1 逻辑工作区和物理工作区默认你看到的是逻辑工作区也就是画拓扑、连设备、敲配置的地方。右上角能切到物理工作区那里可以摆城市、楼宇、机柜甚至能看到设备的前面板和指示灯。很多人觉得物理工作区是花架子直接忽略。我倒觉得它有几个实际用途一个是讲物理连接和逻辑连接不一致这种概念时特别直观另一个是在做一些涉及配线架、机柜布局的演示时能帮人建立空间感。但就做路由交换实验而言逻辑工作区确实占了 95% 的使用时间。3.2 设备面板和线缆的选择逻辑左下角的设备面板按类别分组路由器、交换机、终端设备、无线、连接线、其他。选好设备拖到画布上就完成了添加。线缆这一栏是新手最容易纠结的地方因为线型名字看着都差不多。我给出的经验是优先用 Automatic 类型它会根据两端端口自动选合适的线选错了还会提示你。等你对接口类型熟悉了再去手动指定。有一个例外必须记住连设备的 Console 口做本地配置时要用那根浅蓝色的 Console 线一端接设备的 Console 口另一端接 PC 的 RS232 串口然后用 PC 上的终端程序连进去。这是绕过初始配置界面、直接进命令行的方法真机上也是同一个思路。3.3 Realtime 和 Simulation 两种模式右下角有个模式切换这是 Packet Tracer 我认为最有价值的设计。Realtime 模式就是正常操作设备按逻辑即时转发。Simulation 模式会把数据包变成一个个可以暂停、单步执行的小图标你能看到 ARP 请求怎么发出去、怎么被广播、怎么回来也能看到 STP 的 BPDU 是怎么在交换机之间传递的。我用 Simulation 模式的方式是先用 Realtime 把配置敲完跑通再切到 Simulation 单步跑一遍关键流程。这么做的价值在于你敲命令的时候是在做单步看包的时候是在理解两件事分开做效率比混在一起高得多。4. 从零搭一个能跑通的最小实验理论说再多不如亲手连一次。下面这个拓扑我推荐给每一个刚开始用模拟器的人它足够简单又包含了最核心的几个动作连线、配地址、配交换机、验证连通性。4.1 拓扑搭建的具体操作需要的东西只有三样两台普通 PCPC-PT、一台二层交换机比如 2960。操作顺序按这个来从设备面板里拖两台 PC 和一台 2960 到画布上摆成一个三角或一字形都可以。点连接线里的 Automatic然后点击 PC1弹出的列表里选 FastEthernet0。再点交换机选一个 FastEthernet 端口比如 Fa0/1。线就接好了。重复上面的动作把 PC2 接到交换机的 Fa0/2。点击每个设备切到 Config 标签把设备的显示名改成有意义的名字比如 PC-A、PC-B、SW1。最后一步改名看着琐碎但拓扑一大你就知道它的价值了。我见过太多人交上来的作业里全是PC0、PC1、Switch0连自己都分不清哪个是哪个。关于线缆顺便说一句PC 和交换机之间用直通线是对的早期的模拟器版本会因为线序不对导致端口不亮现在的版本基本都能自动处理。如果你发现端口一直是红的先检查线型再检查端口是不是被 shutdown 了。4.2 IP 规划和命令行配置地址规划这件事哪怕是两个人做实验也要有规划习惯。这个实验我用 192.168.10.0/24 这一段设备接口IP 地址子网掩码网关PC-AFa0192.168.10.1255.255.255.0不填PC-BFa0192.168.10.2255.255.255.0不填PC 上配置很简单Config 标签里点 FastEthernet0填 IP 和掩码就行。交换机那边需要进命令行操作是点开交换机切到 CLI 标签敲回车进入用户模式然后Switch enable Switch# configure terminal Switch(config)# hostname SW1 SW1(config)# interface vlan 1 SW1(config-if)# ip address 192.168.10.254 255.255.255.0 SW1(config-if)# no shutdown SW1(config-if)# exit SW1(config)# exit SW1# write memory这里的interface vlan 1是给交换机配上管理地址用的。二层交换机本身不能给物理端口配 IP只能给一个 VLAN 接口配这是很多人第一次会问的问题。配完之后PC 就能 ping 通这个管理地址做远程管理也才有基础。write memory这条命令别省。模拟器里不保存关掉窗口配置就没了和真机一样。我习惯用老写法write也能写成copy running-config startup-config效果一样。4.3 用两种方式验证链路最直接的验证是在 PC-A 的 Command Prompt 里敲ping 192.168.10.2第一次 ping 有可能出现第一个包超时、后面三个通的情况这是 ARP 解析导致的属于正常现象不是配置错了。如果你看到四个全通说明一切正常。再用 Simulation 模式走一遍价值会更大切到 Simulation 模式点开显示过滤器只勾选 ARP 和 ICMP。点 PC-A 的 Command Prompt重新 ping 一次。点播放按钮你会看到一个 ARP 请求从 PC-A 发出被交换机泛洪到所有端口。单步往下走看 PC-B 回 ARP 应答然后 ICMP 请求才发出去。这个流程走一遍比看十页书管用。我当年就是靠这个搞明白了为什么第一次 ping 会丢一个包这个问题在面试里被问到的频率高得离谱。5. PVST 多生成树实战从配置到看结果热词里出现配置多生成树协议 PVST 实战说明大家对这块的需求很集中。二层的冗余和环路是网络里最经典的问题你不接冗余链路断一根就断网接了冗余链路广播风暴立刻把网络打瘫。生成树就是来解决这个矛盾的而 PVST 是思科设备上的默认形态。5.1 为什么需要按 VLAN 分别算生成树要理解 PVST 的价值先要理解它解决的是什么。传统的 STP 是整网一颗树所有 VLAN 共用同一套转发拓扑。这带来一个很尴尬的结果你为了冗余接了两台交换机结果其中一条链路永远处于阻塞状态带宽白白浪费。PVSTPer-VLAN Spanning Tree的思路是每个 VLAN 独立计算一棵生成树。VLAN 10 可以让 SW1 当根桥VLAN 20 让 SW2 当根桥。这样一来两条上行链路可以分别承载不同 VLAN 的流量既保留了冗余又用上了带宽。这个思路后来被更高效的 RSTP 继承也就是 Rapid-PVST。需要提前说明一点在思科的交换机上PVST 是默认运行的包括在模拟器里。你敲spanning-tree mode pvst更多是为了显式确认或从其他模式切回来。很多人以为不配就没有生成树实际上它在后台一直跑着。5.2 搭一个三台交换机的冗余拓扑为了把效果看清楚用三台交换机组一个三角设备角色定位主要端口SW1汇聚层Fa0/1 接 SW2Fa0/2 接 SW3SW2接入层Fa0/1 接 SW1Fa0/2 接 SW3SW3接入层Fa0/1 接 SW1Fa0/2 接 SW2连线全部用直通线。这个三角结构的好处是任意拔掉一条线网络都能重新收敛你能亲眼看到端口角色从阻塞变成转发。先在三台交换机上创建 VLAN 并配好 TrunkSW1# configure terminal SW1(config)# vlan 10 SW1(config-vlan)# vlan 20 SW1(config-vlan)# exit SW1(config)# interface range fastEthernet 0/1 - 2 SW1(config-if-range)# switchport mode trunk SW1(config-if-range)# switchport trunk allowed vlan 10,20 SW1(config-if-range)# exit SW1(config)# end SW1# writeSW2 和 SW3 用同样的命令操作各自的端口。interface range这个写法要熟练端口一多一条一条敲会疯掉。5.3 让不同的 VLAN 走不同的路关键的配置在这里。我们要让 VLAN 10 走 SW1VLAN 20 走 SW2实现流量的分流SW1(config)# spanning-tree mode pvst SW1(config)# spanning-tree vlan 10 root primary SW1(config)# spanning-tree vlan 20 root secondary SW2(config)# spanning-tree mode pvst SW2(config)# spanning-tree vlan 20 root primary SW2(config)# spanning-tree vlan 10 root secondaryroot primary和root secondary是思科提供的宏命令它会自动帮你算一个合适的优先级值并下发。如果你想手动控制也可以用spanning-tree vlan 10 priority 4096这种写法。注意优先级的值必须是 4096 的整数倍取值范围是 0 到 61440。写成 4000 或者 5000 这类数值设备会直接拒绝。这是新手最常犯的一个错误。模拟器里三台交换机的 MAC 地址是随机生成的所以有时候你不配优先级根桥也会落在你期望的设备上这属于运气。做实验时一定要显式配根桥把结果建立在确定的配置上而不是概率上。5.4 怎么确认结果以及做一次故障演练配置完不要急着说好了必须验证。用这几条命令看结果SW1# show spanning-tree vlan 10 SW1# show spanning-tree vlan 20 SW1# show spanning-tree summary第一条命令的输出里重点看三样东西Root ID 的地址、本机所有端口的角色Role和状态State以及Root Path Cost。在 VLAN 10 里SW1 应该显示自己是根桥两个端口都是 Designated/Forwarding。而 SW2 或 SW3 上必然会有一个端口是Alternate/Blocking这就是被生成树关掉的那条冗余路径。切到 VLAN 20 再看一次你会发现阻塞的端口换了一个——这正是 PVST 的效果也是这个实验最值得截图记录的地方。看明白之后做一次故障演练。切到物理视图右键点击 SW1 和 SW2 之间的那根线选择删除或者直接在一个端口上敲shutdown。然后回到 SW1反复执行SW1# show spanning-tree vlan 10你会看到原本 Alternate 的端口在几十秒内变成 Root/Forwarding流量切到了另一条路径上。这个等待时间正是传统 STP 的收敛速度如果你切换成 Rapid-PVSTSW1(config)# spanning-tree mode rapid-pvst再重做一次拔线演练收敛会快得多通常在几秒内完成。把两种模式的收敛时间做个对比你对为什么要用 RSTP这件事的理解会比看书深刻得多。6. 用久了必然会撞上的几个问题软件用顺手之后剩下的时间基本都花在排错上。下面这几个问题我在不同的机器、不同的版本上都遇到过处理思路一并写出来。6.1 设备点不亮、文件打不开这类假故障端口一直是红的先别怀疑软件。按这个顺序排查线型对不对两端的端口是不是 shutdown 了PC 的网卡有没有被禁用。保存的拓扑双击打不开八成是版本不兼容。用高版本存的文件在低版本上会失败遇到这种情况把源文件和版本号一起确认一遍。设备开机特别慢、拖动卡顿一般是因为拓扑里设备数量太多或者同时开了很多动画。可以关掉动画效果或者把大拓扑拆成几个小文件分别保存用到哪块开哪块。6.2 命令被拒绝或者提示不支持的排查思路敲了命令没反应或者报错通常有三种原因。一种是当前模式不对比如在用户模式下敲了配置命令得先enable再configure terminal。另一种是设备型号不支持比如在二层交换机上配路由协议在普通路由器上配 VLAN 数据库这些都需要换设备。还有一种是语法本身有误这时候在命令后面加个问号看提示能补全什么参数比翻手册快。我的经验是遇到报错先看提示里的第一个关键词它通常会告诉你问题出在模式还是参数上。这个判断做对了排查时间能砍掉一半。6.3 让大拓扑跑得更顺的一些习惯做综合实验的时候拓扑动辄几十台设备这时候几个习惯就显得很重要。命名规范是第一个。设备名、端口描述、接口备注都写清楚过两天再打开文件你能立刻回忆起当初的设计意图。分段保存是第二个功能验证完一块就存一个新版本文件出问题可以回退。配置备份是第三个把关键的配置文本用记事本单独存一份文件损坏时可以直接粘贴回去。最后再分享一个我自己的小技巧在交换机的接口上顺手加一句描述比如SW1(config)# interface fastEthernet 0/1 SW1(config-if)# description To-SW2-Fa0/1这条命令不改变任何功能但它在你几个月后重新打开这个文件时价值立刻就显现出来了。我在真机上也是同样的习惯机房里的每一根线都值得有一句注释模拟器里练出来的这个习惯最后都会变成工作中的肌肉记忆。