3. SONiC 配置文件 config_db.json 的加载与备份

SONiC 配置文件 config_db.json 的加载与备份 学习卡片

任务说明

在SONiC交换机上,默认管理接口(eth0)位于Linux原生网络命名空间,承载设备带外管理流量。本案例目标是将管理接口eth0划分到指定VLAN(如VLAN 100),使管理流量以802.1Q tagged方式进入管理网络,实现管理流量与业务流量(由SONiC管理的front-panel端口转发)在二层逻辑上隔离。

实现方案

SONiC管理接口的VLAN划分不通过config_db.json中的VLAN表完成(该表仅作用于数据平面转发),而是直接修改Linux主机网络栈配置。核心步骤为:创建VLAN子接口(eth0.100),将原eth0的IP地址迁移至子接口,并将eth0置于混杂/UP状态。此操作在宿主机Linux网络命名空间内完成,不影响SONiC数据平面的VLAN转发行为。

操作步骤与代码

1. 查看当前管理接口状态


admin@sonic:~$ ip addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:e0:ec:00:12:34 brd ff:ff:ff:ff:ff:ff
    inet 10.10.10.2/24 brd 10.10.10.255 scope global eth0
       valid_lft forever preferred_lft forever

2. 创建管理VLAN子接口并迁移IP

以下脚本将eth0的IP地址迁移至VLAN 100子接口,并配置默认路由。请根据实际管理网段修改IP地址和网关。


#!/bin/bash
# 文件名: mgmt_vlan_setup.sh
# 功能: 将SONiC管理接口eth0划分到VLAN 100

MGMT_IF=eth0
MGMT_VLAN=100
MGMT_IP=10.10.10.2/24
MGMT_GW=10.10.10.1

# 1. 创建VLAN子接口
ip link add link ${MGMT_IF} name ${MGMT_IF}.${MGMT_VLAN} type vlan id ${MGMT_VLAN}

# 2. 将原eth0的IP地址迁移到子接口
ip addr del ${MGMT_IP} dev ${MGMT_IF}
ip addr add ${MGMT_IP} dev ${MGMT_IF}.${MGMT_VLAN}

# 3. 启用子接口和父接口
ip link set ${MGMT_IF}.${MGMT_VLAN} up
ip link set ${MGMT_IF} up

# 4. 调整默认路由(若原eth0有默认路由)
ip route del default 2>/dev/null || true
ip route add default via ${MGMT_GW} dev ${MGMT_IF}.${MGMT_VLAN}

echo "管理接口已划分到VLAN ${MGMT_VLAN}"
ip addr show ${MGMT_IF}.${MGMT_VLAN}

3. 验证配置


# 查看VLAN子接口信息
ip -d link show eth0.100

# 确认IP地址已绑定到子接口
ip addr show eth0.100

# 测试管理网络连通性(需对端交换机允许VLAN 100通过)
ping -c 3 10.10.10.1

4. 持久化配置(可选)

若需重启后保留配置,可将上述命令写入/etc/rc.local或创建systemd服务。SONiC的config reload不会覆盖此Linux层配置,但warm reboot可能重置网络栈,需注意。

验证拓扑与观测点

SONiC交换机 eth0 (无IP) eth0.100 (10.10.10.2/24) 管理交换机 VLAN 100 (tagged) 管理主机 (10.10.10.0/24) 802.1Q tagged (VLAN 100) 业务流量(front-panel端口转发,与eth0.100逻辑隔离) Linux网络命名空间 管理网络

判定标准

  • 配置成功:ip addr show eth0.100显示IP地址已绑定,且eth0上无IP地址。
  • 连通性验证:从管理主机ping交换机管理IP(10.10.10.2)成功,且管理交换机端口配置为VLAN 100 tagged。
  • 隔离验证:业务端口(如Ethernet0)的流量不受管理VLAN配置影响,业务VLAN转发正常。

注意事项

  • 操作前确认管理交换机侧已允许对应VLAN通过,否则将导致管理网络中断。
  • 若SONiC版本使用management-vrf,需在对应VRF内执行上述命令(使用ip netns exec mgmt前缀)。
  • 此配置仅影响带外管理接口,不影响SONiC数据平面的VLAN表项。