ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

子午线交换机配置手册:系统管理、镜像升级与SSH访问落地

子午线交换机配置手册:系统管理、镜像升级与SSH访问落地

简介:《子午线交换机配置手册(参考)》面向网络运维、系统集成与网络技术学习者,聚焦子午线交换机的日常配置、命令行查询与基础排错,可作为设备开局、参数核查和实验环境搭建时的参考材料。整包仅含1个PDF文件,大小约314KB,结构轻量,便于日常随用随查。内容覆盖系统管理配置、文件系统管理、软件与配置更新、通过FTP更新软件和配置、以太网IP地址设置、缺省路由配置、PING连通性测试,以及VTY终端、SSH server/client等基础配置,章节按管理主题划分,命令说明与配置示例相对集中,适合按目录快速定位所需知识点。对希望快速熟悉设备配置框架、梳理常用命令、补齐终端接入与连通性测试思路的读者较有参考价值。已有308人学习,适合网络工程师、运维人员和相关课程学习者查阅使用。

1. 设备停在 monitor# 的那个凌晨:这份手册解决的是“回不去”的问题

凌晨两点,一台刚做完版本升级的接入交换机重启后没进系统,串口里只有一行monitor#,telnet 不通、Web 打不开,手边能用的只有一条 console 线和一台笔记本。这种场面里,配置命令记不记得住其实不重要,重要的是知不知道该往 flash 里放什么文件、用什么协议传、传完怎么引导。这套子午线交换机配置手册(参考)把系统管理、终端线路、SSH 访问三块按命令粒度拆开,最值钱的部分恰恰不是 SSH 那章,而是第一章里那几条 flash 和 boot 命令——它是这类网络工具在“变砖”边缘的后悔药。适合手里有同系列设备、要做版本升级和远程接入收敛的运维,也适合刚接手设备、需要一份能对着敲的底稿的人。

2. 系统管理配置:文件系统、镜像引导与两种传输协议

2.1 三种提示符先分清,命令敲错层级等于白敲

拿到手册第一件事不是找命令,而是看命令前面的提示符。这套设备的命令行分三层:monitor#是监控态,管的是文件系统、启动镜像、传输拷贝、IP 地址和路由这些“设备还没完全起来”时也要能干的事;switch#是管理态特权提示符,copy ftp这类操作会在这里出现;switch_config#是全局配置态,line、aaa、ip sshd这些都在这一层。手册 1.1 节通篇用monitor#打头,说明升级和救砖的动作基本都在监控态完成,跟日常配业务口完全不在一个世界里。

提示符所在层级典型命令什么时候用
monitor#监控态dir、boot、copy tftp、ip address、ip route default、ping设备刚上电、升级镜像、配置丢失后的第一次接触
switch#管理态特权copy ftp、show line系统已正常启动,做文件传输和状态查看
switch_config#全局配置态line vty、aaa authentication、ip sshd业务配置和访问控制

我见过最常见的翻车是把boot flash switch.bin敲进全局配置态,回显一句无法识别的命令,人就开始怀疑镜像坏了。其实只是层级不对。监控态和配置态之间不是靠enable切换的,而是靠设备启动到了哪一步——系统没起来,你天然就在monitor#;系统起来了,你才进得了switch#。理解这一点,后面所有命令该在哪儿敲就清楚了。

提示:手册里凡是带方括号的参数都是可选项,黑体字部分才是关键字。抄命令时只改参数,别动关键字。

2.2 flash 文件系统:七个命令撑起一次干净的升级

升级前的基本功是看懂 flash 里有什么。手册给的文件系统命令不多,但够用:format格式化、dir列目录、delete删文件、md建目录、rd删目录、more看文件内容、cd和pwd管当前路径。有一条硬约束必须先记住:flash 里的文件名最长 20 个字符,且不区分大小写。这意味着switch_v2.1.3_release.bin这种命名传上去会被截断,后面boot的时候你按记忆敲名字就对不上。

# 进入监控态后,先看当前 flash 里有什么 monitor#dir # 输出会按“索引号 文件名 <FILE> 文件长度 创建时间”的格式列出 # 确认剩余空间够放新镜像,再决定删不删旧文件 # 删除一个确认不再需要的旧镜像 monitor#delete switch_old.bin # 建一个目录,把不同版本的镜像分开放,避免文件名撞车 monitor#md backup # 看某个文本配置文件的内容,内容多于一屏会自动分页 monitor#more startup-config # 确认当前所在路径 monitor#pwd

