Geschreven door Remco Kersten, 03-04-2022

Categorie: CCNA

Wat is NTP

NTP (Network Time Protocol) wordt gebruikt voor tijdsynchronisatie. In een netwerk is het gewenst (en voor goed functioneren zelfs vereist) dat alle netwerkapparaten dezelfde tijd en datum gebruiken. Een paar seconden verschil kan voor bepaalde protocollen al leiden tot niet functioneren.

Waar komt de NTP tijd vandaan?

Cisco devices kunnen zelf als NTP server fungeren. Door de interne klok op de juiste tijd in te stellen, kan bijvoorbeeld een Cisco router de tijd doorgeven aan de rest van het netwerkapparatuur. Echter is het natuurlijk gewenst dat deze “NTP server” zelf ook de exacte tijd weet. Hoewel de interne klok redelijk nauwkeurig is, is een router’s primaire taak niet het bijhouden van de tijd.

Er bestaat hardware welke speciaal ontwikkeld is om nauwkeurig de tijd bij te houden. Diverse speciaal hiervoor ingerichte servers zijn gratis publiekelijk toegangkelijk, zoals het NTP Pool Project.

NTP configureren op Cisco devices

In dit voorbeeld gaan we R1 de tijd laten ophalen van het NTP Pool Project. R2, R3 en R4 zullen de tijd vervolgens ophalen van R1.

Netwerk structuur

Tijd en datum handmatig instellen

Alvorens de tijd met een NTP server te synchroniseren is het noodzakelijk de tijd en datum zo nauwkeurig mogelijk in te stellen. Indien de tijd of datum van de interne klok niet in de buurt komt met de tijd van de NTP server, kan het zijn dat de tijd van de NTP server niet wordt overgenomen.

Om de tijd in te stellen dienen er 2tal configuraties uit te worden gevoerd:

  1. Tijdzone instellen
  2. Tijd en datum instellen

Tijdzone instellen

De tijdzone (in het geval van Nederland UTC+1) dient als volgt te worden geconfigureerd:

  • clock timezone naam verschil-met-UTC
  • clock summer-time naam recurring

In dit geval heb ik op router 1, 2 3 en 4 de tijdzone met de volgende configuratie ingesteld:

R1#conf t
R1(config)#clock timezone NLD 1
*Apr  3 12:50:22.343: %SYS-6-CLOCKUPDATE: System clock has been updated from 12:50:22 UTC Sun Apr 3 2022 to 13:50:22 NLD Sun Apr 3 2022, configured from console by console.
R1(config)#clock summer-time NLS recurring
*Apr  3 12:50:37.490: %SYS-6-CLOCKUPDATE: System clock has been updated from 13:50:37 NLD Sun Apr 3 2022 to 14:50:37 NLS Sun Apr 3 2022, configured from console by console.
R1(config)#end
R1#show clock
*14:56:50.203 NLS Sun Apr 3 2022

Je ziet dat na het instellen van de timezone +1 de tijd automatisch naar Nederlandse tijd verspringt. De waarde NLD is voor eigen referentie. Echter omdat om het moment van schrijven we in de zomertijd zaten, verspringt de tijd nogmaals met een uur vooruit na het instellen van de zomertijd. Ook hier is de optie NLS een waarde welke je zelf mag invullen. De optie “recurring” vertelt de router om automatisch te schakelen tussen zomer en wintertijd.

Met het commando show clock zien we vervolgens de juiste tijd, en zien we dat de tijdzone NLS van toepassing is (dus de zomertijd).

Datum en tijd instellen

De datum en tijd kan worden ingezien met het commando show clock. Mocht de tijd of datum na het instellen van de tijdzone’s niet kloppen, stel de tijd en datum dan alsnog in met het commando clock set hh:mm:ss dd Month yyyy vanuit enabled mode.

NTP server instellen

Een Cisco device kan op 2 manieren fungeren:

  • NTP master: speelt alleen de rol als NTP server
  • NTP server: speelt de rol als zowel NTP client als NTP server

