コンテンツにスキップ

AS_PATH_SET テーブル

概要

BGP の AS path access-list を CONFIG_DB に持たせるテーブル1sonic-routing-policy-sets.yangAS_PATH_SET コンテナで定義され、ROUTE_MAPmatch as-path 等から参照される。

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

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

凡例

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

key 構造

AS_PATH_SET|<name>

フィールド

フィールド 説明
name string AS path access-list 名(key)
action enum permit / deny リストの action
as_path_set_member leaf-list string (ordered-by user) AS path 正規表現の集合。順序維持

制約

  • as_path_set_memberordered-by user。ユーザ指定順を維持する
  • メンバは正規表現文字列(FRR bgp as-path access-list の regex 構文)

購読者

  • frr-mgmt-framework: BGP AS path access-list として FRR (bgpd) に反映

関連 CONFIG_DB / YANG / CLI

例外条件・特殊挙動

条件 挙動
as_path_set_member が空リストまたは DEL 既存の bgp as-path access-list <name> を全削除してから再作成
args 不足(内部チェック) None を返し FRR push をスキップ
FRR コマンド実行失敗 syslog ERR & continue、再試行なし
存在しないセット名への DEL pop(name, None) で KeyError なし
as_path_set_member の正規表現値不正 frrcfgd 側では未検証、FRR 側がエラーを返す
更新操作 差分追加ではなく常に全置換(先に既存全削除)

値依存挙動マトリクス

action (enum)

FRR 生成コマンド 効果 evidence
permit bgp as-path access-list <name> permit <regex> AS path が regex に一致したプレフィックスを許可 bgpcfgd/managers_as_path.py:56; sonic-routing-policy-sets.yang:permit
deny bgp as-path access-list <name> deny <regex> AS path が regex に一致したプレフィックスを拒否 sonic-routing-policy-sets.yang:deny

フリーフォームフィールド

  • as_path_set_member (leaf-list string) — FRR AS path 正規表現文字列。ordered-by user で登録順が評価順になる。値自体は freeform (FRR 側が構文検証)
  • 更新時は差分ではなく全削除後に全再作成 (bgpcfgd/managers_as_path.py:65)

関連リファレンス

  • YANG: sonic-routing-policy-sets

引用元

運用ヒント

典型値

  • key 形式: AS_PATH_SET|<name> (例: AS_PATH_SET|UPSTREAM_FILTER)。
  • action: permit / deny
  • as_path_set_member: 正規表現文字列のリスト (例 ^65001_, _65000$)。

よくある誤設定

  • FRR 形式と Cisco/Quagga 形式の AS path regex を混在させて意図と異なるマッチになる。
  • as_path_set_member の順序が結果に影響することを忘れる (ordered-by user、上から評価)。

確認コマンド

sonic-db-cli CONFIG_DB keys 'AS_PATH_SET|*'
vtysh -c "show ip as-path-access-list"