コンテンツにスキップ

RADIUS テーブル

概要

RADIUS クライアントのグローバル設定を保持するシングルトンテーブル1hostcfgdAAA ハンドラが読み、PAM (/etc/pam.d/common-auth) と NSS、/etc/pam_radius_auth.conf を生成する。サーバ固有の設定は RADIUS_SERVER 側にある。

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

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

凡例

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

key 構造

RADIUS|global

固定キー global のみのシングルトン container (RADIUS.global)。

フィールド

フィールド デフォルト 説明
passkey string (1..65 chars、SPACE/#/, 不可) なし 既定の共有秘密鍵 (RADIUS shared secret)
auth_type enum pap/chap/mschapv2 pap 既定の認証プロトコル
src_ip inet:ip-address なし RADIUS パケット送信元アドレス
nas_ip inet:ip-address なし NAS-IP-Address / NAS-IPv6-Address 属性に乗せる値
statistics boolean なし サーバ統計収集の有効化
timeout uint16 (1..60 秒) 5 既定の応答待ちタイムアウト
retransmit uint8 (0..10) 3 既定の再送回数

制約

  • passkey は印字可能 ASCII から SPACE/#/, を除外 (pattern '[^ #,]*')
  • timeout 範囲外は RADIUS timeout must be 1..60 エラー
  • container 名 RADIUS / 内部 container 名 global

購読者

  • hostcfgd (sonic-host-servicesAAA ハンドラ): CONFIG_DB → PAM / nsswitch / pam_radius 設定の再生成
  • AAA.authentication.loginradius を含むとき、PAM 経由でログイン認証時に参照される

関連 CONFIG_DB / YANG / CLI

  • 関連 CONFIG_DB: RADIUS_SERVER (※サーバごとのエントリ、YANG: sonic-system-radius の同名 list), AAA
  • 関連 CLI: config radius { passkey | timeout | retransmit | authtype | nasip | sourceip | statistics }
  • 関連 YANG: sonic-system-radius

関連リファレンス

引用元

関連ページ

運用ヒント

典型値

  • key 形式: RADIUS|global / RADIUS_SERVER|<ip>
  • global: auth_type: paptimeout: 5retransmit: 3。server: priority, passkey, vrf

よくある誤設定

  • auth_type を chap にしているのに NAS 側で pap しか喋れず認証が通らない。

確認コマンド

sonic-db-cli CONFIG_DB keys 'RADIUS*'
show radius

値依存挙動マトリクス

auth_type 値別挙動

挙動
pap PAP 平文パスワード認証(デフォルト)。PAM に pap で展開。RADIUS_SERVER_AUTH_TYPE_DEFAULT = "pap"
chap CHAP チャレンジ認証。NAS 側も CHAP 対応が必要。
mschapv2 MS-CHAPv2 認証。Active Directory 連携で主に使用。

statistics 値別挙動

挙動
true / True / yes / 1 is_true() で True。AAA.authentication.loginradius が含まれる場合に統計サービス起動。
その他すべて False 扱い。統計サービス起動しない。

timeout 値別挙動

挙動
1..60 有効範囲。pam_radius_auth.conf に反映。デフォルト 5
0 または 61 以上 YANG range "1..60" 制約違反。ロード拒否。

retransmit 値別挙動

挙動
0..10 有効範囲。再送回数として pam_radius_auth.conf に反映。デフォルト 3
11 以上 YANG range "0..10" 制約違反。ロード拒否。

例外条件・特殊挙動

  • radius_global_update は key='global' のみ処理: RADIUS|global 以外の key は無視(サイレントスキップ)。2
  • データ空の場合は削除: radius_server_updatedata == {} の場合は対象サーバエントリを削除して設定ファイルを再生成する。2
  • src_intf 変更時の再設定: グローバルまたは per-server src_intf が参照するインタフェースの IP が変わると modify_conf_file() が再呼び出しされる。インタフェースが存在しない場合は pam_radius_auth.conf の src_ip 行が省略される。2
  • modify_conf_file 失敗は syslog のみ: テンプレート展開やサービス SIGHUP 送信に失敗しても例外はキャッチされ LOG_ERR / LOG_WARNING に記録されるだけ。設定ファイルとメモリ内 radius_servers とのずれが生じる可能性がある。2
  • statistics / skip_msg_auth のブール変換: is_true() で変換され True/true/yes/1 以外はすべて False 扱い。2

  1. src/sonic-yang-models/yang-models/sonic-system-radius.yang (container RADIUS / global、typedef auth_type_enumeration). https://github.com/sonic-net/sonic-buildimage/blob/9ea932ec2e18f35e58268ec2e4456b1d4afd65cd/src/sonic-yang-models/yang-models/sonic-system-radius.yang 

  2. hostcfgd 実装: sonic-host-services/scripts/hostcfgd. https://github.com/sonic-net/sonic-host-services/blob/master/scripts/hostcfgd