网络设备的操作系统与电脑的操作系统是两回事:它没有通用进程、没有文件系统,核心是「配置管理 + 协议栈 + 转发控制」。 命令行分层的本质是防误操作,配置不保存就等于没配。
上一节看灯,这一节进设备内部看软件。 这一节与 03.09「设置操作系统时使用的命令和模式」是同一主题的两次出现:这里讲结构, 那里讲路由器的具体命令。
一、设备操作系统里有什么
① 配置管理:把命令行或网管下发的配置解析成内部状态。 ② 协议栈:生成树、路由协议、LLDP、SNMP 等。 ③ 转发控制:把算出来的表写进芯片(这是与普通 OS 最大的不同)。 ④ 监控与日志:计数器、告警、日志外发。
注意第三条:普通操作系统的内核管进程与内存,网络设备的内核管「把表写进芯片」。 这就解释了为什么配置生效有延迟——下发是异步的。
二、命令行为什么分层
四层模式:用户模式看、特权模式管、全局配置改参数、接口配置改单个口。 分层的目的是防误操作:改配置必须「多说两句话」,这两句话的代价换来不手滑。
还有一个实际好处:分层让提示符自带上下文。
看到 (config-if)# 就知道接下来的命令只影响一个接口,不会影响全局。
三、配置的三种状态
运行配置(running):在内存里,立即生效,重启即失。 启动配置(startup):在 NVRAM 里,重启时加载。 备份配置:导出到外部,用于回滚。
三者关系:改配置只改 running;write 或 copy run start 之后才写 startup。
「配置明明改了怎么又回去了」——十次有九次是忘了这一步。
四、动手 Demo:模式切换是个状态机:四层与各自的提示符
这段把四层模式、各自的提示符、进入下一层的命令列成表,再模拟走一遍。
modes = [(u"用户模式", u"Router>", u"只看", u"enable"), ...]
for step in (u"enable", u"configure terminal", u"interface g0/1"):
print(step)
实跑输出:
--------------------------------------------------------------------
设备操作系统里的模式切换,其实是个状态机
--------------------------------------------------------------------
**网络设备的命令行不是「一条命令一个功能」,而是分层的模式。**
书里 03.09 讲路由器的命令与模式,其实交换机也一样。四层模式:
模式 提示符 能做什么 怎么进下一层
-------------------------------------------------------------------------------------
用户模式 Router> 只看,不能改 enable
特权模式 Router# 看全部、可保存、可重启 configure terminal
全局配置 Router(config)# 改全局参数 interface g0/1
接口配置 Router(config-if)# 改单个接口 exit/end
**为什么这么设计**:防止误操作。改配置要「多说两句话」,
这两句话的代价换来的是「不会手滑把整个设备改掉」。
输入 enable → 特权模式
输入 configure terminal → 全局配置
输入 interface g0/1 → 接口配置
**配置完一定要保存。**很多设备的运行配置在内存里,`write` 或 `copy run start` 之后才写进 NVRAM;
**断电就丢**——这是新手最常见的「明明配好了怎么又变回去了」。
提示符是唯一可靠的「我现在在哪」的判断依据。命令行出错时,先看提示符。
exit 退一层,end 直接回特权模式——这两个命令的区别很多人搞不清,
结果在接口模式里改了全局参数,发现「没生效」。
最后一句要记住:配置完一定保存。write(旧写法)或 copy running-config startup-config。
不保存的配置,断电就没了,而且不会有人提醒你。
30 秒实验
- 在一台设备上走一遍四层模式,记住每层的提示符。
- 改一个无害的参数(比如接口描述),不保存就重启,看是否回滚。
- 比较
exit与end的行为差异。
常见误区
- 改完不保存。重启即回滚。
- 在接口模式里下全局命令。会报错或被忽略。
- 把设备 OS 当 Linux。它没有通用 shell,也没有包管理器。
自测三问(点开对答案)
1. 网络设备 OS 与电脑 OS 最大的不同? —— 它的核心职责之一是把转发表写进硬件芯片。 2. 运行配置与启动配置的区别? —— 运行配置在内存、立即生效、重启即失;启动配置在 NVRAM、重启加载。 3. exit 与 end 的区别? —— exit 退一层,end 直接回特权模式。下一节:软件讲完,回到硬件——电源与整机功耗怎么估。
- ☐ (本节完,下一节 01.04.12 电源)
相关笔记
- 第三章 03.09.02 通过CLI设置(后章)
- 电源
- 🐧 Linux是怎样工作的
- 📡 图解网络硬件 · 索引