NTP (Network Time Protocol- Ağ Zamanlama Protokolü) nedir?

  • NTP yazılımlarının çalışma prensibi
  • Sunucularda ortak zaman neden önemlidir?
  • Açık Kaynak Kodlu saat sunucu çözümleri : ntp, chrony
  • Linux’ta saat dilimi nasıl ayarlanır?
  • Linux’ta saat ve tarih nasıl ayarlanır?
  • Linux’ta zaman sistem saati senkronizasyonu nasıl yapılır?
  • NTP sunucu tanımlayarak zaman senkronizasyonu nasıl yapılır?
  • NTP Pool Project : pool.ntp.org Nedir?
NTP Nedir?NTP (Network Time Protocol- Ağ Zamanlama Protokolü) nedir?

NTP, değişken gecikmeye sahip paket anahtarlamalı ağlar üzerindeki bilgisayarların saatlerinin eş zamanlanmasının sağlanması için kullanılan bir protokoldür. NTP, 123 portunda UDP olarak çalışır. 

Ntp protokolü en eski internet protokollerinden biridir olup tüm işletim sistemleri tarafından desteklenmektedir. NTP, işletim sistemlerinde bir servis olarak çalışmaktadır ve aynı anda hem istemci hem de sunucu olarak hizmet verebilmektedir. 

NTP Yazılımlarının Çalışma Prensibi

NTP, zaman bilgisini tanımladığınız bir üst sunucudan alıp daha düşük bir doğrulukla başka istemcilere dağıta bilmektedir. NTP  sunucularının zaman doğruluğunun belirlenmesi için bir yönteme ihtiyaç vardır. Bu yöntem ntp sunuculara “Stratum Numarası” verilmesi ile çözülmüştür.

Atomik frekans standartları “Stratum 0” seviyesindedir ve en doğru zamanı üretirler. Bir atomik frekans standardına doğrudan bağlı ntp sunucular “Stratum 1” NTP sunucu olarak adlandırılır. Stratum 1 NTP Sunucular, eşgüdümlü evrensel zaman (UTC – Coordinated Universal Time) kaynağına bir ağ yolu üzerinden değil, GPS, WWV veya CDMA ile güvenilir bir şekilde doğrudan bağlıdır.

Kendi zamanını Stratum 1 seviyesindeki sunucudan alarak istemcilerine dağıtan sunucular “Stratum 2” seviyesindedir. Stratum seviyeleri 16 seviyesine kadar devam eder. Stratum 2 NTP Sunucular, hiyerarşiye uygun bir şekilde zaman kaynağı olarak Stratum 1 NTP sunucuları veya diğer Stratum 2 NTP sunucuları kullanabilirler.

Ülkemizde birçok kurum hazır çözümler satın alarak Stratum 1 NTP sunucular kurmuşsa da bu sunucular dışarı açık değildir. Netekim bu Stratum 2 NTP Sunucular, hiyerarşiye uygun bir şekilde zaman kaynağı olarak Stratum 1 NTP sunucuları veya diğer Stratum 2 NTP sunucuları kullanabilirler. 

Belgenin yazıldığı tarih itibariyle ntp.org da yayınlanan stratum 1 NTP sunucular listesinde Türkiye de dışarı açık sunucu görünmemekle birlikte, TÜBİTAK UME, “time.ume.tubitak.gov.tr” adresi üzerinden standart ağ zaman protokolü (network time protocol: ntp) aracılığı ile “Stratum 1” seviyesinde zaman dağıtımı hizmetini halka açık olarak vermektedir.

root@g3lts:~#  ntpdate -sq time.ume.tubitak.gov.tr

server 194.27.222.5, stratum 1, offset 0.003000, delay 0.04173

Ortak zaman uygulaması neden önemlidir?

Sunucu güvenlik kayıtları

Geriye yönelik log incelemelerinde, saati manipüle edilmiş, geri kalmış veya ileri gitmiş bir sunucunun kayıtlarına güvenilemez.

