İşletim sistemlerinde birçok servis vardır, normal işleyiş bu sistem saatinin doğruluğuna bağlıdır. Sunucuda tam saat ayarlanmamışsa, bu çeşitli sorunlara neden olabilir.

Örneğin, yerel ağ dosya paylaşan makinelerin saatlerinin senkronize edilmesi gerekir - aksi takdirde dosyaların değişiklik zamanını doğru ayarlamak mümkün olmayacaktır. Bu da sürüm çakışmalarına veya önemli verilerin üzerine yazılmasına neden olabilir.

Sunucunun kesin bir zamanı yoksa, Cron işleriyle ilgili sorunlar olacaktır - ne zaman çalışacakları belli değildir. Arızaların ve arızaların nedenlerini teşhis etmek için sistem olay günlüklerini analiz etmek çok zor olacak...

Uzun süre devam edebilirsiniz...

Açıklanan tüm sorunlardan kaçınmak için sistem saatinin senkronizasyonunu ayarlamanız gerekir. Linux bunun için NTP'yi (Ağ Zaman Protokolü) kullanır. Bu yazımızda sunucu üzerinde NTP kurulumu ve konfigürasyonu hakkında detaylı olarak konuşacağız. Küçük bir teorik girişle başlayalım.

NTP protokolü nasıl çalışır?

NTP protokolü, farklı seviyelerin (İngilizce katmanları) ayırt edildiği tam zamanlı sunucuların hiyerarşik bir yapısına dayanır. Seviye 0, referans saati (atomik saat veya GPS saati) ifade eder. Sıfır düzeyinde, NTP sunucuları çalışmaz.

Tier 2 sunucuları için kaynak olan Tier 1 NTP sunucuları referans saat ile senkronize olur.Tier 2 sunucuları Tier 1 sunucuları ile senkronize olur ancak kendi aralarında da senkronize olabilirler. Tier 3 ve altı sunucular aynı şekilde çalışır. Toplamda 256 seviyeye kadar desteklenir.

NTP protokolünün hiyerarşik yapısı, hata toleransı ve fazlalık ile karakterize edilir. Yukarı akış sunucuları ile bağlantı hataları olması durumunda yedekleme sunucuları senkronizasyon işlemini devralır. Yedeklilik, NTP sunucularının her zaman kullanılabilir olmasını sağlar. NTP, birden fazla sunucuyla senkronize ederek, en doğru zamanı hesaplamak için tüm kaynaklardan gelen verileri kullanır.

Bir NTP sunucusunu kurma ve yapılandırma

En ünlü ve yaygın yazılım aracı zaman senkronizasyonu için ntpd arka plan programıdır. içinde belirtilen ayarlara bağlı olarak yapılandırma dosyası(bu aşağıda tartışılacaktır), hem sunucu hem de istemci olarak hareket edebilir (yani, hem uzak ana bilgisayarlardan zaman alabilir hem de diğer ana bilgisayarlara dağıtabilir). Aşağıda, bu arka plan programının OC Ubuntu'da nasıl kurulacağını ve yapılandırılacağını ayrıntılı olarak açıklayacağız.

Kurulum

NTP programı, çoğu modern Linux sisteminin dağıtımlarına dahildir ve standart bir paket yöneticisi kullanılarak kurulur:

$ sudo apt-get install ntp

Ayar

Kurulum tamamlandıktan sonra, açın Metin düzeltici/etc/ntp.conf dosyası. Tüm program ayarlarını saklar. Onları daha ayrıntılı olarak ele alalım.

Günlüğe kaydetme seçenekleri

Yapılandırma dosyasının ilk satırı şöyle görünür:

Driftfile /var/lib/ntp/ntp.drift

Zaman kaymasının frekansı hakkında bilgi depolamak için bir dosya belirtir. Bu dosya, önceki zaman ayarlamalarından elde edilen değeri saklar. Harici NTP sunucuları bir nedenden dolayı kullanılamaz hale gelirse, değer ondan alınır.

Günlük dosyası /var/log/ntp.log

Senkronizasyon için sunucuların listesi

Yapılandırma dosyası, senkronizasyonun gerçekleştirileceği NTP sunucularının listesini belirtir. Varsayılan olarak şöyle görünür:

Sunucu 0.ubuntu.pool.ntp.org sunucusu 1.ubuntu.pool.ntp.org sunucusu 2.ubuntu.pool.ntp.org sunucusu 3.ubuntu.pool.ntp.org

Her satır, sunucumuza doğru zamanı bildirecek bir grup sunucu anlamına gelir. iburst seçeneğini kullanarak senkronizasyon doğruluğunu iyileştirebilirsiniz (senkronizasyon için sunucuya bir değil birkaç paketin gönderilmesi gerektiğini belirtir):

Sunucu 0.ubuntu.pool.ntp.org iburst sunucusu 1.ubuntu.pool.ntp.org iburst sunucusu 2.ubuntu.pool.ntp.org iburst sunucusu 3.ubuntu.pool.ntp.org iburst

Tercih ettiğiniz sunucuyu tercih seçeneğiyle de belirtebilirsiniz:

