VMWare ESXi 6上に構築され、ローカルネットワークへ組み込み済のCentOS 8サーバをインターネットへ接続します。
CentOS 8では、NetworkManagerサービスが有効であることが前提となります。

ホスト名を設定する

必要な情報を整理します。この情報は、環境によって異なります。

ホスト名の設定ファイルを編集します。

# vi /etc/hostname
下記の内容とする。
cent81

設定を反映します。

# hostname -F /etc/hostname

設定が反映されたことを確認します(2通り紹介)。

# hostname
cent81
# uname -n
cent81

DNSを設定する

必要な情報を整理します。この情報は、環境によって異なります。

DNSの設定ファイルを編集します。

# vi /etc/resolv.conf
下記の内容とします。
nameserver 8.8.8.8
nameserver 8.8.4.4

設定は、自動的に反映されます。
google.comに疎通があることを確認します。

# ping -c 3 google.com
PING google.com (216.58.197.238) 56(84) bytes of data.
64 bytes from nrt13s49-in-f238.1e100.net (216.58.197.238): icmp_seq=1 ttl=55 time=104 ms
64 bytes from nrt13s49-in-f238.1e100.net (216.58.197.238): icmp_seq=2 ttl=55 time=110 ms
64 bytes from nrt13s49-in-f238.1e100.net (216.58.197.238): icmp_seq=3 ttl=55 time=127 ms

--- google.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 5ms
rtt min/avg/max/mdev = 103.522/113.564/127.081/9.934 ms
#

NTPを設定する

必要な情報を整理します。この情報は、環境によって異なります。

設定ファイルをバックアップする。

# cp -p /etc/chrony.conf /etc/chrony.conf.org
# ls /etc/chrony.conf*
/etc/chrony.conf  /etc/chrony.conf.org

設定ファイルを編集する。

# vi /etc/chrony.conf

下記の内容とします(詳しい説明を後述)。

pool ntp.jst.mfeed.ad.jp iburst
pool ntp.nict.jp iburst

driftfile /var/lib/chrony/drift

makestep 1.0 3
leapsecmode slew

allow 192.168.10.240/32

logdir /var/log/chrony

《chrony.conf設定値の意味》

パラメータ 意味
pool ntp.jst.mfeed.ad.jp iburst</ br>pool ntp.nict.jp iburst 指定のサーバと時刻を同期する。
driftfile /var/lib/chrony/drift 値はOSデフォルト値。ハードウェアクロックのズレ方を記録するファイル。NTPサーバに通信できない場合でも、このファイルを元にして時刻を補正する。
makestep 1.0 3 値はOSデフォルト値。<秒数><スペース><回数>と値を指定する。今回の設定では、初回3回の時刻調整で1秒以上ズレている場合は、一気に(stepモードで)時刻調整する。
leapsecmode slew うるう秒をslewモードで調時する。
allow 192.168.10.240/32 指定のネットワークに存在するサーバやNW機器の時刻調整を許可する。値は、自サーバ(192.168.10.240)だけを許可する意図がある。
logdir /var/log/chrony 値はOSデフォルト値。時刻調整機能(=chronyd)のログ出力先ファイルを指定する。

時刻調整機能(=chronyd)を有効化します。

# systemctl restart chronyd
# systemctl status chronyd
● chronyd.service - NTP client/server
・・・Active: active (running)・・・
・・・

時刻同期用サーバ(=時刻同期のソース)の状況を確認します(出力の説明を後述)。

# chronyc sources
210 Number of sources = 7
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^+ ntp1.jst.mfeed.ad.jp          2   6    17    30  -3087us[-5983us] +/-   92ms
^+ ntp2.jst.mfeed.ad.jp          2   6    17    31  +6909us[+4013us] +/-   99ms
^+ ntp3.jst.mfeed.ad.jp          2   6    17    30  -1698us[-4594us] +/-  130ms
^+ ntp-b3.nict.go.jp             1   6    17    31   -654us[-3550us] +/-   48ms
^* ntp-a3.nict.go.jp             1   6    17    30  +3530us[ +634us] +/-   53ms
^+ 61.205.120.130                1   6    17    30  +1686us[-1210us] +/-   55ms
^+ ntp-a2.nict.go.jp             1   6    17    32  +2496us[ -400us] +/-   52ms

《chronyc sourcesの出力の読み方》

説明
M モード。^はサーバ、=はピア、#はローカル接続の意味。
S 状態。*は現在同期しているソース。+はNTPの結合アルゴリズムに使うソース。-はNTPの結合アルゴリズムに使わないソース。?は接続が無い、または疎通試験結果NGのソース。xは使えない(=他の大半のソースと比して時刻がズレている)ソース。~は時刻調整に使うには変動が大きすぎるソース。
Name/IP address ソースの名前もしくはIPアドレス。
Stratum NTP階層構造の位置。原子時計、GPS等の正確な時刻源を0としたときの階層の深さで、一般にStratumの値が小さいほど信頼できるソースとなる。
Poll ソースと時刻同期する間隔を2を底とする対数で表示。6であれば、2の6乗=64秒毎に同期する意味。
Reach chronydは最近8回の通信全体について、8bitのフラグで成否を管理しており、その結果を8進数で表示。全部成功であれば(2進数)11111111=(8進数)377で、377となる。
LastRx ソースから最後のサンプルを受信したのがいつか表示。単位無しは[秒]の意味。
Last sample ±測定値 [測定後にslewで調時した値] +/- 測定誤差と読む。プラスは、ローカルの時計がソースよりも進んでいる意味。

インターネットへアクセスする

コマンドラインツール(curl)で、yahooへのアクセスを試みます。

# curl -v -k -L http://yahoo.co.jp
* Rebuilt URL to: http://yahoo.co.jp/
*   Trying 183.79.135.206...
* TCP_NODELAY set
・・・# 

おまけ~chronyで、強制時刻同期する~

時刻の自動調整を待たず、手動で強制的に時刻調整する方法を紹介します。

# chronyc makestep
200 OK