Ağ güvenlik kayıtları

Yetkisiz ağ kullanımına dair kayıtların tutarlılığı içinde doğru zaman hayati öneme sahiptir. Özellikle istemcilerin sirkülasyonda olduğu ağlarda macid – IP adresi – zaman formatındaki kayıtların geçerli kabul edilmesi için ortak zaman uygulaması gereklidir.

Zaman damgaları

Eğer bilişim sistemlerinde zaman damgası kullanılıyorsa bunları geçerliliği için ortak zaman hayati öneme sahiptir.

Zamanlanmış işler

Sunucularda belli aralıklarla tekrar olması istenen işlemler crontab veya systemd timer mekanizmaları ile otomatiğe bağlanır. Sunucu saatinin geri kalması veya ileri gitmesi tüm bu işlemleri etkileyecektir.

Bunlar ve daha birçok sayamadığımız nedenlerle ortak zaman uygulaması önemlidir. İşte bu nedenle özellikle kurumsal ağlarda merkezi kayıt sunucusu ve ortak zaman sunucusu konumlandırılır ve  tüm aktif ağ üyelerinin (sunucu, router, switch …) aynı zamanda olması sağlanır.

Açık Kaynak Kodlu saat sunucu çözümleri: ntp, chrony

Bu yazılımlar gerek istemci gerekse sunucu olarak yapılandırılabilir. İstemci olarak yapılandırıldığında belirli aralıklarla yapılandırma dosyasında belirtilen sunucu veya sunuculara erişerek sunucu saatini senkronize eder. Sunucu olarak yapılandırıldığında belirttiğiniz ağlara zaman sunucusu olarak hizmet verirler.

NTP

ntp diğer alternatiflere göre en yaygın kullanılan açık kaynak kodlu saat çözümüdür. ntpd (ntp daemon) arkada çalışan bir süreçtir. Ağınızdaki ntp sunucusu ile senkronize olmanızı sağlar ve zaman içinde çalıştığı sunucunun kayma oranını öğrenir ve sürekli takip ederek  düzenler. Sunucu olarak yapılandırılır ise kendisine zamanı soran istemcilere saat sunucusu olarak hizmet verir.

NTP Kurulumu

Kurulumu son derece basittir. Linux dağıtımlarında ana repository de bulunur. Yapılandırma dosyası örneklerine arama motorlarından ulaşılabilir. 

yum install ntpCentos / RHEL
zypper install ntpOpenSuse / SLES
apt-get install ntpUbuntu / Debian

CHRONY

Ağınızdaki ntp sunucusu ile senkronize olmanızı sağlar. Sunucu olarak yapılandırılır ise kendisine zamanı soran istemcilere saat sunucusu olarak hizmet verir. Ağırlıklı olarak, masaüstü bilgisayarlarda veya günün 24 saati çalışmayan sistemlerde yararlıdır.

Kararsız saatleri olan sanal sunucular veya saat frekansını sabit tutmayan güç tasarrufu teknolojileri ile donatılmış diz üstü sistemlerde saat frekansındaki hızlı değişikliklere alternatiflere göre daha iyi yanıt verebildiği için tercih edilir. Buna rağmen RHEL 7 ve üstü sistemlerde chrony ön tanımlı zaman çözümü olarak ntp nin yerini almıştır.

CHRONY Kurulumu

Kurulumu son derece basittir. Linux dağıtımlarının çoğunda ana repository de bulunur. Yapılandırma dosyası örneklerine arama motorlarından ulaşılabilir. 

yum -y install chronyCentos / RHEL
apt install chronyUbuntu / Debian

Linux’ta saat dilimi nasıl ayarlanır?

timedatectl Komutu

timedatectl komutu ile saat, saat dilimi ve sistem saatini senkronize edebilirsiniz. Adım adım kullanım örnekleri verilmiştir. Sisteminizde geçerli saati ve tarihi görüntülemek için, komut satırında aşağıdaki gibi yazmanız yeterlidir.

