コンテンツにスキップ

NTP_SERVER テーブル

概要

上流 NTP サーバまたは pool を保持する1hostcfgdNtpHandler/etc/chrony/chrony.conf(または ntp.conf)を再生成し、サービスを再起動する。max-elements 10 でサーバ数上限がある。NTP_KEY で対称鍵を、NTP|global で client 全体設定を保持する。

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

flowchart LR
  CDB[("CONFIG_DB<br/>NTP_SERVER")]
  DM["ntp-config"]
  CDB --> DM

凡例

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

key 構造

NTP_SERVER|<server_address>

<server_address> は IP address または DNS hostname。

フィールド一覧

フィールド 必須 デフォルト 説明
server_address (key) inet:host - サーバアドレス
association_type enum server/pool - server server 単体 / pool 群
iburst on-off - on iburst aggressive polling
key leafref NTP_KEY.id - - 認証鍵 ID
resolve_as inet:host - - 名前解決された IP
admin_state admin_mode - enabled サーバの有効化
trusted yes-no - no 認証時にこのサーバのみで時刻同期する
version uint8 (3..4) - 4 NTP プロトコルバージョン

関連サブテーブル

  • NTP|global (container, single-instance):
    • src_intf (leaf-list): 送信元 IF(PORT / PORTCHANNEL / LOOPBACK / MGMT_PORT / eth0 の union)
    • vrf (mgmt/default): NTP を有効化する VRF。mgmt 指定には MGMT_VRF_CONFIG.mgmtVrfEnabled = true 必須 (must)
    • authentication (admin_mode、default disabled)
    • dhcp (admin_mode、default enabled)
    • server_role (admin_mode、default enabled)
    • admin_state (admin_mode、default enabled)
  • NTP_KEY|<id> (key: id, 1..65535):
    • trusted (yes-no, default no)
    • value (string 1..64, encrypted)
    • type (enum md5/sha1/sha256/sha384/sha512, default md5)

購読者

  • hostcfgd NtpHandler: chrony / ntp 設定の更新

関連 CONFIG_DB / YANG / CLI

  • 関連 CONFIG_DB: NTPNTP_KEYVRFMGMT_VRF_CONFIGPORTLOOPBACK_INTERFACEMGMT_PORT
  • 関連 CLI: config ntp add/del
  • 関連 YANG: sonic-ntp

関連リファレンス

引用元

関連 Topics

運用ヒント

典型値

  • key 形式: NTP_SERVER|<ip-or-hostname>
  • iburst: on(初期同期高速化)。
  • association_type: server

よくある誤設定

  • 1 つだけサーバ登録すると障害時に時刻が drift。3 つ以上推奨。

確認コマンド

sonic-db-cli CONFIG_DB keys 'NTP_SERVER|*'
show ntp
chronyc sources

例外条件・特殊挙動

  • NTP_SERVER エントリは最大 10 件 → YANG が制限: max-elements 10。11 件目以降は YANG バリデーションで拒否される。
  • server_address が不正形式 → YANG が拒否: type inet:host。ホスト名または IP アドレス (IPv4/IPv6) のみ許可。
  • version が 3-4 以外 → YANG が拒否 (デフォルト 4): range "3..4" / error-message "Failed NTP version" / default 4。NTPv1・v2 は明示的に禁止されている。
  • association_type のデフォルト = "server": default server。NTP プール (pool) を使用する場合は明示的に association_type = pool を設定する必要がある。
  • iburst のデフォルト = "on": default on。起動直後に iburst パケットを送信して同期を高速化。無効化は明示的に iburst = off を設定する。
  • key が存在しない ID を参照 → YANG leafref 違反: leaf keyleafrefNTP_KEY_LIST/id を参照。存在しない key ID を指定すると YANG バリデーションで拒否される。
  • admin_state のデフォルト = "enabled": default enabled。フィールドを省略してもサーバは有効として ntpd/chrony に渡される。
  • trusted のデフォルト = "no": default no。NTP 認証有効時にこのサーバのみを信頼する場合は trusted = yes を設定する。

値依存挙動マトリクス

フィールド 挙動
association_type server (default) chrony.conf に server <addr> として追記
association_type pool chrony.conf に pool <addr> として追記。DNS ラウンドロビンで複数 IP を使用
iburst on (default) 起動直後に iburst パケットを送信して高速同期
iburst off 通常ポーリング間隔で同期開始
admin_state enabled (default) サーバを chrony.conf に含める
admin_state disabled サーバを chrony.conf から除外
trusted no (default) chrony で通常の優先度
trusted yes chrony の prefer オプション相当。当該サーバを優先同期先に
version 4 (default) NTPv4 を使用
version 3 NTPv3 を使用。古い NTP サーバとの互換向け
key NTP_KEY.id 参照 chrony.conf に key <id> オプションを付与。NTP.authentication=enabled と組み合わせて認証
エントリ数 11件目以上 YANG max-elements=10 でバリデーション拒否

enum: association_type=server/pool、iburst=on/off、admin_state=enabled/disabled、trusted=yes/no。変更は systemctl restart chrony をトリガー。