4. Junos操作系统基础与QFX初始化

QFX系列交换机出厂时是一台“空白设备”:没有管理IP、没有登录账号、没有业务配置。要把它变成叶脊架构中可被自动化系统纳管的节点,需要依次完成四件事——掌握Junos CLI的操作逻辑、理解配置模式与提交/回滚机制、通过ZTP完成零配置上线、最后做初始安全加固。这四步不是并列关系,而是层层递进:CLI是操作界面,提交/回滚是配置生效与容错机制,ZTP是批量上线的自动化入口,安全加固则是设备接入生产网前的最后一道闸门。

一、Junos CLI的两层操作逻辑

与多数网络操作系统不同,Junos把“看”和“改”严格分成两个模式。登录后默认进入操作模式(Operational Mode),提示符为user@qfx-leaf01>,此时只能执行show、ping、traceroute、request等查看和诊断命令,无法修改任何配置。输入configure后进入配置模式(Configuration Mode),提示符变为user@qfx-leaf01#,此时才能编辑配置树。

Junos配置是一棵层次化的树,而不是扁平的命令行列表。例如要配置一个VLAN接口,路径是interfaces ge-0/0/1 unit 0 family ethernet-switching vlan members VLAN10。在配置模式下可以用edit interfaces ge-0/0/1逐层进入,也可以用set命令一次性写完整路径。两种方式等价,前者适合交互式探索,后者适合脚本化批量下发。查看当前编辑内容用show,查看与已提交配置的差异用show | compare,这是Junos最实用的习惯之一——提交前先看差异,避免误改。

二、提交、回滚与配置版本管理

Junos的配置修改不会立即生效,必须执行commit才写入活动配置并下发到转发面。这一设计带来两个关键能力:候选配置(candidate config)和回滚(rollback)。每次成功提交都会生成一个配置版本,编号从0开始递增,rollback 0表示回到当前活动配置,rollback 1表示回到上一个版本,rollback 2回到上上个版本,最多可保留50个历史版本。

实际排障中,如果一次变更导致链路中断,最快的恢复方式不是逐条删除,而是rollback 1后commit。此外还有两个保护机制:commit confirmed 5表示提交后5分钟内如果没有再次执行commit,系统自动回滚到提交前状态,适合远程高风险变更;commit check只做语法和逻辑校验而不真正提交,用于提前发现错误。下面这张图展示了从登录到配置生效的完整状态流转,以及回滚路径。

操作模式 user@qfx-leaf01> 配置模式 user@qfx-leaf01# 候选配置 set / edit 修改 configure 编辑配置树 commit check 语法与逻辑校验 commit 写入活动配置并生效 活动配置 转发面生效 配置版本历史 rollback 0 ~ 49 每次commit rollback N + commit(故障恢复路径) commit confirmed 5 5分钟内未再次commit → 自动回滚 初始安全加固 root密码 / 管理ACL / 关闭闲置服务

三、ZTP零配置部署:让设备自己上线

当叶脊网络有几十台QFX需要同时上线时,逐台console配置不现实。ZTP(Zero Touch Provisioning)解决的就是这个问题:设备上电后如果发现没有配置文件,会自动通过DHCP获取管理IP和引导文件地址,然后下载配置或脚本并自动执行。

ZTP的触发条件很明确:设备启动时config分区为空,或者存在/config/ztp标记文件。典型流程是——QFX通过管理口发送DHCP请求,DHCP服务器返回option 43或boot-file-name指向TFTP/HTTP服务器上的脚本文件;设备下载该脚本后以root权限执行,脚本中通常包含cli命令加载预置配置、设置主机名、配置管理IP和默认路由。一个简化的ZTP脚本示例如下:

#!/bin/sh
# ztp-qfx-leaf.sh — 示例脚本,实际部署需按环境调整
cat <<EOF | cli
configure
set system host-name qfx-leaf03
set interfaces irb unit 0 family inet address 10.0.1.13/24
set routing-options static route 0.0.0.0/0 next-hop 10.0.1.1
set system root-authentication encrypted-password "$6$..."
commit and-quit
EOF

需要注意,ZTP脚本执行成功后应删除/config/ztp标记,否则每次重启都会重新触发。验证ZTP是否成功,可以在操作模式执行show system ztp status查看状态,或直接检查show configuration | display set是否已包含预期配置。

四、QFX初始安全加固

设备刚上线时处于“裸奔”状态:默认可能没有root密码、管理接口对所有源地址开放、Telnet和SNMP v1/v2c等不安全服务可能启用。在接入生产网之前,至少完成以下加固动作。

加固项配置要点验证命令
root密码set system root-authentication encrypted-password ...show system root-authentication
管理ACL仅允许运维网段访问lo0的SSH/HTTPSshow firewall filter PROTECT-RE
关闭Telnetdelete system services telnetshow system services
SNMP安全禁用v1/v2c,仅启用v3认证加密show snmp v3
登录横幅set system login message "Authorized access only"show system login

其中管理ACL是最关键的一项。QFX的lo0接口承载所有管理流量,应在其上应用防火墙过滤器,只放行来自运维网段(例如10.0.100.0/24)的SSH和HTTPS,其余全部丢弃。配置完成后用show firewall filter PROTECT-RE确认计数器,再从非授权网段尝试SSH,应看到连接被拒绝或超时。

ZTP脚本中如果包含root密码明文,应使用encrypted-password字段并提前生成哈希值,避免脚本文件泄露导致密码暴露。生成哈希可在已登录设备上执行set system root-authentication plain-text-password后从show configuration中提取加密串。