BGP_NEIGHBOR_AF テーブル¶
概要¶
BGP_NEIGHBOR の アドレスファミリ別 設定を持つテーブル1。sonic-bgp-neighbor.yang の BGP_NEIGHBOR_AF コンテナに定義され、sonic-bgp-common.yang の grouping sonic-bgp-cmn-af を uses。frr-mgmt-framework 経路で FRR (bgpd) の address-family ... / neighbor <addr> ... 配下コマンドに変換される。
データフロー (自動生成)¶
flowchart LR
CDB[("CONFIG_DB<br/>BGP_NEIGHBOR_AF")]
DM["frrcfgd"]
CDB --> DM
凡例
CONFIG_DB から SAI までの典型経路を docs/reference/config-db-orch-map.md から機械生成したミニ図。詳細・例外は本ページ本文と対応表を参照。
key 構造¶
<vrf_name>:BGP_GLOBALS_LIST.vrf_nameへの leafref<neighbor>: 同一 vrf のBGP_NEIGHBOR_LIST.neighborへの leafref(IP アドレスまたはインタフェース名)<afi_safi>:ipv4_unicast/ipv6_unicast/l2vpn_evpn等
フィールド (sonic-bgp-cmn-af より継承)¶
BGP_PEER_GROUP_AF と同じ AF 共通 leaf 群を uses する:
admin_status(activate)send_default_route、default_rmapmax_prefix_limit、max_prefix_warning_only、max_prefix_warning_threshold、max_prefix_restart_intervalroute_map_in/route_map_out(leaf-list)soft_reconfiguration_in、unsuppress_map_namerrclient、weight、as_override、send_community、tx_add_pathsunchanged_as_path/unchanged_med/unchanged_nexthopfilter_list_in/filter_list_outnhself、nexthop_self_forceprefix_list_in/prefix_list_outremove_private_as_enabled/replace_private_as/remove_private_as_allallow_as_in/allow_as_count/allow_as_origincap_orf、route_server_client
完全な型・既定値は sonic-bgp-common.yang の grouping sonic-bgp-cmn-af を参照(docs/reference/config-db/bgp-peer-group-af.md のフィールド表が同一)。
制約¶
neighborの leafref は[vrf_name=current()/../vrf_name]で同一 VRF の隣接に限定されるvrf_nameはBGP_GLOBALSに存在することが前提
購読者¶
frr-mgmt-framework: AF 別設定を bgpd へ反映bgpcfgd(テンプレベース):BGP_NEIGHBOR単位処理が中心で AF 別はテンプレで間接反映
関連 CONFIG_DB / YANG / CLI¶
- 関連 CONFIG_DB:
BGP_NEIGHBOR、BGP_PEER_GROUP_AF、PREFIX_LIST、ROUTE_MAP - 関連 YANG:
sonic-bgp-neighbor、sonic-bgp-common - 関連 CLI:
config bgp
関連リファレンス¶
- YANG:
sonic-bgp-neighbor/sonic-bgp-common - CLI:
config bgp
引用元¶
運用ヒント¶
典型値¶
- key 形式:
BGP_NEIGHBOR_AF|<vrf>|<peer>|<af>。 admin_status:up、send_community:both、soft_reconfiguration_in:true(debug 用途)。
よくある誤設定¶
activateを入れ忘れて該当 AF で経路交換が始まらない。
確認コマンド¶
値依存挙動マトリクス¶
send_community (bgp_community_type)¶
| 値 | FRR コマンド | 備考 |
|---|---|---|
standard |
neighbor <X> send-community standard |
hdl_send_com: まず all 削除、次に指定値を追加 |
extended |
neighbor <X> send-community extended |
同上 |
both |
neighbor <X> send-community both |
同上 |
large |
neighbor <X> send-community large |
同上 |
all |
neighbor <X> send-community all |
同上 |
none |
コマンド追加なし (send-community 無効) | frrcfgd.py:955 — none 判定で追加をスキップ |
tx_add_paths (bgp_tx_add_paths_type)¶
| 値 | FRR コマンド |
|---|---|
tx_all_paths |
neighbor <X> addpath-tx-all-paths |
tx_best_path_per_as |
neighbor <X> addpath-tx-bestpath-per-AS |
cap_orf (sonic_bgp_orf)¶
| 値 | FRR コマンド | 備考 |
|---|---|---|
send |
neighbor <X> capability orf prefix-list send |
削除時は both を no で除去 |
receive |
neighbor <X> capability orf prefix-list receive |
同上 |
both |
neighbor <X> capability orf prefix-list both |
同上 |
afi_safi (key、AF ブロック選択)¶
| 値 | FRR address-family |
|---|---|
ipv4_unicast |
address-family ipv4 unicast |
ipv6_unicast |
address-family ipv6 unicast |
l2vpn_evpn |
address-family l2vpn evpn |
例外条件・特殊挙動¶
| 条件 | 挙動 | ソース |
|---|---|---|
key の \| パース失敗 (不正フォーマット) |
ValueError を catch → continue (skip) |
frrcfgd.py L2665, L2246 |
local_asn が未設定の VRF |
ignore table {} update because local_asn for VRF {} was not configured を LOG_DEBUG → skip |
frrcfgd.py L2660 |
peer_group_name が未存在の peer-group を参照 |
invalid peer-group %s was referenced を LOG_ERR → continue |
frrcfgd.py L2828 |
send_default_route=true だが default_rmap が同時に未設定 |
default-originate のみ発行、route-map は付与されない (key_map の複合条件) |
frrcfgd.py nbr_af_key_map |
max_prefix_limit 欠如で他の max_prefix フィールドのみ設定 |
++ / + プレフィックスルールにより max_prefix_limit 依存フィールドは無視 |
frrcfgd.py nbr_af_key_map |
-
YANG 定義:
sonic-bgp-neighbor.yangのBGP_NEIGHBOR_AFリスト. https://github.com/sonic-net/sonic-buildimage/blob/9ea932ec2e18f35e58268ec2e4456b1d4afd65cd/src/sonic-yang-models/yang-models/sonic-bgp-neighbor.yang#L112-L131; AF 共通 leaf 群はsonic-bgp-common.yangのgrouping sonic-bgp-cmn-af↩