Sunucu 0.ubuntu.pool.ntp.org iburst tercih

NTP sunucuları dünyanın her yerine dağılmıştır (burada, örneğin, kullanılabilir genel NTP sunucularının bir listesi bulunmaktadır). Sistem saatinin daha doğru bir şekilde ayarlanmasını sağlamak için yalnızca sunucumuzun coğrafi olarak bulunduğu bölgenin ntp sunucuları ile senkronizasyon yapılması önerilir. Bunu yapmak için /etc/ntp.conf yapılandırma dosyasında, sunucu adreslerinde pool.ntp.org için bölgesel alt etki alanını belirtin:

  • Asya - asia.pool.ntp.org;
  • Avrupa - europe.pool.ntp org;
  • Afrika — africa.pool.ntp.org;
  • Kuzey Amerika - kuzey-america.pool.ntp.org;
  • Güney Amerika - güney-america.pool.ntp.org;
  • Okyanusya - oceania.pool.ntp.org.

Ayrı ayrı ülkeler için alt alan adları da belirtebilirsiniz (daha fazla ayrıntı için bkz. ). Rusya için de bir alt alan adı var - ru.pool.ntp.org

Yedekleme zamanı sunucusu

Herhangi bir nedenle İnternet bağlantısı kesilen bir NTP sunucusu, sistem saat verilerini senkronizasyon için iletebilir. Bunu yapmak için yapılandırma dosyasına aşağıdaki satırı ekleyin:

Sunucu 127.127.1.0

Kısıtlamalar

Son zamanlarda, DDoS saldırılarında trafiği artırmak için NTP sunucularının kullanılması vakaları daha sık hale geldi (daha fazla ayrıntı için, örneğin bkz.). Sunucumuzun kötüye kullanım kurbanı olmasını önlemek için harici istemcilere erişim kısıtlamaları koymak faydalı olacaktır. Varsayılan olarak, /etc/ntp.conf dosyasında aşağıdaki kısıtlamalar ayarlanır:

Restrict −4 varsayılan kod notrap nomodify nopeer noquery kısıtlama −6 default kod notrap nomodify nopeer noquery

Nomodify, notrap, nopeer ve noquery seçenekleri, üçüncü taraf istemcilerin sunucudaki herhangi bir şeyi değiştirmesini engeller. kod parametresi (bu kısaltma ölüm öpücüğü anlamına gelir - "ölüm öpücüğü") ek koruma: Çok fazla istek gönderen bir istemci, önce bir kod paketi (hizmet reddi uyarısı) alacak ve ardından sunucuyla bağlantısı kesilecektir.

Yerel ağdaki makinelerin NTP sunucusuyla senkronize olabilmesi için yapılandırma dosyasına aşağıdaki satırı ekleyin:

192.168.1.0 maskesini kısıtla 255.255.255.0 nomodify notrap

Yerel ana bilgisayar için, kısıtlama olmaksızın NTP sunucusuna erişimi ayarlayabilirsiniz:

Kısıtlama 127.127.1.0

senkronizasyon kontrolü

Yapılandırma dosyasında gerekli tüm değişiklikler yapıldıktan ve kaydedildikten sonra NTP sunucusunu yeniden başlatın:

$ hizmet ntp'yi yeniden başlat

Ardından aşağıdaki komutu çalıştırın:

$ ntpq -pn

Çıktısı bir tablo şeklinde sunulacaktır:

Yoklama gecikme ofseti titreşimine ulaştığında uzaktan refid st t ======================================= = ==================================== *62.76.96.4 130.173.91.58 2 u 207 256 37 10.985 - 215.79 256.992 +85.21.78.91 89.175.22.41 2 U 193 256 37 32.623 -207.70 259.121 +31.131.249.27 89.175.22.41 2 U 19621 -216.90 257.037 +85.21.11.11.1111111.11.111111111.11111111.1ANA 207.41 259.9634.491.123 2 u 192 256 37 50.573 -206.62 259.542

Tablo aşağıdaki parametreleri gösterir:

  • uzak — tam zamanlı sunucu adresi (bu sütun, yapılandırma dosyasındaki listedeki sunucuları görüntüler);
  • refid - yukarı akış sunucusu (önceki sütunlardan sunucunun senkronizasyon aldığı sunucu);
  • st - sunucunun seviyesi (katmanı);
  • t — eş tipi (u- tek noktaya yayın, m- çok noktaya yayın);
  • son senkronizasyonun zamanı ne zaman;
  • yoklama, NTP arka plan programının eş ile eşitlenmesi için geçen saniye cinsinden süredir.
  • erişim — sunucu kullanılabilirlik durumu; sekiz başarılı senkronizasyon denemesinden sonra bu parametrenin değeri 377'ye eşit olur;
  • gecikme - sunucudan yanıt gecikme süresi;
  • offset, sunucumuz ile senkronizasyon sunucusu arasındaki zaman farkıdır; bu parametrenin pozitif değeri saatimizin hızlı olduğu, negatif değeri ise geri kaldığı anlamına gelir;
  • jitter, uzak sunucudaki zaman farkıdır.

