Runbook: EVPN Type-2 (MAC/IP) route が peer に広告されない¶
実行前提
EVPN / VXLAN 系の config reload / systemctl restart bgp / VLAN-VNI mapping の変更は VXLAN overlay 経由のテナント通信を瞬断〜数十秒断する。事前に CONFIG_DB の VXLAN_TUNNEL / VLAN / VXLAN_EVPN_NVO を退避し、ロールバック手順として config_db.json を保存しておく。本番では事前にメンテ枠を確保すること。
症状¶
show bgp l2vpn evpnで local MAC が出ない- 対向 VTEP に Type-2 が届かない(受信側で
show bgp l2vpn evpn route type macipが空) - VLAN-to-VNI mapping は設定済みだが overlay 通信できない
想定原因(優先度順)¶
advertise-all-vni未設定: FRR のaddress-family l2vpn evpnでadvertise-all-vniがない- VLAN-VNI mapping 欠落:
VXLAN_TUNNEL_MAPが未作成 / VNI 重複 - FDB が学習されていない: 対象 MAC が
show macに出ない - route-target import/export 不整合
type-2 prefixの filter / route-map で drop
切り分け手順¶
flowchart TD
A["Type-2 (MAC/IP) 経路が広報されない"] --> B{ローカル MAC 学習済み?}
B -- No --> B1["VLAN/PortChannel 設定 / FDB 確認"]
B -- Yes --> C{l2vpn evpn family activate?}
C -- No --> C1[address-family l2vpn evpn を有効化]
C -- Yes --> D{"advertise-all-vni / RD/RT 設定?"}
D -- No --> D1["EVPN_NVO / VRF RT 設定を投入"]
D -- Yes --> E[bgp l2vpn evpn neighbor の send-community 確認]
確認コマンド¶
1. VXLAN / VNI¶
show vxlan tunnel
show vxlan vlanvnimap
show vxlan name <tunnel>
sonic-db-cli CONFIG_DB keys "VXLAN_TUNNEL_MAP|*"
2. FRR / BGP EVPN¶
docker exec bgp vtysh -c "show running-config" | grep -A30 "l2vpn evpn"
docker exec bgp vtysh -c "show bgp l2vpn evpn summary"
docker exec bgp vtysh -c "show bgp l2vpn evpn route"
- 期待:
advertise-all-vniあり、route-targetが対向と一致
3. FDB / MAC 学習¶
4. EVPN MAC/IP¶
5. orchagent¶
対処方法¶
advertise-all-vni追加:vtysh -c "conf t" -c "router bgp <asn>" -c "address-family l2vpn evpn" -c "advertise-all-vni"の後config save(ロールバック:no advertise-all-vniを同経路で)- VLAN-VNI mapping 作成:
sudo config vxlan map add <tunnel> <vlan> <vni>(ロールバック:config vxlan map del) - RT 不一致:
route-target import/exportを対向と揃える - FDB が学習されない: MAC learning enable、port が trunk として正しいか確認
確認¶
対処後の正常化を以下で裏取りする。
- 症状解消: 「症状」節で挙げた事象 (counter / log / state) が回復していること
- 再発監視: 数分〜数十分の間隔で同コマンドを再実行し、値がフラップしていないこと
- 副作用なし: 関連サブシステム (syslog /
show interfaces counters errors/show ip bgp summary等) に新規 error が出ていないこと - 永続化:
sudo config save -y済みでconfig_db.jsonに変更が反映されていること (恒久対処の場合)
短時間で再発する場合は「想定原因」リストの次候補に進む。
関連ページ¶
- ../../topics/03-vxlan-evpn/concept.md
- ../../topics/03-vxlan-evpn/operations.md
- ../config-db/vxlan-tunnel.md
引用元¶
-
sonic-net/sonic-frr @ master — bgp_evpn.c ↩
-
sonic-net/sonic-swss @ master — vxlanorch.cpp ↩