这几个命令里,dir带参数时可以按前缀过滤,比如dir sw只列以 sw 开头的文件,升级前拿它快速确认目标镜像在不在。format会删掉所有数据,包括startup-config,除非设备已经彻底起不来、你又确认配置有别的备份,否则不要碰。delete删不存在的文件会明确提示文件不存在,这个回显反而好用——能帮你判断是名字敲错了还是文件真没传上去。

真正容易忽略的是路径。cd和pwd存在的意义说明 flash 支持多级目录,镜像放在子目录里时,boot和copy的目标路径要写全。我一般习惯升级前先在dir输出里把原镜像的完整文件名抄到记事本,升级出问题时按原样敲回去,比凭记忆靠谱。

2.3 手工引导:boot命令的价值在于“能退回去”

flash 或 CF 卡里同时存着多个交换机软件是正常状态,boot命令就是用来指定这次从哪个文件启动的。语法是monitor#boot {flash | cf} <local_filename>,第一个参数选存储介质,第二个参数写文件名,文件名必须显式给出,没有默认值。

# 从 flash 里引导指定的镜像文件 monitor#boot flash switch.bin # 如果镜像是放在 CF 卡上的,介质参数换成 cf monitor#boot cf switch.bin

参数含义很直白:flash指板载闪存,cf指外插 CF 卡,local_filename是用户必须输入的文件名。这条命令真正的使用场景不是日常启动,而是升级失败后的回退——新镜像引导不起来,设备停在监控态,你还有机会用boot指回旧镜像,让系统先跑起来,再从容处理新版本的问题。所以升级前dir那一步不是形式主义,你得知道旧文件叫什么。

CF 卡的存在让这件事更灵活:可以把稳定版本放 flash、测试版本放 CF,切换时只改介质参数。但要注意介质和路径必须匹配,写在 flash 里的文件用cf去引导,回显一定是找不到文件。

2.4 TFTP 灌镜像与配置:交互式命令怎么喂参数

监控态下的软件更新走 TFTP,命令是monitor#copy tftp {flash: | cf:} [ip_addr]。注意这里的目标介质后面带了冒号,和boot命令的写法略有差异,抄的时候别漏。命令敲下去不会立刻执行,系统会依次追问三个问题:源文件名、服务器 IP、目标文件名。

# 从 TFTP 服务器拉取镜像写入 flash monitor#copy tftp flash # 系统提示:Source file name[]? 输入服务器上的文件名,如 main.bin # 系统提示:Remote-server ip address[]? 输入 TFTP 服务器地址,如 192.168.20.1 # 系统提示:Destination file name[main.bin]? 输入落到交换机上的文件名,如 switch.bin # 传输过程会打印进度条,结束时回显类似: # TFTP:successfully receive 3377 blocks ,1728902 bytes

三个提示里,目标文件名那一项的方括号里带的是默认值,直接回车就会沿用源文件名。我建议每次都显式改名,理由是源文件名往往是发布包里的长名字,容易超过 20 字符上限,落盘时被截断,回头boot找不到。传输成功的标志是最后那行successfully receive,后面跟着块数和字节数,这两个数字对得上,文件才是完整的。

配置文件的更新走同一套机制,只是目标文件名固定成startup-config:

# 把备份的配置文件恢复到设备 monitor#copy tftp flash startup-config

这里没有改名余地,startup-config就是设备启动时读取的配置文件名。反过来说,如果你只是想备份配置,方向要反过来操作,别把本地文件覆盖掉。TFTP 本身没有认证机制,服务器是谁都能连的,所以这套操作只在管理网内做,别跨公网。

2.5 FTP 升级:主动被动、块大小和那个 75 秒

管理态下多了 FTP 这条路径,命令是switch#copy ftp {flash|cf} [ip_addr|option]。相比 TFTP,FTP 多了认证和几个可调参数,参数表值得逐项看一遍:

参数含义默认值与建议
login-nameFTP 服务器用户名不指定则交互式提示输入
login-passwordFTP 服务器口令不指定则交互式提示输入
blksize数据传输块大小默认 512 字节,绝大多数网络够用
active/passive主动或被动连接方式按服务器所在网络环境选
type传输数据类型传 bin 用 binary,传文本配置可用 ascii
nchecksize不在服务器上检测文件大小一般不用

两种写法,交互式和 URL 式:

# 写法一:交互式,逐项回答 switch#copy ftp flash # 依次提示 ftp user name、ftp user password、Source file name、Remote-server ip address、Destination file name # 写法二:一条命令写完,适合脚本化 switch#copy ftp://user:pass@192.168.20.1/main.bin flash:switch.bin

