3. Arista EOS操作系统基础

EOS(Extensible Operating System)是Arista交换机的网络操作系统,也是叶脊架构能够高效运维的基础。理解EOS的架构、CLI操作方式、配置文件管理机制、镜像升级流程以及ZTP零接触部署,是后续完成Spine/Leaf设备批量上线与稳定运行的前提。本节从“系统是什么、怎么操作、怎么保存、怎么升级、怎么自动上线”五个角度展开,并给出可参考的示例参数与判断依据。

一、EOS架构:单一镜像与状态分离

EOS采用基于Linux的模块化架构,其核心特点是单一镜像(Single Image)与状态与配置分离。整个系统由三部分组成:底层是经过裁剪和加固的Linux内核与文件系统;中间是Sysdb(System Database),负责集中保存所有协议进程、接口、硬件抽象层的运行状态;上层是各个独立运行的代理进程(Agent),例如负责BGP、OSPF、MLAG、LLDP、接口管理的进程。各进程之间不直接通信,而是通过Sysdb读写状态,因此某个协议进程异常重启时,不会连带拖垮其他进程。

这种架构带来两个直接好处:一是所有功能都包含在同一份EOS镜像中,不需要像传统设备那样分别升级BootROM、系统镜像和特性包;二是配置(startup-config)与运行状态(running-config、Sysdb)分离,配置是“期望状态”,Sysdb是“实际状态”,CLI的show running-config与show interfaces分别反映这两层。

EOS 分层架构与配置/状态分离 Agent 进程层(独立运行,互不拖累) BGP / OSPF MLAG / STP LLDP / LACP Interface Mgr Hardware Abst. Sysdb 系统数据库(集中保存运行状态) 接口状态 · 邻居关系 · 路由表 · 硬件计数器 加固 Linux 内核与文件系统(单一 EOS 镜像) startup-config(期望状态) 持久化保存,重启后加载 running-config / Sysdb(实际状态) 实时变化,掉电不保留 copy

二、CLI操作:模式、补全与查看

EOS的CLI与主流网络设备类似,但补全和过滤能力更强。登录后默认处于用户模式(提示符>),输入enable进入特权模式(#),再输入configure terminal进入全局配置模式((config)#)。在任意位置按?可列出可用命令,按Tab可补全关键字,命令支持缩写,例如sh run等价于show running-config。

EOS的show命令支持管道过滤,这是排障时最常用的能力。例如查看接口状态时,可以只显示UP的接口:

Leaf-01# show interfaces status
Leaf-01# show interfaces status | include connected
Leaf-01# show ip interface brief | exclude unassigned
Leaf-01# show running-config interfaces Ethernet1
Leaf-01# show version | include Software image

其中include保留匹配行,exclude排除匹配行,begin从匹配行开始显示。判断接口是否正常,应同时看status中的connected/notconnect、show interfaces counters errors中的CRC与丢包计数,以及show lldp neighbors中是否出现对端设备。若接口物理UP但LLDP邻居为空,通常说明对端未启用LLDP或链路被中间设备阻断。

三、配置文件管理:保存、备份与回滚

EOS的配置修改默认只作用于running-config,必须执行write memory(或copy running-config startup-config)才会写入startup-config并在重启后保留。建议在每次变更前先备份,变更后立即保存,并保留一份带时间戳的副本:

Leaf-01# copy running-config flash:backup-20240610.cfg
Leaf-01# write memory
Leaf-01# show boot-config
Leaf-01# copy flash:backup-20240610.cfg running-config

EOS还支持配置会话(configure session),可在提交前预览差异,适合批量变更:

Leaf-01# configure session leaf-change
Leaf-01(config-s-leaf-change)# interface Ethernet1
Leaf-01(config-s-leaf-change-if-Et1)# description To-Spine-01
Leaf-01(config-s-leaf-change)# show session-config named leaf-change diffs
Leaf-01(config-s-leaf-change)# commit

若变更后出现异常,可用copy flash:backup-20240610.cfg running-config回滚,再执行write memory固化。判断配置是否生效,应对比show running-config与预期配置,并检查相关协议邻居是否重新建立。

四、镜像与升级:从U盘或TFTP加载

EOS升级的核心是替换flash:中的.swi镜像文件,并修改启动项。典型流程如下:

Leaf-01# copy usb1:EOS-4.31.2F.swi flash:
Leaf-01# show flash: | include EOS
Leaf-01# boot system flash:EOS-4.31.2F.swi
Leaf-01# write memory
Leaf-01# reload

重启后通过show version确认Software image version已变为目标版本,并检查show boot-config中的启动镜像路径。升级前应确认镜像与硬件平台匹配(如DCS-7050系列对应不同镜像),并预留足够flash空间。若升级后协议邻居未恢复,优先检查配置是否被覆盖、接口是否被shutdown。

五、ZTP零接触部署入门

ZTP(Zero Touch Provisioning)让新设备上电后自动获取镜像与配置,无需逐台登录。其触发条件是设备处于出厂默认状态且未配置启动文件。设备通过DHCP获取管理IP、TFTP服务器地址和脚本文件名,然后从TFTP/HTTP服务器下载脚本并执行。一个最小ZTP脚本示例如下:

#!/usr/bin/env bash
FastCli -p 15 -c "
configure
hostname Leaf-01
interface Management1
   ip address 10.0.0.11/24
   no shutdown
ip route 0.0.0.0/0 10.0.0.1
copy http://10.0.0.100/configs/Leaf-01.cfg running-config
write memory
"

判断ZTP是否成功,可在设备上执行show ztp log查看脚本执行记录,确认主机名、管理IP和配置文件均已加载。若ZTP未触发,应检查设备是否已存在startup-config、DHCP Option 67是否指向正确脚本、TFTP/HTTP服务是否可达。ZTP适合批量上线,但生产环境建议在脚本中加入校验与失败回退逻辑,避免错误配置被固化。

EOS的单一镜像与Sysdb架构使升级和排障更简单;日常运维中,养成“变更前备份、变更后保存、升级前确认镜像匹配”的习惯,可显著降低叶脊网络的上线风险。