Endnu et projekt...

Jeg har lige lavet første "preview" release af den "Ntimed" software jeg har arbejdet på i nogle måneder, takket være Linux Foundations sponsorat.

I kan finde koden her: https://github.com/bsdphk/Ntimed

Her er min "miniblog" om projektet: http://phk.freebsd.dk/time/

Der er tale om en NTP klient som er langt mindre og langt hurtigere end den NTPD vi alle kender.

Og med "langt mindre" mener jeg 4KLOC istedet for 310KLOC.

Hovedmålet med projektet er simpelthen at erstatte NTPD med noget andet, fordi NTPD i praksis ikke er til at vedligeholde og udvikle mere, (jvf. weekendens to CVE'er).

Det program jeg har preview releaset nu er kun en NTP klient for det er alt 99.9% af alle computere har brug for.

Senere vil der komme søster-programmer, et til slave servere (dvs. stratum 2...14) og et til master servere (stratum 1), men det er i langt højere grad for specialister.

ntimed-client er derimod for gud og hver mands computer, så det skal være sikkert, kompakt og energieffektivt.

Her er et lille "serviet" regnestykke:

I andet kvartal 2014 blev der solgt noget der ligner 2 millioner servere.

Antag at 25% af dem kører en eller anden form for UNIX og NTPD, nu har vi en halv million servere.

Antag at NTPD bruger en promille af resourcerne på disse servere.

Det svarer til at der i andet 2014Q2 blev installeret 500 servere der kører NTPD som fuld load.

Hvilket igen svarer til ca 50kW elforbrug.

Siden de blev solgt har disse servere forbrugt 220 MWh hvilket igen svarer til 110tons CO2 udledninger.

... Indenfor nogle ret store træskolængder.

Dertil kommer alle de computere der blev solgt i 2014Q1, 2013, osv.

Håbet er et produktionsmodent release engang i næste kvartal og at OS-releases begynder at tilbyde Ntimed-client som alternativ til NTPD snart efter.

Som altid æder jeg min egen "dog-food", min laptop har kørt denne kode i mange uger nu.

Ideerne i programmet har været lang tid undervejs.

Mine første computer-tids experimenter daterer sig tilbage til først i 1990'erne.

Senere greb det om sig.

Her er et billede af mit "tids-laboratorie" anno 2000:

Illustration: Privatfoto

Bonuspoint hvis du spotte atomfrekvensnormalerne.

phk

Kommentarer (23)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Henrik Kramshøj Blogger

Kan du ikke skynde dig lidt med at release? :-)

Dec 19

The Network Time Protocol (NTP) provides networked systems with a way to synchronize time for various services and applications. ntpd version 4.2.7 and pervious versions allow attackers to overflow several buffers in a way that may allow malicious code to be executed. ntp-keygen prior to version 4.2.7p230 also uses a non-cryptographic random number generator when generating symmetric keys.

Source: http://www.kb.cert.org/vuls/id/852879 og der er flere artikler om det.

  • 2
  • 0
Troels Henriksen

OpenNTPD har elendig tids-styring og giver ikke rigtig nogen platform for viderudvikling/kodedeling til stratum 1 servere mv.

Efter at have læst op på det, så er det også hvad jeg kom frem til (og især at OpenNTPD bare er en SNTP-implementering). Min umiddelbare konklusion er at OpenNTPD er OK til perifære klient-knuder i NTP-netværket (som f.eks. min hobbyserver), men ikke ret meget andet. Og man skal have det OK med at komme nogle millisekunder for sent til møder fra tid til anden.

  • 2
  • 0
Chris Bagge

Mener at det 4'e øverste apparat i stakken t.v. er en frekensnormal.
Kan i øvrigt huske, at min far, der var ingeniør i SAS, fortalte om eksperimentet med "the flying clocks". Urene fløj med Swissair til Europa og på det tidspunkt havde SAS og Swissair et meget tæt teknisk samarbejde.

Det lyder spændende med den nye NTP klient. Er i øvrigt røget ind i phkmalloc i forbindelse med mine undersøgelser omkring secure C programming.

  • 1
  • 0
Chris Bagge

Maskinen til højre for tower PC'en er formodentligt din SDR Loran-C modtager. Jeg har svært ved at finde en SRS PRS10, men antager at den befinder sig under "den hvide køleplade" til venstre for tower PC'en.

  • 0
  • 0
Morten Brørup

Hej Poul-Henning,

Her i SmartShare Systems har vi også udviklet en NTP-klient til vores produkter, og jeg vil gerne dele lidt af den viden, vi har herfra - i håb om at du kan få gavn heraf i dit særdeles tiltrængte projekt. Jeg har ikke kigget på din kode, så måske tager du allerede højde for nogle af disse detaljer.

  1. I SmartShare Systems udvikler vi båndbreddestyringsprodukter, der bl.a. kan reducere latency for brugerne af en internetforbindelse, og vi ved derfor, at de fleste internetforbindelser ind imellem bliver udsat for spidsbelastninger, hvor latency stiger med adskillige millisekunder, ofte mere end 100 ms. Længerevarende spidsbelastninger kan skyldes "busy hour", hvor mange brugere er aktive samtidig, og kortvarige spidsbelastninger kan skyldes bursty netværkstrafik, fx at en webserver afleverer en stor mængde data på meget kort tid. Vores NTP-klient holder øje med den sædvanlige RTT til NTP-serveren, og hvis den modtager et NTP-svar med en væsentligt højere RTT end normalt, antager vi, at der var forhøjet latency på forbindelsen (enten længere ude på internettet eller på "the last mile", dvs. på den lokale internetforbindelse), og kasserer svaret som ubrugeligt. (Det er en almindelig reguleringsopgave at holde styr på den sædvanlige RTT til NTP-serveren. Og det er en definitionssag, hvad der er en væsentligt højere RTT end normalt.)
  2. Nogle NTP-servere sætter tidsstemplerne i pakkerne ud fra en systemtimer, der tikker med en frekvens under 100 Hz, dvs. der er mere end 10 ms jitter på svarene herfra. Dette har vi bl.a. observeret ved NTP-servere hos en meget stor Content Delivery Network-udbyder, der bl.a. leverer tidsservice for et meget udbredt operativsystem.
  3. Mange offentligt tilgængelige NTP-servere på internettet, bl.a. dem hos pool.ntp.org (som også er et glimrende initiativ), er helt ude af synkronisering.

mvh
Morten Brørup
CTO, SmartShare Systems

  • 0
  • 0
Niels Callesøe

Pga. julen har jeg først set dette indlæg nu. Men det er alligevel den bedste julegave jeg har fået i år. Jeg har ansvaret for et stykke over 100 servere og jeg ved ikke hvor mange gange jeg har været ved at rykke håret af mig selv over den gamle NTPD.

Jeg har aldrig forstået hvorfor det var en god idé at det program som alle bruger til at sætte uret som udgangspunkt er beregnet til at være server, ikke klient. Det er helt sort. Og rækken af problemer det har givet i tidens løb, er da også lang.

At det så er PHK der er ved at skrive en erstatning, gør blot min entusiasme endnu større. Jeg vil straks installere på et test-system og vente spændt på et "produktions-release".

Det er lige som juleaften... bare mere spændende.

  • 0
  • 0
Log ind eller Opret konto for at kommentere