コンテンツにスキップ

COMMUNITY_SET テーブル

概要

BGP コミュニティ集合を CONFIG_DB に登録するテーブル1sonic-routing-policy-sets.yangCOMMUNITY_SET コンテナで定義され、ROUTE_MAPmatch community 等から参照される。EXTENDED_COMMUNITY_SET も同モジュール内で並行定義される(同フィールド構成)。

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

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

凡例

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

key 構造

COMMUNITY_SET|<name>
EXTENDED_COMMUNITY_SET|<name>

フィールド

フィールド 説明
name string コミュニティ名(key)
set_type enum STANDARD / EXPANDED コミュニティタイプ
match_action enum ANY / ALL マッチ判定(任意一致/全一致)
action enum permit / deny コミュニティリストの action
community_member leaf-list string (ordered-by user) コミュニティ値の列。順序維持

EXTENDED_COMMUNITY_SET_LIST は同フィールド構成の Extended Community 用テーブル。

制約

  • community_memberordered-by user。ユーザ指定順をそのまま FRR の community-list に展開する前提
  • set_type の選択により FRR 側で正規表現マッチ (EXPANDED) か数値マッチ (STANDARD) かが切り替わる

例外条件・特殊挙動

  • 必須フィールド欠如 → FRR 設定なし (暗黙スキップ): set_type / match_action / community_member のいずれかが欠如している場合、Jinja2 テンプレートがそのエントリを無視し FRR コマンドを生成しない。エラーログは出力されない。
  • match_action が all / any 以外 → FRR 設定なし: match_action が想定外の値の場合、テンプレートはどちらの分岐にも入らず bgp community-list が生成されない。
  • vtysh 実行失敗 → syslog LOG_ERR のみ (再試行なし): FRR bgpd への vtysh コマンド投入が失敗した場合、frrcfgd は syslog に LOG_ERR を出力するが再試行は行わない。FRR 側との設定乖離が生じる可能性がある。
  • 汎用例外 → catch + LOG_ERR + drop: ハンドラ内で Exception が発生した場合 LOG_ERR を出力して次のエントリへ進む。当該更新はドロップされる。

値依存挙動マトリクス

フィールド 挙動
set_type STANDARD FRR へ bgp community-list standard <name> permit <value> を生成。数値 community(AS:value 形式)および well-known community に対して完全一致でマッチ。
set_type EXPANDED FRR へ bgp community-list expanded <name> permit <pattern> を生成。正規表現マッチが可能(例: .*:100)。STANDARD と誤って指定した場合、正規表現が数値として解釈されすべてのルートが reject される。
match_action ANY community_member のいずれか 1 つにマッチするルートを対象(OR 条件)。
match_action ALL community_member すべてを同時に保持するルートのみを対象(AND 条件)。
match_action その他の値 Jinja2 テンプレートがどちらの分岐にも入らず FRR コマンドが生成されない(サイレント失敗)。
action permit マッチしたルートを許可。
action deny マッチしたルートを拒否。

購読者

  • frr-mgmt-framework: BGP コミュニティ・リストとして FRR (bgpd) に反映

関連 CONFIG_DB / YANG / CLI

関連リファレンス

  • YANG: sonic-routing-policy-sets

引用元

運用ヒント

典型値

  • key 形式: COMMUNITY_SET|<name>
  • set_type: standard / expandedmatch_action: any / allcommunity_member: CSV。

よくある誤設定

  • expanded で正規表現を書いたのに standard 指定のままで全件 reject される。

確認コマンド

sonic-db-cli CONFIG_DB keys 'COMMUNITY_SET|*'
vtysh -c 'show bgp community-list'