NTP_KEY テーブル¶
概要¶
NTP 認証 (symmetric key) で使用する鍵を CONFIG_DB に蓄積するテーブル1。ntp-config.service (/usr/share/sonic/templates/ntp.keys.j2 テンプレ展開) が CONFIG_DB を読み出し、chrony / ntpd の keyfile (/etc/chrony/chrony.keys 等) を生成する。NTP_SERVER_LIST.key から leafref で参照される。
データフロー (自動生成)¶
flowchart LR
CDB[("CONFIG_DB<br/>NTP_KEY")]
DM["ntp-config"]
CDB --> DM
凡例
CONFIG_DB から SAI までの典型経路を docs/reference/config-db-orch-map.md から機械生成したミニ図。詳細・例外は本ページ本文と対応表を参照。
key 構造¶
<id> は 1..65535 の鍵 ID (key-id typedef = uint16)。
フィールド¶
| フィールド | 型 | デフォルト | 説明 |
|---|---|---|---|
id |
uint16 (1..65535) | - | 鍵 ID (key) |
type |
enum md5/sha1/sha256/sha384/sha512 |
md5 |
鍵の暗号アルゴリズム (key-type typedef) |
value |
string (1..64 chars) | なし | 暗号化済み認証キー本体 |
trusted |
yes/no (stypes:yes-no) |
no |
この鍵を信頼マーク (trustedkey 指定) するか |
制約¶
- container 名は
NTP_KEY、list 名はNTP_KEY_LIST(revision 2025-07-21 でNTP_KEY_LISTに修正された)1 NTP_SERVER_LIST.keyが/ntp:sonic-ntp/ntp:NTP_KEY/ntp:NTP_KEY_LIST/ntp:idを leafref 参照するNTP.global.authentication = enabledのときに鍵が実際に検証で使われる
購読者¶
ntp-config.service(host): CONFIG_DB →/etc/chrony/chrony.keys(またはntp.keys)- chrony / ntpd: keyfile から鍵を読み込み
関連 CONFIG_DB / YANG / CLI¶
- 関連 CONFIG_DB:
NTP,NTP_SERVER - 関連 CLI:
config ntp add key <id> --type ... --value .../config ntp authentication enable - 関連 YANG:
sonic-ntp
関連リファレンス¶
- YANG:
sonic-ntp - CLI:
config ntp
引用元¶
関連ページ¶
運用ヒント¶
典型値¶
- key 形式:
NTP_KEY|<keyid>。 type:SHA1/MD5、value: 共有鍵、trusted:true。
よくある誤設定¶
- trusted=false のキーで authenticate しようとして時刻同期が失敗する。
確認コマンド¶
例外条件・特殊挙動¶
- key ID が 1-65535 の範囲外 → YANG が拒否: typedef
key-idのrange 1..65535/error-message "Failed NTP key ID"。ID 0 は YANG バリデーションで拒否される。 - key type が不正値 → YANG が拒否 (デフォルト md5):
enum { md5; sha1; sha256; sha384; sha512; }のみ許可。default md5。省略時は MD5 が使用される。セキュリティ要件に応じて SHA256 以上への変更を推奨。 - value が空または 64 文字超 → YANG が拒否:
length 1..64制約。空文字列や 65 文字以上のキー値は YANG バリデーションで拒否される。 - trusted のデフォルト = "no":
default no。NTP 認証モード有効時に当該キーが信頼済みとして使用されるには明示的にtrusted = yesが必要。 - NTP_SERVER から参照中の NTP_KEY は削除不可:
NTP_SERVER_LIST/keyはleafrefでNTP_KEY_LIST/idを参照。参照中のキーを削除しようとすると YANG バリデーションで整合性エラーが発生する。
値依存挙動マトリクス¶
| フィールド | 値 | 挙動 |
|---|---|---|
type |
md5 (default) |
MD5 ハッシュで NTP パケット認証。セキュリティ強度低 (RFC 8573 で非推奨) |
type |
sha1 |
SHA-1 ハッシュで認証 |
type |
sha256 |
SHA-256 ハッシュで認証 (推奨最低ライン) |
type |
sha384/sha512 |
高強度 SHA 認証 |
trusted |
no (default) |
chrony の trustedkey 指定なし。認証有効時でも当該鍵での同期は行わない |
trusted |
yes |
chrony の trustedkey に追加。当該鍵のサーバのみで時刻同期を許可 |
value |
1..64字 | chrony keyfile に鍵本体として書き込み |
id |
1..65535 | chrony keyfile の鍵 ID として使用。NTP_SERVER.key からの leafref 参照元 |
enum: type=md5/sha1/sha256/sha384/sha512、trusted=yes/no。変更は systemctl restart chrony をトリガー。
-
src/sonic-yang-models/yang-models/sonic-ntp.yang(containerNTP_KEY/ listNTP_KEY_LIST、typedefkey-id/key-type、revision 2025-07-21 で list 名を修正). https://github.com/sonic-net/sonic-buildimage/blob/9ea932ec2e18f35e58268ec2e4456b1d4afd65cd/src/sonic-yang-models/yang-models/sonic-ntp.yang ↩↩