コンテンツにスキップ

SNMP_AGENT_ADDRESS_CONFIG テーブル

概要

snmpd のリッスンアドレスと UDP ポートを CONFIG_DB に登録するテーブル1docker-snmp 起動スクリプトが CONFIG_DB を読み、snmpd.confagentaddress 行を生成する。複数エントリで複数アドレス / ポート / VRF を同時に bind できる。

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

flowchart LR
  CDB[("CONFIG_DB<br/>SNMP_AGENT_ADDRESS_CONFIG")]
  DM["snmp-config"]
  CDB --> DM

凡例

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

key 構造

SNMP_AGENT_ADDRESS_CONFIG|<agent_ip>|<port>|<vrf_name>

(agent_ip, port, vrf_name) の 3 要素複合キー。unique "agent_ip port" 制約で同一 (ip, port) の重複は禁止。

フィールド

フィールド 説明
agent_ip inet:ip-address SNMP エージェントの bind IP
port inet:port-number または空文字 (default 161 を意味する) bind UDP ポート
vrf_name enum: 空文字 / mgmt / Vrf<name> (Vrf[a-zA-Z0-9_-]+) bind VRF。空文字は default

制約

  • key の 3 要素のうち port/vrf_name は空文字パターン (pattern '') を許容しており、空文字は「未指定 = 既定 (161 / default VRF)」を意味する
  • unique "agent_ip port" により、同一の (ip, port) を異なる VRF に重複登録することはできない1

購読者

  • docker-snmpsnmpd テンプレ: CONFIG_DBagentaddress udp:<ip>:<port>[%vrf] 行を生成

関連 CONFIG_DB / YANG / CLI

  • 関連 CONFIG_DB: SNMP, SNMP_COMMUNITY, SNMP_USER
  • 関連 CLI: config snmp agentaddress { add | del } <ip> [-p <port>] [-v <vrf>]
  • 関連 YANG: sonic-snmp

関連リファレンス

引用元

関連ページ

運用ヒント

典型値

  • key 形式: SNMP_AGENT_ADDRESS_CONFIG|<ip>|<port>|<vrf>
  • port=161、vrf=mgmt でマネジメント面のみ listen。

よくある誤設定

  • vrf 指定を空にして default VRF で listen し続け、front-panel から SNMP が抜ける。

確認コマンド

sonic-db-cli CONFIG_DB keys 'SNMP_AGENT_ADDRESS_CONFIG|*'
show runningconfiguration snmp

値依存挙動マトリクス

port 値別挙動

挙動
空文字 "" YANG pattern '' 許容。snmpd.conf ではデフォルトポート 161 として処理される。
161 標準 SNMP ポート。
その他の port-number 非標準ポートで snmpd がリッスン。ファイアウォール設定の調整が必要。

vrf_name 値別挙動

挙動
空文字 "" default VRF(全インタフェース)でリッスン。
mgmt 管理 VRF でリッスン。snmpd.conf の agentaddress@mgmt が付与。
Vrf<name> 指定 VRF でリッスン。VRF が実際に存在しない場合は snmpd 起動後にリッスン失敗(CONFIG_DB レベルでは検知不可)。

エントリなしの場合

条件 挙動
テーブルにエントリが 1 件もない テンプレートが agentAddress udp:161 / agentAddress udp6:161 をデフォルト出力。

例外条件・特殊挙動

  • エントリが空の場合はデフォルトリッスンアドレス: SNMP_AGENT_ADDRESS_CONFIG にエントリが 1 件もない場合、snmpd.conf テンプレートは agentAddress udp:161 / agentAddress udp6:161 をデフォルトとして出力する。2
  • VRF が実際に存在しない場合: vrf フィールドを指定しても VRF が実際に存在しない場合、snmpd は起動後そのアドレスでのリッスンに失敗するが CONFIG_DB レベルでは検知されない。2
  • 設定変更の反映はコンテナ再起動時のみ: テーブル変更は docker-snmp コンテナの再起動 / snmpd プロセスリロードまで snmpd.conf に反映されない。2
  • key フォーマット: key は <ip>|<port>|<vrf> または <ip>|<port> 形式。区切りが正しくない場合はテンプレートレンダリングエラーになる。2

  1. src/sonic-yang-models/yang-models/sonic-snmp.yang (container SNMP_AGENT_ADDRESS_CONFIG / list SNMP_AGENT_ADDRESS_CONFIG_LIST、key と unique 制約). https://github.com/sonic-net/sonic-buildimage/blob/9ea932ec2e18f35e58268ec2e4456b1d4afd65cd/src/sonic-yang-models/yang-models/sonic-snmp.yang 

  2. snmpd.conf テンプレート: sonic-buildimage/dockers/docker-snmp/snmpd.conf.j2. https://github.com/sonic-net/sonic-buildimage/blob/master/dockers/docker-snmp/snmpd.conf.j2