- 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 (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 ntp |
Centos / RHEL |
zypper install ntp |
OpenSuse / SLES |
apt-get install ntp |
Ubuntu / 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 chrony | Centos / RHEL |
apt install chrony | Ubuntu / 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 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 |