コンテンツにスキップ

NTP_KEY テーブル

概要

NTP 認証 (symmetric key) で使用する鍵を CONFIG_DB に蓄積するテーブル1ntp-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 構造

NTP_KEY|<id>

<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

関連リファレンス

引用元

関連ページ

運用ヒント

典型値

  • key 形式: NTP_KEY|<keyid>
  • type: SHA1 / MD5value: 共有鍵、trusted: true

よくある誤設定

  • trusted=false のキーで authenticate しようとして時刻同期が失敗する。

確認コマンド

sonic-db-cli CONFIG_DB keys 'NTP_KEY|*'
show ntp

例外条件・特殊挙動

  • key ID が 1-65535 の範囲外 → YANG が拒否: typedef key-idrange 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/keyleafrefNTP_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 をトリガー。


  1. src/sonic-yang-models/yang-models/sonic-ntp.yang (container NTP_KEY / list NTP_KEY_LIST、typedef key-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