TACPLUS_SERVER テーブル¶
概要¶
TACACS+ 認証サーバの一覧と global TACACS+ クライアント設定を保持する。最大 8 サーバ。hostcfgd が CONFIG_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 構造¶
<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:
AAA、LDAP_SERVER、RADIUS_SERVER - 関連 CLI:
config tacacs add/delete/passkey/timeout/authtype/default、show tacacs - 関連 YANG:
sonic-system-tacacs、sonic-system-aaa
関連リファレンス¶
- YANG:
sonic-system-tacacs - CLI:
config tacacs
引用元¶
関連ページ¶
関連 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()はpriorityをint()でソートする。priorityに整数として解釈できない文字列が入るとValueErrorが発生し設定ファイル生成が中断する。src_ip未設定時:tacplus_globalにsrc_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:49、timeout:5、auth_type:pap、vrf:mgmt。
よくある誤設定¶
- passkey を平文で複数台にバラつかせて一部サーバだけ 401 になる。