インスタンスに対するOracle Cloud Infrastructure NTPサービスの構成

Oracle Cloud Infrastructureには、完全に管理されたセキュアで可用性の高いNTPサービスが用意されており、これを使用すると、仮想クラウド・ネットワーク(VCN)内からコンピュート・インスタンスおよびデータベース・インスタンスの日時を設定できます。Oracle Cloud Infrastructure NTPサービスは、すべての可用性ドメインで冗長性があるStratum 1デバイスを使用します。Stratum 2デバイスは、すべてのホストが同期されている専用のStratum 1デバイスに同期されます。サービスはすべてのリージョンで使用可能です。

このトピックでは、このNTPサービスを使用するよう、コンピュート・インスタンスを構成する方法について説明します。

インスタンスがパブリックNTPサービスを使用するように構成するか、FastConnectを使用してオンプレミスNTPサービスを活用するかを選択することもできます。

ノート

Oracle Autonomous Linux 8.x、Oracle Autonomous Linux 7.x、Oracle Linux 9.x、Oracle Linux 8.x、Oracle Linux 7.x、Oracle Linux Cloud Developer 8.x、2018年2月より後にリリースされたCentOS 7.xおよびCentOS Stream 8のプラットフォーム・イメージには、デフォルトでChronyサービスが含まれています。これらのインスタンスに対してOracle Cloud Infrastructure NTPサービスを構成する必要はありません。
Oracle Linux 6.x

次のステップを使用して、Oracle Cloud Infrastructure NTPサービスを使用するようにOracle Linux 6.xインスタンスを構成します。

  1. 次のコマンドを使用して、Oracle Cloud Infrastructure NTP サービスへの接続を許可するようにIPtablesを構成します:

    sudo iptables -I BareMetalInstanceServices 8 -d 169.254.169.254/32 -p udp -m udp --dport 123 -m comment --comment "Allow access to OCI local NTP service" -j ACCEPT
    sudo service iptables save
  2. 次のコマンドを使用してNTPサービスをインストールします:

    sudo yum install ntp
  3. 次のコマンドを使用して、インスタンスの日付を設定します:

    sudo ntpdate 169.254.169.254
  4. Oracle Cloud Infrastructure NTPサービスをiburstで使用するようにインスタンスを構成します。構成するには、/etc/ntp.confファイルを次のように変更します:

    1. serverセクションで、RHELサーバーを指定する行をコメント・アウトします:

      #server 0.rhel.pool.ntp.org iburst
      #server 1.rhel.pool.ntp.org iburst
      #server 2.rhel.pool.ntp.org iburst
      #server 3.rhel.pool.ntp.org iburst
    2. Oracle Cloud Infrastructure NTPサーバーのエントリを追加します:

      server 169.254.169.254 iburst

    変更したserverセクションの内容は次のようになります:

    # Please consider joining the pool (http://www.pool.ntp.org/join.html).
    #server 0.rhel.pool.ntp.org iburst
    #server 1.rhel.pool.ntp.org iburst
    #server 2.rhel.pool.ntp.org iburst
    #server 3.rhel.pool.ntp.org iburst
    server 169.254.169.254 iburst
  5. 次のコマンドを使用して、インスタンスの起動時にNTPサービスが自動的に起動するように設定します:

    sudo chkconfig ntpd on
  6. 次のコマンドを使用してNTPサービスを開始します:

    sudo /etc/init.d/ntpd start
  7. 次のコマンドを使用して、NTPサービスが正しく構成されていることを確認します:

    ntpq -p

    出力は、次のようになります。

    remote           refid      st t when poll reach   delay   offset  jitter
    ==============================================================================
    169.254.169.254 192.168.32.3     2 u    2   64    1    0.338    0.278   0.187
    						
2018年2月以前にリリースされたOracle Linux 7.x

次のステップを使用して、Oracle Cloud Infrastructure NTPサービスを使用するようにOracle Linux 7.xインスタンスを構成します。

  1. 次のコマンドを使用して、このセクションのコマンドはルートとして実行します:
    sudo su -
  2. 次のコマンドを使用してNTPサービスをインストールします:
    yum -y install ntp
  3. 次のコマンドを使用し、UDPポート123の169.254.169.254で、Oracle Cloud Infrastructure NTPサーバーに対するインバウンド・トラフィックとアウトバウンド・トラフィックを許可するようにファイアウォール・ルールを変更します:
    awk -v n=13 -v s=' <passthrough ipv="ipv4">-A OUTPUT -d 169.254.169.254/32 -p udp -m udp --dport 123 -m comment --comment "Allow access to OCI local NTP service" -j ACCEPT </passthrough>' 'NR == n {print s} {print}' /etc/firewalld/direct.xml > tmp && mv tmp /etc/firewalld/direct.xml

    プロンプトmv: overwrite '/etc/firewalld/direct.xml'?で、yと入力します。

  4. 次のコマンドでファイアウォールを再起動します:
    service firewalld restart
  5. 次のコマンドを使用して、インスタンスの日付を設定します:
    ntpdate 169.254.169.254
  6. Oracle Cloud Infrastructure NTPサービスをiburstで使用するようにインスタンスを構成します。構成するには、/etc/ntp.confファイルを次のように変更します:
    1. serverセクションで、RHELサーバーを指定する行をコメント・アウトします:
      #server 0.rhel.pool.ntp.org iburst
      #server 1.rhel.pool.ntp.org iburst
      #server 2.rhel.pool.ntp.org iburst
      #server 3.rhel.pool.ntp.org iburst
    2. Oracle Cloud Infrastructure NTPサービスのエントリを追加します:

      server 169.254.169.254 iburst

    変更したserverセクションの内容は次のようになります:

    # Please consider joining the pool (http://www.pool.ntp.org/join.html).
    #server 0.rhel.pool.ntp.org iburst
    #server 1.rhel.pool.ntp.org iburst
    #server 2.rhel.pool.ntp.org iburst
    #server 3.rhel.pool.ntp.org iburst
    server 169.254.169.254 iburst
  7. 次のコマンドを使用して、NTPサービスを開始して有効にします:

    systemctl start ntpd
    systemctl enable ntpd

    また、NTPサービスがリブート後に自動的に開始されるようにするには、次のコマンドを使用して、chrony NTPクライアントを無効にすることも必要です:

    systemctl stop chronyd
    systemctl disable chronyd
  8. 次のコマンドを使用して、NTPサービスが正しく構成されていることを確認します:

    ntpq -p

    出力は、次のようになります。

         remote           refid      st t when poll reach   delay   offset  jitter
    ==============================================================================
    169.254.169.254 192.168.32.3     2 u    2   64    1    0.338    0.278   0.187
    						
