Auteur Sujet: [Débutant] Ping TTL du reply égal à celui du request?  (Lu 1104 fois)

0 Membres et 1 Invité sur ce sujet

Steph

  • Abonné K-Net
  • *
  • Messages: 7 679
  • La Balme de Sillingy 74
    • Uptime K-net
[Débutant] Ping TTL du reply égal à celui du request?
« le: 25 avril 2024 à 11:59:50 »
Bonjour,

Ce matin, j'ai eu une misère pour accéder à l'un de mes switchs à travers mon VPN.
Après investigation, j'ai compris que le switch en question (Netgear GS308E), répond avec un TTL au départ égal à celui de la demande. Du coup, pas accessible de l'extérieur du réseau local.

ping depuis le lan
ping -n 1 -i 128 switch-bas.home
Envoi d’une requête 'ping' sur switch-bas.home avec 32 octets de données :
Réponse de switch-bas.home : octets=32 temps=5 ms TTL=128

ping -n 1 -i 1 switch-bas.home
Envoi d’une requête 'ping' sur switch-bas.home avec 32 octets de données :
Réponse de switch-bas.home : octets=32 temps=3 ms TTL=1

J'ai mis un peu de temps à trouver car un autre switch GS605E répond avec un TTL de départ "normal" à 64 et tous les autres équipements du réseau répondent correctement.

Dans le traceroute depuis l'extérieur du lan à travers le VPN, cela fait un saut de plus en time-out et je ne comprenais pas quel était ce mystérieux équipement (tous mes équipements répondent aux ping).
De plus, bien que répondant au ping, ce switch n'est pas accessible en http à travers le VPN.

Tracert et ping de l'extérieur du lan à travers openvpn en mode routage
tracert switch-bas.home
Détermination de l’itinéraire vers switch-bas.home
avec un maximum de 30 sauts :
  1     2 ms     3 ms     2 ms  nas.vpn
  2     *        *        *     Délai d’attente de la demande dépassé.
  3     5 ms     5 ms     5 ms  switch-bas.home
Itinéraire déterminé.

ping -n 1 -i 128 switch-bas.home
Envoi d’une requête 'ping' sur switch-bas.home avec 32 octets de données :
Réponse de switch-bas.home  : octets=32 temps=5 ms TTL=126

C'est courant cette façon de faire en réseau? Le TTL de réponse = au TTL de la demande?

D'avance merci.
Cordialement

pju91

  • Abonné Free fibre
  • *
  • Messages: 861
  • 91
