IPv6 développer ↔ compresser
Convertir entre la notation IPv6 développée et compressée
L'outil IPv6 Expand/Compress convertit les adresses IPv6 entre leur notation hexadécimale complète à 8 groupes et la forme compressée raccourcie avec ::. Saisissez une adresse comme 2001:db8::1 pour voir sa forme étendue 2001:0db8:0000:0000:0000:0000:0000:0001, ou collez une adresse en forme complète pour obtenir la représentation compressée la plus courte conforme à la RFC 5952.
Comprendre la notation des adresses IPv6
Les adresses IPv6 font 128 bits de long, ce qui signifie que les écrire en entier nécessite 32 chiffres hexadécimaux. Pour rendre cela gérable, les chiffres sont divisés en huit groupes de quatre, séparés par des deux-points : 2001:0db8:0000:0000:0000:0000:0000:0001. Mais même avec ce regroupement, saisir et lire 39 caractères pour chaque adresse devient vite fastidieux, surtout quand la plupart de ces caractères sont des zéros. C'est pourquoi la RFC 2373 a introduit des règles de compression, et la RFC 5952 a ensuite standardisé la forme courte canonique.
La compression fonctionne de deux manières. Premièrement, vous pouvez supprimer les zéros non significatifs dans chaque groupe : 0db8 devient db8, et 0000 devient 0. Deuxièmement, vous pouvez remplacer la plus longue séquence consécutive de groupes entièrement à zéro par ::. Ainsi, 2001:0db8:0000:0000:0000:0000:0000:0001 se compresse en 2001:db8::1 -- sept caractères bien plus lisibles. La contrainte est que vous ne pouvez utiliser :: qu'une seule fois par adresse, car si vous l'utilisiez deux fois, il serait impossible de déterminer combien de groupes de zéros chaque :: représente.
Ces deux formes sont complètement équivalentes -- elles représentent le même nombre de 128 bits et fonctionnent de manière identique dans tout contexte réseau. Le choix entre les deux est une question de lisibilité et d'exigences système. Les fichiers de configuration et les règles de pare-feu utilisent généralement la forme compressée pour la concision. Le stockage en base de données, les systèmes SNMP et certains outils d'analyse de journaux préfèrent la forme étendue car sa largeur fixe de 39 caractères simplifie l'analyse syntaxique. Cet outil vous permet de convertir instantanément entre les deux, et il produit toujours la forme canonique correcte selon la RFC 5952 afin que vos adresses soient cohérentes dans toute votre documentation et vos configurations.
Comment étendre ou compresser une adresse IPv6
- Saisissez une adresse IPv6 en format compressé ou étendu
- Sélectionnez Expand pour produire la notation complète à 8 groupes avec les zéros non significatifs, ou Compress pour produire la représentation valide la plus courte
- Consultez le résultat converti ainsi que les deux formes affichées côte à côte pour comparaison
Exemples d'expansion et de compression IPv6
| Forme compressée | Forme étendue |
|---|---|
::1 | 0000:0000:0000:0000:0000:0000:0000:0001 |
:: | 0000:0000:0000:0000:0000:0000:0000:0000 |
2001:db8::1 | 2001:0db8:0000:0000:0000:0000:0000:0001 |
2001:db8::ff00:42:8329 | 2001:0db8:0000:0000:0000:ff00:0042:8329 |
fe80::1 | fe80:0000:0000:0000:0000:0000:0000:0001 |
::ffff:c0a8:101 | 0000:0000:0000:0000:0000:ffff:c0a8:0101 |
2001:db8:85a3::8a2e:370:7334 | 2001:0db8:85a3:0000:0000:8a2e:0370:7334 |
ff02::1 | ff02:0000:0000:0000:0000:0000:0000:0001 |
Compression avec plusieurs séquences de zéros
Lorsqu'une adresse contient plusieurs séquences consécutives de groupes à zéro, seule la séquence la plus longue est remplacée par ::. Si les séquences sont de longueur égale, c'est la séquence la plus à gauche qui est compressée, conformément à la RFC 5952 :
| Forme étendue | Compression correcte | Incorrecte |
|---|---|---|
2001:0db8:0000:0000:0001:0000:0000:0001 | 2001:db8::1:0:0:1 | 2001:db8:0:0:1::1 |
2001:0000:0000:0001:0000:0000:0000:0001 | 2001:0:0:1::1 | 2001::1:0:0:0:1 |
0000:0000:0000:0001:0000:0000:0000:0001 | ::1:0:0:0:1 | 0:0:0:1::1 |
Quand utiliser l'outil IPv6 Expand/Compress
- Standardisation des fichiers de configuration -- s'assurer que toutes les adresses IPv6 dans les règles de pare-feu, les enregistrements DNS et les configurations de routeurs utilisent le même style de notation
- Comparaison et déduplication d'adresses -- étendre deux adresses en forme complète pour déterminer si
2001:db8::1et2001:0db8:0000:0000:0000:0000:0000:0001sont la même adresse (c'est le cas) - Préparation des fichiers de zone BIND -- certains systèmes DNS nécessitent une notation étendue ou spécifique pour les enregistrements AAAA et la délégation de zones inverses
- Apprentissage de la structure IPv6 -- étendre les adresses compressées pour voir exactement quels groupes sont à zéro et comprendre la disposition complète de l'adresse 128 bits
- Audit des ACL et des politiques -- normaliser les adresses dans une forme canonique avant de comparer les politiques de sécurité entre des équipements qui peuvent stocker les adresses différemment
- Normalisation en base de données -- convertir toutes les adresses dans le même format avant l'insertion en base de données pour permettre des recherches et déduplications fiables
Fonctionnement de la compression des adresses IPv6
Algorithme d'expansion
- Si
::est présent, compter les groupes existants de chaque côté - Calculer les groupes manquants :
8 - (groupes_gauche + groupes_droite) - Remplacer
::par le nombre calculé de groupes0000 - Compléter chaque groupe à exactement 4 chiffres hexadécimaux avec des zéros non significatifs
Exemple : expansion de 2001:db8::ff00:42:8329
Left of :: → 2001:db8 (2 groups)
Right of :: → ff00:42:8329 (3 groups)
Missing → 8 - 2 - 3 = 3 (three 0000 groups)
Result → 2001:0db8:0000:0000:0000:ff00:0042:8329
Algorithme de compression
- Compléter tous les groupes à 4 chiffres hexadécimaux et diviser en 8 groupes
- Trouver la plus longue séquence consécutive de groupes entièrement à zéro
- Remplacer cette séquence par
::(la plus à gauche l'emporte en cas d'égalité) - Supprimer les zéros non significatifs de chaque groupe restant
- Le résultat est la forme canonique compressée selon la RFC 5952
Règles du format canonique RFC 5952
- Les chiffres hexadécimaux doivent être en minuscules (
2001:db8, et non2001:DB8) - Les zéros non significatifs doivent être supprimés (
db8, et non0db8) - La plus longue séquence consécutive de groupes
0doit être compressée ::ne doit pas être utilisé pour un seul groupe0(utiliser0à la place)
Conseils pratiques pour la notation IPv6
La cohérence est l'aspect le plus important lors du choix d'un style de notation. Choisissez une forme -- généralement la compressée pour les configurations destinées aux humains et l'étendue pour les données analysées par des machines -- et tenez-vous-y dans toute votre documentation, vos règles de pare-feu et vos modèles de configuration. Mélanger 2001:db8::1 à un endroit et 2001:0db8:0000:0000:0000:0000:0000:0001 à un autre rend plus difficile la recherche, le grep et la comparaison des adresses entre les fichiers.
Lors du dépannage, la forme étendue est votre alliée. Si vous comparez deux adresses et qu'elles semblent différentes en forme compressée, étendez les deux en notation complète et comparez groupe par groupe. Cela révèle immédiatement si les adresses diffèrent ou si elles sont simplement écrites avec des styles de compression différents. Cela facilite également l'identification de la partie de l'adresse qui est le préfixe réseau et de celle qui est l'identifiant d'interface, en particulier pour les longueurs de préfixe non standard comme /48 ou /56.
Un piège subtil : certains outils et systèmes anciens ne gèrent pas correctement ::, en particulier lorsqu'il apparaît au début ou à la fin de l'adresse. Si vous rencontrez un système qui bloque sur ::1 ou fe80::, essayez plutôt la forme étendue. C'est de plus en plus rare à mesure que le support IPv6 a mûri, mais vous pouvez encore le rencontrer dans les systèmes embarqués, les plateformes de supervision historiques ou les scripts personnalisés qui utilisent une analyse de chaînes naïve au lieu de bibliothèques d'adresses appropriées.
Questions fréquentes
2001:db8::1 et 2001:0db8:0000:0000:0000:0000:0000:0001 sont-elles la même adresse ?
Oui, elles représentent exactement la même adresse 128 bits. La forme étendue montre explicitement les 32 chiffres hexadécimaux, tandis que la forme compressée utilise :: pour omettre les groupes de zéros consécutifs et supprime les zéros non significatifs inutiles. Convertir les deux dans la même notation confirme l'équivalence.
Pourquoi certains systèmes exigent-ils la forme étendue ?
Les équipements réseau anciens, certaines implémentations SNMP et certains outils d'analyse de journaux s'attendent à un format d'adresse fixe de 39 caractères. La forme étendue avec les deux-points fait toujours exactement 39 caractères (xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx), ce qui simplifie l'analyse dans les systèmes qui utilisent des formats de champs à largeur fixe.
La compression modifie-t-elle la valeur de l'adresse ?
Non. La compression est purement un changement de notation. La valeur binaire sous-jacente de 128 bits reste identique. Étendre puis compresser une adresse renvoie toujours la valeur d'origine, et les deux formes sont interchangeables dans tout contexte acceptant les adresses IPv6.
Pourquoi la RFC 5952 exige-t-elle des chiffres hexadécimaux en minuscules ?
La RFC 5952 standardise la représentation canonique pour garantir la cohérence. Bien que 2001:DB8::1 et 2001:db8::1 soient tous deux valides, avoir une seule forme canonique évite les entrées en double dans les bases de données, simplifie les comparaisons de chaînes et rend les opérations de grep/recherche fiables. Les minuscules ont été choisies comme forme canonique.
Puis-je utiliser cet outil avec des adresses IPv6 mappées IPv4 ?
Oui. Une adresse comme ::ffff:192.168.1.1 peut être étendue pour montrer la notation complète. La notation mixte avec une adresse IPv4 intégrée est également supportée, bien que la forme étendue affiche la partie IPv4 sous forme de deux groupes hexadécimaux (par ex. ::ffff:c0a8:0101).
Outils associés
- IPv6 Validator - Valider les adresses IPv6 (formats complet et compressé)
- IPv6 ↔ BigInt Converter - Convertir les adresses IPv6 vers/depuis les entiers 128 bits
- IPv6 ↔ Binary Converter - Convertir les adresses IPv6 vers/depuis la notation binaire
- IPv4-Mapped IPv6 Converter - Convertir entre IPv4 et les adresses IPv4-mapped IPv6 (::ffff:)
- IPv4 Validator - Valider les adresses IPv4 au format strict en notation décimale pointée