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 保存配置。
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 建立对等关系。
一个可参考的 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。
用 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 mlag | state: active |
| Peer-link 状态 | show mlag | peer-link status: up |
| Peer-address 连通 | show mlag | peer-address status: connected |
| 配置一致性 | show mlag config-sanity | 无 global configuration 不一致告警 |
| 成员接口绑定 | show running-config interface Port-Channel20 | 存在 mlag 20 |
| VLAN 允许列表 | show interfaces Port-Channel10 trunk | peer-link 允许所有业务 VLAN + 4094 |