Sunucu adresinin solunda aşağıdaki karakterler belirtilebilir:

  • * senkronizasyon için seçilen sunucu;
  • + güncellemeye uygun bir sunucu (senkronize edebileceğiniz);
  • — sunucuyla senkronizasyon yapılması önerilmez;
  • x sunucusu kullanılamıyor.

Aşağıdaki komutu kullanarak listeden bir sunucunun senkronizasyon için uygun olup olmadığını kontrol edebilirsiniz:

Ntpdate -q sunucu хх.ххх.ххх.ххх, katman 2, ofset -0,127936, gecikme 0,02600 7 Temmuz 14:30:23 ntpdate: zaman sunucusunu ayarla хх.ххх.ххх.ххх offset -0,127936 sn

Yukarıdaki çıktıdan, sunucunun senkronizasyon için uygun olduğu, seviyesinin 2, ofset 0.127936 ms ve gecikmenin 0.026 ms olduğu görülebilir.

Senkronizasyonun nasıl gittiğini (başarılı veya hatalı) günlüklerden de öğrenebilirsiniz:

7 Temmuz 15:17:17 ntpd: 91.198.10.4 ile senkronize edildi, stratum=2 7 Temmuz 15:17:17 ntpd: çekirdek zaman senkronizasyonu devre dışı 0041 7 Temmuz 15:17:21 ntpd: çekirdek zaman senkronizasyonu etkin 0001

Yerel tarih ve saati ayarlama

NTP sunucusuna bir istek göndererek sunucudaki yerel tarih ve saati ayarlamak için ntpdate komutu kullanılabilir.

Giriiş.

Linux sistemi, diğer modern işletim sistemlerinin çoğu gibi, aslında iki saate sahiptir. İlk saat, bazen Gerçek Zamanlı Saat olarak adlandırılan, kısaltılmış (RTC) veya BIOS saati olarak adlandırılan ve genellikle günde birkaç saniyeye kadar bir hassasiyete sahip salınan bir kuvars kristali ile ilişkilendirilen bir donanım saatidir. Doğruluk, ortam sıcaklığı gibi çeşitli dalgalanmalara bağlıdır. İkinci saat, sistemdeki molalar da dahil olmak üzere sürekli çalışan dahili bir yazılım saatidir. Yüksek sistem yükü ve kesinti gecikmesi ile ilişkili dalgalanmalara tabidirler. Ancak, sistem genellikle önyükleme sırasında donanım saatini okur ve ardından sistem saatini kullanır. Date komutu donanım saatini değil sistem saatini ayarlar.

NTP kullanılıyorsa, sistemin ilk kurulumu sırasında donanım saatini ayarlayabilir ve bir daha asla endişelenmeyebilirsiniz.

üzerinde kullanılan gerçek zamanlı saat (RTC) yongası anakartlar, özellikle doğru değildir ve genellikle her gün belirli bir süre geriler veya öne geçer.

-w veya --systohc seçeneğiyle hwclock komutunu kullanarak donanım saatini sistem saati ile ve -s veya --hctosys seçeneğiyle hwclock komutuyla sistem saatini donanım saati ile senkronize edebilirsiniz.

Ayar.

İlk olarak, /etc/ntp.conf dosyasına şu satırı ekleyin:

Saat belirtilen sunucudan senkronize edilecektir. İlki mevcut değilse, listedeki sonrakiler alınır. İlk reçete Yerel sunucu NTP.

Bir sonraki an, kullanılacak yerel veya evrensel saati ayarlar.

#cat /etc//etc/sysconfig/clock

Bizde yok:

BÖLGE'yi yönetiyoruz - "Avrupa/Moskova" da

Alırız:

UTC=doğru sistem saati evrensel zaman gösterimini kullanmaz

ARC=doğru Normal UNIX dönemi kullanılır.

Linux altında saat dilimi, /etc/localtime öğesinden /usr/lib/zoneinfo (veya /usr/share/zoneinfo) dizinindeki hangi saat diliminde bulunduğunuzu gösteren bir dosyaya sembolik bir bağlantı aracılığıyla ayarlanır.

Resim. /usr/share/zoneinfo içeriği

Komutları çalıştırıyoruz.

rm -rf /etc/yerelzaman

ln -s /usr/share/zoneinfo/Europe/Moskova /etc/localtime

Her şey çalışıyor!

ntpd arka plan programı çalışıyorsa, ntp sunucusuyla senkronizasyon yapılmaya çalışıldığında aşağıdaki mesaj görüntülenir.

Bu komut, hangi sunuculara bağlanılacağını gösterir.

İlave:

Donanım saatini ayarlama

Donanım saatini ayarlamak için önce sistem saatini, ardından "/sbin/clock -w" (veya evrensel saat kullanılıyorsa "/sbin/clock -wu" programını kullanarak) donanım saatini ayarlayın.Donanım saatini öğrenmek için, saati parametresiz çalıştır. Donanım saati yerel saate ayarlanmışsa ve "/sbin/clock -u" dünya saati türünü görmek istiyorsanız

Sistem saatini ayarlama

