コンテンツにスキップ

BGP_NEIGHBOR_AF テーブル

概要

BGP_NEIGHBORアドレスファミリ別 設定を持つテーブル1sonic-bgp-neighbor.yangBGP_NEIGHBOR_AF コンテナに定義され、sonic-bgp-common.yanggrouping sonic-bgp-cmn-afusesfrr-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 構造

BGP_NEIGHBOR_AF|<vrf_name>|<neighbor>|<afi_safi>
  • <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_routedefault_rmap
  • max_prefix_limitmax_prefix_warning_onlymax_prefix_warning_thresholdmax_prefix_restart_interval
  • route_map_in / route_map_out (leaf-list)
  • soft_reconfiguration_inunsuppress_map_name
  • rrclientweightas_overridesend_communitytx_add_paths
  • unchanged_as_path / unchanged_med / unchanged_nexthop
  • filter_list_in / filter_list_out
  • nhselfnexthop_self_force
  • prefix_list_in / prefix_list_out
  • remove_private_as_enabled / replace_private_as / remove_private_as_all
  • allow_as_in / allow_as_count / allow_as_origin
  • cap_orfroute_server_client

完全な型・既定値は sonic-bgp-common.yanggrouping sonic-bgp-cmn-af を参照(docs/reference/config-db/bgp-peer-group-af.md のフィールド表が同一)。

制約

  • neighbor の leafref は [vrf_name=current()/../vrf_name] で同一 VRF の隣接に限定される
  • vrf_nameBGP_GLOBALS に存在することが前提

購読者

  • frr-mgmt-framework: AF 別設定を bgpd へ反映
  • bgpcfgd (テンプレベース): BGP_NEIGHBOR 単位処理が中心で AF 別はテンプレで間接反映

関連 CONFIG_DB / YANG / CLI

関連リファレンス

引用元

運用ヒント

典型値

  • key 形式: BGP_NEIGHBOR_AF|<vrf>|<peer>|<af>
  • admin_status: upsend_community: bothsoft_reconfiguration_in: true(debug 用途)。

よくある誤設定

  • activate を入れ忘れて該当 AF で経路交換が始まらない。

確認コマンド

sonic-db-cli CONFIG_DB keys 'BGP_NEIGHBOR_AF|*'
vtysh -c 'show bgp neighbor <ip>'

値依存挙動マトリクス

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:955none 判定で追加をスキップ

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

  1. YANG 定義: sonic-bgp-neighbor.yangBGP_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.yanggrouping sonic-bgp-cmn-af