Problème de ping dans le terminal (Mountain Lion)

olof

Membre actif
23 Avril 2002
770
103
52
Neuchâtel
www.olofweb.com
Salut !

J'ai installé Mountain Lion depuis quelques jours et je remarque aujourd'hui que les ping depuis le terminal n'aboutissent pas, qu'ils soient faits sur internet ou sur mon réseau local :

Bloc de code:
MBP:~ olof$ ping www.apple.com
PING e3191.c.akamaiedge.net (2.19.77.15): 56 data bytes
ping: sendto: Host is down
ping: sendto: Host is down
Request timeout for icmp_seq 0

Par contre, depuis le programme Utilitaire de réseau, ça fonctionne. La commande traceroute, depuis le terminal, fonctionne, elle.

Par contre, avec git, je n'arrive pas à faire un push sur une autre machine de mon réseau local...

Des pistes pour chercher d'où peut venir ce problème ?
 
Bonjour,

Curieux le pb...
Je ne suis pas sous Lion, mais sous Snow Leopard.
Je me suis amusé à tracer (wireshark) un ping à partir du Terminal, et un ping à partir de l'utilitaire de réseau.
Les deux marchent, bien sûr.
Au plan protocolaire, c'est absolument identique. La seule différence se situe au niveau des datas.
Par défaut, les deux pings envoient 56 caractères, mais, dans l'ICMP request, les chaînes de caractères sont différentes.

ICMP request à partir du Terminal (les datas sont en gras)

0000 00 18 e7 23 a3 a5 00 25 00 a1 00 dc 08 00 45 00 ...#...%......E.
0010 00 54 4b 71 00 00 40 01 00 00 c0 a8 01 15 17 0e .TKq..@.........
0020 dd 0f 08 00 df f3 f5 05 00 00 50 91 9a 9e 00 05 ..........P.....
0030 4c ce 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 L...............
0040 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 .......... !"#$%
0050 26 27 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 &'()*+,-./012345
0060 36 37 67

ICMP à partir du Moniteur de réseau 67
0000 00 18 e7 23 a3 a5 00 25 00 a1 00 dc 08 00 45 00 ...#...%......E.
0010 00 54 50 32 00 00 40 01 00 00 c0 a8 01 15 17 43 [email protected]
0020 5d 0f 08 00 d5 e9 f9 05 00 00 50 91 9a e0 00 02 ].........P.....
0030 52 99 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 R...............
0040 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 .......... !"#$%
0050 26 27 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 &'()*+,-./012345
0060 36 37 67

On ne peut pas en déduire grand chose...