URL 式把用户名、口令、地址、源文件全塞进一行,缺点是口令明文留在命令历史里,多用户环境要谨慎。手册特别提了两点:一是 FTP 服务器不可达时等待时间会很长,根源是 TCP 超时默认 75 秒,可以用全局命令ip tcp synwait-time改短,但手册明确不建议动;二是某些网络状况下传输慢,可以适当调整块大小,默认 512 字节在多数网络里效率已经不错。我的做法是先用ping确认服务器可达再执行拷贝,把 75 秒的等待挡在前面。

2.6 上电第一步:IP、缺省路由、ping 三连

设备刚到手或者配置被清空时,第一件事是让管理面通。以太网 IP 的配置在监控态完成,命令是monitor#ip address <ip_addr> <net_mask>,系统缺省是192.168.0.1、掩码255.255.255.0。缺省路由只有一条,命令是monitor#ip route default <ip_addr>,参数填网关地址。

# 配置管理口地址 monitor#ip address 192.168.1.1 255.255.255.0 # 配一条缺省路由,指向网关 monitor#ip route default 192.168.1.1 # 测试到目标地址的连通性 monitor#ping 192.168.20.100 # 回显会逐包打印 icmp_seq 和 time,最后给出统计: # 4 packets transmitted, 4 packets received, 0% packet loss # round-trip (ms) min/avg/max = 0/0/0

ping的输出要会读:丢包率 0% 说明链路通,time=0 ms通常意味着目的地址和本机在同一网段或直连,跨网段时延会明显抬头。如果四个包全丢,先回头查 IP 和掩码是不是配在同一网段,再看缺省路由的网关地址是不是写错——这两处错一个,ping就是全丢,现象一模一样,只能靠配置回显区分。

3. 终端与 SSH:从 line vty 到 sshd 的访问收敛

3.1 线路编号规则:CON 只有一条,VTY 有 32 条

设备的终端参数统一用line命令管理,手册把线路分成四类:控制台、辅助、异步、虚拟终端,但真正天天打交道的是前两类里的两个代表——CON(也叫 CTY)和 VTY。CON 是控制台线路,编号固定为 0,用于本地登录配置;VTY 是虚拟异步线路,编号从 0 开始共 32 条,承载 Telnet、X.25 PAD、HTTP、Rlogin 这些通过网络进来的连接。

线路类型接口用途编号规则
CON(CTY)控制台本地登录配置固定 0
VTY虚拟异步通过同步接口进来的远程登录0 开始,共 32 条

32 条这个数字有实际意义:它决定了同时能有多少个远程会话挂在这台设备上。设备多、运维人多的小环境里,会话占满之后再连就会被拒,现象是“用户名密码都对但就是登不上”,很容易被误判成认证问题。

line vty 0 31是一条批量进入的命令,进去之后配的参数对这 32 条线一起生效:

# 进入全部 32 条 VTY 线路的配置视图 Switch_config# line vty 0 31 Switch_config_line# length 0

length 0的作用是取消每屏输出行数限制,也就是关掉more分页提示。手册给的例子就是这一条,看起来很不起眼,但它解决的是脚本化运维的痛点——自动化工具通过 VTY 抓show输出时,分页提示会把输出截断,后面的解析全乱。手工登录时无所谓,按空格翻页就行;批量采集时这一条是必配项。

3.2 VTY 和物理接口的关系:一条网线后面挂着多个虚拟端口

手册 2.2.1 节讲了一件容易被跳过但很重要的事:虚拟终端线路提供的是“通过同步接口对系统的访问”,当一个用户通过 VTY 连进来,他实际连接的是某个接口上的虚拟端口。对每一个同步接口(以太网口、串行口)都可以有多个虚拟端口,几个 Telnet 同时连到同一个以太口是常态。

理解这层关系,排错时才有方向感。远程登不上,可能是 VTY 线路本身没配对,也可能是物理接口不通,还可能是中间的安全策略挡了。区分方法很直接:物理层用ping验证,VTY 层用show line看。

# 查看 VTY 线路的配置和占用状态 Switch# show line

这条命令的输出能告诉你每条线路的编号、当前状态和终端参数。会话占满、某条线的length没生效、线路状态异常,都能从这里看出来。我一般把它和ping配合成一套固定动作:ping通但登不上,就看show line;ping不通,就别在 VTY 上浪费时间。

3.3 SSH server 的启动顺序:密钥生成那一两分钟躲不掉

SSH 这章的第一条硬信息是版本:ssh server 和 ssh client 支持 ssh 版本 1.5,加密算法包括 des、3des 和 blowfish,功能上支持 shell 和 sftp。放到今天的标准看,这套算法组合属于“能用但别当强安全方案”,它的定位是把明文 Telnet 换掉,不是替代现代加密栈。

