COMMUNITY_SET テーブル¶
概要¶
BGP コミュニティ集合を CONFIG_DB に登録するテーブル1。sonic-routing-policy-sets.yang の COMMUNITY_SET コンテナで定義され、ROUTE_MAP の match 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 構造¶
フィールド¶
| フィールド | 型 | 説明 |
|---|---|---|
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_memberはordered-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 |
マッチしたルートを拒否。 |
購読者¶
関連 CONFIG_DB / YANG / CLI¶
- 関連 CONFIG_DB:
EXTENDED_COMMUNITY_SET、AS_PATH_SET、PREFIX_SET、ROUTE_MAP - 関連 YANG:
sonic-routing-policy-sets - 関連 CLI: なし(
config_db.json投入)
関連リファレンス¶
- YANG:
sonic-routing-policy-sets
引用元¶
運用ヒント¶
典型値¶
- key 形式:
COMMUNITY_SET|<name>。 set_type:standard/expanded。match_action:any/all。community_member: CSV。
よくある誤設定¶
expandedで正規表現を書いたのにstandard指定のままで全件 reject される。