Perso, je ferais une trace (tcpdump, si vous n'avez pas wirshark) pour voir ce qui se passe exactement dans le cas qui ne marche pas (et peut-être aussi dans le cas qui marche, pour comparer).

Dans un fenêtre Terminal:
sudo tcpdump -A -i en0 host 8.8.8.8 (en0 si ethernet, en1 si wifi)
Dans un autre fenêtre:
ping 8.8.8.8 (le DNS de google)

On verra alors si l'ICMP request part bien, et si la la réponse revient (ou pas).
Le code erreur "host is down" semble vouloir dire qu'il n' y a pas de réponse de la machine distante. Improbable. On y verra plus clair après le tcpdump.
S'il y a un antivirus, il faudrait peut-être le désactiver (au cas (improbable) ou la chaîne de caractères du ping Terminal correspondrait à une empreinte).
Désactiver aussi le firewall si il y en a un. (dans un firewall, on peut interdire les différents types de messages ICMP).
J'y crois pas trop,.. Si c'était ça, le ping de l'utilitaire de réseau ne marcherait pas non plus)


Voir aussi les préférences du Terminal, et notamment le codage des caractères (UTF8)

Un bon test serait de changer les datas par défaut du ping du Terminal en envoyant par exemple un ping de 3 octets (313131 , soit trois fois le nombre "1" en hexa) pour voir si ça passe:
ping -p 31313131 8.8.8.8
 
Dernière édition:
Wouha, merci pour ce post détaillé !

Voici le résultat de mes tests, un peu dans le désordre...

Le ping depuis le terminal en changeant les datas par défaut ->pas de différences :

Bloc de code:
MBP:~ olof$ ping -p 313131 192.168.1.3
PATTERN: 0x313131
PING 192.168.1.3 (192.168.1.3): 56 data bytes
ping: sendto: Host is down
ping: sendto: Host is down
Request timeout for icmp_seq 0

Au niveau des préférences du terminal y'a plusieurs encodages qui sont cochés, dont UTF-8.

Je n'ai ni firewall, ni anti-virus.

Quant au tcpdump, voici le résultat fort peu bavard :

Bloc de code:
MBP:~ root# tcpdump -A -i en1 host 8.8.8.8
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on en1, link-type EN10MB (Ethernet), capture size 65535 bytes
^C
0 packets captured
75 packets received by filter
0 packets dropped by kernel

Et le résultat est le même avec les options -v et -vv.

Alors qu'avec un ping depuis l'utilitaire de réseau :

Bloc de code:
MBP:~ root# tcpdump -A -v -i en1 host 8.8.8.8
tcpdump: listening on en1, link-type EN10MB (Ethernet), capture size 65535 bytes
20:09:16.607121 IP (tos 0x0, ttl 64, id 30854, offset 0, flags [none], proto ICMP (1), length 84)
    192.168.1.5 > google-public-dns-a.google.com: ICMP echo request, id 40453, seq 0, length 64
[email protected]....	B..	
.................. !"#$%&'()*+,-./01234567
20:09:16.631241 IP (tos 0x0, ttl 48, id 39333, offset 0, flags [none], proto ICMP (1), length 84)
    google-public-dns-a.google.com > 192.168.1.5: ICMP echo reply, id 40453, seq 0, length 64
E..T....0..G................P....	B..	
.................. !"#$%&'()*+,-./01234567
^C
2 packets captured
4 packets received by filter
0 packets dropped by kernel


Si tu as d'autres pistes...


Merci !
 
Alors, c'est un vrai mystère.
Ce qu'on peut en déduire:
C'est que ce n'est pas la chaîne de caractères envoyée dans l'ICPM request du Terminal qui pose pb, car le ping simplifié des 3 octets ne marche pas non plus. Et puis, ça serait trop gros!
C'est que l'ICMP request ne sort pas du Mac via une fenêtre Terminal (par l'interface en1), et que le traceroute marche, et ça, c'est étonnant...:confused:
A moins que l'utilitaire de réseau n'utilise pas le même exécutable "ping" que le Terminal.
Chuis sec...:confused:

Mais bon, après, on peut imaginer des trucs.
Il faudrait faire un "ifconfig" pour voir si par hasard, il n'y aurait pas plusieurs interfaces réseaux configurées. Suivant leurs configurations, ça pourrait mettre la zone.
Un "netstat -r" pour voir les tables de routage. Je vois pas pourquoi, mais on peut tjs regarder.
Essayer peut-être aussi dans une session avec un autre compte utilisateur.
Après, restera la loi de l'emmerdement maximum.

Les sages du forum diront qu'il faut faire une clean install de Lion, attendre que les eaux soient redescendues à Lourdes, puis brûler un cierge...;)
Un pèlerinage sur la tombe de SJ pourrait le faire aussi.
Je plaisante. ils sont bons. Ils nous laissent simplement chercher un peu avant de donner la solution...:)

En tous cas, je voudrai bien savoir pourquoi.:siffle:
 
Dernière édition:
Aaarg, j'ai honte !!!

Après avoir testé avec un autre utilisateur, j'ai découvert le pot aux roses ! C'était une règle LittleSnitch qui bloquait les accès ICMP pour le terminal !!! Par contre, comment j'ai pu faire en sorte que cette règle soit là, mystère !

En tout cas, merci Polo pour m'avoir mis sur la voie !