root@g3lts:~# timedatectl  status

               Local time: Çrş 2021-05-12 18:11:45 +03

           Universal time: Çrş 2021-05-12 15:11:45 UTC

                 RTC time: Çrş 2021-05-12 15:11:45

                Time zone: Europe/Istanbul (+03, +0300)

System clock synchronized: yes

              NTP service: active

          RTC in local TZ: no

Çıktıyı inceleyelim,

Local time hal hazırda Linux sisteminizdeki saati, RTC Time ise Linux un çalıştığı donanımın saatini gösterir. Örnekteki sistemde zaman senkronize dir. NTP servisi açıktır. 

timedatectl ile saat dilimini ayarlama

root@g3lts:~# timedatectl list-timezones 

Africa/Abidjan

Africa/Accra

Africa/Algiers

.

.

root@g3lts:~# timedatectl list-timezones |grep Ist

Europe/Istanbul

root@g3lts:~# timedatectl set-timezone “Europe/Istanbul”

root@g3lts:~#

Linux’ta saat ve tarih nasıl ayarlanır?

Linux ta saat ayarlama timedatectl komutuyla yapılmaktadır. zaman senkronizasyonu açık açıkken saat tarih değişimi yapılamaz.

root@g3lts:~# timedatectl

               Local time: Prş 2021-05-13 18:20:34 +03

           Universal time: Prş 2021-05-13 15:20:34 UTC

                 RTC time: Prş 2021-05-13 15:20:34

                Time zone: Europe/Istanbul (+03, +0300)

System clock synchronized: yes

              NTP service: active

          RTC in local TZ: no

root@g3lts:~# timedatectl set-time ” 2023-05-01 19:45:40″

Failed to set time: Automatic time synchronization is enabled

root@g3lts:~# timedatectl set-ntp false

root@g3lts:~# timedatectl set-time ” 2023-05-01 19:45:40″

root@g3lts:~# timedatectl

               Local time: Pzt 2023-05-01 19:45:56 +03

           Universal time: Pzt 2023-05-01 16:45:56 UTC

                 RTC time: Pzt 2023-05-01 16:45:56

                Time zone: Europe/Istanbul (+03, +0300)

System clock synchronized: no

              NTP service: inactive

          RTC in local TZ: no

root@g3lts:~# timedatectl set-ntp true

root@g3lts:~# timedatectl

               Local time: Prş 2021-05-13 18:21:52 +03

           Universal time: Prş 2021-05-13 15:21:52 UTC

                 RTC time: Prş 2021-05-13 15:21:52

                Time zone: Europe/Istanbul (+03, +0300)

System clock synchronized: yes

              NTP service: active

          RTC in local TZ: no

Linux’ta zaman sistem saati senkronizasyonu nasıl yapılır?

root@g3lts:~# timedatectl show-timesync

FallbackNTPServers=ntp.ubuntu.com

ServerName=ntp.ubuntu.com

ServerAddress=91.189.91.157

RootDistanceMaxUSec=5s

PollIntervalMinUSec=32s

PollIntervalMaxUSec=34min 8s

PollIntervalUSec=4min 16s

NTPMessage={ Leap=0, Version=4, Mode=4, Stratum=2, Precision=-24, RootDelay=73.745ms, RootDispersion=36.163ms, Reference=11FD227D, OriginateTimestamp=Thu 2021-05-13 18:25:26 +03, ReceiveTimestamp=Thu 2021-05-13 18:25:26 +03, TransmitTimestamp=Thu 2021-05-13 18:25:26 +03, DestinationTimestamp=Thu 2021-05-13 18:25:26 +03, Ignored=no PacketCount=4, Jitter=2.152ms }

Frequency=-248192

root@g3lts:~# cat /etc/systemd/timesyncd.conf 

#  This file is part of systemd.

#

#  systemd is free software; you can redistribute it and/or modify it

#  under the terms of the GNU Lesser General Public License as published by

