2011-06-06 4 views
7

Je travaillais sur un projet qui comprend le développement d'une application utilisant des douilles Java. Cependant, alors que la lecture de certains fondamentaux et à venir paradigme nouveau IPv6 qui m'a motivé à poser ci-dessous question,Quels sont les avantages de l'élimination de la fragmentation d'IPv6?

Quels sont les avantages de la suppression la fragmentation de l'IPv6?

Il serait utile que quelqu'un puisse me dire pourquoi?

J'ai fait des recherches sur Internet mais n'ai trouvé aucune description utile.

Répondre

12

Il est généralement admis qu'il existe une non fragmentation IPv6, car l'en-tête IPv6 ne possède pas le champ de décalage de fragment que fait IPv4; Cependant, ce n'est pas exactement exact. IPv6 n'autorise pas les routeurs à fragmenter les paquets; cependant, les noeuds d'extrémité peuvent insérer un en-tête de fragmentation IPv6 .

Comme RFC 5722 États , l'un des problèmes de fragmentation est qu'il tend à créer des trous de sécurité. À la fin des années 1990, il y avait plusieurs attaques bien connues sur Windows 95 qui exploitaient des fragments IPv4 chevauchants ; en outre, la fragmentation en ligne des paquets est risquée à graver dans le silicium du routeur Internet en raison de la longue liste de problèmes qui doivent être traités. L'un des plus gros problèmes est que les fragments qui se chevauchent dans un routeur (en attente de réassemblage) pourraient potentiellement causer une faille de sécurité sur ce périphérique s'ils sont mal gérés. Le résultat final est que la plupart des implémentations de routeurs poussent les paquets nécessitant une fragmentation vers le logiciel; cela ne se fait pas à grande vitesse.

L'autre problème est que si vous réassembler des fragments, vous devez les tampons pendant une période de temps jusqu'à ce que le reste sont reçus. Il est possible pour quelqu'un de tirer parti de cette dynamique et d'envoyer un très grand nombre de fragments IP non finis; forcer l'appareil en question à dépenser de nombreuses ressources en attente d'une opportunité de réassembler. Les implémentations intelligentes limitent le nombre de fragments en suspens pour éviter un déni de service de cette part; cependant, limiter les fragments en suspens pourrait légitimement affecter le nombre de fragments valides qui peuvent être réassemblés.

En bref, il y a trop de problèmes poilues pour permettre à un routeur pour gérer la fragmentation. Si les paquets IPv6 nécessitent une fragmentation, les implémentations des hôtes doivent être assez intelligentes pour utiliser TCP Path MTU discovery. Cela implique également que plusieurs messages ICMPv6 doivent être autorisés de bout en bout; Il est intéressant de nombreux administrateurs de pare-feu IPv4 bloquent ICMP pour se prémunir contre la cartographie de réseau hostile (et bloquer tout naïvement ICMPv6), sans se rendre compte que le blocage de tous les ICMPv6 casse les choses de façon subtile .


FIN-NOTES:

  1. Voir la section 4.5 du Internet Protocol, Version 6 (IPv6) Specification

  2. De RFC 5722: Handling of Overlapping IPv6 Fragments:

    pare-feu couramment utilisés utilisent l'algorithme spécifié dans [RFC1858] pour éliminer les paquets malveillants qui tentent de surcharger riter les parties de l'en-tête de couche de transport dans afin de contourner les contrôles de connexion entrants. [RFC1858] empêche une attaque de fragment chevauchant sur un protocole de couche supérieure (dans ce cas, TCP) en recommandant que les paquets avec un décalage de fragment de 1 soient supprimés.
    Bien que cela fonctionne bien pour les fragments IPv4, il ne fonctionnera pas pour les fragments IPv6. En effet, la partie fragmentable du paquet IPv6 peut contenir des en-têtes d'extension avant l'en-tête TCP, rendant cette vérification moins efficace.

  3. Voir Teardrop attack (wikipedia)

  4. Voir RFC 4890: Recommendations for Filtering ICMPv6 Messages in Firewalls

+1

+1, c'est incroyable combien les routeurs peuvent être plus rapides quand ils peuvent tout faire dans le matériel – mpontillo

+4

Bloquer tout v4 ICMP est tout aussi nocif - les réponses de fragmentation nécessaires sont tout aussi importantes pour PMTUD dans IPv4. – caf

4

Je n'ai pas la réponse « officielle » pour vous, mais juste basé sur la lecture de la façon dont gère IPv6 datagrammes qui sont trop grands, je pense serait de réduire la charge sur les routeurs. La fragmentation et le réassemblage entraînent des frais généraux au niveau du routeur. IPv6 déplace cette charge vers les nœuds d'extrémité et exige qu'ils effectuent une découverte MTU pour déterminer la taille de datagramme maximale qu'ils peuvent envoyer. Il va de soi que les nœuds finaux sont mieux adaptés à la tâche car ils ont moins de données à traiter. Effectivement, les routeurs ont assez sur leurs plaques; il est judicieux de forcer les nœuds à traiter et permettre aux routeurs de simplement laisser tomber quelque chose qui dépasse leur seuil MTU. Idéalement, le résultat final serait que les routeurs puissent gérer une charge plus importante sous IPv6 (toutes choses égales par ailleurs) que sous IPv4, car il n'y a pas de fragmentation/réassemblage dont ils doivent se préoccuper. Cette puissance de processeur peut être dédiée au routage du trafic.

+1

"_La fragmentation et le réassemblage entraînent une surcharge au niveau du routeur". Pourquoi un ** routeur ** gère-t-il le réassemblage? – curiousguy

0

IPv4 a un MTU minimum de 576 octets garanti, IPv6 est 1,280 octets, et la recommandation est de 1500 octets, la différence est essentiellement la performance . Comme la plupart des segments LAN des utilisateurs finaux ont une taille de 1 500 octets, ils réduisent les frais d'infrastructure réseau en raison de la fragmentation supplémentaire de ce qui est en réalité des réseaux hérités nécessitant des tailles plus petites.

Pour UDP, il n'existe aucune définition dans les normes IPv4 concernant la reconstruction de paquets fragmentés, ce qui signifie que chaque plate-forme peut le gérer différemment. IPv6 affirme que la fragmentation et l'assemblage se produiront toujours dans la pile IP et que les fragments ne seront pas présentés aux applications.

+4

Je suis désolé, il n'est pas correct que IPv6 nécessite 1500 octets. [RFC 2460] (http://www.faqs.org/rfcs/rfc2460.html) autorise les MTU de couche 2 à 1280 octets, voir Section 5. –

+3

Pourquoi le fragment est-il TCP ou UDP? La fragmentation IPv4 est gérée sur la couche IP. –

+0

L'assemblage @Mike datagramme n'est pas garanti. De nombreuses piles de middleware de messagerie incluent du code spécifiquement pour la reconstruction lorsque la pile IP sous-jacente ne le garantit pas. –

Questions connexes