3. Arista EOS平台与MLAG配置框架

要在 Arista 交换机上把 MLAG 真正落地,第一步不是背命令,而是理解 EOS 的配置框架:命令在哪个层级执行、配置写进哪个上下文、MLAG 的各个参数分别挂在哪些对象上。EOS 采用层次化的配置模式,与 Cisco IOS 的“全局 + 接口”思路相似,但 MLAG 相关配置被拆分为“全局 MLAG 域”和“成员接口”两部分,理解这种拆分是后续排障和自动化的基础。

EOS 命令行与配置模式

登录交换机后默认处于用户执行模式(提示符为 switch>),只能查看有限信息。输入 enable 进入特权执行模式(switch#),可执行 show、ping、copy 等操作。真正修改配置需要进入全局配置模式:

switch# configure terminal
switch(config)#

在全局配置模式下,通过子命令进入更具体的上下文。EOS 中与 MLAG 相关的关键上下文有三类:全局 MLAG 域(mlag configuration)、物理成员接口(interface Ethernet1)、以及用于 peer 通信的 VLAN 接口(interface Vlan4094)。配置模式是“栈式”的,exit 逐层退出,end 直接回到特权模式。EOS 还支持 show running-config 查看当前生效配置,write memory 或 copy running-config startup-config 保存配置。

EOS 的配置是“运行配置 + 启动配置”两段式。MLAG 配置在运行配置中生效后,若不保存,重启会丢失。自动化下发时通常直接操作运行配置,再由控制器统一保存。

MLAG 配置层级与对象关系

MLAG 的配置不是集中在一处,而是分布在多个对象上,彼此通过标识符关联。核心对象包括:

  • MLAG 域:在 mlag configuration 下定义,包含 domain-id、本地 peer 接口、peer-address、peer-link 等全局参数。
  • Peer-link:一条或多条物理链路组成的 Port-Channel,承载 peer 之间的控制与数据流量,通常配置为 trunk 并允许所有业务 VLAN。
  • Peer-address / 本地接口:用于 peer 之间建立 TCP 会话的 IP 地址和源接口,通常使用一个独立的 VLAN 接口(如 Vlan4094)。
  • MLAG 成员接口:业务 Port-Channel,在接口下用 mlag <id> 绑定到某个 MLAG 域,id 在两台 peer 上必须一致。

这些对象的关系可以用下面的结构图表示:MLAG 域是“中枢”,向下关联 peer-link 和 peer-address,向外通过 mlag id 关联到各个业务 Port-Channel。两台 peer 交换机各自拥有相同的 domain-id 和 mlag id,通过 peer-link 与 peer-address 建立对等关系。

EOS MLAG 配置层级与对象关系 mlag configuration domain-id MLAG1 peer-address 10.0.0.2 peer-link Port-Channel10 Peer-Link Port-Channel10 Ethernet1-2 (trunk) Peer-Address Vlan4094 10.0.0.1/30 业务 Port-Channel Port-Channel20 mlag 20 业务 Port-Channel Port-Channel30 mlag 30 业务 Port-Channel Port-Channel40 mlag 40 实线:peer 通信链路;虚线:mlag id 绑定关系

一个可参考的 MLAG 配置样例

下面给出两台 peer 交换机(SW1 与 SW2)的配置片段,参数为教学示例,实际部署时需按现场规划替换。假设 peer-link 使用 Ethernet1-2,peer-address 使用 Vlan4094,业务 Port-Channel20 绑定 mlag 20。

! SW1 侧
vlan 4094
   name MLAG_PEER
!
interface Vlan4094
   no autostate
   ip address 10.0.0.1/30
!
interface Ethernet1
   channel-group 10 mode active
interface Ethernet2
   channel-group 10 mode active
!
interface Port-Channel10
   switchport mode trunk
   switchport trunk allowed vlan 10,20,30,4094
!
mlag configuration
   domain-id MLAG1
   local-interface Vlan4094
   peer-address 10.0.0.2
   peer-link Port-Channel10
!
interface Port-Channel20
   switchport mode trunk
   switchport trunk allowed vlan 10,20
   mlag 20

SW2 侧配置与 SW1 对称:Vlan4094 使用 10.0.0.2/30,peer-address 指向 10.0.0.1,domain-id 与 mlag id 保持一致。配置完成后,用 show mlag 查看状态,正常应看到 state: active、peer-link status: up、peer-address status: connected。若 peer-link 未 up,MLAG 会进入 inactive 或 primary/secondary 协商状态,此时业务 Port-Channel 可能被置为 errdisabled。

两台 peer 的 domain-id、mlag id、peer-link 名称必须一致;peer-address 必须互为对端。任何一侧参数写错,都会导致 MLAG 无法建立或出现双主风险。

用 CloudVision 与 eAPI 做自动化管理

手工敲命令适合学习和少量设备,但数据中心通常有成百上千台交换机,MLAG 配置需要成对下发、成对校验。Arista 提供两条自动化路径:

  • eAPI:EOS 内置的 HTTP/HTTPS JSON-RPC 接口。开启 management api http-commands 后,可用 Python 的 pyeapi 或直接发 JSON 请求执行 show 和 configure 命令。例如用 pyeapi 连接 SW1,执行 node.enable('show mlag') 获取状态,再用 node.config(['mlag configuration', 'domain-id MLAG1']) 下发配置。
  • CloudVision:集中管理平台,通过 CVP 可以把 MLAG 配置做成模板或 configlet,按设备角色(peer1/peer2)自动填充 peer-address、local-interface 等变量,再推送到目标设备。CVP 还提供合规性检查,能发现两台 peer 参数不一致的情况。

自动化下发的关键不是“能推命令”,而是“推完能验证”。建议在推送后自动执行 show mlag 和 show mlag config-sanity,把 state、peer-link status、mlag id 一致性作为校验条件。若校验失败,应回滚或告警,而不是继续推送下一对设备。

配置检查清单

检查项命令 / 位置期望结果
MLAG 域状态show mlagstate: active
Peer-link 状态show mlagpeer-link status: up
Peer-address 连通show mlagpeer-address status: connected
配置一致性show mlag config-sanity无 global configuration 不一致告警
成员接口绑定show running-config interface Port-Channel20存在 mlag 20
VLAN 允许列表show interfaces Port-Channel10 trunkpeer-link 允许所有业务 VLAN + 4094