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

Attachment: signature.asc
Description: PGP signature

Répondre à