使能 SSH server 的命令是ip sshd enable,设备会生成一个 1024 位的 RSA 密钥对,然后开始监听连接请求。手册写得很清楚:这个过程大概需要一到两分钟。很多人第一次配完立刻拿客户端连,连不上就以为配置错了,其实是密钥还没算完。

更值得配的是密钥保存功能:

# 先开启密钥保存,让生成的密钥落到 flash Switch_config# ip sshd save # 再使能 ssh server,此时生成的密钥会被持久化 Switch_config# ip sshd enable

顺序的关键在于:ip sshd save打开之后,初始密钥会被保存到 flash,下次再启动 ssh server 时先从 flash 读密钥,跳过重复计算,启动时间明显缩短。默认情况下这个功能是关闭的,也就是说你不配它,每次重启设备都要重新等那一两分钟。手册把save排在enable前面,就是暗示先开保存、再开服务。

3.4 认证链与访问控制:四个参数决定谁能进、能试几次

SSH server 使用 login 认证方式,缺省走名为default的认证方法列表。要换成自定义列表,用ip sshd auth-method STRING,方法名长度不超过 20 字符。真正的用户鉴别靠 AAA 那条线配合,典型写法是先在全局配置态定义认证方法,再让 sshd 引用它。

访问控制是另一层。ip sshd access-class STRING用来绑定访问控制列表,列表名长度不超过 19 字符。ACL 本身用ip access-list standard定义,只放行指定源地址。

剩下的三个参数都是防暴力破解的,范围和默认值必须记准:

命令作用取值范围默认值
ip sshd timeout建立连接后通过认证的时限60-65535 秒手册未给,按需设
ip sshd auth-retries最大认证重试次数0-655356 次
ip sshd silence-period登录静默期时长0-3600 秒60 秒

这三个参数是一条链:认证超时管单次连接的认证窗口,重试次数管累计失败多少次后触发封禁,静默期管封禁多久。累计失败超过阈值后,sshd 服务会暂时关闭,进入静默期,这期间连正确密码也进不去。生产环境里我一般把auth-retries压到 3 次左右、silence-period保持 60 秒起步,既挡得住脚本爆破,又不至于运维自己手滑三次就被锁在外面。

sftp 是默认关闭的,需要显式打开:ip sshd sftp。它是基于 SSH 的加密文件传输,认证和数据都被保护,代价是传输效率偏低。传配置备份这种小文件很合适,传大镜像就不划算,还是走前面那套 TFTP/FTP。

3.5 一份可抄的 sshd 落地配置

手册 3.3 节给的示例场景是:只允许192.168.20.40这一台主机访问 ssh server,用本地用户数据库鉴别身份。把它拆成可执行的顺序:

# 第一步:定义标准 ACL,只放行指定管理主机 Switch_config# ip access-list standard ssh-acl Switch_config_std_acl# permit 192.168.20.40 # 第二步:定义登录认证方法,走本地用户库 Switch_config# aaa authentication login ssh-auth local # 第三步:让 sshd 引用这套认证方法和 ACL Switch_config# ip sshd auth-method ssh-auth Switch_config# ip sshd access-class ssh-acl # 第四步:开密钥保存,再使能 sshd Switch_config# ip sshd save Switch_config# ip sshd enable # 可选:需要加密文件传输时再开 sftp Switch_config# ip sshd sftp

这套顺序的逻辑是“先定义被引用的对象,再让服务引用”。ACL 和认证方法都是被引用方,必须先存在;auth-method和access-class是引用动作,放在后面;enable放最后,因为一旦使能,设备就开始监听,此时前面任何一项没配好都会直接暴露成登录失败。第 4 章会讲几个把顺序搞反之后的典型现象。

4. 避坑与排查:五个现场翻车点

4.1 升级完重启,设备停在 monitor# 起不来

现象:copy显示传输成功,reload之后提示符一直是monitor#,敲什么业务命令都进不去系统。

原因:两种可能。一是boot指向的文件名和实际落盘的文件名对不上,尤其是源文件名超过 20 字符被截断的情况;二是startup-config没更新,设备起来后找不到可用配置。

解决:先在监控态dir看实际文件名,逐个字符核对,然后用boot flash <实际文件名>手工引导一次。引导成功后再补copy tftp flash startup-config把配置恢复。这件事的血泪经验是:升级前把dir输出抄下来,出问题时按原样敲回去,比任何记忆都可靠。