Linux'ta sistem saatini ayarlamak için date programını kullanın. Örneğin, geçerli saati (sistem!) ve tarihi 31 Temmuz 23:16 olarak ayarlamak için "date 07312316" yazın (saatin 24 saatlik gösterimle verildiğine dikkat edin) Yılı değiştirmek istiyorsanız "tarih" yazın. 073123161998". Saniyeyi ayarlamak için "tarih 07312316.30" veya "tarih 073123161998.30" tuşlayın. Sistem saatini almak için tarihi argüman olmadan çalıştırın.

Kullanılan kaynaklar.

Bazen bir Ubuntu bilgisayarındaki saat kapanıyor, yavaşlıyor veya hızlı oluyor. Bu durum kritik olmasa da, çok nahoştur ve zamanın belirsizliği nedeniyle günlüklerdeki karışıklıktan yanlış saatlere güvendiğiniz için bir toplantıya geç kalmaya kadar değişen feci sonuçlara yol açabilir. Ayrıca, Tor anonimleştirici gibi bazı programların doğru çalışması için tam zaman önemlidir.

Neyse ki, bu çok sık olmaz ve genellikle makine zamanını depolamak veya BIOS belleğini sıfırlamak için farklı algoritmalar kullanan işletim sistemlerini yüklemek gibi standart olmayan eylemlerle ilişkilidir.Ancak bu, hiçbir şey yapmanız gerekmediği anlamına gelmez, yapabilirsiniz İnternet üzerinden yerel saat senkronizasyonunu kurun, bu, sık sık saati düşürürseniz ve her seferinde ayarlamak için çok tembelseniz, bu oldukça kullanışlı bir şeydir. Ubuntu, bunu yapmak için NTP hizmetini ve ntpd arka plan programını kullanır. Bu makalede tartışılacak olan onlar hakkında.

İlk olarak, Ubuntu'daki terminalden zamanı nasıl göreceğiniz hakkında biraz. Geçerli saati öğrenmek için şu komutu çalıştırın:

Verileri UTC biçiminde görüntülemek için şunu yazın:

Ubuntu'muzun zamanının referansın ne kadar gerisinde kaldığını öğrenelim:

sudo ntpdate -q ntp.ubuntu.com

Ayrıca, birçok teori var, buraya yalnızca kurulum talimatları için geldiyseniz, aşağı kaydırmaktan çekinmeyin. UTC, Koordineli Evrensel Zaman, yani Koordineli Evrensel Zaman anlamına gelir. Bu GMT standardı tüm dünya için aynıdır ve bu formda sistem saati Ubuntu dahil Linux'ta depolanır ve saat dilimi düzeltmesi zaten her kullanıcı için yerel olarak eklenir. Zaman hatalarının nedeni burada yatmaktadır. Windows'u kullanmak ve Unix.

Dediğim gibi, Ubuntu zamanı UTC formatında saklarken, Windows bunun için yerel formatı zaten saat diliminin eklenmesiyle kullanıyor. Bilgisayar her kapatıldığında veya yeniden başlatıldığında, işletim sistemi zamanlayıcı değerini BIOS zamanlayıcısına kaydeder ve başlatıldığında buradan okur.

Görünüşe göre Microsoft'un işletim sistemi yerel zamandan tasarruf sağlıyor ve Ubuntu bunun UTC olduğunu düşünüyor... neler olduğunu zaten anlıyor musunuz? Bu doğru, bu tür yeniden başlatmalar ne kadar çok olursa, zaman gerçek olandan o kadar farklı olacaktır. Ama konu dışına çoktan çıktım. Her iki sistemde de senkronizasyon algoritmaları nasıl kurulur, burada anlatmayacağım, bugünkü hedefim Ubuntu'da zaman senkronizasyonu.

Ubuntu'da NTP Kurulumu

ntpdate zaman senkronizasyonu yardımcı programı ubuntu ile birlikte gelir ve başlangıçta otomatik olarak başlatılır. Şimdi terminalde çalışacak zamanı senkronize etmek istiyorsanız:

ntpdate -s ntp.ubuntu.com

ntpd hizmeti standart pakete dahil değildir, görevi sistem saatini sürekli olarak izlemek ve sapmaları düzeltmektir. ntpd'yi yüklemek için şunu yazın:

sudo apt-get install ntp

Daemon'u başlatmak için şunu yazın:

sudo hizmeti ntp başlangıcı

Ve otomatik yüklemeye eklemek için:

sudo rc-update ntp varsayılanlarını ekle

Ubuntu'muzun kontrol edeceği sunucuları /etc/ntp.conf dosyasında yapılandırabilirsiniz. Giriş formatı sunucu adresidir, örneğin standart konfigürasyon:

# NTP Havuz Projesi'ndeki sunucuları kullanın. Ubuntu Teknik Kurulu tarafından onaylandı
# 2011-02-08 tarihinde (LP: #104525). için http://www.pool.ntp.org/join.html adresine bakın.
# daha fazla bilgi.
server0.ubuntu.pool.ntp.org
server1.ubuntu.pool.ntp.org
server2.ubuntu.pool.ntp.org
server3.ubuntu.pool.ntp.org

