7 votes

ntpd reçoit "connect : invalid argument" sur 0.0.0.2

Il semble que la réponse pour pool.ntp.org ait changé récemment. Cela rend mes serveurs ntp CentosOS 6 malheureux.

$ host pool.ntp.org
pool.ntp.org has address 0.0.0.2
pool.ntp.org has address 83.209.8.142
pool.ntp.org has address 130.236.254.17
pool.ntp.org has address 195.178.181.98

$ /usr/lib64/nagios/plugins/check_ntp_time -H pool.ntp.org
can't create socket connection#

$ strace -f /usr/lib64/nagios/plugins/check_ntp_time -H pool.ntp.org
...
connect(3, {sa_family=AF_INET, sin_port=htons(123), sin_addr=inet_addr("83.209.8.142")}, 16) = 0
socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP) = 3
connect(3, {sa_family=AF_INET, sin_port=htons(123), sin_addr=inet_addr("130.236.254.17")}, 16) = 0
socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP) = 4
connect(4, {sa_family=AF_INET, sin_port=htons(123), sin_addr=inet_addr("195.178.181.98")}, 16) = 0
socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP) = 5
connect(5, {sa_family=AF_INET, sin_port=htons(123), sin_addr=inet_addr("83.209.8.142")}, 16) = 0
socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP) = 6
connect(6, {sa_family=AF_INET, sin_port=htons(123), sin_addr=inet_addr("0.0.0.2")}, 16) = -1 EINVAL (Invalid argument)
fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 1), ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f6571c5b000
write(1, "can't create socket connection", 30can't create socket connection) = 30
exit_group(3)                           = ?
+++ exited with 3 +++

Il semble qu'il y ait un accord général sur ce point, comme le dit Ubuntu moderne :

$ ping 0.0.0.2
connect: Invalid argument

Je pensais que 0.0.0.2 était une adresse IP valide ?

MISE À JOUR

Le problème est en effet périodique et dure depuis plusieurs jours (depuis 2015-12-20 selon mon nagios) :

[12:40] host pool.ntp.org
pool.ntp.org has address 194.71.144.71
pool.ntp.org has address 79.136.86.176
pool.ntp.org has address 83.209.8.142
pool.ntp.org has address 178.73.198.130
[13:09] host pool.ntp.org
pool.ntp.org has address 194.71.144.71
pool.ntp.org has address 0.0.0.2
pool.ntp.org has address 178.73.198.130
pool.ntp.org has address 192.36.143.130

Je suppose qu'il y a une sorte de bataille de classement en cours.

MISE À JOUR 2

Pour les personnes intéressées, ce problème survient lorsque les RR DNS pour pool.ntp.org sont interrogés depuis la Suède.

11voto

martin Points 49

Tous les 0.0.0.0/8 est réservée, ce n'est donc pas une IP valide pour un serveur ntp. Vous pouvez vérifier l'adresse Registre IANA pour plus d'informations.

Vous devriez déposer quelques rapports de bogues. L'un contre pool.ntp.org En effet, ils devraient vérifier la validité des adresses IP avant de les autoriser à entrer dans le pool. Et un contre check_ntp_time car il ne devrait pas mourir même si une adresse invalide apparaît. Au lieu de cela, il devrait essayer les trois adresses IP valides qu'il a obtenues.

10voto

MadHatter Points 77602

Sur les quatre serveurs que vous citez, trois sont dans le pool et ont des pages de surveillance de serveur valides :

http://www.pool.ntp.org/scores/83.209.8.142

http://www.pool.ntp.org/scores/130.236.254.17

http://www.pool.ntp.org/scores/195.178.181.98

L'autre, illégal, ne le fait pas :

http://www.pool.ntp.org/scores/0.0.0.2

Comme le fait remarquer kasperd, les RR renvoyés sur cet enregistrement A sont équilibrés en charge par round-robin, de sorte que nous ne pouvons pas dire si votre DNS en amont vous a menti, ou si une adresse illégale s'est temporairement retrouvée dans le pool. Je sais par expérience, en tant qu'administrateur de pool, que le serveur d'une personne doit être hautement disponible, et donc bien noté par le système de surveillance, pour être inclus dans le pool. Je doute donc personnellement qu'une adresse inaccessible puisse être incluse dans le pool, et je soupçonne qu'il s'agit d'un problème de DNS en amont. Mais à moins que vous ne puissiez reproduire le résultat de manière fiable, je doute que nous le sachions jamais.

Il me semble que si pool.ntp.org en utilisant les signatures DNSSEC, nous serions immédiatement en mesure de dire s'il s'agit d'un problème d'empoisonnement du cache ou d'un problème de "crap-in-the-pool". Si j'ai quelques minutes de libre, je pourrais soulever le problème sur la liste des administrateurs des serveurs de pool.

Editer : J'ai soulevé la question sur la liste des administrateurs Nous avons déjà reçu une confirmation indépendante de cette adresse. fait semblent se retrouver dans la piscine, alors qu'ils ne devraient manifestement pas. A suivre donc.

Édition 2 : apparemment, il s'agissait d'un véritable bogue qui a été corrigé . Je suis d'accord avec kasperd pour dire qu'il vaut la peine de demander aux auteurs du plugin de rendre ce dernier plus robuste face à la merde dans le pool.

1voto

Mintra Points 496

0.0.0.2 est "valide" en soi mais ne peut être utilisé qu'en tant qu'identifiant. fuente conformément à l'adresse RFC1700 Il n'est donc pas possible d'effectuer un ping.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X