4.2 TFTP 说成功了,dir 里却找不到文件

现象:传输过程打印了successfully receive,回头dir死活看不到目标文件。

原因:大概率是目标介质选错了。命令里flash:和cf:是两个存储位置,传的时候写了cf:,查的时候在 flash 里翻,当然找不到。另一种可能是文件名被截断,你按完整名字去找,实际落盘的是前 20 个字符。

解决:dir不带参数先看全量列表,按文件长度和创建时间定位刚传上去的那个;确认介质后用boot的对应参数引导。传输前把目标文件名主动改短,能规避掉一大半这类问题。

4.3 copy ftp 卡住不动,几十秒后才报错

现象:命令敲下去,进度条一直不出来,等一分多钟才提示失败。

原因:FTP 服务器不可达,TCP 连接超时默认 75 秒,这段时间命令行就是没有任何反馈。手册明确写了这个机制,也明确不建议改ip tcp synwait-time。

解决:执行拷贝前先ping一次服务器地址,通了再拷。如果ping通但 FTP 连不上,检查服务器是否开了 FTP 服务、用户名口令是否正确、以及网络中间有没有拦 FTP 的控制连接。被动模式和主动模式的选择也会影响连通性,服务器在 NAT 后面时优先试passive。

4.4 SSH 使能后客户端连不上,重启一次反而好了

现象:ip sshd enable敲完立刻用客户端连,一直超时;设备重启之后再连,正常。

原因:使能时设备要生成 1024 位 RSA 密钥对,这个过程需要一到两分钟,密钥没算完,监听还没起来。重启之后能好,是因为某些情况下密钥已经生成过,第二次启动快了。

解决:使能后等够时间再测,别在头两分钟里反复重试。更彻底的办法是配ip sshd save,把密钥持久化到 flash,之后每次启动直接从 flash 读,跳过计算过程。这一条对小机房尤其值钱——设备重启后不用再干等。

4.5 密码输错几次,正确密码也登不进去了

现象:连续几次认证失败后,再输正确用户名密码,依然被拒绝,客户端没有任何有效提示。

原因:触发了登录静默期。默认允许重试 6 次,累计失败超过阈值后 sshd 服务暂时关闭,静默期默认 60 秒,这期间所有连接一律拒绝。

解决:等够静默期再试,别继续猛敲——每多试一次都在重置计时。要减少这类误伤,把ip sshd auth-retries设成 3 左右、ip sshd silence-period保持 60 秒,同时在 ACL 里把管理主机范围收紧,让爆破流量根本到不了认证环节。

注意:ACL 配反了会把自己挡在门外。改access-class之前,先确认当前登录主机的地址在放行列表里,或者留着 console 线在手边。

5. 进阶:把这份手册变成一张升级前的自检表

手册读一遍很容易,真正难的是在压力下按顺序执行。我的做法是把散落在各章的检查点抽出来,做成一张升级前必过的自检表,每次动设备前逐项打勾。这套流程跑顺之后,前面那些翻车点基本都能提前拦住。

阶段检查项对应命令通过标准
升级前记录现有镜像文件名和配置dir、more startup-config文件名完整抄录,配置有备份
升级前确认管理面可达ip address、ip route default、ping丢包率 0%
升级中传输完成校验copy tftp/copy ftp回显块数和字节数完整
升级后手工引导验证boot flash <文件名>进入switch#
升级后远程入口验证ip sshd enable、show line客户端能连、会话数正常

这张表里最容易被跳过的是“升级前记录原镜像名”。听起来是废话,但真出事的时候,能救命的就是那串字符。另一个习惯是每次改完access-class或auth-method,先从另一台机器新开一个会话验证,确认新配置生效、旧会话还留着,再退出——这叫留后路,比任何回滚脚本都直接。

再往深一层,可以把 SSH 那套参数固化成模板:ACL 只放行管理段、auth-retries设 3、silence-period设 60、save和enable按顺序走。新设备上线时整段贴进去,比每次现查手册快得多,也不会漏项。模板里我还会加一条注释,标明ip sshd save必须在enable之前,省得下一个人重排顺序。

最后说个验证方法:配置改完之后不要只看回显,用show line确认 VTY 线路状态、用实际客户端连一次 SSH、用dir确认startup-config的时间戳是新的。三样都对上,才算这次变更真的落地。从那以后我每次动远程接入配置,都强制自己走一遍“新会话验证 + 旧会话保留 + 时间戳核对”,宁可多花五分钟,也不想再经历一次凌晨两点对着monitor#发呆。希望帮到你。

本文还有配套的精品资源,点击获取

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进