Yapılandırmayı düzenledikten sonra hizmeti yeniden başlatmayı unutmayın:

sudo hizmeti ntp yeniden başlatma

Sorunların çözümü

Senkronizasyon hizmeti sunucuya bağlanmak için 123 numaralı bağlantı noktasını kullanır, bu nedenle bir güvenlik duvarı kullanırsanız bu bağlantı noktalarına erişim engellenebilir, aşağıdaki kuralları ekleyerek erişime izin vermelisiniz:

iptables -A çıktısı -p udp -s 192.168.1.1 --sport 1024:65535 -d 0/0 --dport 123 -m durum -- devlet YENİ, KURULAN -j KABUL

iptables -A input -p udp -s 0/0 --sport 123 -d 192.168.1.1 --dport 1024:65535 -m state --state KURULDU -j KABUL

Artık bilgisayarınızdaki saat her zaman doğru çalışacaktır.


Zaman senkronizasyonu, pek çok kişinin düşünmemesine rağmen önemli bir görevdir. Peki, sunucu zamanında kaçmanın nesi yanlış? Birçok saat sorununun kriptografiyle ilgili protokolleri etkilediğini biliyor muydunuz? Bu nedenle, içinde Aktif Dizin 5 dakikadan uzun saat farklılıkları, Kerberos kimlik doğrulama sorunlarına neden olur.

saatlik seviyeler. Strata.

Bir NTP cihazını anlamak için konsept hakkında bilgi sahibi olmalısınız. Strata veya tabaka. GPS uyduları, sezyum atom saatleri, WWVB radyo dalgaları gibi yetkili zaman kaynakları - tüm bunlar katman 0. Son derece doğru zaman işleyişi sağlamanın bir yolunu buldukları için yetkilidirler. Elbette sıradan kuvars saatler kullanabilirsiniz, ancak onlarla ayda 15 saniye kaybetmenin kolay olduğunu bilerek, onları bir zaman ölçüsü olarak kullanmamak daha iyidir. katman 0 bu, 300.000 yılda bir saniyenin kaybolmadığı zamandır!

Doğrudan (ağ üzerinden değil!) zaman alan bilgisayarlar katman 0- bu katman 1. Sinyal iletimi ve zaman ayarlama maliyetleri nedeniyle her zaman gecikmeler olduğundan, bilgisayarlar katman 1 kadar doğru değil katman 0, ancak gerçek hayatta fark birkaç mikrosaniyeye (1 µs = 10 -6 s) ulaşır ve bu oldukça kabul edilebilir bir sapmadır.

Ağ üzerinden zaman alan bir sonraki bilgisayar seviyesi katman 1- bu... davul... entrika... katman 2! Yine, çeşitli gecikmeler nedeniyle (kesinlikle ağ), katman 2 biraz geride katman 1 ve kesinlikle katman 0. Pratikte bu fark birkaç mikrosaniyeden (1 µs = 10 -6 s) birkaç milisaniyeye (1 ms = 10 -3 s) kadar değişir. Birçoğu artık katmanla senkronize etmek istemiyor katman 2.

Diyagramdan da anlaşılacağı gibi, katman 4üstlerden zaman alır katman 3. katman 5 de katman 4 ve benzeri. katman 16 en alt katman olarak kabul edilir ve orada zaman kabul edilir senkron dışında.

NTP protokolünü kullanarak saati senkronize etmek için önce saatinizi manuel olarak ayarlamanız gerekir. Tam saatiniz ile saatiniz arasında 1000 saniyeden fazla farka izin verilmez. Kullandığınız zaman sunucusu 1000 milisaniyeden (1 saniye) daha uzun süre yalan söylerse, listeden çıkarılır ve bunun yerine diğerleri kullanılır. Bu mekanizma, kötü zaman kaynaklarını filtrelemenize izin verir.

Zaman istemcisi.

/etc/ntp.conf dosyasında, Sunucu satırları istemci için önemlidir. Birkaç olabilir - 10 parçaya kadar!

Ne kadar eklemeli? Aklında tut:

  • Sadece bir sunucunuz varsa (bir sunucu hattı), o zaman bu sunucu yalan söylemeye başlarsa, körü körüne takip edeceksiniz. Zamanı 5 saniye biterse ve onun peşinden koşarsan.
  • 2 sunucu eklenirse (2 sunucu satırı), NTP her ikisini de sahte işaretler. Biri yalan söylerse, çoğunluk olmadığı için NTP kimin yalan söylediğini anlayamaz.
  • 3 veya daha fazla zaman sunucusu eklenirse, bir yalancı hesaplanabilir sahte işaretler. 5 veya 6 zaman sunucusu varsa, 2 yalancı bulabilirsiniz sahte işaretler. 7 veya 8 sunucu varsa, 3 sahte işaretler. 9 ve 10 sunucu varsa, 4 sahte işaretler.

NTP Havuz projesi.

Rus kullanıcıları için önerilen zaman sunucularını pool.ntp.org/zone/ru/ adresinde bulabileceğiniz böyle bir NTP Pool projesi var.

