NTP テーブル (global)¶
概要¶
NTP クライアントのグローバル設定を保持するシングルトン的テーブル1。YANG 上は sonic-ntp.yang の container NTP 配下 container global として定義され、CONFIG_DB 上は NTP|global の単一エントリで現れる。サーバ単位の設定は別テーブル NTP_SERVER、鍵は NTP_KEY で管理される。
データフロー (自動生成)¶
flowchart LR
CDB[("CONFIG_DB<br/>NTP")]
DM["ntp-config"]
CDB --> DM
凡例
CONFIG_DB から SAI までの典型経路を docs/reference/config-db-orch-map.md から機械生成したミニ図。詳細・例外は本ページ本文と対応表を参照。
key 構造¶
唯一のエントリ。container 構造のため key 値は固定で global。
フィールド¶
| フィールド | 型 | 既定値 | 説明 |
|---|---|---|---|
src_intf |
leaf-list union(PORT.name / PORTCHANNEL.name / LOOPBACK_INTERFACE.name / MGMT_PORT.name / eth0) |
- | NTP の送信元インタフェース。複数指定可、ユーザ指定順を維持 |
vrf |
string mgmt / default |
- | NTP が動作する VRF。mgmt 指定時は MGMT_VRF_CONFIG/vrf_global/mgmtVrfEnabled = true の must 制約あり |
authentication |
stypes:admin_mode |
disabled |
NTP 認証 |
dhcp |
stypes:admin_mode |
enabled |
DHCP から配布された NTP サーバを使うか |
server_role |
stypes:admin_mode |
enabled |
NTP サーバ機能 (本機を NTP server として動作) |
admin_state |
stypes:admin_mode |
enabled |
NTP 機能全体の状態 |
制約¶
vrf = "mgmt"にはmust制約:MGMT_VRF_CONFIG.vrf_global.mgmtVrfEnabled = trueが必須vrfパターンはmgmt|defaultのみsrc_intfのeth0は management port を表す互換のため pattern として許容
購読者¶
ntp-configテンプレ /host-services(hostcfgd): chrony 設定生成 → systemd unit reload
関連 CONFIG_DB / YANG / CLI¶
- 関連 CONFIG_DB:
NTP_SERVER、NTP_KEY、MGMT_VRF_CONFIG - 関連 YANG:
sonic-ntp、sonic-mgmt_vrf - 関連 CLI:
config ntp系(CLI ページは未整備)
関連リファレンス¶
- YANG:
sonic-ntp/sonic-mgmt_vrf - CLI:
config ntp
引用元¶
関連 Topics¶
運用ヒント¶
典型値¶
- key 形式:
NTP|global。 vrf:defaultまたはmgmt。src_intf:eth0またはLoopback0。
よくある誤設定¶
- vrf=mgmt なのに src_intf を front-panel 側に向けて NTP パケットが out 抜けする。
確認コマンド¶
例外条件・特殊挙動¶
- vrf = "mgmt" かつ mgmtVrfEnabled が false → YANG must 制約違反: YANG
must "(current() != 'mgmt') or (/mvrf:sonic-mgmt_vrf/mvrf:MGMT_VRF_CONFIG/mvrf:vrf_global/mvrf:mgmtVrfEnabled = 'true')"/error-message "Must condition not satisfied. Try enable Management VRF."— MGMT_VRF_CONFIG を先に有効化しないとvrf = mgmtは拒否される。 - vrf は "mgmt" または "default" のみ許可:
pattern "mgmt|default"で制約。それ以外の VRF 名は YANG バリデーションで拒否される。 - src_intf が存在しないインターフェースを参照 → YANG leafref 違反:
src_intfは PORT / PORTCHANNEL / LOOPBACK_INTERFACE / MGMT_PORT への leafref または "eth0" パターンのみ許可。 - authentication のデフォルト = "disabled":
default disabled。省略時は NTP 認証なしで動作する。認証を有効化するには明示的にenabledを設定する必要がある。 - dhcp のデフォルト = "enabled":
default enabled。DHCP 配布の NTP サーバが優先して使用される。 - admin_state のデフォルト = "enabled":
default enabled。フィールドを省略してもエントリが存在する限り NTP クライアントは動作する。
値依存挙動マトリクス¶
| フィールド | 値 | 挙動 |
|---|---|---|
vrf |
default |
NTP パケットをデータプレーン default VRF 経由で送受信 |
vrf |
mgmt |
NTP パケットを mgmt VRF (eth0) 経由で送受信。mgmtVrfEnabled=true が YANG must で必要 |
vrf |
未設定 | VRF 指定なし。OS デフォルトルーティングに従う |
authentication |
disabled (default) |
NTP 認証なし。NTP_KEY が存在しても使用しない |
authentication |
enabled |
NTP 認証を有効化。NTP_SERVER.key と NTP_KEY で鍵検証 |
dhcp |
enabled (default) |
DHCP 配布の NTP サーバ情報を優先使用 |
dhcp |
disabled |
DHCP NTP を無視。NTP_SERVER テーブルの設定のみ使用 |
server_role |
enabled (default) |
本機を NTP server として他ホストに応答 |
server_role |
disabled |
NTP クライアント専用。問い合わせに応答しない |
admin_state |
enabled (default) |
NTP 機能有効 |
admin_state |
disabled |
NTP 機能無効化 |
全グローバル変更で systemctl restart chrony が実行される。enum: authentication/dhcp/server_role/admin_state = enabled/disabled。
-
YANG 定義:
sonic-ntp.yangのcontainer global. https://github.com/sonic-net/sonic-buildimage/blob/9ea932ec2e18f35e58268ec2e4456b1d4afd65cd/src/sonic-yang-models/yang-models/sonic-ntp.yang#L86-L165 ↩