コンテンツにスキップ

LOOPBACK_INTERFACE テーブル

概要

ルータ ID やサービス IP として使う仮想ループバック IF を定義する1Loopback0 は通常 BGP の router-id / source として使われる。intfmgrd が Linux 上の dummy IF を生成し、orchagent IntfsOrchSAI ルータ IF を作る。

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

flowchart LR
  CDB[("CONFIG_DB<br/>LOOPBACK_INTERFACE")]
  DM["intfmgrd"]
  CDB --> DM
  APPDB[("APP_DB<br/>APP_DB")]
  DM --> APPDB
  SYNCD["syncd"]
  APPDB --> SYNCD
  SAI["SAI<br/>sai_router_intf_api"]
  SYNCD --> SAI

凡例

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

key 構造

LOOPBACK_INTERFACE|<name>                       # 属性ロウ
LOOPBACK_INTERFACE|<name>|<ip-prefix>           # IP プレフィクス

<name>interface_name typedef で Loopback<N> 形式。

属性ロウのフィールド

フィールド 必須 デフォルト 説明
name (key) interface_name - ループバック名(例: Loopback0
vrf_name leafref VRF.name - - バインドする VRF
nat_zone uint8 (0..3) - 0 NAT zone
admin_status admin_status - up 管理状態

IP プレフィクスロウ

フィールド 必須 説明
name (key) leafref 自テーブル LOOPBACK_INTERFACE_LIST.name ループバック名
ip-prefix (key) union (v4/v6 prefix) IP/プレフィクス
scope enum global/local - アドレススコープ
family ip-family - family。ip-prefix と整合する must

購読者

  • intfmgrd: Linux dummy IF / IP / VRF binding を生成
  • orchagent IntfsOrch: SAI ルータ IF
  • bgpcfgd: Loopback0 IPv4 を BGP bgp router-id の既定値として参照(DEVICE_METADATA.bgp_router_id 未設定時)

関連 CONFIG_DB / YANG / CLI

  • 関連 CONFIG_DB: VRFDEVICE_METADATA (bgp_adv_lo_prefix_as_128)
  • 関連 CLI: config loopback add/delconfig interface ip add Loopback0 ...
  • 関連 YANG: sonic-loopback-interface

関連リファレンス

引用元

運用ヒント

典型値

  • key 形式: LOOPBACK_INTERFACE|Loopback0 (L3 enable 行) と LOOPBACK_INTERFACE|Loopback0|<ip/prefix>
  • Loopback0BGP router-id / VTEP src として標準利用。

よくある誤設定

  • L3 enable 行を省略すると IP 行だけでは Loopback が作られない。

確認コマンド

sonic-db-cli CONFIG_DB keys 'LOOPBACK_INTERFACE|*'
show ip interfaces | grep Loopback

値依存挙動マトリクス

admin_status

挙動
up(デフォルト) Linux dummy デバイスを UP 状態にする
down Linux dummy デバイスを DOWN 状態にする
設定コマンド失敗時 SWSS_LOG_WARN("Lo interface ip link set admin status %s failure. Runtime error: %s") → warn のみで継続

scope(IP プレフィクスロウ)

挙動
global グローバルスコープアドレス
local ローカルスコープアドレス

vrf_name

挙動
設定あり 指定 VRF にバインド
未設定 デフォルト VRF に属する

L3 enable 行の有無(特殊条件)

状態 挙動
L3 enable 行なしで IP 行のみ投入 dummy デバイス未作成のため ip addr add が失敗
L3 enable 行あり ip link add <name> mtu 65536 type dummy で作成後 IP を付与

例外条件・特殊挙動

条件 挙動
L3 enable 行なしで IP 行のみ投入 dummy デバイス未作成のため ip addr add が失敗。L3 enable 行(フィールドなし)が先に必要
MTU 未設定 ip link add <name> mtu 65536 type dummy で作成(intfmgr.cpp L28 LOOPBACK_DEFAULT_MTU_STR "65536"
ip link set admin_status 失敗 SWSS_LOG_WARN("Lo interface ip link set admin status %s failure. Runtime error: %s") → warn のみで継続
ip link del 失敗 SWSS_LOG_ERROR → dummy デバイスが OS に残存するが CONFIG_DB からはエントリが消える(不整合状態)
同名 Loopback への重複 SET m_loopbackIntfListfind で既存確認後スキップ
削除済み Loopback への IP 追加 L3 enable 行を再設定しないと反映されない