Bonjour,

N'étant pas un grand professionnel du NTP, je me permets de poser une question sur le fonctionnement du mode "broadcast". Certains concepts me paraissent flous...

Tout d'abord, voici un schéma de la plateforme de test :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 ( SRV NTP 01a ) <-----> ( SRV NTP 02a ) ----> ( SRV NTP 03 )
 ( SRV NTP 01b ) <-----> ( SRV NTP 02b ) ----> ( SRV NTP 03 )
Les objectifs des tests :
  1. Les serveurs "SRV NTP 02{a,b}" doivent être respectivement synchronisés par les serveurs "SRV NTP 01{a,b}"
  2. Le serveur "SRV NTP 03" doit être synchronisé par les serveurs "SRV NTP 02a" et(/ou si le "et" n'est pas possible ?) "SRV NTP 02b"


Et pour information :
  1. Les serveurs "SRV NTP 01a" et "SRV NTP 01b" ne peuvent pas communiquer entre eux. Physiquement, ils sont séparés. Idem pour les serveurs "SRV NTP 02a" et "SRV NTP 02b",
  2. Le lien entre "SRV NTP 01" et "SRV NTP 02" est un lien bidirectionnel. Chacun peut communiquer entre eux comme bon leur semble,
  3. Le lien entre "SRV NTP 02a" (ou "SRV NTP 02b") et "SRV NTP 03" est un lien unidirectionnel ET ne sont autorisés que les datagrammes UDP (TCP interdit).


Pour cela, j'ai créé les configurations suivantes :
  • Config. de SRV NTP 01{a,b} (@IP : 10.0.0.{a,b}) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
   server 127.127.1.0
   fudge 127.127.1.0 stratum 5
   driftfile /var/lib/ntp/drift
 
   logfile /tmp/ntp.log/
 
   statsdir /tmp/ntp.stat/
   statistics loopstats peerstats clockstats sysstats
   filegen loopstats file loopstats type day enable
   filegen peerstats file peerstats type day enable
   filegen clockstats file clockstats type day enable
   filegen sysstats file sysstats type day enable
  • Config. de SRV NTP 02{a,b} (@IP : 10.1.0.{a,b}) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
   # @IP = 10.0.0.b pour le serveur "SRV NTP 02b" :
   server 10.0.0.a prefer
   server 127.127.1.0
   fudge 127.127.1.0 stratum 7
   driftfile /var/lib/ntp/drift
 
   broadcast 10.2.0.1
 
   logfile /tmp/ntp.log/
 
   statsdir /tmp/ntp.stat/
   statistics loopstats peerstats clockstats sysstats
   filegen loopstats file loopstats type day enable
   filegen peerstats file peerstats type day enable
   filegen clockstats file clockstats type day enable
   filegen sysstats file sysstats type day enable
  • Config. de SRV NTP 03 (@IP : 10.2.0.1) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
   server 127.127.1.0
   fudge 127.127.1.0 stratum 11
   driftfile /var/lib/ntp/drift
   broadcastclient novolley
   disable auth
 
   logfile /tmp/ntp.log/
 
   statsdir /tmp/ntp.stat/
   statistics loopstats peerstats clockstats sysstats
   filegen loopstats file loopstats type day enable
   filegen peerstats file peerstats type day enable
   filegen clockstats file clockstats type day enable
   filegen sysstats file sysstats type day enable
Les sorties de la commande "ntpq -p" appliquées à ces serveurs me donnent ces résultats :
  • SRV NTP 01{a,b} :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
        remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
   *LOCAL(0)        .LOCL.           5 l   31   64  377    0.000   0.000   0.001
  • SRV NTP 02{a,b} :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
    10.0.0.a        LOCAL(0)         6 u  875 1024  377    2.227  -15.288  10.336
   *LOCAL(0)        .LOCL.           7 l   51   64  377    0.000   0.000   0.001
    10.2.0.1        .BCST.          16 u    -   64    0    0.000   0.000   0.001
  • SRV NTP 03 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
   *LOCAL(0)        .LOCL.          11 l   42   64  377    0.000   0.000   0.001
    10.0.0.a        LOCAL(0)         8 u   38   64  376    0.001   3074418   8.213
Pour le test, je n'ai démarré que le serveur NTP du serveur "SRV NTP 02a".

Mes questions sont les suivantes :
  • Pourquoi le serveur qui a le stratum le plus bas n'est-il pas la référence ? Comme vous pouvez le voir, c'est toujours le serveur marqué "LOCAL(0)" qui est la référence,
  • Quand je démarre le serveur "SRV NTP 02b", le serveur "SRV NTP 03" les voit comme étant "non fiables" (marqués avec un 'x'). Que se passe-t-il ? Que dois-je faire pour que le serveur 03 se synchronise avec les serveurs "SRV NTP 02{a,b}" ? Faut-il utiliser la notion de clé ?


Merci de votre aide. :-)
Cordialement,

Yann I.

ps : j'utilise la distribution CentOS 5.6 et la version de ntpd est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
# ntpd --version
  ntpd: ntpd 4.2.2p1@1.1570-o Sat Dec 19 00:56:13 UTC 2009 (1)