50 votes

Pourquoi est-il dangereux de modifier le TTL de l'IP ?

J'ai lu la page de manuel d'iptables (lecture légère à l'heure du coucher) et je suis tombé sur la cible 'TTL', mais il y a un avertissement :

La définition ou l'incrémentation du champ TTL peut s'avérer très dangereuse.

y

Ne définissez ou n'incrémentez jamais la valeur sur des paquets qui quittent votre réseau local !

Je comprends que la décrémentation ou l'abaissement du TTL puisse entraîner l'abandon de paquets avant qu'ils n'atteignent leur destination, mais quel effet pourrait avoir l'incrémentation ?

67voto

Kyle Brandt Points 81077

Le TTL est décrémenté lorsqu'il passe par un routeur. Cela permet de s'assurer que si le paquet tourne en rond, il finira par mourir.

Le champ TTL d'un paquet IP v4 est un champ de 8 bits (255 en décimal). Il n'est donc pas très important de le fixer à un niveau élevé au début, puisqu'il ne peut pas être aussi grand dans un paquet bien formé (bien que certaines choses puissent accepter des paquets IP malformés).

Cependant, si quelque chose l'incrémente, et que l'étape d'incrémentation est partie de la boucle Le paquet pourrait continuer à tourner en rond sans jamais atteindre zéro. Avec le temps (qui peut être très court, ou une fuite progressive), les paquets peuvent s'accumuler dans le système contenant cette boucle et provoquer une surcharge.

20voto

Nathan C Points 14821

Le TTL sur les paquets permet de garder le routage sain, fondamentalement. Si un paquet avait un TTL très élevé et était pris dans une route circulaire pour une raison quelconque, il pourrait causer une tonne de trafic (appelée "tempête de paquets") et interférer avec les opérations normales. Un TTL trop faible entraînerait une perte de connectivité, car le paquet serait perdu avant d'avoir atteint sa destination.

5voto

Pulsehead Points 1654

Il y a un point que les réponses semblent avoir oublié mais qui serait purement académique (en raison du nombre de sauts qui semblent être nécessaires sur l'internet) : si un paquet ne parvient normalement pas à atteindre sa destination à cause d'un TTL qui expire, l'augmenter permettrait au paquet d'atteindre sa destination mais n'affecterait pas les paquets renvoyés et ils expireraient avant d'atteindre votre réseau.

MISE À JOUR : selon cette page sur Wikipedia :

En théorie, sous IPv4, le temps de vie est mesuré en secondes, bien que chaque hôte qui transmet le datagramme doive réduire le TTL d'au moins une unité. En pratique, le champ TTL est réduit d'une unité à chaque saut. Pour refléter cette pratique, le champ est renommé limite de saut dans l'IPv6.

MISE À JOUR 2 : Comme quelqu'un a mis à jour mon message et fait référence à Wikipedia, j'ai pensé qu'il serait préférable de faire référence au RFC lui-même. http://www.ietf.org/rfc/rfc791.txt - Il suffit de faire une recherche sur TTL pour obtenir une bonne explication :

Ce champ indique la durée maximale pendant laquelle le datagramme est autorisé à rester dans le système internet... chaque module qui traite un datagramme doit diminuer le TTL d'au moins un, même s'il traite le datagramme en moins d'une seconde.

3voto

ott-- Points 1071

Je ne connais qu'un seul programme qui pourrait utiliser une valeur TTL plus élevée. traceroute . Comme son nom l'indique, il trace la route vers un hôte de destination en modifiant la valeur du TTL. Le nombre de sauts maximum standard est de 20, mais vous pouvez l'augmenter.

0voto

Larry King Points 1

Chaque routeur qui traite un paquet décrémente la valeur TTL, jusqu'à ce que le paquet atteigne sa destination, ou que le TTL atteigne zéro et meure.

Comme d'autres l'ont dit, l'augmentation du TTL pourrait aboutir à des paquets qui ne meurent jamais, s'il y a un cycle négatif. En règle générale, si la valeur du TTL n'est pas suffisamment élevée, la logique qui consiste à essayer d'augmenter le TTL devrait probablement être gérée par les clients de bout en bout.

Si vous êtes sûr qu'un routeur n'est pas dans un cycle (topologie arborescente), vous pouvez en théorie augmenter la valeur TTL en toute sécurité. Cela dit, le fait d'autoriser un plus grand nombre de sauts que la norme pourrait accroître les risques d'encombrement dans le réseau externe. Si vous avez une longue chaîne de routeurs entre le réseau interne et le réseau externe, tant qu'il n'y a pas de cycle, une valeur TTL plus élevée peut être utile. Cela dit, il pourrait être assez facile pour quelqu'un d'ajouter un bord au réseau et de créer un cycle, de sorte qu'il est beaucoup plus sûr de commencer avec une valeur TTL plus élevée à l'endroit d'où le paquet provient en premier lieu.

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