server0.ru.pool.ntp.org
server1.ru.pool.ntp.org
server2.ru.pool.ntp.org
server3.ru.pool.ntp.org

Debian ve Ubuntu gibi işletim sistemleri, kullanıcılara kendi zaman sunucularını sunar.

server0.debian.pool.ntp.org
server1.debian.pool.ntp.org
server2.debian.pool.ntp.org
server3.debian.pool.ntp.org

server0.ubuntu.pool.ntp.org
server1.ubuntu.pool.ntp.org
server2.ubuntu.pool.ntp.org
server3.ubuntu.pool.ntp.org

NTP kullanan Linux makinenizde ntpq -pn'yi çağırırsanız

Yoklama gecikme ofseti titreşimine ulaştığında uzaktan refid st t ======================================= = ===================================== +93.180.6.3 77.37.134.150 2 u 62 1024 377 53.658 - 0.877 1.174 +85.21.78.23 193.190.230.65 2 u 1027 1024 377 54.651 0.167 1.531 *62.173.138.130 89.109.251.24 2 u 940 1024 377 52.796 -0.143 1.001 +91.206.16.3 194.190.168.1 2 u 258 1024 377 93.89682 - 91.189.94.4 193.79.237.14 2 u 596 1024 377 100.219 1.562 1.482

Sütun adları ne diyor?

  • uzak- zamanı senkronize ettiğiniz uzak sunucular.
  • tekrarlamak- bu sunucu için üstün katman.
  • Aziz- katman seviyesi. 0'dan (bizim için uygun değil) 16'ya (bizim için uygun değil). İdeal - 2.
  • t- bağlantı türü. " sen"- tek noktaya yayın veya çok noktaya yayın," b"-yayın veya çok noktaya yayın," ben" yerel referans saati, " s" - simetrik düğüm, " A" - manycast sunucusu, " B"-yayın sunucusu," M"- çok noktaya yayın sunucusu.
  • ne zaman- sunucunun bize en son yanıt verdiği saat. Parametre, sayıyı saniye cinsinden görüntüler, ancak sayı ise dakika cinsinden olabilir. m veya saat ise h.
  • anket- yoklama sıklığı. Minimum 16 saniye, maksimum 32 saat. Sayı 2 n olmalıdır. Genellikle bu parametrede 64 saniye veya 1024 vardır.
  • ulaşmak- Uzak zaman sunucusuyla iletişimin durumunu gösteren 8 bitlik bir oktet: başarı veya başarısızlık. Bitler ayarlanmışsa, başarı, aksi takdirde başarısızlık. 377 değeri ikili 0000 0000 1111 1111'dir.
  • gecikme- milisaniye cinsinden değer, yanıt gönderme ve alma arasındaki süreyi gösterir (gidiş dönüş süresi - RTT).
  • telafi etmek- siz ve zaman sunucuları arasında milisaniye cinsinden denge. Pozitif veya negatif sayı olabilir.
  • titreme- ofsetinizin standart sapmasını gösteren milisaniye cinsinden mutlak bir değer.

NTP sunucusunun IP adresinden önce bir sembol vardır - bu taksitli kod. Çeşit taksitli kod:

  • " " - geçersiz olarak atıldı. Örneğin, onunla bir bağlantısı yok ya da çevrimdışı, rütbesi çok yüksek ve sizin gibilere hizmet etmiyor.
  • "x"- "kavşak" algoritması tarafından atılır. Kesişme algoritması, senkronizasyon kaynağı olabilecek aday ortakların bir listesini hazırlar ve her biri için bir güven aralığı hesaplar.
  • "." - tablo taşması nedeniyle düştü.
  • "-" - küme algoritması tarafından atılır. Kümeleme algoritması, aday listesini katman kodlarına ve senkronizasyon mesafelerine göre sıralar.
  • "+" - sunucu "birleştirme algoritması" tarafından etkinleştirilir. Mevcut zaman sunucunuz sizi başarısızlığa uğratmaya başlarsa, bu sunucu harika bir adaydır.
  • "#" - sunucu harika bir alternatif zaman sunucusudur. # ile gösterilen sunucu yalnızca /etc/ntp.conf dosyasında 10'dan fazla sunucu girişiniz varsa görülebilir.
  • "*" - şimdiki zaman sunucusu. Okumaları saatlerinizi senkronize etmek için kullanılır.
  • "Ö"- Saniyede darbe (PPS) sunucusu. Bu genellikle bu zaman sunucusunun GPS uyduları ve diğer kesin zaman sinyalleri gibi zaman kaynaklarını kullandığı anlamına gelir. çizilirse hakkında, diğer tally kodu türleri artık görüntülenmez.

