2、交换机基础架构与文件系统
2.1 交换机操作系统(IOS/IOS-XE)简介
说实话,很多刚入行的朋友会把交换机操作系统想得太神秘。其实它就是个专门跑在网络硬件上的操作系统,跟Windows、Linux一个道理。只不过它更专一——就是为了转发数据包而生的。
思科目前主流的操作系统分两派:经典IOS和IOS-XE。我最早接触的是经典IOS,那时候还在用Catalyst 2950系列。经典IOS的特点是「一体化」——整个系统、所有功能都打包在一个镜像文件里,跑起来就是一个单进程。你想想看,这就像一台老式收音机,所有功能都焊在一块电路板上。
而IOS-XE呢?它把系统拆成了两层:底层是Linux内核,上层是IOS控制平面。我刚开始接触IOS-XE时还不太适应,总觉得「怎么多了个Linux?」后来在项目中遇到一次故障,才真正体会到它的好处——某个进程挂了,不影响其他功能,重启一下就好。这在经典IOS时代,基本就得整机重启了。
我个人习惯这样区分:
- 经典IOS:适合小型网络、老旧设备,配置简单直接
- IOS-XE:适合中大型网络,支持虚拟化、模块化,更稳定
show version 命令。输出里如果看到「IOS-XE」字样,那就是新系统;如果只有「IOS」,那就是经典版。
2.2 Flash与Bootflash文件系统
交换机上的存储,说白了就两个地方:Flash 和 Bootflash。很多人搞混它们,我刚开始也犯过这个错。
Flash 是主存储区,相当于你电脑的硬盘。系统镜像、配置文件、日志文件,全放这儿。我记得有一次帮客户升级固件,发现Flash空间只剩2MB了,结果新镜像有50MB……嗯,那场面挺尴尬的。所以每次操作前,我第一件事就是检查Flash剩余空间。
Bootflash 呢?它是个小容量的专用存储区,通常只有几十到几百MB。它存的是引导程序(boot loader)和备用镜像。说白了,就是万一主系统坏了,还能从Bootflash启动救急。
为什么会这样设计?你想想看,如果Flash里的镜像损坏了,交换机连启动都做不到,那不就成砖了吗?Bootflash就是最后一道防线。
2.3 文件类型(Image、Config、License)
交换机上的文件,主要就三类。我按重要程度排个序:
| 文件类型 | 扩展名 | 作用 | 我的经验 |
|---|---|---|---|
| Image(系统镜像) | .bin | 操作系统的核心文件 | 升级时一定要校验MD5,我吃过亏 |
| Config(配置文件) | .cfg / .txt | 保存交换机的配置 | 每次改配置前先备份,这是铁律 |
| License(许可证) | .lic | 解锁高级功能 | 丢了很麻烦,建议单独存一份 |
Image文件 是最关键的。它决定了交换机支持哪些功能。比如同一个型号的交换机,装不同的镜像,有的支持三层路由,有的只支持二层交换。我建议你升级前先查清楚当前版本和功能集,别升完发现功能少了。
Config文件 是咱们最常打交道的。说白了就是你在命令行敲的那些配置,最终都存到 startup-config 里。我个人习惯是每次做完重大变更,都用 copy running-config startup-config 保存,然后再导出一份到TFTP服务器。为什么?因为交换机万一挂了,你至少还有配置能恢复。
License文件 这个容易被忽略。我记得有个项目,客户买了高级功能授权,结果升级固件后忘了重新激活License,导致IPsec VPN用不了。折腾了两天才发现是License没装……所以升级后一定要检查License状态。
2.4 文件操作命令(dir、delete、rename)
这部分是基本功,但越基础的东西越容易出错。我带你过一遍常用命令:
查看文件:dir
这是最常用的命令。我每次登录交换机,第一件事就是 dir flash:,看看空间够不够、文件对不对。
Switch# dir flash:
Directory of flash:/
1 -rw- 33554432 Jan 1 2024 00:00:00 c2960-lanbase-mz.150-2.SE.bin
2 -rw- 123456 Jan 1 2024 00:01:00 config.text
3 -rw- 1024 Jan 1 2024 00:02:00 vlan.dat
196608000 bytes total (163000000 bytes free)
注意看输出里的几个关键信息:文件大小、日期、文件名。我一般会特别关注 bytes free,如果剩余空间小于镜像大小的两倍,我就开始紧张了。
删除文件:delete
这个命令看着简单,但坑不少。我建议你养成一个习惯:删除前先用 dir 确认文件名,别手滑删错了。
Switch# delete flash:old-image.bin
Delete filename [old-image.bin]?
Delete flash:/old-image.bin? [confirm]
它会让你确认两次。别嫌烦,这是保护机制。我曾经见过有人直接 delete flash: 加通配符,结果把整个Flash清空了……嗯,那哥们后来被领导叫去喝茶了。
squeeze flash: 命令整理碎片。我一般会在删除后执行一次,确保空间真正可用。
重命名文件:rename
这个命令用得不多,但关键时刻很有用。比如你下载了新镜像,想保留旧镜像做备份,就可以重命名一下。
Switch# rename flash:old-config.cfg flash:backup-config.cfg
Destination filename [backup-config.cfg]?
我个人习惯在升级前,把当前配置文件重命名加个日期后缀,比如 config-20240101.cfg。这样万一新配置有问题,还能快速切回旧版本。
其他常用命令
copy:复制文件,最常用的是copy tftp: flash:下载镜像more:查看文件内容,比如more flash:config.textformat:格式化Flash,慎用!会清空所有数据
好了,这一章的内容就这些。说白了,交换机文件系统没那么复杂,就是记住「三个地方、三类文件、几个命令」。但越简单的东西越容易栽跟头,我建议你找个实验环境多练练,把命令敲熟了,真到生产环境操作时才不会慌。