コンテンツにスキップ

BGP_GLOBALS_AF_NETWORK テーブル

概要

VRF × アドレスファミリ単位BGP静的に注入するネットワーク (network <prefix> ステートメント) を定義する CONFIG_DB テーブル1FRR bgpdaddress-family <afi> <safi> 配下の network <ip_prefix> に対応する。frr-mgmt-framework 経路 (DEVICE_METADATA frr_mgmt_framework_config = true) で使用される。

BGP_GLOBALS_AF_AGGREGATE_ADDR が複数の動的ルートを 集約 するのに対し、こちらは管理者が 明示的に広告したいプレフィックス を列挙する用途。

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

flowchart LR
  CDB[("CONFIG_DB<br/>BGP_GLOBALS_AF_NETWORK")]
  DM["frrcfgd"]
  CDB --> DM

凡例

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

key 構造

BGP_GLOBALS_AF_NETWORK|<vrf_name>|<afi_safi>|<ip_prefix>
  • <vrf_name>: BGP_GLOBALS.vrf_name への leafref
  • <afi_safi>: ipv4_unicast, ipv6_unicast
  • <ip_prefix>: 広告対象プレフィックス (inet:ip-prefix)

フィールド

フィールド 説明
vrf_name (key) leafref → BGP_GLOBALS.vrf_name 所属 VRF
afi_safi (key) string アドレスファミリ
ip_prefix (key) inet:ip-prefix 広告するネットワーク
policy leafref → ROUTE_MAP_SET.name 属性を加工する route-map
backdoor boolean backdoor ルートとして指定 (RFC 1771 / FRR 拡張)

制約

  • 3 つのキーで一意。
  • 対応する VRFBGP インスタンスが先に必要 (leafref)。
  • network で広告するためには、実際にそのプレフィックスが RIB (ルーティングテーブル) に存在する ことが BGP の動作上の前提(BGP_GLOBALS.network_import_check = true の場合)。
  • backdoor は IGP と BGP の同一プレフィックスで IGP を優先させたいときに使う。

購読者

  • frr-mgmt-framework: vtysh の network <prefix> [route-map <name>] [backdoor] コマンドに変換
  • bgpd (FRR): network 経由で BGP UPDATE に該当プレフィックスを注入

関連 CONFIG_DB / YANG / CLI

  • 関連 CONFIG_DB: BGP_GLOBALS, BGP_GLOBALS_AF, BGP_GLOBALS_AF_AGGREGATE_ADDR, ROUTE_MAP_SET, STATIC_ROUTE
  • 関連 CLI: vtysh の network <prefix> (frr-mgmt-framework 経路では CONFIG_DB 投入)
  • 関連 YANG: sonic-bgp-global

例外条件・特殊挙動

条件 挙動
key の IP prefix 形式不正 normalize_ip_prefix() が None → syslog ERR & continue、FRR 未反映
AF_TYPE フォーマット不正(_ 区切り不可) ValueError が上位に伝播
FRR コマンド実行失敗 syslog ERR & continue、再試行なし
policy/backdoor フィールド欠如 FRR コマンドの該当部分を空/省略で生成
重複 network <prefix> 投入 FRR は冪等に処理、frrcfgd 側での重複チェックなし
BGP_GLOBALS が未設定(bgp_asn 不在) 上位ハンドラで依存待機、または KeyError 伝播
DEL 操作 FRR への no network <prefix> のみ、内部キャッシュなし

値依存挙動マトリクス

enum 型フィールド

該当無し (フィールドは boolean と freeform のみ)

boolean フィールド

フィールド true の効果 false の効果 evidence
backdoor FRR network <prefix> backdoor を生成。同一 prefix の IGP ルートを BGP より優先 キーワードなし sonic-bgp-global.yang; frrcfgd.py:3169

policy (leafref → ROUTE_MAP_SET.name)

効果 evidence
文字列 (route-map 名) network <prefix> route-map <name> を生成。注入する prefix の BGP 属性を加工 frrcfgd.py:3169
空/未設定 route-map 指定なし

複合条件

  • backdoor=truepolicy と組み合わせて network <prefix> route-map <name> backdoor となる
  • BGP_GLOBALS.network_import_check=true (FRR デフォルト) の場合、対象 prefix が RIB に存在しないと FRR が BGP UPDATE への注入を拒否する (CONFIG_DB への書き込みは成功するが実際には広告されない)

関連リファレンス

引用元

関連ページ

運用ヒント

典型値

  • key 形式: BGP_GLOBALS_AF_NETWORK|<vrf>|<afi_safi>|<prefix> (例 BGP_GLOBALS_AF_NETWORK|default|ipv4_unicast|10.1.0.0/16)。
  • policy: route-map 名 (任意)。backdoor: 通常 false

よくある誤設定

  • 対象 prefix が RIB に存在せず広告されない (network_import_check=true の既定で必須)。
  • BGP_GLOBALS_AF_AGGREGATE_ADDR と用途を混同して、集約の代わりに network で多数の prefix を列挙してしまう。

確認コマンド

sonic-db-cli CONFIG_DB keys 'BGP_GLOBALS_AF_NETWORK|*'
vtysh -c "show running-config bgpd" | grep "^ network"
vtysh -c "show ip bgp"