Windows Server
ヒント

Windows ServerでNTPサービスを設定するときに時刻データが利用できなかったというエラー・メッセージが表示された場合は、Microsoftの既知の問題の記事で情報を確認してください。
  1. 次のいずれかを実行して、Oracle Cloud Infrastructure NTPサービスを使用するよう、Windows Serverインスタンスを構成します:

    • Windows Powershellを使用してNTPサービスを構成するには、Powershellで管理者として次のコマンドを実行します:

      Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Services\W32Time\Parameters' -Name 'Type' -Value NTP -Type String
      Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Services\W32Time\Config' -Name 'AnnounceFlags' -Value 5 -Type DWord
      Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer' -Name 'Enabled' -Value 1 -Type DWord
      Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Services\W32Time\Parameters' -Name 'NtpServer' -Value '169.254.169.254,0x9' -Type String
      Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient' -Name 'SpecialPollInterval' -Value 900 -Type DWord
      Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Services\W32Time\Config' -Name 'MaxPosPhaseCorrection' -Value 1800 -Type DWord
      Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Services\W32Time\Config' -Name 'MaxNegPhaseCorrection' -Value 1800 -Type DWord
    • レジストリを手動で編集してNTPサービスを構成するには、次の手順を実行します:

      1. サーバー・タイプをNTPに変更します:
        1. レジストリ・エディタで、次の場所に移動します:
          HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\
        2. 「タイプ」をクリックします。
        3. 値をNTPに変更して「OK」をクリックします。
      2. Timeserv_Announce_YesフラグとReliable_Timeserv_Announce_Autoフラグを有効化するようにWindowsタイム・サービスを構成します。

        構成するには、AnnounceFlagsパラメータを5に設定します:

        1. レジストリ・エディタで、次の場所に移動します:
          HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\
        2. 「AnnounceFlags」をクリックします。
        3. 値を5に変更して「OK」をクリックします。
      3. NTPサーバーを有効にします:
        1. レジストリ・エディタで、次の場所に移動します:
          HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer\
        2. 「有効」をクリックします。
        3. 値を1に変更して「OK」をクリックします。
      4. 時刻のソースを設定します:
        1. レジストリ・エディタで、次の場所に移動します:
          HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\
        2. 「NtpServer」をクリックします。
        3. 値を169.254.169.254,0x9に変更して「OK」をクリックします。
      5. ポーリング間隔を設定します:
        1. レジストリ・エディタで、次の場所に移動します:
          HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient\
        2. 「SpecialPollInterval」をクリックします。
        3. タイム・サービスの同期を行う間隔に値を設定します。値は秒単位です。15分に設定する場合は、値を900,に設定して「OK」をクリックします。
      6. フェーズ修正制限設定を設定して、時間サンプル境界を限定します:
        1. レジストリ・エディタで、次の場所に移動します:
          HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\
        2. 「MaxPosPhaseCorrection」をクリックします。
        3. 時間サンプルの将来の最大時間オフセットに値を設定します。値は秒単位です。30分に設定する場合は、値を1800に設定して「OK」をクリックします。
        4. 「MaxNegPhaseCorrection」をクリックします。
        5. 時間サンプルの過去の最大時間オフセットに値を設定します。値は秒単位です。30分に設定する場合は、値を1800に設定して「OK」をクリックします。
  2. コマンド・プロンプトから次のコマンドを実行して、タイム・サービスを再起動します:
    net stop w32time && net start w32time
  3. コマンド・プロンプトから次のコマンドを実行して、NTPサービスへの接続をテストします:

    w32tm /query /peers

    出力は、次のようになります。

    #Peer: 1
     
    Peer: 169.254.169.254,0x9
    State: Active
    Time Remaining: 22.1901786s
    Mode: 3 (Client)
    Stratum: 0 (unspecified)
    PeerPoll Interval: 10 (1024s)
    HostPoll Interval: 10 (1024s)

    ポーリング間隔として指定された時間が経過すると、StatePendingからActiveに変わります。