SOCL.cz
blog nejen o Internetu

Vlastní veřejný NTP server - připojte se také

publikováno 19. 4. 2018 v 20:25 (aktualizováno 24. 9.)

Občas přemýšlím, jak udělat něco prospěšného pro všeobecné blaho s pomocí nevyužitého výkonu mého virtuálního serveru. Když už to platím, ať to k něčemu je, že jo. Vlastní veřejný NTP server bude fajn.

V minulosti tu byly mé snahy stran podpory anonymizační sítě TOR, kdy jsem provozoval non-exit TOR node. Pro tuto činnost je ale lepší mít vyhrazený server, který k ničemu jinému není využit, protože provozování TORu může negativně ovlivnit reputaci vaší veřejné IP adresy. Pokud provozujete poštovní server a někdo začne vaši poštu odmítat na základě nějakého blacklistu, který sleduje aktivní TOR nody, jistě nebudete mít radost...

Dobře, TOR jsem dal na nějaký čas k ledu. Alespoň do doby, než pro něj seženu ideální levný vyhrazený virtuál. Jednoho adepta už mám. Dobře, co se nabízí dál? Při chvilce jsem rozjel mirror pro známého SSH a telnet klienta Putty - nevyžaduje mnoho místa na HDD ani žádnou obsluhu, vše je plně automatizováno. Takových mirrorů ale po světě je. A stejně tak třeba veřejných DNS, do toho se pouštět nebudu. O herním serveru ani nemluvě.

pool.ntp.org

Až nedávno jsem narazil na projekt www.pool.ntp.org a ten mi učaroval. Jedná se o velký cluster časových (NTP) serverů rozmístěných po celém světě. Protokol NTP zná jistě každý správce serveru a většina z nich jej i nějak aktivně využívá pro synchronizaci času. V dávných dobách, kdy jsem se seznamoval s Linuxem, jsem používal prostý příkaz ntpdate tik.cesnet.cz, který jsem periodicky spouštěl z Cronu. Dnes jsem rozumnější a používám ntpd. Vlastně to už také není tak úplně pravda - přešel jsem na chrony ve snaze mít na serveru co nejpřesnější čas, který mohu nabízet ostatním lidem, stručně řečeno. :)

Jaký server je potřeba?

Pro připojení k projektu hlavně potřebujete statickou IP adresu (doporučuji IPv4 i IPv6 konektivitu) a permanentní připojení k Internetu. Co se týká nároků na šířku pásma, stačí relativně málo, stejně tak CPU výkon. Komunikace probíhá pomocí protokolu UDP (port 123). Níže lze vidět vytížení sítě na mém serveru, většinu provozu dělá právě NTP komunikace:

Vytížení sítě
Statistika vytížení sítě na serveru

To není tak hrozné, že? Očekávám, že měsíční objem přenesených dat v rámci provozu NTP serveru může být u mne okolo 200GB. Alespoň to sleduji nyní ze statistik. Četl jsem na fóru příspěvky lidí (z Asie), kterým provoz NTP serveru v poolu generuje klidně několik TB měsíčně, doslova desítky tisíc požadavků za sekundu! To už je solidní zátěž.

I want your server

V České Republice máme do projektu zapojeno poměrně málo serverů, viz www.pool.ntp.org/zone/cz - aktuálně 30 IPv4 a 14 IPv6 serverů. Nic moc. Pokud se vám zdá provoz vlastního veřejného NTP serveru jako zajímavá věc, máte k dispozici server na Internetu a chcete pomoci, mrkněte na www.pool.ntp.org/join.html a připojte se také! :)

--- aktualizováno ---

Tak musím říci, že se vzrůstající zátěží se začaly objevovat podivné chvilkové výpadky konektivity serveru. Původně jsem si myslel, že je problém u poskytovatele, ale bylo tomu jinak. Tohle jsem našel v logu:

Sep 16 05:07:52 server kernel: nf_conntrack: table full, dropping packet
Sep 16 05:07:52 server kernel: nf_conntrack: table full, dropping packet
Sep 16 05:07:52 server kernel: nf_conntrack: table full, dropping packet
Sep 16 05:07:52 server kernel: nf_conntrack: table full, dropping packet
Sep 16 05:07:52 server kernel: nf_conntrack: table full, dropping packet

Takže problém s connection tracking v kernelu a počtem spojení. Řešením je ntp provoz vyjmout ze sledování (NOTRACK). Já na serveru využívám firewalld:

Vytvořil jsem soubor /etc/firewalld/direct.xml:

<?xml version="1.0" encoding="utf-8"?>
<direct>
  <rule priority="0" table="filter" ipv="ipv4" chain="INPUT">-p udp --dport 123 -j ACCEPT</rule>
  <rule priority="0" table="raw" ipv="ipv4" chain="OUTPUT">-p udp --sport 123 -j NOTRACK</rule>
  <rule priority="0" table="raw" ipv="ipv4" chain="PREROUTING">-p udp --dport 123 -j NOTRACK</rule>

  <rule priority="0" table="filter" ipv="ipv6" chain="INPUT">-p udp --dport 123 -j ACCEPT</rule>
  <rule priority="0" table="raw" ipv="ipv6" chain="OUTPUT">-p udp --sport 123 -j NOTRACK</rule>
  <rule priority="0" table="raw" ipv="ipv6" chain="PREROUTING">-p udp --dport 123 -j NOTRACK</rule>
</direct>

štítky: conntrack Internet NTP VPS
4281x přečteno

Komentáře k článku (0)

Zatím nikdo nic nenapsal, chcete být první?
Vaše jméno/přezdívka: (max 40 znaků)

Web: (nepovinné, zadejte s http(s)://, max 100 znaků)

Opiště sekvenci znaků:

captcha!

Zde napište komentář: (max 512 znaků)

Copyright © 2015-2024 SOCL.cz, RSS 2.0 RSS kanál blogu
Všechna práva vyhrazena, nebo tak nějak.

WEDOS BANNER