Définition
Une adresse IPv6 est une adresse IP de 128 bits ecrite en hexadecimal, sous forme de huit groupes de 4 chiffres separes par des deux-points. Des regles d'abreviation permettent de raccourcir l'ecriture.
Contexte
CCST demande de reconnaitre une ecriture IPv6 valide, de savoir la raccourcir correctement, d'identifier les prefixes courants et de detecter les ecritures invalides.
Details techniques
2001:0db8:0000:0001:0000:0000:1234:00ab
| | | | | | | | |
16b 16b 16b 16b 16b 16b 16b 16b = 128 bits
- 8 groupes (hextets) de 4 chiffres hexadecimaux
- Chaque groupe = 16 bits
- Caracteres valides : 0-9, a-f (insensible a la casse)
Regles d'abreviation
| Regle |
Description |
Exemple |
| Supprimer les zeros en tete |
Les zeros non significatifs d'un groupe sont supprimes |
0db8 → db8, 00ab → ab, 0000 → 0 |
Remplacer une suite de groupes 0 par :: |
Une seule suite continue de groupes tout-zero |
0000:0000 → :: |
:: une seule fois |
Jamais deux :: dans la meme adresse |
2001::abcd::1 = INVALIDE |
Exemple d'abreviation pas a pas
Complet : 2001:0db8:0000:0001:0000:0000:1234:00ab
Etape 1 : 2001:db8:0:1:0:0:1234:ab (zeros en tete supprimes)
Etape 2 : 2001:db8:0:1::1234:ab (suite de zeros remplacee par ::)
Exemples d'adresses valides et invalides
| Adresse |
Valide ? |
Raison |
2001:db8::1 |
Oui |
:: remplace les groupes intermediaires |
::1 |
Oui |
Adresse loopback (7 groupes implicites de zeros) |
:: |
Oui |
Adresse non specifiee (tous zeros) |
2001::abcd::1 |
Non |
Deux :: → ambigu |
2001:db8:xyz::1 |
Non |
xyz contient un caractere non-hex (x, y) |
2001:db8:12345::1 |
Non |
Groupe de 5 chiffres (max 4) |
Structure d'une adresse IPv6 (/64)
|<---------- 64 bits ---------->|<---------- 64 bits ---------->|
| Prefixe reseau | Identifiant d'interface |
| Global Routing Prefix | SID | Interface ID |
| (attribue par le RIR) |subnet | (EUI-64, aleatoire ou manuel)|
| Partie |
Bits |
Description |
| Global Routing Prefix |
48 (typiquement) |
Attribue par le FAI ou le RIR |
| Subnet ID |
16 (typiquement) |
Identifie le sous-reseau au sein de l'organisation |
| Interface ID |
64 |
Identifie l'hote sur le sous-reseau |
EUI-64 (generation de l'Interface ID)
- Prendre l'adresse MAC 48 bits :
AA:BB:CC:DD:EE:FF
- Inserer
FF:FE au milieu : AA:BB:CC:FF:FE:DD:EE:FF
- Inverser le 7e bit (bit U/L) :
A8:BB:CC:FF:FE:DD:EE:FF
MAC : 00:1A:2B:3C:4D:5E
EUI-64 : 021A:2BFF:FE3C:4D5E
Adresse complete : 2001:db8:1::021A:2BFF:FE3C:4D5E
Prefixes importants a connaitre
| Prefixe |
Type |
Usage |
2000::/3 |
Global Unicast (GUA) |
Adresses routables sur Internet |
FE80::/10 |
Link-Local |
Communication locale (non routable) |
FC00::/7 |
Unique Local (ULA) |
Equivalent des adresses privees |
FF00::/8 |
Multicast |
Remplace le broadcast IPv4 |
::1/128 |
Loopback |
Equivalent de 127.0.0.1 |
:: |
Non specifiee |
Equivalent de 0.0.0.0 |
Exemple concret
Un administrateur lit dans la config d'un routeur : ipv6 address 2001:0DB8:0000:000A:0000:0000:0000:0001/64. Il l'abregera en 2001:DB8:0:A::1/64 pour la documentation. Le prefixe 2001:DB8::/32 indique que c'est un bloc de documentation (RFC 3849), utilise en lab mais jamais en production.