[Débutant] Ping TTL du reply égal à celui du request?
« Réponse #1 le: 25 avril 2024 à 12:29:59 »
C'est courant cette façon de faire en réseau? Le TTL de réponse = au TTL de la demande?
réponse courte : Non
réponse plus longue :
je n'ai jamais vu ça, il n'y a rien de ce genre dans le RFC 792 (je sais, c'est vieux).
Les systèmes Linux "modernes" permettent de fixer la valeur par défaut, tu peux vérifier par : $ sysctl -n net.ipv4.ip_default_ttl
64
Sans surprise c'est aussi cette valeur qu'utilise ma FreeBox :
$ ping -c 1 -4  _gateway
PING  (192.168.1.254) 56(84) bytes of data.
64 bytes from _gateway (192.168.1.254): icmp_seq=1 ttl=64 time=5.44 ms

---  ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 5.439/5.439/5.439/0.000 ms

Steph

  • Abonné K-Net
  • *
  • Messages: 7 679
  • La Balme de Sillingy 74
    • Uptime K-net
[Débutant] Ping TTL du reply égal à celui du request?
« Réponse #2 le: 25 avril 2024 à 12:56:55 »
Merci.
Ça m'a bien foiré mon compte de hop ce TTL variable au départ!
Sans Wireshark, je crois que je me demanderais encore ce qui se passe.
C'est vicieux de tromper ainsi un traceroute, d'avoir réponse au ping et pas de réponse http, alors qu'en local, tout marche bien.

Edit : j'ai pas de console sur le GS308E switch manageable grand public, seulement un http.

Steph

  • Abonné K-Net
  • *
  • Messages: 7 679
  • La Balme de Sillingy 74
    • Uptime K-net
[Débutant] Ping TTL du reply égal à celui du request?
« Réponse #3 le: 25 avril 2024 à 18:09:50 »
J'ai jeté un œil sur le forum Netgear.
Il y a des gens qui ont le même problème de non accès à l'interface web à travers un VPN.

Seule réponse proposée : https://community.netgear.com/t5/Plus-and-Smart-Switches-Forum/GS308E-Refusing-Connection-while-on-VPN/m-p/2334492
"Here again, the very basic IP stack on the micro controller is not able to handle smaller MTU than the default, these switches don't understand PMTUD."

Ce qui me parait bien louche.

Steph

  • Abonné K-Net
  • *
  • Messages: 7 679
  • La Balme de Sillingy 74
    • Uptime K-net
[Débutant] Ping TTL du reply égal à celui du request?
« Réponse #4 le: 25 avril 2024 à 19:50:32 »
J'ai aussi fait un Wireshark sur la connexion http.
Le PC qui initie la connexion sur le switch ne reçoit que des [RST, ACK] en réponse à ses [SYN].

pju91

  • Abonné Free fibre
  • *
  • Messages: 861
  • 91
[Débutant] Ping TTL du reply égal à celui du request?
« Réponse #5 le: 25 avril 2024 à 22:42:20 »
As-tu regardé si tu voyais des paquets ICMP "Destination Unreachable" / "Fragmentation Needed and Don't Fragment was Set" dans ta trace pour voir s'il s'agit bien de ce sujet Path MTU Discovery? (et si les paquets SYN envoyés par le PC contiennent le bit do not fragment positionné ?)
Pour moi, si c'était un cas lié à PMTUD, tu ne verrais même pas de TCP RST.

L'implémentation IP a l'air un peu fantaisiste sur cet équipement, ça pourrait être autre chose (ex : ne pas autoriser les connexions entrantes http d'une provenance hors du LAN).


Steph

  • Abonné K-Net
  • *
  • Messages: 7 679
  • La Balme de Sillingy 74
    • Uptime K-net
[Débutant] Ping TTL du reply égal à celui du request?
« Réponse #6 le: 26 avril 2024 à 10:25:33 »
As-tu regardé si tu voyais des paquets ICMP "Destination Unreachable" / "Fragmentation Needed and Don't Fragment was Set" dans ta trace pour voir s'il s'agit bien de ce sujet Path MTU Discovery?
Aucun paquet de ce type.
Je n'y croyais pas trop à cette option du "guru".
(et si les paquets SYN envoyés par le PC contiennent le bit do not fragment positionné ?)
Il l'est.
Pour moi, si c'était un cas lié à PMTUD, tu ne verrais même pas de TCP RST.
Je le vois très bien des deux cotés du tunnel.

PC TCP SYN
Switch bizarre : TCP RST

L'implémentation IP a l'air un peu fantaisiste sur cet équipement, ça pourrait être autre chose (ex : ne pas autoriser les connexions entrantes http d'une provenance hors du LAN).
C'est bien possible.
Dans la doc : "Connect your computer to the same network as the switch."
Mais il ne parle pas des tunnels.
Et le GS305 répond correctement TCP SYN ACK contrairement au GS308 qui répond TCP RST pour une même situation.

Je comprends bien cette réponse sécuritaire TCP RST à des demandes hors du LAN de config du Switch.

Par contre je ne comprends pas bien la réponse ICMP Reply avec le TTL positionné à la valeur du TTL recu avec le ICMP Request.

pju91

  • Abonné Free fibre
  • *
  • Messages: 861
  • 91
[Débutant] Ping TTL du reply égal à celui du request?
« Réponse #7 le: 26 avril 2024 à 10:39:13 »
Dans la doc : "Connect your computer to the same network as the switch."
Mais il ne parle pas des tunnels.
Et le GS305 répond correctement TCP SYN ACK contrairement au GS308 qui répond TCP RST pour une même situation.

Je comprends bien cette réponse sécuritaire TCP RST à des demandes hors du LAN de config du Switch.
it is not a bug, it is a feature (read the f...g manual) ... Implémentation à 2 balles d'une mesure de "sécurité"
Par contre je ne comprends pas bien la réponse ICMP Reply avec le TTL positionné à la valeur du TTL recu avec le ICMP Request.
implémentation à 2 balles de la couche IP, en répondant au paquet reçu en ne se donnant pas la peine de créer une nouvelle entête IP pour la réponse, mais juste reprise des champs du paquet IP reçu en inversant les adresses IP src et dst.

Fyr

  • Abonné Free fibre
  • *
  • Messages: 883
  • Talissieu 01
[Débutant] Ping TTL du reply égal à celui du request?
« Réponse #8 le: 26 avril 2024 à 12:32:09 »
Par contre je ne comprends pas bien la réponse ICMP Reply avec le TTL positionné à la valeur du TTL recu avec le ICMP Request.

Certains OS ont des valeurs par défaut différente pour le champs TTL des ICMP REQUEST et ICMP REPLY. D'autres répondent avec le TTL vu lors de la réception. 

https://community.cisco.com/t5/routing/why-ttl-in-ping-request-packet-and-ping-response-not-the-same/td-p/3918734

Steph

  • Abonné K-Net
  • *
  • Messages: 7 679
  • La Balme de Sillingy 74
    • Uptime K-net
[Débutant] Ping TTL du reply égal à celui du request?
« Réponse #9 le: 26 avril 2024 à 13:28:31 »
Et du coup, cela foire les traceroute, puisque le réponse n'arrive pas à  revenir.

Fyr

  • Abonné Free fibre
  • *
  • Messages: 883
  • Talissieu 01
[Débutant] Ping TTL du reply égal à celui du request?
« Réponse #10 le: 26 avril 2024 à 13:38:11 »
Et du coup, cela foire les traceroute, puisque le réponse n'arrive pas à  revenir.

Et oui. C'est le "bug" dans ce cas le TTL de l'ICMP REPLY ne peut pas parvenir.

Et je te confirme que sur une pile TCP de référence de FreeBSD ou la RACK ça répond avec le TTL par défaut l'OS ou spécifié dans cet OS.

pju91

  • Abonné Free fibre
  • *
  • Messages: 861
  • 91
[Débutant] Ping TTL du reply égal à celui du request?
« Réponse #11 le: 26 avril 2024 à 13:50:55 »
Cette idée de positionner le TTL de la réponse à celui du paquet reçu n'a aucune justification et est une violation notamment du RFC 1700.
Extrait (ça a 30 ans) :
IP TIME TO LIVE PARAMETER

The current recommended default time to live (TTL) for the
Internet Protocol (IP) (...) is 64.
Ca partait du constat à l'époque que le "diamètre" d'Internet en nombre de hops était de quelques dizaines.

Il faut se rappeler qu'au départ (càd aux débuts d'Internet), le TTL dans l'en-tête IP vise à éviter qu'une circularité dans des tables de routage provoque un engorgement du réseau par des paquets qui y restent indéfiniment.
L'utilisation du TTL dans la commande traceroute (ou ses dérivés) est juste la programmation d'une "astuce" technique, pour exploiter les messages ICMP TTL Exceeded permettant de détecter les anomalies de routage.
Ca n'est en rien une "norme", d'ailleurs, par défaut, traceroute Windows envoie des messages ICMP alors que les versions Unix s'appuient sur UDP.

(désolé de faire encore mon ancien combattant)