Protokol NTP Radim Kunčický - KUN0009 Tomáš Bureš - BUR0049 Abstrakt: Práce popisuje základní principy funkce protokolu NTP a jeho možnosti použití v prostředí edí sítí. Dále je v práci popsána testovací topologie postavená na zařízeních zařízeních firmy Cisco řady 2800. Jsou zde také popsány možnosti řešení problémů. Klíčová slova: NTP, autentizace, troubleshooting, debuging
Obsah 1.
Úvod ................................................................ ................................................................................................ .......................................................... 2
2.
Protokol NTP ................................................................................................................................ ................................ ............................................. 2
3.
Podpora na zařízeních Cisco................................................................................................ ................................ ...................................................... 2
4.
Vzorová topologie ................................................................................................................................ ................................ ..................................... 3
5.
Závěr ................................................................ ................................................................................................ .......................................................... 3
6.
Literatura ................................................................ ................................................................................................ ................................................... 8
Zkratky ACL DVB GPS NTP OSPF UTC
květen ’14
Access control list Digital Video Broadcasting Global Positioning System Network Time Protocol Open Shortest Path First Coordinated Universal Time
1/8
1.
Úvod
První počítače IBM PC XT si nebyly po vypnutí schopný zapamatovat systémový čas a bylo nutné jej opětovně nastavit. S rozvojem internetu a sítí bylo čím dál tím více nutnější znát přesný čas , například v relačních databázích používajících timerstamp značky je přesný čas nutností. Podobnou situaci můžeme nalézt i v prostředí síťového autonomního systému. Je vhodné aby všechny směrovače pracovaly se stejným časem, v případě kolapsu sítě jsme schopni v systémových záznamech hledat příčiny a následky. Zdrojem přesných hodin mohou být atomové hodiny, které jsou ale velmi drahé. Pro koncového uživatele může být zdrojem protokol NTP, rádiový signál DCF77, navigační systém GPS nebo i televizní vysílání DVB.
2.
Protokol NTP
Network Time Protocol je určen k synchronizaci systémového času mezi zařízeními v prostředí paketových sítí. Důležitou vlastností protokolu je schopnost vyrovnat se s proměným spožděním paketů. Je definován v RFC 1119, RFC 1305, RFC 2030 a současná verze 4 je popsána v RFC 5905. Protokol pracuje s UTC časem a běžně dosahuje přesnosti v řádu milisekund až mikrosekund. Pro komunikaci využívá UDP na portu 123. Protokol pracuje na principu klient-server. Klient zašle dotaz několika různým NTP serverům v síti. Podle jejich odpovědí hledá Mar-zullovým algoritmem skupinu serverů s nejmenším rozptylem času a jeden z nich následně vybere jako zdroj, podle kterého bude upřesňovat svůj čas. NTP používá hierarchický systém strata hodin, kde za stratum 0 můžeme označit samotný zdroj hodin a stratum 1 server, který je s tímto fyzickým zdrojem přímo synchronizován a poskytuje dále službu pomocí NTP. Úrovní hierarchie je 14, kde 14 úroveň je nejnižší a hodnota 15 je vyhrazena pro případ, kdy není možné hodiny synchronizovat. Stratum úroveň klienta je vždy vyšší než serveru, se kterým je synchronizován, což zabraňuje vzniku smyček v synchronizaci.
3.
Podpora na zařízeních Cisco
Zařízení firmy Cisco mohou pracovat v režimu klienta, funkce serveru je dostupná od verze NX-OS 5.2. Operační systém verze podporuje více synchronizačních protokolů a sdílení zdrojů mezi virtuálními kontexty a virtuálními instancemi směrovače. Od verze 5.2 může také existovat více instancí NTP, což je výhoda v případě virtualizace. Žádné ze zařízení firmy Cisco není hardwarově vybaveno možností k připojení fyzického zdroje hodin, nemohou tedy být stratum 1. Směrovač, který má být synchronizován musí být připojen ke zdroji hodin. Existuje ale také možnost nastavit jeden směrovač jako autoritativní. Možné role zařízení jsou: • • •
Klient - Toto zařízení synchronizuje své hodiny pomocí nastavených serverů ale neposkytuje tyto služby dále. Server - poskytuje synchronizační údaje klientům nebo peerum, je připojen ke zdroji hodin, nebo je nastaven jako autoritativní. Nebude synchronizovat svůj čas oproti jiným serverům ani klientům. Peer - Při použití tohoto modelu nemá žádné zařízení roli centrálního serveru - nemá autoritu. Synchronizuje oproti zdrojům NTP, tedy serverům a jiným peerům a samo poskytuje služby NTP.
květen ’14
2/8
4.
Vzorová topologie
Našim cílem bylo demonstrovat hierarchickou topologii, která by odpovídala možnému využití v prostředí AS. Síť je postavena na protokolu IPv4 a používá směrování pomocí OSPF.
V této topologii hraje směrovač roli Stratum 1, v případě většího AS jej můžeme považovat za množinu serverů, které budeme na internetu využívat k synchronizaci, je použit směrovač Cisco 2800 series a je nastaven jako autoritativní. Všechny směrovače jsou typu Cisco 2800 series. Směrovače RB a RE slouží jako peerové, lze je tedy považovat za naše interní servery, na které budou klienti nasměrováni. Topologie má dva peery, pro případ výpadku jednoho z nich. V poslední řadě RF symbolizuje množinu klientů využívajících služby NTP.
4.1. Konfigurace autoritativního serveru - RA RA(config)# ntp master 4
- tímto příkazem aktivujeme NTP a nastavíme směrovač jako autoritativní s úrovní stratum 4
4.2. Konfigurace peerů RB(config)# ntp peer 10.0.0.10 RB(config)# ntp peer 10.0.0.1
- peerování mezi sebou - nastavení serveru, lze doplnit o příkazy maxpoll <4-16s> nebo minpoll <4-16s>, které určují minimální a maximální dobu jak často bude server dotazován
RB(config)# ntp peer 10.0.0.10 RE(config)# ntp peer 10.0.0.5
- peerování mezi sebou - nastavení serveru
4.3. Konfigurace klienta RF(config)# ntp server 10.0.0.17 RF(config)# ntp server 10.0.0.9
květen ’14
3/8
4.4. Autentizace NTP Protokol NTP může využívat autentizaci. Je nutné si uvědomit, že autentizace neslouží k ověření identity klienta ale serveru. Autentizační klíče nelze distribuovat jinak než ručně. V naší topologii budeme autentizovat jen peery. RB(config)# ntp authentication-key 1 md5 CISCO -nastavení klíče RB(config)# ntp trusted-key 1 -které klíče budou využívány RB(config)# ntp authenticate - aktivace autentizace RE(config)# ntp authentication-key 1 md5 CISCO RE(config)# ntp trusted-key 1 RE(config)# ntp authenticate RF(config)# RF(config)# RF(config)# RF(config)# RF(config)#
ntp ntp ntp ntp ntp
authentication-key 1 md5 CISCO trusted-key 1 server ntp server 10.0.0.17 key 1 server ntp server 10.0.0.9 key 1 authenticate
4.5. Ověření funkčnosti, debugging a troubleshooting Informace o aktuálním čase, který operační systém používá a zdroji hodin můžeme získat pomocí příkazu: RA#show clock detail *09:51:56.451 UTC Tue Apr 8 2014 Time source is hardware calendar RF#show clock detail *09:49:54.099 UTC Tue Apr 8 2014 Time source is NTP
Informace o momentálním stavu NTP lze získat pomocí příkazů: RB#show ntp status Clock is synchronized, stratum 6, reference is 10.0.0.1 nominal freq is 250.0000 Hz, actual freq is 250.0025 Hz, precision is 2**24 reference time is D6EE4AAB.549FAA0E (10:15:07.330 UTC Tue Apr 8 2014) clock offset is -2.0004 msec, root delay is 23.16 msec root dispersion is 9.05 msec, peer dispersion is 2.98 msec loopfilter state is 'CTRL' (Normal Controlled Loop), drift is -0.000010127 s/s system poll interval is 64, last update was 236 sec ago. RF#sh ntp associations address ref clock st when poll reach delay offset disp *~10.0.0.13 10.0.0.10 7 30 64 77 2.022 -8.336 189.64 ~10.0.0.17 10.0.0.5 6 52 64 3 23.307 -11.879 3937.7 * sys.peer, # selected, + candidate, - outlyer, x falseticker, ~ configured
Protokol NTP je navržen tak aby jeho chod byl co nejvíce automatický, výběr zdroje hodin probíhá na základě vnitřních algoritmů a jediné co lze ovlivnit je doba jak často bude zdroj dotazován, která ale nemá vliv na čas, za který se zvolí reference. Další možností jak ovlivnit chod protokolu je možnost nastavení preferovaného serveru. Omezení přístupu ke službě lze realizovat pomocí ACL. Pro debugování chodu protokolu je určen příkaz: debug ntp packets
květen ’14
4/8
Pokud dojde k problémům v chodu protokolu můžeme informaci o chybě nalézt ve výpisu příkazu: RF#sh ntp associations address ref clock st when poll reach delay offset disp ~10.0.0.13 10.0.0.10 7 45 64 17 1.971 -9.370 439.66 ~10.0.0.17 .AUTH. 16 67 64 0 0.000 0.000 16000. * sys.peer, # selected, + candidate, - outlyer, x falseticker, ~ configured Zde je znázorněna situace ke které dojde v případě že není možné server autentizovat. V tomto místě jsou vypisovány i informace v průběhu navazování komunikace. Ukázka paketu, který byl zachycen při testování topologie je zobrazen na následujícím obrázku:
květen ’14
5/8
5.
Další možnosti testování ve školní laboratoři
Novější verze operačního systému firmy Cisco určená pro směrovače a přepínače řady Nexus (NX-OS) přidává další možnosti debugování chodu protokolu NTP. show ntp access-groups Zobrazí konfiguraci přístupových skupin show ntp authentication-keys Zobrazí konfigurované autentizační klíče show ntp authentication-status Zobrazí status autentizace show ntp internal Zobrazí interní informace o chodu protokolu NTP show ntp logging-status Vypíše informace o loggování show ntp peer-status Status pro všechny servery a peery show ntp peers Seznam všech peerů show ntp pending Výpis dočasné CFS databáze pro NTP show ntp pending-diff Rozdíl mezi aktuální CFS a čekající CFS show ntp rts-update Výpis stavu RTS update show ntp session status Vypíše informace o stavu sezení distribuce CFS show ntp source Seznam konfigurovaných zdrojů NTP show ntp source-interface Informace o konfigurovaných rozhraních ze kterých je přijíman NTP show ntp statistics {io | local | memory | peer {ipaddr {ipv4-addr | ipv6-addr} | name peer-name}} Statistiky chodu NTP show ntp trusted-keys Seznam důvěryhodných klíčů show running-config ntp Informace o nastavení NTP clear ntp session Vymazání stavových informací sezení clear ntp statistics Vyresetování statistik NTP NX-OS není v laboratoři k dispozici. Jednou z možností by bylo otestovat podporu těchto příkazů ve virtuálním routerů Cisco CSR 1000V, který je v laboratoři k dispozici. CSR 1000V je vybaven operačním systémem IOS-XE, který je pokračovatelem původního IOS a je určen pro podnikovou sféru. Lze tedy očekávat, že mohlo dojít k doplnění funkcionality.
květen ’14
6/8
6.
Závěr
Protokol NTP patří k jednomu z nejstarších a na zařízeních firmy Cisco je velmi dobře implementován. Celá testovací topologie fungovala na první pokus a nenarazili jsme na větší problémy. Při využití NTP je nutné si uvědomit, že k synchronizaci nedojde okamžitě po přijetí packetu, ale v závislosti na vnitřních algoritmech protokolu a vnitřních hodinách zařízení a možností jak ovlivnit jeho chod je velmi málo. Doba, za kterou dojde k synchronizaci, může snadno překročit i desítky minut. Uvedená topologie je jednou z možností jak v prostředí AS nebo datacentra protokol NTP využívat. Další variantou, která je ale náročnější na konfiguraci je tzv. "flat" nehierarchická struktura složená z peerů a případně několika (>2) stratum 1 serverů. V této topologii budou mezi sebou peerové udržovat vazbu každý s každým, díky čemu je odolná proti výpadkům. Příklad flat topologie a porovnání s hierarchickou je na následujícím obrázku.
květen ’14
7/8
7.
Literatura
[1] O, Jombík, „Synchronizácia času - NTP protokol - Root.cz“ [Online]. Dostupné: http://www.root.cz/clanky/synchronizacia-casu-ntp-protokol/. [Přístup získán 20.4. 2014]. [2] K. Chvalovský, „NTP: Filozofie synchronizace času po Internetu - Lupa.cz,“ [Online]. Dostupné: http://www.lupa.cz/clanky/ntp-filozofie-synchronizace-casu-po-internetu/. [Přístup získán 20.4. 2014]. [3] Wireshark Foundation, „Wireshark · Go Deep.,“ [Online]. Available: http://www.wireshark.org/. [Přístup získán 28 Listopad 2013]. [4] Cisco, „Configuring NTP,“ [Online]. Dostupné: http://www.cisco.com/c/en/us/td/docs/switches/datacenter/sw/5_x/nxos/system_management/configuration/guide/sm_nx_os_cg/sm_3ntp.html. [Přístup získán 21.4. 2013].
květen ’14
8/8