Raspberry Pi Stratum-1 NTP-serverinä, osa 3

Aloittaja J.Jäntti, sunnuntai, 04.11.2018, 22:25

« edellinen - seuraava »

0 Jäsenet ja 1 Vieras katselee tätä aihetta.

J.Jäntti

Jäikö alku välistä (osa 1)? Hyppää tästä siihen!
Unohtuiko jotain viime jaksosta (osa 2)? Siirry siihen tästä!

Viimeinen rutistus!
Nyt kun NTP on asennettu, on aika konfiguroida se siten, että RasPi saa oman, kiinteän IP-osoitteen ja jotta NTP ottaa käyttöönsä GPS-kortin antaman NMEA-datan ja tarkan PPS-signaalin.
Ensimmäiseksi ulos potkitaan ylimääräiset komponentit, joilla ei ole käyttöä RasPi:ssa, koska laite toimii kupariyhteyden yli pelkästään.
sudo systemctl disable hciuart
sudo apt purge -y bluez triggerhappy wpasupplicant avahi-daemon dhcpcd5 && sudo apt autoremove -y && sudo rm -rf /etc/wpa_supplicant/

Tämän jälkeen suoritetaan IP-osoitteen konfigurointi
sudo nano /etc/network/interfaces
Tiedoston sisällön tulisi näyttää hyvin pitkälle alla olevalta
# interfaces(5) file used by ifup(8) and ifdown(8)

# Please note that this file is written to be used with dhcpcd
# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'

# Include files from /etc/network/interfaces.d:
#source-directory /etc/network/interfaces.d

auto eth0
iface eth0 inet static
        address <sisäverkkosi kiinteä IP-osoite>
        netmask <sisäverkkosi aliverkkomaski>
        gateway <sisäverkkosi gatewayn IP-osoite>

Kun olet täyttänyt kohtiin verkkoasi koskevat muutokset, paina tämän jälkeen <Ctrl> + <O> + <Enter> ja <Ctrl> + <X>

Käynnistä RasPi uudelleen ja varaudu kirjautumaan PuTTY:llä juuri asettamaasi IP-osoitteeseen
sudo reboot

RasPi:n havahduttua on aika jatkaa NTP:n parissa.
cd /var/lib/ntp/
sudo wget https://www.ietf.org/timezones/data/leap-seconds.list
Näin. Kävimme hakemassa hyppysekuntilistan NTP:n ihmeteltäväksi. Seuraavaksi käydään itse NTP:n konfiguraation kimppuun.
sudo nano /etc/ntp.conf

Asioiden helpottamiseksi, alla on ntp.conf-tiedoston koko sisältö siten kuin se on laitettu minun serverilläni

# /etc/ntp.conf, configuration for ntpd; see ntp.conf(5) for help

driftfile /var/lib/ntp/ntp.drift
leapfile /var/lib/ntp/leap-seconds.list
logfile /var/log/ntp.log

# Enable this if you want statistics to be logged.
#statsdir /var/log/ntpstats/

statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable

# You do need to talk to an NTP server or two (or three).
#server ntp.your-provider.example

# GPS Driver settings
# To disable built-in PPS processing for this driver, set "flag1 1" to "flag1 0"
server 127.127.20.0 mode 17 minpoll 4 iburst true prefer
fudge 127.127.20.0 flag1 1 flag3 1 time2 0.496 refid GPS

# pool.ntp.org maps to about 1000 low-stratum NTP servers.  Your server will
# pick a different set every time it starts up.  Please consider joining the
# pool: <http://www.pool.ntp.org/join.html>
pool fi.pool.ntp.org iburst

# Access control configuration; see /usr/share/doc/ntp-doc/html/accopt.html for
# details.  The web page <http://support.ntp.org/bin/view/Support/AccessRestrictions>
# might also be helpful.
#
# Note that "restrict" applies to both servers and clients, so a configuration
# that might be intended to block requests from certain clients could also end
# up blocking replies from your own upstream servers.

# By default, exchange time with everybody, but don't allow configuration.
restrict -4 default kod notrap nomodify nopeer noquery limited
restrict -6 default kod notrap nomodify nopeer noquery limited

# Local users may interrogate the ntp server more closely.
restrict 127.0.0.1
restrict ::1
restrict 192.168.0.0

# Needed for adding pool entries
restrict source notrap nomodify noquery