#  the Free Software Foundation; either version 2.1 of the License, or

#  (at your option) any later version.

#

# Entries in this file show the compile time defaults.

# You can change settings by editing this file.

# Defaults can be restored by simply deleting this file.

#

# See timesyncd.conf(5) for details.

[Time]

#NTP=

#FallbackNTP=ntp.ubuntu.com

#RootDistanceMaxSec=5

#PollIntervalMinSec=32

#PollIntervalMaxSec=2048

Örnek sistem Ubuntu Linux tur. ön tanımlı NTP sunucusu olarak ntp.ubuntu.com tanımlıdır.

NTP sunucu tanımlayarak zaman senkronizasyonu nasıl yapılır?

Eğer bulunduğunuz ağın saat sunucusundan hizmet almak isterseniz, çıktıda gördüğünüz timesyncd.conf dosyasını düzenleyerek hizmet almak istediğiniz NTP sunucusunun IP adresini yazıp kaydediniz. Bu dosyada değişiklik yaptıktan sonra ilgili sistem servisi yeniden başlatılmalıdır.

root@g3lts:~# cat /etc/systemd/timesyncd.conf 

#  This file is part of systemd.

#

#  systemd is free software; you can redistribute it and/or modify it

#  under the terms of the GNU Lesser General Public License as published by

#  the Free Software Foundation; either version 2.1 of the License, or

#  (at your option) any later version.

#

# Entries in this file show the compile time defaults.

# You can change settings by editing this file.

# Defaults can be restored by simply deleting this file.

#

# See timesyncd.conf(5) for details.

[Time]

NTP=time.ume.tubitak.gov.tr

#FallbackNTP=ntp.ubuntu.com

#RootDistanceMaxSec=5

#PollIntervalMinSec=32

#PollIntervalMaxSec=2048

root@g3lts:~# systemctl restart systemd-timedated

root@g3lts:~# timedatectl show-timesync 

SystemNTPServers=time.ume.tubitak.gov.tr

FallbackNTPServers=ntp.ubuntu.com

ServerName=time.ume.tubitak.gov.tr

ServerAddress=194.27.222.5

RootDistanceMaxUSec=5s

PollIntervalMinUSec=32s

PollIntervalMaxUSec=34min 8s

PollIntervalUSec=1min 4s

NTPMessage={ Leap=0, Version=4, Mode=4, Stratum=1, Precision=-22, RootDelay=0, RootDispersion=1.159ms, Reference=PPS, OriginateTimestamp=Thu 2021-05-13 18:31:37 +03, ReceiveTimestamp=Thu 2021-05-13 18:31:37 +03, TransmitTimestamp=Thu 2021-05-13 18:31:37 +03, DestinationTimestamp=Thu 2021-05-13 18:31:37 +03, Ignored=no PacketCount=1, Jitter=0 }

Frequency=-1915

NTP Nedir?

NTP Pool Project : pool.ntp.org Nedir?

pool.ntp.org projesi, binlerce zaman sunucusundan oluşan bir havuzdur. milyonlarca kullanıcıya NTP hizmeti vermektedir. Major Linux dağıtımlarının ve ağ cihazlarının bir çoğunda varsayılan zaman sunucusudur. 

Havuza gelen trafik, DNS Round Robin ile sunuculara dağılır böylece servis her zaman kararlı ve ulaşılabilir olmaktadır. Ülkeler için alt havuzlarda bulunmaktadır.

root@g3lts:~# host pool.ntp.org

pool.ntp.org has address 162.159.200.123

pool.ntp.org has address 192.36.143.130

pool.ntp.org has address 162.159.200.1

pool.ntp.org has address 85.199.214.98

root@g3lts:~# host tr.pool.ntp.org

tr.pool.ntp.org has address 162.159.200.1

tr.pool.ntp.org has address 162.159.200.123

tr.pool.ntp.org has address 195.33.242.132

tr.pool.ntp.org has address 192.36.143.130