In dit geval gaan we R1 instellen als server. We willen dat hij de tijd ophaalt van het NTP Pool Project, en zich beschikbaar stelt als server om deze tijd weer door te geven aan router 2, 3 en 4.

In dit voorbeeld gebruiker we 2 servers van het NTP Pool Project: 0.pool.ntp.org en 1.pool.ntp.org. We stellen 0.pool.ntp.org in als primaire server.

R1(config)#ntp server 0.pool.ntp.org prefer
R1(config)#ntp server 1.pool.ntp.org
R1(config)#end
R1#show ntp associations

  address         ref clock       st   when   poll reach  delay  offset   disp
*~213.136.0.252   .PPS.            1      9     64     1 15.290  -0.871 187.53
+~149.210.142.45  17.253.38.125    2      3     64     1 12.472  -0.878 187.53
 * sys.peer, # selected, + candidate, - outlyer, x falseticker, ~ configured

Hier zien we dat 0.pool.ntp.org vertaalt is naar IP 213.136.0.252. Het sterretje geeft aan dat deze server gebruikt wordt als NTP bron.

Met commando show ntp status zien we de status van NTP in. In dit geval heeft R1 stratum status 2. Stratum geeft de “exactheid” van de tijd aan. De bron van een tijd (meestal een klok welke speciaal bedoeld is voor nauwkeurige tijdsregistratie, zoals een atoomklok) krijgt stratum 1. Elke volgende bron krijgt een stratum hoger.

In dit geval heeft 213.136.0.252 de exacte tijd met stratum 1. R1 krijgt hiermee dus stratum 2, en router 2, 3 en 4 krijgen dus stratum 3 als ze de tijd van R1 overnemen.

R1#show ntp status
Clock is synchronized, stratum 2, reference is 213.136.0.252

Loopback interface voor betere beschikbaarheid

2 route's vanuit Router 4 naar Router 1

We gaan op router 2, 3 en 4 NTP instellen met als bron router 1. Nogmaals kijkende naar het netwerk, zien we dat we router 1 via 2 interfaces kunnen bereiken, namelijk G0/1 en G0/2. Stel we stellen router’s 1 G0/1 in als NTP bron op router 2 t/m 4, wat gebeurd er als G0/1 uitvalt? Router 2 t/m 4 kunnen router 1 dan niet meer bereiken en kunnen de tijd dan ook niet meer synchroniseren. Echter is router 1 wel nog steeds bereikbaar, maar onder G0/2.

Om dit probleem op te lossen kunnen we op router 1 een loopback interface aanmaken, en op router 2 t/m 4 als NTP bron de loopback interface van router 1 opgeven. Mocht G0/1 of G0/2 op router 1 uitvallen, dan is het de taak aan de routing protocollen om een alternatieve router naar router 1 te kiezen.

R1(config)#int lo1
R1(config-if)#ip add 172.20.0.1 255.255.255.255
R1(config-if)#exit
R1(config)#ntp source lo1
R1(config)#end
R1#show int lo1
Loopback1 is up, line protocol is up
  Hardware is Loopback
  Internet address is 172.20.0.1/32

Er van uitgaande dat er een routing protocol is ingesteld, kunnen router 2 t/m 4 nu pingen naar router 1 op 172.20.0.1, ongeacht welke interface.

R4#ping 172.20.0.1
Sending 5, 100-byte ICMP Echos to 172.20.0.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 3/3/5 ms
R4#

Op router 2 t/m 4 kunnen we nu router’s 1 loopback interface (182.20.0.1) opgeven als NTP bron.

R4(config)#ntp server 172.20.0.1 prefer
R4(config)#end
R4#show ntp associations

  address         ref clock       st   when   poll reach  delay  offset   disp
*~172.20.0.1      213.136.0.252    2      0     64     1  3.333   1.521 3937.5
 * sys.peer, # selected, + candidate, - outlyer, x falseticker, ~ configured
R4#show ntp status
Clock is synchronized, stratum 3, reference is 172.20.0.1

We zien hier dat R4 stratum 3 krijgt (aangezien R1 stratum 2 heeft) en dat router’s 1 reference clock 213.136.0.252 (NTP Pool Project) is.