On 03-01-20, Stephane Bortzmeyer wrote: > Le TTL change à chaque paquet. > 2) Quel équipement ferait ça, et pourquoi ?
Vraisemblablement le serveur lui-même. Très certainement pour le fun, ou pour que des ingénieurs et chercheurs se posent trop de questions :) En tout cas, le TTL des paquets retours est stable en TCP, donc c'est un comportement spécifique à l'ICMP. En analysant rapidement les TTLs observés (merci Perl [1] pour l'histogramme rapide) : $ ping -c 500 -i 0.2 114.114.114.114 | sed -nr 's/.*ttl=([0-9]*).*/\1/p' | sort -n | uniq -c | perl -lane 'print $F[1], "\t", "*" x $F[0]' 50 *************** 51 ************* 52 ************ 53 **************** 54 ***************** 55 **************** 56 *************** 57 ***************** 58 ************ 59 ********************* 60 ************ 61 **************** 62 ****************** 63 ************* 64 ****************** 65 ************** 66 *************** 67 *************** 68 ************** 69 ********************* 70 ************** 71 *********** 72 **************** 73 ******************* 74 **************** 75 ******************** 76 ************** 77 ***************** 78 ************** 79 *********** 80 ****************** 81 ********** Les TTLs ont donc l'air d'être tirés de façon à peu près uniforme. En TCP j'ai un TTL retour de 42, donc en supposant qu'ils partent à 64 ça fait un décalage de 22 : ils tirent donc les TTLs uniformément entre 72 et 103. C'est possible de faire quelque chose d'approchant avec iptables (man iptables-extensions) : for ttl in {0..31} do iptables -t mangle -A OUTPUT -p icmp --icmp-type echo-reply -m statistic --mode nth --every 32 --packet $ttl -j TTL --ttl-set $((ttl+72)) done Là ça donne des TTL dans l'ordre, mais en cherchant un peu on doit pouvoir faire des séquences pseudo-aléatoires. Il y a un autre mode où on peut appliquer une règle avec une certaine probabilité, mais là ça devient chaud de faire une distribution uniforme à partir de ça. Bon en tout cas, quelle que soit la méthode, ils ont l'air de s'être bien amusés et je pense que c'est la réponse à ta question :) Baptiste [1] https://unix.stackexchange.com/questions/177777/drawing-a-histogram-from-a-bash-command-output
signature.asc
Description: PGP signature