コンテンツにスキップ

BGP_PEER_RANGE テーブル

概要

BGP_PEER_RANGE テーブルは BGP の dynamic neighbor 用 listen-range / peer-range を CONFIG_DB に定義する1bgpcfgd テンプレが bgpdbgp listen range <prefix> peer-group <name> 相当を生成するための入力。

定義は 2 list:

  • BGP_PEER_RANGE_LIST (vrf_name, peer_range_name): VRF または VNET 別の peer range
  • BGP_PEER_RANGE_TEMPLATE_LIST (peer_range_name): テンプレベース

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

flowchart LR
  CDB[("CONFIG_DB<br/>BGP_PEER_RANGE")]
  DM["bgpcfgd"]
  CDB --> DM

凡例

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

key 構造

BGP_PEER_RANGE|<vrf_name>|<peer_range_name>      # generic
BGP_PEER_RANGE_TEMPLATE|<peer_range_name>        # template
キー 説明
vrf_name union (leafref to VRF.name または VNET.name) 所属 VRF または VNET
peer_range_name string peer range の一意名

フィールド

フィールド 説明
name string 表示名。mustpeer_range_name と一致を強制
src_address inet:ip-address コネクションのソース IP
peer_asn uint32 (1..4294967295) 隣接 AS 番号
ip_range leaf-list sonic-ip-prefix (ordered-by user) listen-range のプレフィックス集合

制約

  • vrf_nameVRFVNET のいずれかへの leafref(union)
  • namepeer_range_name と完全一致必須
  • peer_asn は AS4 範囲

購読者

  • bgpcfgd (docker-fpm-frr)

関連 CONFIG_DB / YANG / CLI

  • 関連 CONFIG_DB: BGP_GLOBALSVRFVNETBGP_PEER_GROUP
  • 関連 YANG: sonic-bgp-peerrangesonic-vrfsonic-vnet
  • 関連 CLI: config bgp

関連リファレンス

引用元

関連ページ

運用ヒント

典型値

  • key 形式: BGP_PEER_RANGE|<vrf>|<range-name>
  • ip_range: CIDR、peer_asn: 対向 AS、name: 識別子。dynamic neighbor 用途。

よくある誤設定

  • listen limit を超えると新規 dynamic neighbor が拒否される。

確認コマンド

sonic-db-cli CONFIG_DB keys 'BGP_PEER_RANGE|*'
vtysh -c 'show bgp listen range'

値依存挙動マトリクス

このテーブルには enum フィールドはない。

vrf_name (key、VRF/VNET 分岐)

動作
VRF.name への leafref VRF コンテキストで bgp listen range <prefix> peer-group <name> を生成
VNET.name への leafref VNET 対応 VRF で同様のコマンドを生成

ip_range (leaf-list)

  • 複数プレフィックスを user-ordered で指定可能
  • dynamic/update.conf.j2 が各プレフィックスに対して bgp listen range <prefix> peer-group <name> を展開
  • 削除時は既存 range との差分を計算して no bgp listen range を発行

例外条件・特殊挙動

条件 挙動 ソース
deployment_id が DEVICE_METADATA に未設定で peer_asn も未設定 Jinja2 で UndefinedError / KeyErrorlog_err + return True (drop) dynamic/instance.conf.j2, managers_bgp.py
ip_range が空または未設定 bgp listen range <empty> が vtysh に送られ FRR エラー dynamic/instance.conf.j2
ip_range 更新時の既存 range 取得失敗 LOG_ERR して空リスト返却 → 全 range を新規追加として処理 managers_bgp.py get_existing_ip_ranges()
src_address 未設定 Loopback1 の IPv4 アドレスで補完。Loopback1 が未設定の場合 Jinja2 エラー → drop dynamic/instance.conf.j2
FRR 10.1 以降: listen range 削除失敗後も peer-group 削除を続行 range 削除の log_err 後、peer-group 削除を試みる → FRR 側エラーの可能性 managers_bgp.py del_handler()