RADIUS テーブル¶
概要¶
RADIUS クライアントのグローバル設定を保持するシングルトンテーブル1。hostcfgd の AAA ハンドラが読み、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 構造¶
固定キー 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-servicesの AAA ハンドラ): CONFIG_DB → PAM / nsswitch / pam_radius 設定の再生成AAA.authentication.loginがradiusを含むとき、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
関連リファレンス¶
- YANG:
sonic-system-radius - CLI:
config radius
引用元¶
関連ページ¶
運用ヒント¶
典型値¶
- key 形式:
RADIUS|global / RADIUS_SERVER|<ip>。 - global:
auth_type:pap、timeout:5、retransmit:3。server:priority,passkey,vrf。
よくある誤設定¶
- auth_type を
chapにしているのに NAS 側で pap しか喋れず認証が通らない。
確認コマンド¶
値依存挙動マトリクス¶
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.login に radius が含まれる場合に統計サービス起動。 |
| その他すべて | 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_updateでdata == {}の場合は対象サーバエントリを削除して設定ファイルを再生成する。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
-
src/sonic-yang-models/yang-models/sonic-system-radius.yang(containerRADIUS/global、typedefauth_type_enumeration). https://github.com/sonic-net/sonic-buildimage/blob/9ea932ec2e18f35e58268ec2e4456b1d4afd65cd/src/sonic-yang-models/yang-models/sonic-system-radius.yang ↩ -
hostcfgd 実装:
sonic-host-services/scripts/hostcfgd. https://github.com/sonic-net/sonic-host-services/blob/master/scripts/hostcfgd ↩↩↩↩↩