DEVICE_NEIGHBOR_METADATA テーブル¶
概要¶
隣接機器(DEVICE_NEIGHBOR で参照されるホスト)のメタデータ(hwsku、loopback、管理 IP、deployment_id など)を保持するテーブル1。トポロジ情報を持つ minigraph パーサが DEVICE_NEIGHBOR と組で生成する。
データフロー (自動生成)¶
flowchart LR
CDB[("CONFIG_DB<br/>DEVICE_NEIGHBOR_METADATA")]
DM["lldpmgrd"]
CDB --> DM
凡例
CONFIG_DB から SAI までの典型経路を docs/reference/config-db-orch-map.md から機械生成したミニ図。詳細・例外は本ページ本文と対応表を参照。
key 構造¶
<name>: 隣接機器ホスト名(length 1..255)
フィールド¶
| フィールド | 型 | 説明 |
|---|---|---|
name |
string (1..255) | 隣接機器ホスト名(key) |
cluster |
string | 所属クラスタ名 |
hwsku |
stypes:hwsku |
隣接機器のハードウェア SKU |
lo_addr |
union(ipv4-prefix | ipv4-address) | loopback IPv4 |
lo_addr_v6 |
union(ipv6-prefix | ipv6-address) | loopback IPv6 |
mgmt_addr |
union(ipv4-prefix | ipv4-address) | 管理 IPv4 |
mgmt_addr_v6 |
union(ipv6-prefix | ipv6-address) | 管理 IPv6 |
type |
string | ネットワーク要素タイプ(LeafRouter、SpineRouter、ToRRouter 等) |
deployment_id |
uint32 | デプロイメント識別子 |
slice_type |
string | デバイス用メタデータタグ |
resource_type |
string | リソース種別(例: Storage、Compute) |
値依存挙動マトリクス¶
type (string: 制約なし)¶
| 値の例 | 挙動 |
|---|---|
ToRRouter / LeafRouter / SpineRouter |
BGP テンプレ生成(bgpcfgd)で role を参照し、eBGP セッション設定を分岐させることがある |
Server |
末端ホスト扱い(BGP テンプレでは直接利用されないことが多い) |
| 任意の文字列 | YANG 上 string 型で制約なし |
IP 系フィールド (lo_addr / lo_addr_v6 / mgmt_addr / mgmt_addr_v6)¶
| 形式 | 挙動 |
|---|---|
| ipv4-prefix / ipv6-prefix 形式 | prefix 長付きで受理 |
| ipv4-address / ipv6-address 形式 | ホストアドレスとして受理 |
| その他 | YANG union 型違反で reject |
明示的な enum 制約なし。フィールド値はすべて自由文字列または union 型。
制約¶
- 同名の
DEVICE_NEIGHBOR_LIST.nameと運用上揃える前提(YANG では leafref 化されていない) - 各 IP 系 leaf は
unionでアドレス/プレフィクス両形式を許容
購読者¶
- minigraph パーサ (sonic-cfggen): minigraph から生成
- 一部監視・トポロジ可視化スクリプトが参照
- BGP テンプレート生成 (
bgpcfgdテンプレート) で hwsku/type を参照することがある
関連 CONFIG_DB / YANG / CLI¶
- 関連 CONFIG_DB:
DEVICE_NEIGHBOR - 関連 YANG:
sonic-device_neighbor_metadata - 関連 CLI: なし
関連リファレンス¶
- YANG:
sonic-device_neighbor_metadata
引用元¶
運用ヒント¶
典型値¶
- key 形式:
DEVICE_NEIGHBOR_METADATA|<hostname>。 type:LeafRouter/SpineRouter/ToRRouter/Server等。mgmt_addr、hwskuを併記。
よくある誤設定¶
- DEVICE_NEIGHBOR と hostname がズレると minigraph 由来の自動 BGP セッションが立ち上がらない。
確認コマンド¶
例外条件・特殊挙動¶
| consumer | 条件 | 挙動 |
|---|---|---|
| bgpcfgd | DEVICE_NEIGHBOR_METADATA が directory に未到達 |
log_info("DEVICE_NEIGHBOR_METADATA is not ready...") を出力して return False で延期。依存関係登録済みのため到着後に再処理(managers_bgp.py:220-222) |
| pfcwd | neighbor name フィールド欠落 |
KeyError が発生し pfcwd の起動シーケンスが中断する(pfcwd/main.py:102) |
Evidence: sonic-buildimage
src/sonic-bgpcfgd/bgpcfgd/managers_bgp.py:140,220-224; sonic-utilitiespfcwd/main.py:102
-
YANG 定義:
sonic-device_neighbor_metadata.yang. https://github.com/sonic-net/sonic-buildimage/blob/9ea932ec2e18f35e58268ec2e4456b1d4afd65cd/src/sonic-yang-models/yang-models/sonic-device_neighbor_metadata.yang ↩