VXLAN_EVPN_NVO テーブル¶
概要¶
VXLAN_EVPN_NVO テーブルは EVPN ベースの Network Virtualization Overlay (NVO) インスタンスを CONFIG_DB に定義する3。EVPN コントロールプレーン (FRR + bgpd の l2vpn evpn) を有効化する際に、source VTEP として参照する VXLAN_TUNNEL を結びつける。1 エントリのみ許可される (max-elements 1)。
データフロー (自動生成)¶
flowchart LR
CDB[("CONFIG_DB<br/>VXLAN_EVPN_NVO")]
DM["vxlanmgrd"]
CDB --> DM
APPDB[("APP_DB<br/>APP_VXLAN_EVPN_NVO_TABLE")]
DM --> APPDB
SYNCD["syncd"]
APPDB --> SYNCD
凡例
CONFIG_DB から SAI までの典型経路を docs/reference/config-db-orch-map.md から機械生成したミニ図。詳細・例外は本ページ本文と対応表を参照。
key 構造¶
| キー | 型 | 説明 |
|---|---|---|
name |
string | EVPN NVO インスタンス名 |
max-elements: 1 — システム全体で 1 エントリのみ
フィールド¶
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
source_vtep |
leafref → VXLAN_TUNNEL.name |
yes | ソース VTEP として参照する VXLAN_TUNNEL |
制約¶
source_vtepはVXLAN_TUNNELへの leafref(先にトンネル作成が必要)- インスタンスはシステム全体で 1 件のみ
購読者¶
vxlanorch(sonic-swss)bgpcfgd/bgpd— EVPN address-family の起動条件
関連 CONFIG_DB / YANG / CLI¶
- 関連 CONFIG_DB:
VXLAN_TUNNEL、VXLAN_TUNNEL_MAP、VNET、BGP_GLOBALS_AF(l2vpn evpn) - 関連 YANG:
sonic-vxlan - 関連 CLI:
config vxlan evpn_nvo
値依存挙動マトリクス¶
本テーブルは enum フィールドを持たない。フィールドは source_vtep(leafref)と name(string)のみ。
| フィールド | 値 | 実挙動 |
|---|---|---|
source_vtep |
有効な VXLAN_TUNNEL 名 |
NVO 作成成功。disableLearningForAllVxlanNetdevices() でシステム全体の VXLAN MAC learning が無効化される (vxlanmgr.cpp) |
source_vtep |
存在しない / 未 active な VXLAN_TUNNEL 名 |
"NVO %s creation failed. VTEP not present" でリトライ待ち |
| エントリ数 | 1 件目 | 正常作成 |
| エントリ数 | 2 件目以降 | YANG max-elements 1 で reject。vxlanmgrd も "Only Single NVO object allowed" でキャッシュ側防護 |
例外条件・特殊挙動 ¶
- 最大 1 エントリ (YANG):
max-elements 1— 2 エントリ目は YANG バリデーションで reject される2。 vxlanmgrd重複チェック: キャッシュに既存 NVO エントリがある場合SWSS_LOG_ERROR("Only Single NVO object allowed")を記録して破棄(YANG 検証バイパス時の二重防護)1。- VTEP 未 active:
source_vtepが参照するVXLAN_TUNNELが active でない場合SWSS_LOG_ERROR("NVO %s creation failed. VTEP not present")を記録してリトライ待ち1。 - NVO 削除時エントリ不在:
SWSS_LOG_ERROR("NVO deletion NVO: %s not found exception: %s")を記録1。 - MAC learning 無効化: NVO 作成成功時にすべての VXLAN netdev の MAC learning が
disableLearningForAllVxlanNetdevices()で無効化される(EVPN 前提の動作)1。
関連リファレンス¶
- YANG:
sonic-vxlan - CLI:
config vxlan
引用元¶
関連ページ¶
運用ヒント¶
典型値¶
- key 形式:
VXLAN_EVPN_NVO|<nvo-name>(例nvo1)。 source_vtep:VXLAN_TUNNEL名を指す。
よくある誤設定¶
source_vtepが複数 NVO で重複指定されると最初の 1 つしか有効にならない。
確認コマンド¶
-
sonic-swss/cfgmgr/vxlanmgr.cpphttps://github.com/sonic-net/sonic-swss/blob/master/cfgmgr/vxlanmgr.cpp ↩↩↩↩ -
sonic-buildimage/src/sonic-yang-models/yang-models/sonic-vxlan.yanghttps://github.com/sonic-net/sonic-buildimage/blob/master/src/sonic-yang-models/yang-models/sonic-vxlan.yang ↩ -
YANG 定義:
sonic-vxlan.yang. https://github.com/sonic-net/sonic-buildimage/blob/9ea932ec2e18f35e58268ec2e4456b1d4afd65cd/src/sonic-yang-models/yang-models/sonic-vxlan.yang ↩