コンテンツにスキップ

TACPLUS_SERVER テーブル

概要

TACACS+ 認証サーバの一覧と global TACACS+ クライアント設定を保持する。最大 8 サーバ。hostcfgdCONFIG_DB を購読して /etc/pam.d/*, /etc/nss-tacplus.conf, /etc/tacplus_nss.conf を生成する1

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

flowchart LR
  CDB[("CONFIG_DB<br/>TACPLUS_SERVER")]
  DM["hostcfgd"]
  CDB --> DM

凡例

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

key 構造

TACPLUS_SERVER|<ipaddress>
TACPLUS|global

<ipaddress>inet:host (FQDN または IPv4/IPv6)。

TACPLUS_SERVER

フィールド 既定 説明
priority uint8 (1..64) 1 サーバ選択優先度 (大きいほど先)
tcp_port inet:port-number 49 TACACS+ サーバ TCP ポート
timeout uint16 (1..60) 5 per-server 応答 timeout [秒]
auth_type enum pap/chap/mschap/login pap per-server 認証プロトコル
key_encrypt boolean false passkey 暗号化保存フラグ
passkey string (1..256, no SPACE/#/,) - per-server 共有秘密
vrf string mgmt/default - サーバ到達 VRF

TACPLUS|global

フィールド 既定 説明
auth_type enum (同上) pap デフォルト認証プロトコル
timeout uint16 (1..60) 5 デフォルト timeout
key_encrypt boolean false passkey 暗号化保存フラグ
passkey string (1..256) - デフォルト共有秘密
src_intf union leafref PORT/PORTCHANNEL/LOOPBACK_INTERFACE/MGMT_PORT または Vlan pattern - TACACS+ パケット送信元 interface

購読者

  • hostcfgd: CONFIG_DB → PAM / NSS 設定の再生成
  • 関連: pam_tacplus, libnss_tacplus

関連 CONFIG_DB / YANG / CLI

  • 関連 CONFIG_DB: AAALDAP_SERVERRADIUS_SERVER
  • 関連 CLI: config tacacs add/delete/passkey/timeout/authtype/defaultshow tacacs
  • 関連 YANG: sonic-system-tacacssonic-system-aaa

関連リファレンス

引用元

関連ページ

関連 Topics

値依存挙動マトリクス

auth_type (auth_type_enumeration): pap (default) / chap / mschap / login

vrf (TACPLUS_SERVER): mgmt / default

key_encrypt (boolean): false (default) / true

フィールド 挙動
auth_type pap PAM pam_tacplus でパスワードを平文送信。最も広くサポートされる
auth_type chap CHAP でネゴシエーション。TACACS+ サーバ側も CHAP 対応が必要
auth_type mschap MS-CHAP でネゴシエーション
auth_type login ASCII ログインシーケンスで認証
vrf mgmt pam_tacplus が管理 VRF デバイスに bind して接続
vrf default データプレーン VRF を使用
key_encrypt true passkey は暗号化保存。hostcfgd が復号してテンプレートに展開
key_encrypt false passkey を平文保存(CONFIG_DB に平文で格納)
passkey (per-server) 設定あり per-server の値が TACPLUS|global.passkey より優先
passkey (per-server) 未設定 TACPLUS|global.passkey にフォールバック
priority 大きい値 hostcfgd がソートして PAM 設定に先に記載(高優先度)

例外条件・特殊挙動

  • DEL 操作でエントリ削除: tacacs_server_update()data == {} のとき内部辞書からエントリを削除し modify_conf_file() で設定ファイルを再生成する。PAM / NSS 設定ファイルへの反映は同期的に行われる。
  • priority の型変換失敗: modify_conf_file()priorityint() でソートする。priority に整数として解釈できない文字列が入ると ValueError が発生し設定ファイル生成が中断する。
  • src_ip 未設定時: tacplus_globalsrc_ip がない場合は送信元 IP なしでテンプレートを生成する(デバイス側のルーティングに依存)。
  • audisp-tacplus SIGHUP 失敗: accounting 連携の PID が見つからないか os.kill() が失敗した場合、"Send SIGHUP to audisp-tacplus failed with exception: {}" を LOG_WARNING して続行する(認証設定自体は更新される)。
  • テンプレート展開失敗: Jinja2 テンプレートや設定ファイル書き込みに失敗すると "Failed generate_file_from_template error={e}" を LOG_ERR し、設定は反映されない。

運用ヒント

典型値

  • key 形式: TACPLUS_SERVER|<ip>
  • priority: 1〜、tcp_port: 49timeout: 5auth_type: papvrf: mgmt

よくある誤設定

  • passkey を平文で複数台にバラつかせて一部サーバだけ 401 になる。

確認コマンド

sonic-db-cli CONFIG_DB keys 'TACPLUS_SERVER|*'
show tacacs