コンテンツにスキップ

VXLAN_TUNNEL テーブル

概要

VXLAN VTEP (Virtual Tunnel End Point) を定義するテーブル。source / destination IP と decap TTL モードを保持する3orchagentVxlanOrch / VxlanTunnelOrchSAI VXLAN tunnel と SAI tunnel termination を生成する。EVPN ベースのオーバーレイでは destination は省略され、VXLAN_EVPN_NVO で NVO がバインドされる。

データフロー (自動生成)

flowchart LR
  CDB[("CONFIG_DB<br/>VXLAN_TUNNEL")]
  DM["vxlanmgrd"]
  CDB --> DM
  APPDB[("APP_DB<br/>APP_VXLAN_TUNNEL_TABLE")]
  DM --> APPDB
  SYNCD["syncd"]
  APPDB --> SYNCD
  SAI["SAI<br/>sai_tunnel_api"]
  SYNCD --> SAI

凡例

CONFIG_DB から SAI までの典型経路を docs/reference/config-db-orch-map.md から機械生成したミニ図。詳細・例外は本ページ本文と対応表を参照。

key 構造

VXLAN_TUNNEL|<name>

YANG max-elements 2 制約により最大 2 トンネルまで(実装的に EVPN 用 1 + 静的 1 を想定)。

フィールド一覧

フィールド 必須 説明
name (key) string トンネル名
src_ip ip-address - 自 VTEP IP(origination 用)
dst_ip ip-address - 対向 VTEP IP(point-to-point の場合)
ttl_mode string uniform/pipe - decap 時 TTL モード

関連サブテーブル

  • VXLAN_TUNNEL_MAP (key: name, mapname): VLAN ↔ VNI マッピング
    • vlan (string Vlan<id>, mandatory)
    • vni (vnid_type, mandatory)
  • VXLAN_EVPN_NVO (key: name, max-elements 1): EVPN NVO インスタンス
    • source_vtep (leafref VXLAN_TUNNEL.name, mandatory)

購読者

  • orchagent VxlanTunnelOrch / VxlanTunnelMapOrch / EvpnNvoOrch: SAI tunnel / tunnel-map / NVO を生成
  • bgpcfgd (EVPN type-2 / type-3 advertise との連携)

関連 CONFIG_DB / YANG / CLI

  • 関連 CONFIG_DB: VXLAN_TUNNEL_MAPVXLAN_EVPN_NVOVLANVNETVLAN_INTERFACE
  • 関連 CLI: config vxlan
  • 関連 YANG: sonic-vxlan

値依存挙動マトリクス

フィールド 実挙動
ttl_mode uniform decap 時に outer TTL を inner TTL にコピーして適用
ttl_mode pipe decap 時に inner TTL を保持(outer TTL は無視)
ttl_mode その他 YANG pattern "uniform\|pipe" 違反で reject
dst_ip 省略 EVPN 動的学習モード。ip link add ... type vxlan id <vni> local <src_ip> の remote オプションなし (vxlanmgr.cpp:1014)
dst_ip 明示指定 P2P 静的トンネル。ip link add ... remote <dst_ip> が追加される。EVPN との併用は非推奨
src_ip Loopback0 IP 推奨構成。リンクダウン影響なし
src_ip 物理 IF IP リンクダウン時に VTEP が消失するため非推奨
エントリ数 1〜2 件 YANG max-elements 2。通常 EVPN 用 1 + P2P 用 1
エントリ数 3 件以上 YANG バリデーションで reject

例外条件・特殊挙動

  • 最大 2 エントリ (YANG): max-elements 2 — 3 エントリ目は YANG バリデーションで reject される2
  • ttl_mode パターン (YANG): pattern "uniform|pipe" — それ以外の値は YANG で reject2
  • src_ip / dst_ip 型 (YANG): inet:ip-address 型 — 不正 IP は YANG で reject2
  • 削除時の NVO 残留: tunnel 削除時に NVO エントリが残存していると SWSS_LOG_WARN("Tunnel %s deletion failed. Need to delete NVO") を記録してリトライ待ち1
  • 削除時のマップ残留: tunnel map エントリが残存していると SWSS_LOG_WARN("Need to delete mapping entries") でリトライ待ち1
  • State テーブル未クリア: state VXLAN tunnel テーブルが空でない場合 SWSS_LOG_WARN("State VXLAN tunnel table not yet empty.") を記録してリトライ1
  • Vxlan Net Dev 作成失敗: SWSS_LOG_WARN("Vxlan Net Dev creation failure for %s VNI(%s) VLAN(%s)") を記録1

関連リファレンス

引用元

関連ページ

運用ヒント

典型値

  • key 形式: VXLAN_TUNNEL|<name>
  • src_ip: 自 Loopback IP(VTEP)。
  • dst_ip: P2P トンネル先(EVPN 動的の場合は省略)。

よくある誤設定

  • src_ip を物理 IF に置くとリンクダウンで VTEP が消える。Loopback0 を使う。
  • EVPN 構成で dst_ip を静的指定すると EVPN type-3 と競合する。

確認コマンド

sonic-db-cli CONFIG_DB hgetall 'VXLAN_TUNNEL|tunnel1'
show vxlan tunnel
show vxlan remotevtep