Kategoria: NTP – Network Time Protocol

  • (K) Konfiguracja protokołu SNTP*

    (K) Konfiguracja protokołu SNTP*

    Konfiguracja protokołu SNTP

    Podstawowa konfiguracja protokołu SNTP

    Urządzenie z skonfigurowanym protokołem NTP domyślnie jest klientem oraz serwerem jednocześnie. Dzięki czemu może aktualizować swój czas systemowy z innymi bardziej zaufanymi urządzeniami np. zegarem atomowym jak i samemu odpowiadać na zapytania protokołu NTP od innych hostów w sieci. Aby skonfigurować jedynie rolę klienta należy użyć protokołu SNTP (Simplified Network Time Protocol).
    SNTP nie może funkcjonować razem z protokołem NTP, ponieważ obydwa protokoły korzystają z tych samych portów L4.

    (config)# sntp server {nazwa-hosta / adres-IP} prefer

    Określa adres IP bądź nazwę domenową serwera SNTP (dodatkowa opcja „prefer” definiuje adres jako domyślny w przypadku skonfigurowania większej liczby serwerów SNTP).

    (config)# sntp source-interface interfejs

    Określa interfejs źródłowy, dla wysyłanych komunikatów SNTP.

    Autentykacja protokołu SNTP

    (config)# sntp authentication-key ID-klucza md5 klucz

    Definiuje klucz z przypisanym numerem ID.

    (config)# sntp authenticate

    Aktywuje uwierzytelnianie serwerów SNTP.

    (config)# sntp trusted-key ID-klucza

    Określa zaufany klucz do uwierzytelniania serwerów SNTP.

    (config)# sntp server {nazwa-hosta / adres-IP} key ID-klucza

    Przypisuje klucz dla danego serwera SNTP.

    Komendy Show

    # show clock [detail]

    Wyświetla czas oraz date lokalnego systemu (software). Dodatkowa komenda „detail” wyświetla źródło, z którego system pobierał informacje o czasie zegara.

    # show calendar

    Wyświetla czas oraz date lokalnego urządzenia (Hardware). Dodatkowa komenda „detail” wyświetla źródło, z którego system pobierał informacje o czasie zegara.

    # show ntp associations

    Wyświetla skonfigurowane serwery czasu. W przypadku klienta komunikat „unsynchronized” oznacza, że urządzenie nie pobiera jeszcze żadnych danych od serwera NTP. Natomiast w przypadku serwera „ntp master” ten komunikat będzie widoczny przez cały czas.

    # show ntp status

    Wyświetla status protokołu NTP na danym urządzeniu.

    # show ntp config

    Wyświetla konfiguracją protokołu NTP na danym urządzeniu.

    # show ntp information

    Wyświetla informacje dotyczące wersji protokołu NTP na danym urządzeniu.

    # show ntp packets

    Wyświetla ilość wysłanych / odebranych pakietów protokołu NTP na danym urządzeniu.

    Pozostałe tematy związane z protokołem NTP

  • (K) Konfiguracja protokołu NTP*

    (K) Konfiguracja protokołu NTP*

    Konfiguracja protokołu NTP

    Ręczna konfiguracja czasu lokalnego

    Konfiguracja zegara

    # clock set godzina:minuta:sekunda dzień miesiąc rok

    Ustawia nową godzinę jak i nową datę urządzenia.

    # clock update-calendar

    Aktualizuję ustawienia czasu systemu IOS (software) z ustawieniami urządzenia (hardware).

    Konfiguracja strefy czasowej

    (config)# clock timezone strefa-czasowa opóźnienie-czasu

    Ustala strefą czasową w której pracuje urządzenie. W przypadku Polski komeda będzie wyglądała następująco [clock timezone +48 1 bądź clock timezone EDT 1] z czego +48 oznacza strefę PL a 1 różnice czasową do strefy 0.

    (config)# clock summer-time strefa-czasowa date dzień miesiąc rok godzina dzień miesiąc rok godzina

    Określa strefę czasową w jakiej znajduje się urządzenie wraz z dokładną datą rozpoczęcia i zakończenia czasu letniego. W przypadku Polski komeda będzie wyglądała następująco [clock summer-time UTC recurring last Sun Mar 2:00 last Sun Oct 3:00].

    Podstawowa konfiguracja protokołu NTP

    Domyślna konfiguracją protokołu NTP na ruterach jak i przełącznikach Cisco sprawia, że działają one zarówno jako klient jak i serwer protokołu NTP jednocześnie (Należy przy tym pamiętać, że prawdziwym zaufanym serwerem czasu zostaje jedynie urządzenie skonfigurowane za pomocą komendy [ntp master]).
    W przypadku konfiguracji serwera NTP na ruterze Cisco, dobrą praktyką jest stworzenie interfejsu LoopBack, na który powoływać się będą klienci usługi NTP. Dzięki czemu awaria jednego z interfejsów nie zakłuci działania protokołu.

    Konfiguracja serwera protokołu NTP

    (config)# ntp master [1-15(8)(Stratum)]

    Określa rolę danego urządzenia jako zaufany server protokołu NTP.

    (config)# ntp peer {nazwa-hosta / adres-IP}

    Określa adres IP innego serwera NTP, w celu uzyskania nadmiarowości.

    (config)# interface interfejs

    Włącza funkcję pasywną na określonym interfejsie sieciowym.

    (config-if)# ntp broadcast

    Aktywuje tryb Broadcast dla protokołu NTP na danym urządzeniu, względem określonego interfejsu bądź wielu interfejsów sieciowych.

    Konfiguracja klienta protokołu NTP

    (config)# ntp server {nazwa-hosta / adres-IP} [prefer] [version {3 / 4}(4)]

    Określa adres IP bądź nazwę domenową serwera NTP (dodatkowa opcja „prefer” definiuje dany adres jako domyślny w przypadku skonfigurowania większej liczby serwerów NTP, natomiast komenda „version” określa wykorzystywaną wersją protokołu).

    (config)# ntp broadcast client

    Urządzenie zaczyna pełnić rolę klienta protokołu NTP dla wiadomości rozgłoszeniowych.

    (config)# ntp source interfejs

    Określa źródłowy interfejs wykorzystywany w komunikacji ze serwerem NTP.

    Uwierzytelnianie protokołu NTP za pomocą klucza MD5

    Konfiguracja serwera protokołu NTP

    (config)# ntp master [1-15(8)(Wartość Stratum)]

    Określa rolę danego urządzenia jako zaufany server protokołu NTP.

    (config)# ntp authenticate

    Aktywuje uwierzytelnianie serwera NTP.

    (config)# ntp authentication-key ID-klucza md5 klucz

    Tworzy nowy klucz MD5 z przypisanym numerem ID (Komenda może być wykonana wielokrotnie tworząc większą liczbę kluczy).

    (config)# ntp trusted-key ID-klucza

    Określa zaufany klucz służący do autentykacji klientów NTP (Komenda może być wykonana wielokrotnie umożliwiając przypisanie większej ilości kluczy dla różnych klientów NTP).

    Konfiguracja klienta protokołu NTP

    (config)# ntp authenticate

    Aktywuje uwierzytelnianie klienta protokołu NTP.

    (config)# ntp authentication-key ID-klucza md5 klucz

    Tworzy nowy klucz MD5 z przypisanym numerem ID.

    (config)# ntp trusted-key ID-klucza

    Określa zaufany klucz służący do uwierzytelniania serwera NTP.

    (config)# ntp server {nazwa-hosta / adres-IP} key ID-klucza

    Przypisuje klucz do określonego serwera NTP.
    W przypadku wykorzystywania adresacji IPv6 konieczne jest użycie pod komendy „version 4” na końcu każdej komendy NTP wymagającej podania adresu IPv6. Przykładowo [ntp server 2002:ACAC:32:FR:3 version 4].

    Protokół NTP a listy ACL

    Pomimo zastosowania autentykacji serwera NTP przy pomocy klucza, nadal wszystkie hosty w sieci mogą aktualizować swój czas systemowy z konfigurowanym urządzeniem (O ile znają kluz autentykacji). Aby dodatkowo ograniczyć to zjawisko należy stworzyć listę ACL określającą jakie adresy IP mogą aktualizować zegary a jakie nie.

    (config)# access-list lista-ACL permit adres-IP maska

    Tworzy nową listę dostępu ACL.

    (config)# ntp access-group opcja lista-ACL

    Przyłącza listę ACL do konfiguracji protokołu NTP.
    * peer – Aktualizuje swój zegar jedynie z adresami zawartymi w liście ACL.
    * serve – Dopuszcza zapytania dotyczące aktualizacji czasu jedynie od adresów zawartych w liście ACL. Odpowiada na zapytania NTP Request.
    Odrzuca aktualizacje NTP updates.
    * serve-only – Umożliwia klientom, których adres IP jest zgodny z listą ACL, synchronizację czasu zegara. Zabraniając przy tym aktualizacji własnego zegara z innymi źródłami NTP. Odpowiada jedynie na zapytania NTP Request.
    Odrzuca prośbę o synchronizację czasu lokalnego.

    Blokowanie protokołu NTP

    Podstawowe blokowanie protokołu NTP

    (config)# interface interfejs

    Przechodzi do poziomu konfiguracji, określonego interfejsu sieciowego.

    (config-if)# ntp disable

    Wyłącza serwis protokołu NTP, na konfigurowanym interfejsie sieciowym.

    Blokowanie protokołu NTP na podstawie listy ACL

    (config-)# access list lista-ACL deny udp any eq 123 any eq 123

    Definiuje listę dostępową ACL, blokującą cały ruch protokołu NTP (Domyślny port 123).

    (config-)# access-list lista-ACL permit any any

    Definiuje listę dostępową ACL, przepuszczającą pozostały ruch sieciowy.

    (config)# interface interfejs

    Przechodzi do poziomu konfiguracji, określonego interfejsu sieciowego.

    (config-if)# ip access-group lista-ACL in

    Przypisuje stworzoną listę ACL, do konfigurowanego interfejsu sieciowego.

    Komendy Show

    # show clock [detail]

    Wyświetla czas oraz date lokalnego systemu (software). Dodatkowa komenda „detail” wyświetla źródło, z którego system pobierał informacje o czasie zegara.

    # show calendar

    Wyświetla czas oraz date lokalnego urządzenia (Hardware). Dodatkowa komenda „detail” wyświetla źródło, z którego system pobierał informacje o czasie zegara.

    # show ntp associations

    Wyświetla skonfigurowane serwery czasu. W przypadku klienta komunikat „unsynchronized” oznacza, że urządzenie nie pobiera jeszcze żadnych danych od serwera NTP. Natomiast w przypadku serwera „ntp master” ten komunikat będzie widoczny przez cały czas.

    # show ntp status

    Wyświetla status protokołu NTP na danym urządzeniu.

    # show ntp config

    Wyświetla konfiguracją protokołu NTP na danym urządzeniu.

    # show ntp information

    Wyświetla informacje dotyczące wersji protokołu NTP na danym urządzeniu.

    # show ntp packets

    Wyświetla ilość wysłanych / odebranych pakietów protokołu NTP na danym urządzeniu.

    Pozostałe tematy związane z protokołem NTP

  • (T) Teoria protokołu NTP*

    (T) Teoria protokołu NTP*

    Wprowadzenie do protokołu NTP

    Podstawowe pojęcia

    • Protokół NTP (Network Time Protocol) umożliwia synchronizacje czasu lokalnego urządzenia sieciowego, z zgarami innych bardziej zaufanych urządzeń. Działa on zgodnie z podziałem hierarchicznym, w którym najbardziej zaufane są źródła bazują na zegarach atomowych oraz systemie GPS, a mniej zaufane należą do dostawców usług internetowych jak i innych urządzeń znajdujących się w sieci lokalnej. Poszczególne poziomy zaufania (Stratum), są numerowane od 1 do 16 z czego niższy numer ma największy priorytet (Wartość 16 nie może być przypisana do urządzenia, ponieważ oznacza źródło nieosiągalne nie brane pod uwagę przy aktualizacji zegara).
    • Serwer protokołu NTP odpowiada na zapytania klientów, odsyłając im informację o własnych ustawieniach zegara.
    • W przypadku podstawowej konfiguracji protokołu NTP, skonfigurowane urządzenie oprócz roli serwera pełni również rolę klienta. Dzięki czemu jednocześnie może aktualizować swój czas z innymi bardziej zaufanymi źródłami (np. zegarem atomowym) jak i odpowiadać na zapytania NTP innych urządzeń sieciowych.
    • Aby uniknąć synchronizacji z urządzeniami niezaufanymi, protokół NTP odrzuca serwery, których czas nie jest synchronizowany z urządzeniami zaufanymi (Np. stratum 1). Ponadto porównywany jest pomiędzy sobą czas otrzymany z wielu serwerów NTP, dzięki czemu możliwe staje się wykrycie serwera podającego wartość czasu znacząco różniącą się od innych (Nawet jeśli mają one mniejszą wartość Stratum).
    • Klient protokołu NTP:
      • Odpytuje serwer w odstępach czasowych od 64 do 1024 sekund. Odstępy te mogą ulec zmianie w zależności od warunków sieciowych panujących w sieci pomiędzy klientem a serwerem NTP.
      • Może mieć zapisanych w pamięci wiele serwerów NTP, będzie on jednak korzystał tylko z jednego posiadającego najniższą wartości Stratum.
    NTP wykorzystuje protokół UDP na porcie 123 w celu dostarczania aktualizacji dotyczących ustawień czasu.
    Wartość Stratum 1 przypada serwerom NTP, których czas jest synchronizowany z zegarem atomowym bądź GPS-em.

    Działanie protokołu NTP

    Tryby pracy protokołu NTP

    • NTP Server – Stanowi zaufane źródło informacji związanych z ustawieniami zegara, umożliwiające synchronizację własnego czasu z innymi urządzeniami sieciowymi, za pomocą protokołu NTP.
      • Stratum 1 server Urządzenie bezpośrednio czerpiące informację o czasie zegara, z zaufanego źródła np. zegara atomowego bądź zegara wykorzystującego system GPS.
      • Stratum 2 server – Urządzenie czerpiące informację o czasie zegara od urządzenia Stratum 1.
    Domyślna konfiguracja protokołu NTP w systemie IOS nie stanowi zaufanego źródła informacji o czasie zegara.
    Domyślnie Klient protokołu NTP działa również jako serwer protokołu NTP, jeżeli aktualizuje swój czas z innym bardziej zaufanym serwerem, bądź działa w trybie Master.
    • NTP Master server (Domyślnie Stratum 8) – Stanowi zaufane źródło informacji o ustawieniach zegara, umożliwiające synchronizację własnego czasu z innymi urządzeniami sieciowymi, nawet jeżeli samo nie aktualizuje ustawień zegara z innymi bardziej zaufanymi źródłami. W komunikacji z samym sobą Master Server wykorzystuje lokalny adres IP 127.127.1.1 (W starszych wersja systemu Cisco IOS będzie to adres 127.127.7.1).
    • NTP Client – Synchronizuje czas zegara z serwerem NTP.
    • NTP Peer – Wymienia informacje na temat czasu zegara z innymi urządzeniami, zachowując nadmiarowość.
    • NTP Broadcast / Multicast – Działa na zasadzie serwera NTP, rozgłaszając informacje na temat własnego czasu zegara do wszystkich nasłuchujących urządzeń (Komunikacja ta działa jedynie w jedną stronę i nie jest zaufana).

    Przykładowe topologie z wykorzystaniem protokołu NTP

    • Zegar atomowy -> NTP Master (Stratum 8) -> Client / Serwer (Stratum 9) -> Client (Stratum 10).
    • NTP Master (Stratum 1) -> Client / Serwer (Stratum 2) -> Client (Stratum 3).

    Wersje protokołu NTP

    • Wersja 3 (NTP 3RFC 1305) oraz wersja 4 (NTP 4RFC 5905).
    • Wersja 3 (NTP 3) wysyła wiadomości broadcast, natomiast wersja 4 (NTP 4) multicast.
    • Wersja 4  (NTP 4) wspiera protokół IPv4 oraz protokół IPv6 jak i umożliwia uwierzytelnianie serwera NTP.
    • Simplified Network Time Protocol (SNTP RFC 4330).

    Pozostałe tematy związane z protokołem NTP