alanında tekrarlamak aşağıdaki değerler olabilir:

  • IP adresi - uzak zaman sunucusunun adresi.
  • .ACST.- NTP manycast sunucusu.
  • .ACTS.-Otomatik Bilgisayar Zaman Hizmeti Amerikan Ulusal Standartlar ve Teknoloji Enstitüsü'nden.
  • .AUTH.- kimlik doğrulama hatası.
  • .OTOMATİK - Otomatik anahtar dizilerinde hata.
  • .BCST.- NTP yayın sunucusu.
  • .CHU.- Ottawa, Ontario, Kanada'daki MUB istasyonundan kısa dalga radyo alıcısı.
  • .CRYPT.- Otomatik anahtar protokol hatası.
  • .DCFx.- Almanya, Mainflingen'deki DCF77 istasyonundan LF radyo alıcısı.
  • .DENY.- Erişim reddedildi.
  • .GAL.-Avrupa Galileo uydu alıcısı.
  • .GOES.- Amerikan Geostationary Operasyonel Çevresel Uydu alıcısı.
  • .GPS.-Amerikan Küresel Konumlandırma Sistemi alıcısı.
  • .HBG.- İsviçre, Prangins'deki HBG istasyonundan LF radyo alıcısı.
  • .INIT.- Akran ilişkilendirmesi başlatıldı.
  • .IRIG.- Aralıklar Arası Enstrümantasyon Grubu zaman kodu.
  • .JJY.- Fukushima yakınlarındaki Otakadoya Dağı'ndaki JJY İstasyonundan veya Japonya, Kyushu Adası'ndaki Hagane Dağı'ndan LF radyo alıcısı.
  • .LFx.- Normal LF radyo alıcısı.
  • .LOCL. - ana bilgisayarın yerel saati.
  • .LORC.- Uzun Menzilli Navigasyondan (LORAN-C) LF radyo alıcısı.
  • .MCST.- NTP çok noktaya yayın sunucusu.
  • .MSF.- Anthorn, Cumbria yakınlarındaki Anthorn Radyo İstasyonu.
  • .NIST.-Amerikan Ulusal Standartlar ve Teknoloji Enstitüsü.
  • .PPS.- saat Darbe/saniye.
  • .PTB.- Brunswick ve Berlin, Almanya'dan Physikalisch-Technische Bundesanstalt.
  • .RATE.- NTP yoklama eşiği aşıldı.
  • .ADIM.- NTP adımını değiştirin. Ön yargı telafi etmek 1000 milisaniyeden az, ancak 125 milisaniyeden fazla.
  • .TDF.- Fransa, Allouis'deki TéléDiffusion de France istasyonundan LF radyo alıcısı.
  • .TIME.- NTP ilişkilendirme zaman aşımı.
  • .USNO.- Amerika Birleşik Devletleri Deniz Gözlemevi.
  • .WWV.- Fort Collins, Colorado, Amerika Birleşik Devletleri'ndeki WWV istasyonundan HF radyo alıcısı.
  • .WWVB.- Fort Collins, Colorado, Amerika Birleşik Devletleri'ndeki WWVB istasyonundan LF radyo alıcısı.
  • .WWVH.- Amerika Birleşik Devletleri, Hawaii'deki Kauai adasındaki Kekaha'daki WWVH istasyonundan HF radyo alıcısı.

İlk olarak, nasıl zaman kazanılacağı düşüncesinden kurtulun. katman 1, tam saate en yakın olduklarını söylüyorlar. Gezegendeki en doğru zamana daha yakındırlar, yalnızca kendileri aşırı yüklenmiştir ve normal sunucular için yüksek RTT gecikmelerine sahiptirler. normal birini bulsan iyi olur katman 2 ve bunun için endişelenme. Normal hayatta oldukça yeterli olan mikrosaniye ve milisaniyelerden bahsettiğimizi unutmayın.

İkinci olarak, en yakın zaman sunucusuna bağlanmanın her zaman ideal olmadığını unutmayın. Daha önemli olan bölgesel yakınlık değil, tabaka düzeyidir. NTP Havuzu projesi, yalnızca düzeydeki sunucuların bir listesini yayınlar. katman 1 ve katman 2 ve bu listeden 10 adede kadar sunucu almak daha iyidir, ki bu gayet iyi olacaktır.

Üçüncüsü, basit bir ev istemcisi kullanıcısıysanız, o zaman size önerilen sunucular işletim sistemi ekstra jest gerektirmeyen ideal bir seçenek olacaktır.

Büyük ofisler için en iyi seçenek, iş bilgisayarları için kendi zaman sunucunuzu kurmak olacaktır. Bu sunucuİnternet zaman sunucularından tam zamanı alacak ve sağlayacaktır yerel bilgisayarlar. Debian ve Ubuntu sunucularında, satırın yorumunu kaldırmanız yeterlidir

192.168.0.0 maskesini kısıtla 255.255.0.0 nomodify notrap

ntpd arka plan programı yapılandırma dosyasında - /etc/ntp.conf

192.168/16 ağındaki kullanıcılar, sunucunuzdan en doğru saati alabileceklerdir. Dahili sunucular için Linux tabanlı zaman sunucusu olmayan ve kendi işini yapan ntpd arka planını client modunda çalıştırmak yerine /etc/cron.daily/syncntpd dosyasında belirtmeniz yeterlidir. ntpdate ve ntp arasındaki farkları okumanız ve kendiniz karar vermeniz önerilir.
#!/bin/sh
/usr/sbin/ntpdate sunucunuzun IP adresi > /dev/null 2>&1
0 çıkışı

