コンテンツにスキップ

BGP_GLOBALS テーブル

概要

VRF 単位の BGP 全体パラメータ(router-id、local AS、graceful restart、route reflector、bestpath 比較ルール、confederation、keepalive/holdtime、max-med、max delay 等)を保持する1bgpcfgd または frr-mgmt-framework が読み出し、FRRrouter bgp <asn> vrf <vrf> ブロックに反映する。BGP_GLOBALS_AF / BGP_GLOBALS_AF_AGGREGATE_ADDR / BGP_GLOBALS_AF_NETWORK がアドレスファミリ依存の設定を持つ。

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

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

凡例

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

key 構造

BGP_GLOBALS|<vrf_name>

<vrf_name>default または VRF.name への leafref(union)。

フィールド一覧 (BGP_GLOBALS)

フィールド デフォルト 説明
router_id ipv4-address - BGP router-id
local_asn uint32 (1..2^32-1) - local AS
always_compare_med boolean - 異なる隣接からの MED を比較
load_balance_mp_relax boolean - multipath-relax (AS path 異なる ECMP 許容)
graceful_restart_enable boolean - GR 有効化
gr_preserve_fw_state boolean - F-bit 設定
gr_restart_time uint16 (1..3600) - restart timer
gr_stale_routes_time uint16 (1..3600) - stale-path holding
external_compare_router_id boolean - EBGP 経路で router-id 比較
ignore_as_path_length boolean - as-path 長を無視
log_nbr_state_changes boolean - 隣接 up/down log
rr_cluster_id string - RR cluster ID
rr_allow_out_policy boolean - RR 反射経路への out-policy 許可
disable_ebgp_connected_rt_check boolean - EBGP nexthop connected check 無効化
fast_external_failover boolean - 直結 EBGP リンクダウン即時リセット
network_import_check boolean - network が IGP に存在することを確認
graceful_shutdown boolean - graceful shutdown
rr_clnt_to_clnt_reflection boolean - client-to-client reflection
max_dynamic_neighbors uint16 (1..5000) - dynamic neighbor 上限
read_quanta / write_quanta uint8 (1..10) - I/O サイクルあたりパケット数
coalesce_time uint32 - subgroup coalesce timer [ms]
route_map_process_delay uint16 (0..600) - route-map 変更後の遅延 [s]
deterministic_med / med_confed / med_missing_as_worst boolean - MED 比較バリエーション
compare_confed_as_path boolean - confederation set/seq を含めて長さ比較
as_path_mp_as_set boolean - multipath aggregate に AS_SET 付与
default_ipv4_unicast boolean - peer に IPv4 unicast を既定で activate
default_local_preference uint32 - 既定 local-preference
default_show_hostname boolean - dump で hostname 表示
default_shutdown boolean - 新規 peer に shutdown を既定適用
default_subgroup_pkt_queue_max uint8 (20..100) - subgroup queue 上限
max_med_time uint32 (5..86400) - startup max-med 期間 [s]
max_med_val uint32 - startup max-med 値
max_med_admin boolean - admin max-med 有効化
max_med_admin_val uint32 - admin max-med 値
max_delay uint16 (0..3600) - 起動後 best-path 計算最大遅延
establish_wait uint16 (0..3600) - establish 待機時間
confed_id uint32 - confederation AS
confed_peers leaf-list uint32 - confederation peer ASes
keepalive uint16 - keepalive [s]
holdtime uint16 - holdtime [s]

関連サブテーブル

  • BGP_GLOBALS_AF (key: vrf_name, afi_safi)
    • max_ebgp_paths / max_ibgp_paths (1..256, default 1)
    • import_vrf / import_vrf_route_map / route_download_filter
    • ebgp_route_distance / ibgp_route_distance / local_route_distance (1..255)
    • ibgp_equal_cluster_length
    • route_flap_dampen 系 (IPv4 unicast 限定の must)
    • autort (rfc8365-compatible)、advertise-all-vniadvertise-svi-ip
  • BGP_GLOBALS_AF_AGGREGATE_ADDR (key: vrf_name, afi_safi, ip_prefix)
    • as_set / summary_only / policy
  • BGP_GLOBALS_AF_NETWORK (key: vrf_name, afi_safi, ip_prefix)
    • policy / backdoor

購読者

  • bgpcfgd / frr-mgmt-framework: CONFIG_DB → vtysh / FRR config に変換
  • bgpd (FRR)

関連 CONFIG_DB / YANG / CLI

  • 関連 CONFIG_DB: BGP_NEIGHBORBGP_DEVICE_GLOBALBGP_AGGREGATE_ADDRESSVRFROUTE_MAP_SET
  • 関連 CLI: config bgp
  • 関連 YANG: sonic-bgp-global

関連リファレンス

引用元

関連ページ

運用ヒント

典型値

  • key 形式: BGP_GLOBALS|<vrf> (default または Vrf<name>)。
  • local_asn: 自身の AS。
  • router_id: Loopback0 の IP。
  • load_balance_mp_relax: true(マルチパスを緩和)。

よくある誤設定

  • router_id を未設定にすると最初に up した IF の IP が選ばれ、運用で値がブレる。明示するのが鉄則。
  • local_asn を後から変更すると全 neighbor が一旦落ちる。メンテ窓で実施。

確認コマンド

sonic-db-cli CONFIG_DB hgetall 'BGP_GLOBALS|default'
show ip bgp summary
vtysh -c 'show running-config bgpd'

値依存挙動マトリクス

このテーブルは boolean / uint / string フィールドのみで enum フィールドはない。

vrf_name (key、挙動分岐)

FRR コマンド形式
default router bgp <local_asn>
任意の VRF 名 router bgp <local_asn> vrf <vrf_name>

代表的 boolean フィールドの FRR マッピング

フィールド true 時の FRR コマンド
graceful_restart_enable bgp graceful-restart
log_nbr_state_changes bgp log-neighbor-changes
fast_external_failover bgp fast-external-failover
graceful_shutdown bgp graceful-shutdown
load_balance_mp_relax bgp bestpath as-path multipath-relax
always_compare_med bgp always-compare-med
deterministic_med bgp deterministic-med
network_import_check bgp network import-check

例外条件・特殊挙動

条件 挙動 ソース
local_asn が未設定の VRF で BGP_GLOBALS 以外のテーブル更新が到達 frrcfgd が LOG_DEBUG して skip。BGP_GLOBALS 自体に local_asn が含まれる場合のみ続行 frrcfgd.py L2660
非 default VRF が未設定のまま参照 non-default VRF {} was not configured を LOG_ERR → skip frrcfgd.py L2451
Jinja2 テンプレートレンダリング失敗 (bgpcfgd) log_err して return True (処理済み扱い = 再試行なし) managers_bgp.py
frr-mgmt-frameworkbgpcfgd の並存 両方が同テーブルを購読する環境では二重処理に注意 (通常はどちらか一方のみ稼働) main.py L87