思科3850交换机配置复盘:管理面数据面控制面与安全落地 机房上架一台新的接入交换机最怕的不是不会敲命令而是敲完之后发现某个环节漏了等到业务上线一周才暴露出问题。前段时间我给某办公区做网络改造手上一台 WS-C3850-48T48 个千兆电口加 4 个 SFP 上行需要在一天内完成从空配置到可远程管理的全部动作同时把端口安全、DHCP Snooping、动态 ARP 检测、802.1X 这些安全配置一并落地。这篇就把整个思科交换机配置的过程完整复盘一遍包含安全配置部分的取舍逻辑、每一步为什么这么写、哪些参数是拍脑袋会出事的。内容适合两类人看一是刚接手 IOS XE 设备、被GigabitEthernet1/0/1这种三段式接口名搞懵的朋友二是已经会敲基础命令、但安全配置总是照抄模板、不知道开启之后会踩什么坑的朋友。我把配置分成管理面、数据面、控制面三层来做每一层都有对应的验证手段最后有排查表照着走基本能复现。1. 先把架构想清楚再敲第一条命令1.1 这台 3850 的硬件特性决定了配置怎么写WS-C3850-48T 是固定配置的堆叠型接入交换机48 个 10/100/1000BASE-T 电口加上 4 个 SFP 上行槽位跑的是 IOS XE 系统而不是老式的 IOS。这几个信息直接决定了后面很多命令的写法不能凭老设备经验想当然。第一个差异是接口命名。老设备是GigabitEthernet0/13850 变成了三段式GigabitEthernet1/0/1第一位是堆叠成员号第二位是槽位号第三位才是端口号。哪怕你现在只买了一台机器它的成员号也是 1所以下行口就是 Gi1/0/1 到 Gi1/0/48。上行 4 个 SFP 口挂在槽位 1 上编号是 Gi1/1/1 到 Gi1/1/4。这个编号规则一定要提前记住否则你配interface range Gi1/0/1-48的时候手一抖写成Gi0/1-48设备会直接报错或者匹配不到任何端口白忙一场。第二个差异是三层能力的默认状态。3850 出厂默认是开启ip routing的这跟 2960 系列完全相反。很多人习惯了在管理 VLAN 上配ip default-gateway结果在 3850 上敲进去发现命令能执行但根本不生效因为设备在路由模式下根本不看这条命令。要么老实写ip route 0.0.0.0 0.0.0.0 网关地址要么先no ip routing把它压回纯二层模式再用ip default-gateway。我一般推荐前者保留三层能力后面做 VLAN 间隔离或者接个临时网段都方便。第三个差异是 License。3850 的基础镜像自带 LAN Base 功能集做二层接入完全够用但如果你要用到完整的 OSPF、BGP 或者某些高级安全特性需要确认 License 级别。开局前用show license看一眼别等到配到一半发现命令不被识别。提示上行口的实际形态SFP 还是 SFP跟具体子型号有关上机前对着面板和show inventory确认一遍别照着别人的配置单直接抄。1.2 配置分三层做比一条条堆命令靠谱得多我踩过最大的坑是早期拿到设备就从第一个命令开始往下敲敲到一半发现口令策略没规划、管理地址跟现网冲突只能推倒重来。后来固定成三层推进的思路效率高很多。管理面管的是“我怎么连上这台设备”主机名、口令、SSH、AAA、VTY 限制、日志、NTP、SNMP。这一层的原则是先收紧再加功能设备刚上电时所有默认服务都是开着的包括 HTTP 服务、CDP 全局广播、finger 之类先关掉再谈别的。数据面管的是“业务怎么通”VLAN 划分、接入端口、Trunk 放行、端口描述。这一层的原则是默认拒绝未使用的端口全部 shutdown 并丢进隔离 VLANTrunk 上的 allowed vlan 显式列出来而不是all。控制面管的是“设备自己怎么活”STP 防护、风暴控制、CoPP、errdisable 恢复。这一层最容易被忽略但它决定了当网络里出现环路或者广播风暴时设备是扛住还是直接躺下。三层分开做的好处是验证也分得清。管理面配完先测 SSH 能不能登录数据面配完先测 PC 能不能拿到地址控制面配完再跑一遍压力测试。出了问题定位范围小不用在几百行配置里翻找。1.3 上机前必须问清楚的几件事有几项信息不问清楚配置做到一半必然返工我在现场吃过亏。信息项为什么必须先确认不确认的后果管理网段与网关SVI 地址、默认路由都依赖它配完发现地址冲突改地址要重连 ConsoleVLAN 编号规划接入端口、Trunk、DHCP Snooping 都要引用后期改 VLAN 要动几十个端口上游设备接口类型决定 Trunk 封装和 allowed vlan 写法配完不通怀疑人生认证服务器地址与密钥802.1X 和 AAA 依赖它配了 AAA 但没服务器自己被锁在外面是否需要堆叠决定优先级和堆叠线缆规划后期加成员要停机最后一条特别提醒启用 AAA 之前一定要保留一个本地账号并且确认 Console 口可用。我见过有人aaa new-model配完TACACS 服务器地址写错VTY 又只允许 AAA 认证结果 SSH 进不去、Telnet 没开只能跑机房插 Console 线。这个教训值一条 Console 线的钱。2. 开局配置从空配置到能远程管理2.1 Console 接入和第一次登录的细节新设备或者恢复出厂后的设备只能用 Console 进去。终端软件参数固定为 9600 波特率、8 数据位、无校验、1 停止位、无流控。这个参数十几年没变过但每次还是有人栽在流控上——把 RTS/CTS 打开屏幕一片空白。线接好、终端打开给设备上电会看到一大堆启动日志刷过去。等出现Press RETURN to get started敲回车进入用户模式提示符Switch。这时候敲enable进特权模式如果是全新设备没有 enable 口令直接回车就进去了。第一次登录建议先做两件事show version确认软件版本和型号show switch确认堆叠成员状态。前者关系到后面命令语法IOS XE 16.x 和老 3.x 在某些命令上有差异后者关系到接口编号。单机情况下show switch会显示一个成员状态是 Ready。2.2 主机名、口令与 SSH 加固的完整命令这一段是管理面的地基我按实际敲的顺序列出来每一步后面说明意图。enable configure terminal hostname SW-ACC-01 enable algorithm-type scrypt secret 这里换成你的强口令 service password-encryption no ip http server no ip http secure-server no ip source-route no service tcp-small-servers no service udp-small-servers no ip finger ip domain-name corp.local crypto key generate rsa general-keys modulus 2048 ip ssh version 2 ip ssh time-out 60 ip ssh authentication-retries 3enable algorithm-type scrypt secret这行值得单独说。老写法enable secret 密码默认用 MD5 存储service password-encryption用的更是可逆的弱加密type 7拿个在线工具几秒钟就能还原。scrypt 是 type 9专门抗暴力破解IOS XE 16.x 之后都支持。如果版本太老不支持退一步用enable algorithm-type sha256 secret。no ip http server和no ip http secure-server关的是 Web 管理界面。这条我从来不留Web 界面的攻击面比 CLI 大得多而且实际运维根本用不上。no ip source-route关掉源路由选项防止有人用源路由做路径欺骗。no service tcp-small-servers这类是关掉一堆老旧的调试服务 echo、chargen 等这些服务在当年是排障工具现在是反射攻击的放大器。生成 RSA 密钥前必须先有 hostname 和 domain-name否则会报“hostname 未配置”的错误。这是新手最常卡住的地方。2.3 管理 VLAN、SVI 和默认路由的地址规划管理地址我习惯单独划一个 VLAN不跟业务混。假设规划是 VLAN 99网段 10.20.99.0/24网关 10.20.99.1这台交换机用 10.20.99.11。算一下可用范围/24 掩码 255.255.255.0网络地址 .0广播地址 .255可用主机 254 个.1 到 .254。网关取 .1交换机取 .11把 .2 到 .10 留给同网段的其他网络设备。vlan 99 name MGMT interface Vlan99 description MGMT-SVI ip address 10.20.99.11 255.255.255.0 no shutdown ip route 0.0.0.0 0.0.0.0 10.20.99.1这里两个细节。第一interface Vlan99创建后默认是shutdown状态必须显式no shutdown否则 SVI 的 protocol 一直是 downshow ip interface brief里看着地址配上了但不通。第二前面说过 3850 默认开路由所以用ip route而不是ip default-gateway。验证的时候别只看show ip interface brief那个只说明接口状态不说明路由。用show ip route确认默认路由是 S 开头静态下一跳地址正确。再用ping 10.20.99.1测网关通了才算管理面打通。2.4 本地账号、VTY 限制和 AAA 的平滑引入在还没有认证服务器的时候先用本地账号顶住username netadmin privilege 15 algorithm-type scrypt secret 这里换成强口令 line vty 0 15 transport input ssh login local exec-timeout 10 0 logging synchronoustransport input ssh只允许 SSH把 Telnet 彻底关掉。exec-timeout 10 0是 10 分钟无操作自动断开防止有人开着终端就走了。logging synchronous是让日志不打断你正在敲的命令纯粹是体验优化但强烈建议加。后续接入 TACACS 或者 RADIUS 的时候不要直接把login local删掉而是用 AAA 的 fallback 机制aaa new-model tacacs server TAC-01 address ipv4 10.10.10.20 key 这里填共享密钥 aaa authentication login default group tacacs local aaa authorization exec default group tacacs local aaa accounting exec default start-stop group tacacs关键是group tacacs local最后的local。它的含义是“服务器不可达时回退到本地账号”。少了这个词一旦认证服务器挂了所有人都进不来包括你自己。这个设计在真实故障里救过我一次——某次认证服务器做维护忘了通知全网设备差点失联。2.5 配置保存、备份和基线归档配置完不保存等于白干end write memorywrite memory是老写法等价于copy running-config startup-config。IOS XE 上两个都能用。但只保存到 startup-config 还不够那只是一份。我习惯再往 flash 里存一份带日期的备份同时开自动归档copy running-config flash:backup-20250101.cfg archive path flash:archive/$h-$t write-memory time-period 1440time-period 1440是每 1440 分钟一天自动归档一次文件名带主机名和时间戳。这个功能的价值在于某天有人改了配置导致故障你可以直接configure replace flash:archive/xxx.cfg回滚比手工对比强太多。注意configure replace是整份替换会把当前配置里没在新文件中的部分全部删掉。执行前先show archive看清楚文件内容别拿错版本。3. 数据面VLAN、端口角色和 Trunk 收敛3.1 VLAN 命名规范和创建方式VLAN 规划我坚持两条编号分段、名字有意义。办公区用 20-39语音用 40-49无线用 50-59管理用 99隔离用 999。这样看到 VLAN 号大概能猜到用途出问题时不用查文档。vlan 20 name OFFICE-F1 vlan 30 name OFFICE-F2 vlan 40 name VOICE vlan 50 name WLAN-AP vlan 99 name MGMT vlan 999 name QUARANTINE批量创建也可以vlan 20,30,40,50,99,999一行搞定但那样没法同时命名。我倾向分开写名字是给别人看的也是给自己三个月后看的。VLAN 999 是隔离 VLAN专门给未使用端口用。这个 VLAN 不配 SVI不放行到 Trunk等于一个黑洞。就算有人把网线插到空端口上也拿不到任何东西。3.2 接入端口配置与未使用端口封堵业务端口的标准配置interface GigabitEthernet1/0/1 description U-Plug-Office-Desk-01 switchport mode access switchport access vlan 20 switchport nonegotiate spanning-tree portfast spanning-tree bpduguard enable no shutdownswitchport nonegotiate关掉 DTP 协商。DTP 是思科私有的链路类型协商协议一旦对面是个恶意设备可以通过伪造 DTP 帧把自己协商成 Trunk直接跳到所有 VLAN。关掉它没有任何副作用只会更安全。spanning-tree portfast让接入口跳过 STP 的监听和学习阶段直接进入转发。不配这个PC 插上网线要等 30 秒才能上网用户会以为网坏了。spanning-tree bpduguard enable是配套的保险。接入口本来不该收到 BPDU一旦收到说明有人把交换机接到了这个口上或者有人在搞 STP 攻击BPDU Guard 会立刻把端口 err-disable。这个组合是接入层的标配。48 个口一个个配太慢用 rangeinterface range GigabitEthernet1/0/1-40 description U-Plug switchport mode access switchport access vlan 20 switchport nonegotiate spanning-tree portfast spanning-tree bpduguard enable no shutdown未使用的端口单独处理interface range GigabitEthernet1/0/41-48 description UNUSED-DO-NOT-CONNECT switchport mode access switchport access vlan 999 shutdown先划进隔离 VLAN 再 shutdown双重保险。有人习惯只 shutdown 不划 VLAN但万一哪天有人手滑no shutdown了端口就直接落到 VLAN 1那是最危险的情况。3.3 上行 Trunk 的 allowed vlan 收敛上行口的配置跟接入口完全相反要显式放行 VLAN而不是全放interface GigabitEthernet1/1/1 description Uplink-To-Core-01 switchport mode trunk switchport trunk encapsulation dot1q switchport trunk native vlan 999 switchport trunk allowed vlan 20,30,40,50,99 switchport nonegotiate no shutdownswitchport trunk native vlan 999把 native VLAN 从默认的 VLAN 1 改成隔离 VLAN。这一步很关键因为 native VLAN 的流量是不打标签的如果两端 native VLAN 不一致会出各种诡异问题如果保持默认 VLAN 1就等于给攻击者留了一条不打标签就能进 VLAN 1 的路。switchport trunk allowed vlan只列真正需要的。默认是全放行VLAN 一多广播报文在 Trunk 上全跑一遍带宽和管理都受影响。收缩之后就算下面有人私接了个带 VLAN 的交换机也只能看到被放行的这几个。改 allowed vlan 的时候有个坑直接敲switchport trunk allowed vlan 20,30是覆盖语义会把原有的其他 VLAN 全删掉。要追加必须用switchport trunk allowed vlan add 60。3.4 端口描述和文档化习惯description这行看起来可有可无实际上是排障效率的分水岭。show interface status出来的表格里有描述的端口一眼就知道接的是什么没描述的只能靠猜。我的描述格式统一成U-Plug-位置-编号U 表示用户口T 表示 TrunkS 表示服务器。比如U-Plug-Office-Desk-01、T-Uplink-To-Core-01、S-Server-Rack-A3。这样按描述排序就能看出端口用途分布。配完之后用show interface status整体过一遍检查三件事状态是不是 expected接了设备的 up没接的 notconnect 或 disabled、VLAN 对不对、描述有没有漏。这一步花两分钟能省掉后面两小时。4. 安全配置把常见二层攻击逐个堵住4.1 端口安全与 MAC 地址粘滞端口安全解决的是“这个口只允许谁用”的问题。配置如下interface GigabitEthernet1/0/1 switchport port-security switchport port-security maximum 2 switchport port-security mac-address sticky switchport port-security violation restrict switchport port-security aging time 10 switchport port-security aging type inactivity参数解释一下为什么这么选。maximum 2是因为一个工位通常一台 PC 加一部 IP 话机或者一台 PC 加一个打印机。给到 2 是留余量给到 5 就太松了。数据中心服务器口我会给到 4 到 8因为虚拟化环境一个物理口后面可能挂多个 MAC。mac-address sticky是让交换机把学到的第一个 MAC 写进 running-config变成静态绑定。这样别人换台机器插上来就不通除非管理员手动清。这个功能省去了提前收集 MAC 的麻烦但要注意粘滞的 MAC 会占用配置空间48 个口全开的话配置会变长不少而且一旦保存了换机器必须手工no switchport port-security mac-address sticky xxxx清掉。violation restrict是违规动作。三个选项里shutdown会把端口 err-disable默认行为protect是静默丢弃不告警restrict是丢弃并记日志发 SNMP trap。我选restrict因为它既阻断又有记录还不会让端口挂掉需要人工恢复。aging time 10加aging type inactivity是 10 分钟不活动就老化掉这个 MAC。这一条是给会议室、共享工位准备的不然换个座位的人就用不了网。4.2 DHCP Snooping、动态 ARP 检测与 IP Source Guard 三件套这三个功能是配套的少一个效果就打折。它们防的是私接 DHCP 服务器、ARP 欺骗、IP 地址冒用这三类最常见的二层攻击。先开 DHCP Snoopingip dhcp snooping ip dhcp snooping vlan 20,30,40,50 no ip dhcp snooping information option interface GigabitEthernet1/1/1 ip dhcp snooping trust原理是所有端口默认是 untrusted只能转发 DHCP 请求DISCOVER、REQUEST不能转发 DHCP 应答OFFER、ACK。只有被标记为 trust 的上行口才能下发地址。这样有人在办公区私接一个路由器开 DHCP它发出的 OFFER 会被接入端口丢掉用户拿不到假地址。no ip dhcp snooping information option这行是个经典坑。默认情况下交换机会往 DHCP 请求里插入 option 82 字段记录端口信息有些上游 DHCP 服务器或者中继设备不认识这个字段直接把包丢了表现为“所有 PC 都拿不到地址”。关掉它就好了。这个坑我踩过两次第二次是因为换了台新交换机忘了配。然后开动态 ARP 检测ip arp inspection vlan 20,30,40,50 ip arp inspection validate src-mac dst-mac ip interface GigabitEthernet1/1/1 ip arp inspection trustDAI 依赖 DHCP Snooping 建立的绑定表。它检查每个 ARP 包的源 MAC、源 IP 是否跟绑定表一致不一致就丢弃。这样有人用 ARP 欺骗冒充网关包根本发不出去。ip arp inspection validate三个参数要小心。src-mac是检查 ARP 包里的源 MAC 跟以太网帧头 MAC 是否一致这个必须开。dst-mac是检查目标 MAC开了之后某些做了 ARP 代理的设备会出问题。ip是检查 ARP 包体里的 IP 字段有没有异常值比如 0.0.0.0、 multicast 地址。我一般三个都开但如果现场有老设备不兼容先只开src-mac ip。最后是 IP Source Guardinterface GigabitEthernet1/0/1 ip verify source port-security这个命令让端口只允许绑定表里的源 IP 通过。port-security关键字表示绑定源除了 DHCP Snooping 表还参考端口安全的 MAC 表。这样即使有人手动配了个静态 IP 想冒用别人的地址也会被丢弃。配置顺序很重要先 DHCP Snooping再等绑定表建起来show ip dhcp snooping binding能看到条目再开 DAI 和 IPSG。顺序反了会导致正常用户短暂断网。4.3 802.1X 接入认证的落地要点前面几个是“防外贼”802.1X 是“管自己人”。配置分两部分全局和接口。全局部分aaa new-model aaa authentication dot1x default group radius aaa authorization network default group radius radius server RAD-01 address ipv4 10.10.10.30 auth-port 1812 acct-port 1813 key 这里填共享密钥 dot1x system-auth-controldot1x system-auth-control是总开关不开的话接口下的配置全部不生效。这个行很容易漏漏了之后接口下配得再漂亮show authentication sessions也是空的。接口部分interface GigabitEthernet1/0/1 authentication host-mode multi-auth authentication order dot1x mab authentication priority dot1x mab authentication port-control auto authentication periodic authentication timer reauthenticate server mab dot1x pae authenticator authentication event fail action authorize vlan 999 authentication event server dead action authorize vlan 999逐条说。host-mode multi-auth允许一个端口上多个设备各自独立认证。如果是 IP 话机串接 PC 的场景用multi-domain更合适它把语音域和数据域分开认证。选哪个取决于现场的接线方式配错了表现为话机能用但 PC 不能用或者反过来。authentication order dot1x mab是先试 802.1X 客户端超时后再试 MABMAC 认证旁路。MAB 是给那些装不了认证客户端的设备准备的比如打印机、摄像头。前提是这些设备的 MAC 已经录进认证服务器。authentication event fail action authorize vlan 999是认证失败时把端口丢进隔离 VLAN。这样认证失败的设备不是完全断网而是被限制在一个只能访问补丁服务器和准入页面的网段用户体验比直接断掉好也方便排查。authentication event server dead action authorize vlan 999是认证服务器挂掉时的兜底。没有这行服务器一挂全网认证失败所有人都断网。有了它至少还能进隔离 VLAN。注意802.1X 上线前一定要在几个端口上做试点选那种用户反馈快的工位。全量推开之后如果认证服务器配置有问题整层楼都会来找你。4.4 STP 安全与风暴控制STP 相关攻击的破坏力最大一个错误的 BPDU 能让整个二层网络重新收敛业务中断几十秒到几分钟。防护分几个层面。全局先开快速生成树和几个默认保护spanning-tree mode rapid-pvst spanning-tree portfast default spanning-tree portfast bpduguard default spanning-tree loopguard defaultportfast default让所有 access 口默认开 portfast不用一个个配。bpduguard default是配套的开了 portfast 的口收到 BPDU 就 err-disable。loopguard default是防止单向链路导致 STP 误判比如光纤只断了一个方向接收方向还在设备以为链路正常实际上 BPDU 已经收不到了。上行口要加 Root Guardinterface GigabitEthernet1/1/1 spanning-tree guard rootRoot Guard 的作用是如果这个口收到了优先级更高的 BPDU有人想抢根桥端口会被 block 而不是让网络重新选根。接入层设备永远不该成为根桥这个保护必须有。注意上行口不能开 portfast 和 bpduguard因为上行口本来就要收 BPDU。如果全局开了portfast bpduguard default上行口要用spanning-tree portfast trunk或者显式no spanning-tree portfast排除掉否则一上线就被 err-disable。风暴控制interface GigabitEthernet1/0/1 storm-control broadcast level 5.00 storm-control multicast level 10.00 storm-control action shutdown errdisable recovery cause storm-control errdisable recovery interval 300level 5.00是带宽百分比广播流量超过端口带宽的 5% 就触发动作。千兆口就是 50Mbps。这个阈值不能设太低正常业务里 ARP 和 DHCP 广播加起来也就百分之零点几5% 已经是很宽松的线了。action shutdown是直接关端口。也有人说用action trap只告警不关但那等于没防。我选 shutdown 配合errdisable recovery5 分钟后自动恢复。这样风暴过去之后端口自己活过来不用等人到现场。4.5 设备自身加固关服务、控登录、上加密这一节是设备本体的防护很多人配完业务就忘了。service timestamps log datetime msec localtime show-timezone clock timezone CST 8 ntp server 10.10.10.60 logging buffered 64000 informational logging trap informational logging host 10.10.10.50时间同步是日志分析的前提。设备时间不准出了事你拿着日志对不上业务时间等于没有日志。NTP 服务器地址要提前确认可达。SNMP 用 v3别用 v2csnmp-server group NMSGRP v3 priv snmp-server user netmon NMSGRP v3 auth sha 认证口令 priv aes 128 加密口令 snmp-server host 10.10.10.50 version 3 priv netmonv2c 的 community 是明文传输的抓包就能看到等于把设备的读权限公开。v3 有认证和加密配置麻烦一点但一次配好就不用管了。还有几个常被忽略的点no cdp run interface GigabitEthernet1/0/1 no cdp enableCDP 会向邻居泄露设备型号、软件版本、管理地址这些信息。内网可以留着方便排障但面向外部或者访客区的端口建议关掉。我一般全局保留只在特定端口关。service password-encryption前面说过是弱加密它的作用是防止有人show running-config时直接看到明文口令属于“防君子不防小人”。真正敏感的口令用 type 9 存储。4.6 控制平面保护的基本认知CoPPControl Plane Policing是防止控制平面被流量打爆的机制。3850 出厂自带一份默认策略一般人不用改但要知道怎么查show policy-map control-plane show policy-map interface control-plane输出里能看到各个分类比如class-map match-any system-cpp-police-protocol-snooping的速率限制和丢弃计数。如果show policy-map interface control-plane里某个类的 dropped 计数一直在涨说明有流量在被限速可能是攻击也可能是正常业务超了阈值。我不建议新手去改 CoPP 策略改错了会导致 BPDU、ARP 这些关键协议被丢弃网络直接瘫。但至少要知道有这么个东西出问题时能查一眼。5. 上线验证与故障排查实录5.1 上线前必跑的验证清单配置敲完不等于能上线我固定跑一遍这套检查检查项命令正常表现设备与堆叠状态show switch所有成员 Ready接口状态show interface status接线口 up空口 disabledVLAN 列表show vlan briefVLAN 齐全端口归属正确Trunk 放行show interfaces trunkallowed vlan 与规划一致SVI 与路由show ip route默认路由存在端口安全show port-security各口 maximum 与 sticky 生效DHCP 绑定表show ip dhcp snooping binding有正常终端条目DAI 统计show ip arp inspection statisticsForwarded 有数Dropped 很少认证会话show authentication sessions已认证终端显示 Authorized日志show logging无异常 err-disable 记录电源与风扇show environment全部正常这套跑完大概五分钟能把 90% 的低级错误挡在上线之前。5.2 典型故障的排查路径故障一整片区域 PC 拿不到 IP 地址。先看show ip dhcp snooping binding如果是空的说明 DHCP 报文没通。检查三点上行口有没有ip dhcp snooping trust有没有配no ip dhcp snooping information optionVLAN 有没有加进ip dhcp snooping vlan列表。三个里任一个漏了都表现为全员拿不到地址。我曾经遇到过第二条的坑上游 DHCP 服务器直接把带 option 82 的包丢了排查了两个小时。故障二端口突然不通show interface status显示 err-disabled。用show interfaces status err-disabled看原因。最常见的是bpduguard有人私接交换机、port-securityMAC 数超了、storm-control广播风暴、link-flap网线或光模块接触不良。确认原因后shutdown再no shutdown恢复同时配errdisable recovery cause xxx让它以后能自动恢复。故障三802.1X 认证一直失败show authentication sessions里是 Unauthorized。先看show authentication sessions interface Gi1/0/1 details里面会显示失败原因。常见的有认证服务器不可达检查 RADIUS 的 key 和端口 1812MAB 的 MAC 没录入服务器dot1x system-auth-control没开接口的authentication port-control不是 auto。有一次是 key 里多了一个空格查了半天。故障四堆叠加成员后配置对不上。show switch里如果新成员是Provisioned而不是Ready说明预配置的型号跟实际不符。用no switch X provision清掉重新识别或者检查堆叠线缆和show switch stack-ports的状态。加成员时要注意新成员的优先级如果比主设备高会触发重新选主整个堆叠重启一次。故障五重启后配置丢了。八成是忘了write memory或者配置寄存器被改成了忽略启动配置。show version最后一行看Configuration register is 0x2102如果不是这个值就是被改过。5.3 回退和应急手段配置改坏了要回退最直接的是提前做的归档show archive configure replace flash:archive/SW-ACC-01-2025xxxx.cfg forceforce参数跳过确认提示适合脚本化操作。执行后配置会被整体替换包括你可能刚加的口令所以执行前确保你知道归档文件里有什么。再退一步用copy flash:backup-xxx.cfg running-config是合并而不是替换不会删配置适合“只回退某几行”的场景。最坏的情况是 SSH 和 Telnet 都进不去只能 Console。如果连 Console 口令都忘了需要走密码恢复流程断电、按 Mode 键上电进入 ROMMON、修改配置寄存器让它忽略启动配置不同 IOS XE 版本 ROMMON 下的命令略有差异3850 上通常是confreg 0x2142或通过环境变量控制、加载系统、把原配置拷回来、改口令、再把寄存器恢复成 0x2102、重启。这整套流程一定要在设备还有保修、或者有备用机的时候演练一遍不然真出事的时候边查文档边操作心理压力很大。6. 几个长期维护的习惯配置上线只是开始后面怎么维护更考验人。我自己的做法是每次变更前先用show run | tee flash:pre-change-日期.txt存一份当前配置改完再存一份出问题有对比依据。这个tee命令在 IOS XE 上好用但很多人不知道。口令定期轮换这件事靠人记是记不住的我在 NTP 和日志之外还加了个简单的提醒机制在设备上配一个本地账号的过期时间IOS XE 支持username xxx privilege 15 secret 密码配合 AAA 的密码老化策略或者干脆用外部工具做统一巡检。纯粹靠自觉三个月之后就没人管了。最后再提一个容易被忽略的点配置文件里的密钥类信息。TACACS 的 key、SNMP 的认证口令、RADIUS 的共享密钥这些都是明文存在 running-config 里的service password-encryption管不到。所以show running-config的输出不能随便发给别人备份文件也要存在受控的位置。我见过有人把整份配置贴到群里问问题里面带着认证服务器的 key后来只能全部改一遍。