4 votes

traceroute ne montre que * * * sous linux (dans une machine virtuelle), alors qu'il affiche correctement toutes les IP sous Windows.

J'ai fait tracert à google dans Windows PowerShell et les adresses IP de toutes les stations sont affichées correctement.

Cependant, si je fais la même chose sous Linux dans une machine virtuelle sur le même serveur, je ne vois que * * * .

 1  _gateway (10.0.2.2)  5.955 ms  5.568 ms  5.228 ms
 2  * * *
 3  * * *
 4  * * *
 5  * * *
 6  * * *
 7  * * *
 8  * * *
 9  * * *
10  * * *
11  * * *
12  * * *
13  * * *
14  * * *
15  * * *
16  * * *
17  * * *
18  * * *
19  * * *
20  * * *
21  * * *
22  * * *
23  * * *
24  * * *
25  * * *
26  * * *
27  * * *
28  * * *
29  * * *
30  * * *

Pourquoi cela ?

5voto

Hyunseok Oh Points 21

Les paquets que Windows tracert et Linux traceroute utilisés par défaut sont différents. Windows tracert envoie des paquets ICMP et Linux traceroute envoie des paquets UDP. Dans votre exemple, les ports UDP sont bloqués à chaque étape, mais le protocole ICMP est autorisé, ce qui explique la différence que vous constatez.

Von Wikipedia : traceroute :

Sur les systèmes d'exploitation de type Unix, traceroute envoie, par défaut, un message de type séquence de paquets UDP (User Datagram Protocol), avec des numéros de port de numéros de port de destination allant de 33434 à 33534 ; les implémentations de traceroute livrées avec Linux, FreeBSD, NetBSD, OpenBSD, DragonFly BSD, et macOS incluent une option permettant d'utiliser les paquets de requête d'écho ICMP (-I), ou tout protocole arbitraire (-P) tel que UDP, TCP utilisant des paquets TCP SYN ou ICMP.

Sous Windows, tracert envoie des paquets ICMP Echo Request, au lieu de la commande paquets UDP que traceroute envoie par défaut.

Vous pouvez avoir traceroute utiliser les paquets ICMP sous Linux en ajoutant l'option -I option.

Von man traceroute :

traceroute

Imprimer la route que prennent les paquets vers l'hôte du réseau.

Syntaxe
traceroute [options] host [packetsize]

Options :

 -I    Use ICMP ECHO for probes

2voto

iBug Points 8506

TL;DR Soit vous désactivez complètement le Pare-feu Windows, soit vous autorisez les paquets ICMP Time Exceeded à travers le WF.

J'ai un article plus détaillé et plus complet sur mon blog .

Problème

C'est la réponse :

Si votre pare-feu Windows est activé sur votre hôte, vous verrez ce comportement - seuls le premier et le dernier appareil répondent. S'il est désactivé, cela fonctionne (du moins pour moi).

La raison détaillée est la suivante, traceroute fonctionne en envoyant des requêtes d'écho ICMP avec un TTL croissant à partir de 1, de sorte que lorsqu'elles "meurent de temps", les routeurs intermédiaires renvoient Dépassement du délai ICMP paquets, ce qui est inattendu par le Pare-feu Windows .

Solution

La solution la plus évidente consiste à désactiver complètement le pare-feu Windows, mais cela n'est probablement pas sûr pour certains utilisateurs.

La solution sans désactiver le Pare-feu Windows est d'autoriser explicitement l'entrée de ICMP Time Exceeded (ICMPv4 Type 11 / ICMPv6 Type 3). Cela peut être fait comme suit :

  • Ouvrez le pare-feu de Windows : Début Outils d'administration de Windows Pare-feu Windows Defender avec sécurité avancée (oui, le nom est verbeux)

  • Sélectionnez Règles d'entrée à gauche

  • Sélectionnez Nouvelle règle... à droite

    image

  • Suivez l'invite. Sélectionnez les options suivantes dans l'ordre :

    • Type de règle : Personnalisé
    • Programme : Tous les programmes (il suffit de cliquer sur Suivant )
    • Protocole et ports :
      • Type de protocole : ICMPv4
      • (facultatif) Paramètres du protocole de message de contrôle Internet (ICMP) : Cliquez sur Personnalisez Sélectionnez Types d'ICMP spécifiques et cocher Temps dépassé
    • Portée : Toute adresse IP pour les deux (il suffit de cliquer sur Suivant )
    • Action : Autoriser (il suffit de cliquer sur Suivant )
    • Profil : Sélectionnez tout (cliquez simplement sur Suivant )
    • Nom : Réseau de base - Temps dépassé (ICMPv4-In) (apparemment n'importe quel nom que vous préférez)
  • Cliquez sur Finition et vous devriez immédiatement voir les sauts intermédiaires si vous utilisez mtr (Mon Traceroute) .

  • (facultatif) Répétez les étapes ci-dessus mais sélectionnez ICMPv6 pour Type de protocole si vous voulez activer le traceroute IPv6.

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