# Clients from this (example!) subnet have unlimited access, but only if
# cryptographically authenticated.
#restrict 192.168.123.0 mask 255.255.255.0 notrust

# If you want to provide time to your local subnet, change the next line.
# (Again, the address is an example only.)
broadcast 192.168.0.255

# If you want to listen to time broadcasts on your local subnet, de-comment the
# next lines.  Please do this only if you trust everybody on the network!
#disable auth
#broadcastclient

HUOM!! Muuta kohdat restrict 192.168.0.0 ja broadcast 192.168.0.255 vastaamaan sisäverkkosi asetuksia.
Vaihtoehtoisesti voit myös nämä kaksi kohtaa kommentoida #-merkillä jolloin ne eivät astu voimaan.

Käskytä ntp-palvelu käyntiin ja aseta se käynnistymään käynnistyksen yhteydessä
sudo systemctl start ntp && sudo systemctl enable ntp

Toivotaan, toivotaan!
Nyt, kun NTP on hereillä, se on aloittanut rakentelemaan ympäristössä olevista NTP-kelloista itselleen jonkinlaista kokonaisuutta ja on aloittanut hakemaan myös GPS-piiriltä dataa - toivottavasti.
Olettaen että kaikki on tehty kuten ohjeet kertovat, pitäisi GPS-piirin olla pääasiallisessa vastuussa NTP:n kellon synkronoinnista. Ajamalla seuraavan komennon saa asiat selville:
ntpq -c pe -c as -c rv

Tämä tulostaa kutakuinkin seuraavanlaisen kokonaisuuden ihmeteltäväksi:

     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*GPS_NMEA(0)     .GPS.           0 l    3   16    1    0.000    0.000   0.001
fi.pool.ntp.org .POOL.          16 p    -   64    0    0.000    0.000   0.001
192.168.0.255   .BCST.          16 B    -   64    0    0.000    0.000   0.001
time3.dnaip.fi  .GPS.            1 u    -   64    1   29.301    3.948   0.001

ind assid status  conf reach auth condition  last_event cnt
===========================================================
  1 52895  961a   yes   yes  none  sys.peer    sys_peer  1
  2 52896  8811   yes  none  none    reject    mobilize  1
  3 52897  8811   yes  none  none    reject    mobilize  1
  5 52899  1014    no   yes  none    reject   reachable  1

associd=0 status=0414 leap_none, sync_uhf_radio, 1 event, freq_mode,
version="ntpd 4.2.8p12@1.3728-o Sun Nov  4 10:16:22 UTC 2018 (1)",
processor="armv7l", system="Linux/4.14.78-v7+", leap=00, stratum=1,
precision=-20, rootdelay=0.000, rootdisp=7937.547, refid=GPS,
reftime=df89d131.2a2b1807  Sun, Nov  4 2018 22:12:33.164,
clock=df89d134.953d82cd  Sun, Nov  4 2018 22:12:36.582, peer=52895, tc=4,
mintc=3, offset=-0.000239, frequency=0.000, sys_jitter=0.000954,
clk_jitter=0.001, clk_wander=0.000, leapsec=201701010000,
expire=201906280000


Tämä päättömän näköinen tekstiseinä kertoo mitä NTP:lle kuuluu kokonaisuudessaan.
Huomion arvoinen erityisesti on lihavoitu GPS_NMEA(0), joka on kaiken tämän kokonaisuuden ydin, jota olemme tässä asennelleet kuntoon.
Kun ohjelman käynnistää ensimmäisen kerran, tämän arvon ensinnäkin tulee näkyä ja todennäköisesti silloin sen edessä on tähti ( * ). Offset- ja jitter-arvot saattavat olla hetkellisesti päin mäntyjä, kun itse RasPi:n kelloa käännetään ensin oikein ja sen perään alkaa tasoittuminen. Esimerkissämme GPS_NMEA(0) on varustettu *:llä, koska käynnistin järjestelmän ja synkronointi on alussa. Tämä * muuttuu o-kirjaimeksi, kun PPS-sekuntipulssit ottavat vastuun kellon pitämisessä synkronissa. Tällöin offset- sekä jitter-arvot ovat nolla tai käytännössä nolla. Listalla esiintyy starttivaiheessa tasaisesti kasvava nippu Stratum 1- ja -2-tason kelloja internetistä, jotka ottavat ohjat, jos kellosynkronointi katkeaa GPS_NMEA(0):lta mistä syystä hyvänsä.

