コンテンツにスキップ

BGP_PEER_GROUP テーブル

概要

BGP peer-group の VRF スコープでの定義テーブル。BGP_NEIGHBOR_LIST.peer_group_name から参照される。sonic-bgp-cmn grouping を uses し、BGP_NEIGHBOR と同じ共通フィールドを持つ。frr-mgmt-framework (DEVICE_METADATA.frr_mgmt_framework_config = true) が CONFIG_DB を購読する1

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

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

凡例

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

key 構造

BGP_PEER_GROUP|<vrf_name>|<peer_group_name>

<vrf_name>BGP_GLOBALS.vrf_name への leafref。

主要フィールド

sonic-bgp-cmn grouping を uses するため、BGP_NEIGHBOR と同じ leaf 群を持つ (代表): local_asn, asn, peer_type, ebgp_multihop, ebgp_multihop_ttl, auth_password, keepalive, holdtime, conn_retry, min_adv_interval, local_addr, passive_mode, capability_ext_nexthop, enforce_first_as, solo_peer, ttl_security_hops, bfd, peer_port, admin_status, local_as_no_prepend, local_as_replace_as 等。詳細は BGP_NEIGHBOR ページを参照 (docs/reference/config-db/bgp-neighbor.md)。

派生テーブル

  • BGP_PEER_GROUP_AF ... peer-group × afi_safi のアドレスファミリ別設定。sonic-bgp-cmn-af grouping を uses
  • BGP_GLOBALS_LISTEN_PREFIX ... dynamic neighbor (listen range) の peer-group 紐付け。key: <vrf_name>|<ip_prefix>、leaf peer_groupBGP_PEER_GROUP_LIST.peer_group_name を参照

購読者

  • frr-mgmt-framework: CONFIG_DBFRR peer-group コマンド
  • bgpcfgd: テンプレ経路で peer-group を展開

関連 CONFIG_DB / YANG / CLI

  • 関連 CONFIG_DB: BGP_NEIGHBORBGP_GLOBALSBGP_PEER_GROUP_AFBGP_GLOBALS_LISTEN_PREFIX
  • 関連 CLI: config bgp (peer-group 関連サブコマンド)
  • 関連 YANG: sonic-bgp-peergroupsonic-bgp-common

関連リファレンス

引用元

運用ヒント

典型値

  • key 形式: BGP_PEER_GROUP|<vrf>|<peer-group-name>
  • asn: 対向 AS(同 peer-group 内で統一)。
  • admin_status: up

よくある誤設定

  • peer-group の asn と個別 neighbor の asn がズレると FRR が neighbor を peer-group に紐付けない。

確認コマンド

sonic-db-cli CONFIG_DB keys 'BGP_PEER_GROUP|*'
vtysh -c 'show bgp peer-group'

値依存挙動マトリクス

BGP_NEIGHBOR と同一の sonic-bgp-cmn grouping を uses する。

peer_type (bgp_peer_type)

テンプレディレクトリ 主な差異
internal bgpd/templates/internal/ send-community 自動、timers 3/10、BackEnd で next-hop-self force
external / general bgpd/templates/general/ timers 60/180、ToRRouter で allowas-in 1

peer-group に設定した peer_type は、その peer-group に属する全 neighbor のテンプレ種別を決定する。

admin_status

FRR コマンド
up no neighbor <pg> shutdown
down neighbor <pg> shutdown

例外条件・特殊挙動

条件 挙動 ソース
peer-group が FRR に未存在のまま SET が到達 frrcfgd が neighbor {} peer-group を vtysh 実行。失敗時 failed to create peer-group %s for VRF %s を LOG_ERR → continue frrcfgd.py L2799
local_asn 未設定 VRF LOG_DEBUG して skip frrcfgd.py L2660
BGPPeerGroupMgr.update_policy() の Jinja2 エラー log_err して return False managers_bgp.py update_policy()
BGPPeerGroupMgr.update_pg() の Jinja2 エラー log_err して return False managers_bgp.py update_pg()
TSA 有効時の peer-group 設定 check_state_and_get_tsa_routemaps() が TSA route-map を自動付与。エラー時は peer-group 全体が skip managers_device_global.py
FRR 10.1 以降: listen range がある peer-group の削除 先に no bgp listen range を実行してから peer-group 削除。range 削除失敗でも peer-group 削除を試みる managers_bgp.py del_handler()