ve günde bir kez ntpdate komutu sayesinde zaman senkronizasyonu yapılacaktır. Yanlış anlamaları önlemek için, bir zaman sunucusunu uygulamadan ve her şeyi ve her şeyi NTP protokolü aracılığıyla senkronize etmeden önce tembel olmayın - size sunulan tüm sunucularda ve iş istasyonlarında doğru zamanı manuel olarak ayarlayın. Senkronize olmayan zamanınız doğru olandan çok farklıysa, başlangıçta birçok gereksiz sorun başlatabilirsiniz.

Dördüncüsü, NTP, hangi ülkede ve hangi saat dilimlerinin kullanıldığı, yaz ve kış saatine geçişin nasıl gerçekleştiği ve bu ülkede böyle bir geçiş yapılıp yapılmadığı ile hiçbir şekilde ilgili değildir. Bu sorumluluk, ülkede saatçilikte bir değişiklik olması durumunda güncellemeniz gereken işletim sistemine aittir. Debian ve Ubuntu sistemlerinde bundan tzdata paketi sorumludur ve güncel olmalıdır.

Beşincisi, NTP sunucunuzu çok yüklü bir sistemde yükseltmemek daha iyidir.

Ağ Zaman Protokolü, paket anahtarlamaya dayalı değişken gecikmeli ağlar kullanarak bir bilgisayarın dahili saatini senkronize etmek için bir ağ protokolüdür.

Geleneksel olarak NTP, çalışması için UDP'yi kullanmasına rağmen, TCP üzerinden de çalışabilir. NTP sistemi, medya gecikmesindeki değişikliklere karşı son derece sağlamdır.

NTP sisteminde zaman, 32 bitlik bir ikinci sayaç ve 32 bitlik bir kesirli ikinci sayaçtan oluşan 64 bitlik bir sayı olarak temsil edilir ve zamanın 2-32 saniye aralığında ve teorik olarak 2 doğrulukla iletilmesine izin verir. -32 saniye. NTP'deki zaman ölçeği her 232 saniyede bir (136 yıl) tekrarlandığından, alıcının en azından kabaca şimdiki zamanı bilmesi gerekir (68 yıllık bir doğrulukla). Ayrıca, zamanın 1970'ten değil, 1 Ocak 1900'deki gece yarısından itibaren ölçüldüğünü unutmayın; bu nedenle, zamanı Windows veya Unix sistemleriyle doğru bir şekilde hizalamak için NTP zamanından neredeyse 70 yıl (artık yıllar dahil) çıkarılmalıdır. .

Nasıl çalışır

NTP sunucuları hiyerarşik bir ağda çalışır, hiyerarşinin her düzeyine katman (katman) denir. Tier 0, referans saati ile temsil edilir. Standart olarak alındı GPS sinyali(Küresel Konumlandırma Sistemi) veya ACTS (Otomatik Bilgisayar Zaman Hizmeti). Sıfır katmanında NTP sunucuları çalışmaz.

Tier 1 NTP sunucuları, bir referans saatinden zaman verisi alır. Tier 2 NTP sunucuları Tier 1 sunucuları ile senkronizedir.Toplamda en fazla 15 katman olabilir.

NTP sunucuları ve NTP istemcileri, zaman verilerini Katman 1 sunucularından alır, ancak pratikte NTP istemcileri, Katman 1 sunucuları için binlerce bireysel istemci isteği çok fazla olacağından bunu yapmamaları daha iyi olur.Yerel bir NTP kurmak daha iyidir. müşterilerinizin saat hakkında bilgi almak için kullanacağı sunucu.

NTP protokolünün hiyerarşik yapısı hataya dayanıklı ve gereksizdir. Çalışmalarından bir örneğe bakalım. İki Katman 2 NTP sunucusu, her biri bağımsız bir bağlantı üzerinde bulunan altı farklı Katman 1 sunucusuyla senkronize olur. Dahili ana bilgisayarlar, dahili NTP sunucuları ile senkronize edilir. İki Tier 2 NTP sunucusu, zamanı birbiriyle koordine eder. Katman 1 sunucusuna veya Katman 2 sunucularından birine bağlantı başarısız olursa, yedek Katman 2 sunucusu eşitleme işlemini üstlenir.

Benzer şekilde, Tier 3 ana bilgisayarları ve cihazları, Tier 2 sunucularından herhangi birini kullanabilir.Daha da önemlisi, yedekli bir NTP sunucuları ağına sahip olmak, zaman sunucularının her zaman kullanılabilir olmasını sağlar. NTP, birden çok zaman sunucusuyla senkronize ederek, en doğru zamanı hesaplamak için tüm kaynaklardan gelen verileri kullanır.

NTP protokolünün zamanı en saf haliyle ayarlamadığını belirtmekte fayda var. NTP sunucusundaki saat ile yerel saat arasındaki fark olan zaman sapmasını kullanarak yerel saati düzeltir. NTP sunucuları ve istemcileri, aşağıdakilerle senkronize ederek saatlerini ayarlar. şimdiki zaman yavaş yavaş veya hepsi birden.