Toinen asia, josta tietää, mitä NTP tekee, on lihavoitu "freq_mode". Tässä tilassa ollaan jo synkronissa, mutta kellojen synkronointitasoa mitataan vielä. Tähän menee minuutteja, joskus jopa varttikin.
Tässä sama komento ajettuna muutama minuutti myöhemmin:

     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
oGPS_NMEA(0)     .GPS.           0 l    4   16  377    0.000   -0.016   0.010
fi.pool.ntp.org .POOL.          16 p    -   64    0    0.000    0.000   0.001
192.168.0.255   .BCST.          16 B    -   64    0    0.000    0.000   0.001
-ntp2.dnainterne 62.237.86.234    2 u   15   64   77   24.980    4.666   5.568
+time3.dnaip.fi  .GPS.            1 u   15   64   77   21.193    0.277   4.349
+tock.katterno.f 193.11.166.2     2 u   12   64   77   31.123    4.800   1.386
-ntp1.dnainterne 194.100.2.194    2 u   14   64   77   24.082    4.914   0.921
-helsinki.fdw.no 192.53.103.103   2 u   12   64   77   25.472    5.391   0.666
+fi.time.127.net 17.253.54.253    2 u    9   64   37   18.326   -0.684   2.640
-time4.dnaip.fi  .GPS.            1 u   14   64   17   34.863    4.592   0.755

ind assid status  conf reach auth condition  last_event cnt
===========================================================
  1 52895  971a   yes   yes  none  pps.peer    sys_peer  1
  2 52896  8811   yes  none  none    reject    mobilize  1
  3 52897  8811   yes  none  none    reject    mobilize  1
  4 52898  1314    no   yes  none   outlier   reachable  1
  5 52899  1414    no   yes  none candidate   reachable  1
  6 52900  1414    no   yes  none candidate   reachable  1
  7 52901  1314    no   yes  none   outlier   reachable  1
  8 52902  1314    no   yes  none   outlier   reachable  1
  9 52903  1414    no   yes  none candidate   reachable  1
10 52904  1314    no   yes  none   outlier   reachable  1

associd=0 status=0415 leap_none, sync_uhf_radio, 1 event, clock_sync,
version="ntpd 4.2.8p12@1.3728-o Sun Nov  4 10:16:22 UTC 2018 (1)",
processor="armv7l", system="Linux/4.14.78-v7+", leap=00, stratum=1,
precision=-20, rootdelay=0.000, rootdisp=1.075, refid=GPS,
reftime=df89d291.2a267ad4  Sun, Nov  4 2018 22:18:25.164,
clock=df89d296.50ecd34e  Sun, Nov  4 2018 22:18:30.316, peer=52895, tc=4,
mintc=3, offset=-0.016182, frequency=-0.172, sys_jitter=0.010259,
clk_jitter=0.018, clk_wander=0.017, tai=37, leapsec=201701010000,
expire=201906280000


Kuten huomaatte, GPS_NMEA(0) on saanut PPS-pulssit itselleen ja tasaus kohti täysnolla-offset-arvoja on menossa. Status on myös vaihtunut "freq_mode":sta "clock_sync":ksi.
PPS-ohjatun kellon lukujen tasaantuminen nolliksi vie kymmenistä minuuteista pariin tuntiin, mutta lähtökohtaisesti lukema on erittäin alhainen jo valmiiksi ja pyyhkii Internetissä olevilla kelloilla jo pöytää tarkkuudessa.

Jos et saa samaa tulosta aikaiseksi tai komento ei näytä mitään, tarkista, että teit kaikki mitä ohjesarjassa sanotaan. Jos et siltikään onnistu, kerro minulle niin katsotaan onko ohjeissani vikaa.

Mielipiteet ja kommentit ovat tervetulleita, kuten aina.
Juha Jäntti
Foorumin ja sivuston ylläpitäjä
Finland Weather Exchange (FinWX)

http://www.finwx.net/
------------------------------------------
Ukkoskausi avattu Suomessa: --.--.2024
Ukkoskausi avattu Helsingissä: --.--.2024
-------------------------------------------
Ukkospäivälaskuri 2024; Helsinki/Viikinmäki
0 ukkospäivää.
------------------------------------------
X, FinWX:n ylläpidon ilmoitukset
------------------------------------------