1 IPv6&4 Une Architecture Unifiée pour la Coexistence IPv4-IPv6 Rémi Després...

20
RD-IPTECH RD-IPTECH 1 IPv6&4 Une Architecture Unifiée pour la Coexistence IPv4-IPv6 Rémi Després ([email protected] ) Avec la participation de l'ENST-B Mettre en application au mieux l'apport d'IPv6 "adresses globales pour tous les équipements" dans un monde resté en partie IPv4 Présentation à l'université de Caen le 24 février 2005

Transcript of 1 IPv6&4 Une Architecture Unifiée pour la Coexistence IPv4-IPv6 Rémi Després...

Page 1: 1 IPv6&4 Une Architecture Unifiée pour la Coexistence IPv4-IPv6 Rémi Després (remi.despres@rd-iptech.com)remi.despres@rd-iptech.com Avec la participation.

RD-IPTECHRD-IPTECH 1

IPv6&4 Une Architecture Unifiée pour la Coexistence IPv4-IPv6

Rémi Després ([email protected])

Avec la participation de l'ENST-B

Mettre en application au mieux l'apport d'IPv6 "adresses globales pour tous les équipements"

dans un monde resté en partie IPv4

Présentation à l'université de Caen le 24 février 2005

Page 2: 1 IPv6&4 Une Architecture Unifiée pour la Coexistence IPv4-IPv6 Rémi Després (remi.despres@rd-iptech.com)remi.despres@rd-iptech.com Avec la participation.

22005-02-24

Le contexte: IPv4 est devenu IPv4+NAT !

v4 v4

@4@4

A B

P@4P@4

v4 v4

@4L@4L

A B

@4@4

v4

@4

P@4

@4 @4

DNS : A -> a@ ; B -> b@ DNS : C -> c@

C

X

NAT NAT

• Tous les hôtes peuvent être atteints ( adresse dans le DNS)

• La plupart des hôtes ne peuvent pas être atteints (pas d'adresse dans le DNS)

• La traversée des NAT limite les applications qui restent atteignables

X

Page 3: 1 IPv6&4 Une Architecture Unifiée pour la Coexistence IPv4-IPv6 Rémi Després (remi.despres@rd-iptech.com)remi.despres@rd-iptech.com Avec la participation.

32005-02-24

Retour à la normale avec tout IPv6

v6 v6

@4@6

A B

P@6P@6

@6

DNS : A -> a@ ; B -> b@

Tous les hôtes peuvent être atteints à une adresse IPv6 trouvée dans le DNS

Mais futur très lointain !

Page 4: 1 IPv6&4 Une Architecture Unifiée pour la Coexistence IPv4-IPv6 Rémi Després (remi.despres@rd-iptech.com)remi.despres@rd-iptech.com Avec la participation.

42005-02-24

Le court terme: aménager la transition

Backbone IPv4 Backbone IPv6

ROUTEURS DE FAI

ROUTEURS DE SITE

HOTES

SITE

ROUTEURS CE

ROUTEURS PE

ROUTEURS BE

FAI

APPLICATIONS

• Avoir des entités v6&4 entre les équipements v4 et v6

• Passer en v6 les entités dont tous les voisins sont v6&4 ou v6

• Choisir avec soin les fonctions des équipements v6&4

• Nombreuses entités indépendantes• Incompatibilité entre voisins v4 et v6• Impossibilité de migration "grand soir"

Page 5: 1 IPv6&4 Une Architecture Unifiée pour la Coexistence IPv4-IPv6 Rémi Després (remi.despres@rd-iptech.com)remi.despres@rd-iptech.com Avec la participation.

52005-02-24

Les fonctions des entités v6&4 Conversions v4 -> v6 et v6 -> v4 (6C4 et 4C6) - idéales mais rarement possibles

Changement de format entre v4 et v6

Pas de mémoire d'état de connexion

Applicable seulement là où les adresses sont convertibles entre v4 et v6 en fonction du seul contexte de l'entité qui convertit.

Traductions v6 -> v4 (6T4) - Utiles en dernier ressort

Changement de format entre v4 et v6

L'adresse v6 et le cas échéant le port associé sont traduits, avec mémoire d'état de connexion (variante de NAT-PT dite NAT-6to4)

Encapsulations v6 / v4 - Pour la traversée de zones v4 par des connexions v6

Le paquet v6 est précédé d'un en-tête d'encapsulation de type v4

Pas de mémoire d'état si les adresses v4 sont déductibles des adresses v6 en fonction du seul contexte de l'entité qui convertit.

Plusieurs formats selon les besoins

• Le plus immédiat, avec protocole 41 (6E4)

• Celui qui respecte les filtres sur numéros de port des firewalls v4 (6EF4)

Initialisation automatique pour les stations – Nécessaire pour égaler les solutions classiques v4

Déterminer si v4 et/ou v6 est supporté nativement à l'interface (essayer en parallèle)

Obtenir les adresses v4 et v6 applicables localement (DHCPv4 et RS-RA de NDv6)

Si v6 doit être encapsulé dans v4, déterminer selon quel format (essayer en parallèle les divers formats)

Page 6: 1 IPv6&4 Une Architecture Unifiée pour la Coexistence IPv4-IPv6 Rémi Després (remi.despres@rd-iptech.com)remi.despres@rd-iptech.com Avec la participation.

62005-02-24

Les apports spécifiques d'IPv6&4 (1)

v6 v4

@v4L

Les hôtes IPv4 à adresse IPv4

locale (espace privé) sont

appelables en IPv6

NAT-6to4 à l'entrée du site (sur

place ou chez l'ISP)

v6 v6&4

FW4

Les filtres des firewalls IPv4 sur

numéros de ports s'appliquent au

trafic IPv6

Encapsulation 6EF4 chez l'ISP (et

dans la station v6&4)

v6&4

v6&4

Page 7: 1 IPv6&4 Une Architecture Unifiée pour la Coexistence IPv4-IPv6 Rémi Després (remi.despres@rd-iptech.com)remi.despres@rd-iptech.com Avec la participation.

72005-02-24

ISP v6

IPv4 global Des stations de sites sans adresse v4

globale peuvent accéder aux serveurs

IPv4 à adresse IPv4 globale.

Traduction 6T4 entre le réseau v6 de

l'ISP et le réseau v4 global

v6&4

v4

v6&4

v4v6&4

v4 v6&4 v6

@v4 et @v6 fixes

Les apports spécifiques d'IPv6&4 (2)

IPv6 natif

Les adresses des stations mixtes

v6&4 sont indépendantes de ce

que le routage local soit évolutif

de v4 à v6&4 et/ou à v6

v6

v6&4

v6&4

Site privé

Évolution du routage

Page 8: 1 IPv6&4 Une Architecture Unifiée pour la Coexistence IPv4-IPv6 Rémi Després (remi.despres@rd-iptech.com)remi.despres@rd-iptech.com Avec la participation.

82005-02-24

Le projet de démonstrateur de l'ENST-B

BackboneIPv4

BackboneIPv6

v6

Relais 6to4

v4 v4 v6&4

v6&4

v4

v6v4

v4 v6

v6

2002:

2002:660:7301:

2002:660:7301:77:

FWv4 sans NAT

v6&4

2002:660:7301:88:

-X.X.X.X

2002:660:7301:77:1::2192.168..2

2002:660:7301:77::3192.168..3

2002:660:7301:77::110..1

Y.Y.Y.Y.Y.Y.Y.Y -

Page 9: 1 IPv6&4 Une Architecture Unifiée pour la Coexistence IPv4-IPv6 Rémi Després (remi.despres@rd-iptech.com)remi.despres@rd-iptech.com Avec la participation.

92005-02-24

v6

v4

Aiguillage IPv6&4

L6

6C4, 6E4, 6EF4, 6T4

L6

4C6

L4

4C6L4

InterfaceDriver

Pile v6

6E4, 6EF4, 6T4

v6

v4Pile v4

Architecture possible d'un aiguillage IPv6&4

Page 10: 1 IPv6&4 Une Architecture Unifiée pour la Coexistence IPv4-IPv6 Rémi Després (remi.despres@rd-iptech.com)remi.despres@rd-iptech.com Avec la participation.

102005-02-24

ENCAPSULATION HEADER GENERAL FORMAT

0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-------+-------+---------------+-------------------------------+ | IP | IHL |Type of service| Total Length | \ |Version| = 5 | = IPv6 | = adjusted from IPv6 Length | | | = 4 | | Traffic class | | | +-------+-------+---------------+-+-+-+-------------------------+ | | Identification | |D| | Fragment Offset = (if | | |.+.............................| |F|M| IPv6 frag. Offset ≠ 0, | | |M| if MF = 1 or FO ≠ 0, then |0|=|F| then adjusted from it, | | |F| bits-17-31 of IPv6 Ident. | |1| | else 0) | | |D| else incremented at each pkt| | | | | | IPv4 header +-+-------------+---------------+-+-+-+-------------------------+ | |TTL, set to the| Protocol = | Header Checksum = | | |IPv6 hop count | idem IPv6 | computed as usual | | +---------------+---------------+-------------------------------+ | | Source Address = | | | locally derived from the IPv6 Source address | | +---------------------------------------------------------------+ | | Destination Address = | | | locally derived from the IPv6 Destination address | / +---------------------------------------------------------------+ . Different for TCP packets, for UDP or ICMP first fragments, . \ Pseudo . and for UDP or ICMP continuation fragments (see below) . / Header +---------------------------------------------------------------+

MFD = if the datagram is multi-fragment, then 1, otherwise 0

MF = if the IPv6 has a fragmentation extension, then its bit M, otherwise = 0

The encapsulated IPv6 packet immediately follows this encapsulation header

Page 11: 1 IPv6&4 Une Architecture Unifiée pour la Coexistence IPv4-IPv6 Rémi Després (remi.despres@rd-iptech.com)remi.despres@rd-iptech.com Avec la participation.

112005-02-24

PSEUDO HEADER FOR A TCP PACKET

1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-------------------------------+-------------------------------+ | Source Port = idem IPv6 | Destination Port = idem IPv6 | +-------------------------------+-------------------------------+ | Sequence Number = idem IPv6 (SN) | +---------------------------------------------------------------+ | Acknowledgement Number = idem IPv6 | +-------+-----------+-----------+-------------------------------+ | Data | Reserved | Flags | Window | | Offset| = 0 (as |= idem IPv6| = idem IPv6 | | = 7 | in IPv6) | | | +-------+-----------+-----------+-------------------------------+ | TCP Checksum | Urgent Pointer = 0 | +---------------+---------------+-------------------------------+ | Option kind 1|Option length 1| C1 = O | | = 255 | = 7 | | +---------------+---------------+---------------+---------------+ | C2 = 0 | Option Kind 2 | | | = 0 | +-----------------------------------------------+---------------+ Checksum = that of IPv6 TCP plus the 1's complement of added fields Option length = 7 for the encapsulation header to be multiple of 64 bits

Page 12: 1 IPv6&4 Une Architecture Unifiée pour la Coexistence IPv4-IPv6 Rémi Després (remi.despres@rd-iptech.com)remi.despres@rd-iptech.com Avec la participation.

122005-02-24

PSEUDO HEADER FOR A UDP FIRST FRAGMENT 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-------------------------------+-------------------------------+ | Source Port = idem IPv6 | Destination Port = idem IPv6 | +-------------------------------+-------------------------------+ | Length | Checksum = 0 | +-------------------------------+-+-----------------------------+ | C3 = 0xFFFFFFFF | +-------------------------------+-+-----------------------------+ | Checksum Adjuster 1 |C| Truncated IPv4 Ident. 2 | | (CkA-2) |4| (TI4-2) | +-------------------------------+-+-----------------------------+

Length = UDPL6 + HL6 + 16 + (HL6 + 8) x [UDPL6 ÷ (1280 - L6) ], WHERE:

o UDPL6 = IPv6 UDP length

o HL6 = IPv6 header length, extensions included

o 16 = length of the pseudo header

o 8 = length of the IPv6 UDP header

o [UDPL6 ÷ (1280 - L6) ] is the number of continuation fragments

o 1280 = the length of each packet but the last one in a multi-packet datagram

CkA-2 = so that the computed IPv4 layer-4 checksum be 0

C4 = 1

TI4-2 = Bits 1-15 of the IPv4 Identification

Page 13: 1 IPv6&4 Une Architecture Unifiée pour la Coexistence IPv4-IPv6 Rémi Després (remi.despres@rd-iptech.com)remi.despres@rd-iptech.com Avec la participation.

132005-02-24

PSEUDO HEADER FOR AN ICMP FIRST FRAGMENT

0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +---------------+---------------+-------------------------------+ | Type | Code = 0 | Checksum = 0 | +---------------+---------------+-------------------------------+ | Next Word = idem IPv6 (type dependent) | +---------------------------------------------------------------+ | C5 = 0xFFFFFFFF | +-------------------------------+-------------------------------+ | Checksum Adjuster 3 | IPv4 Identification Copy 1 | | (CkA-3) | (I4C-1) | +-------------------------------+-------------------------------+ Type = if IPv6 ICMP type < 128, then 3 (unreachable destination) if IPv6 ICMP type = 128, then 8 (echo request) if IPv6 ICMP type = 129, then 0 (echo response) if IPv6 ICMP type = 133, then 10 (router solicitation) if IPv6 ICMP type = 134, then 9 (router advertisement)

CkA-3 = so that the computed IPv4 layer-4 checksum be 0

I4C-1 = IPv4 Identification

PSEUDO HEADER FOR AN ICMP OR UDP CONTINUATION FRAGMENT 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-------------------------------+-------------------------------+ | Checksum Adjuster 4 | IPv4 Identifier | | (CkA-4) | (I4C-2) | +-------------------------------+-------------------------------+ CkA-4 = so that the layer-4 checksum contribution of added layer 4 fields be 0

IPv4 = the IPv4 header Identification

Page 14: 1 IPv6&4 Une Architecture Unifiée pour la Coexistence IPv4-IPv6 Rémi Després (remi.despres@rd-iptech.com)remi.despres@rd-iptech.com Avec la participation.

142005-02-24

Correspondances entre adresses v6 et v4 à une interface i (1)

Si l'adresse X est sur le lien IPv6, qui n'est pas le réseau IPv4 global

<----------------64--------------><----------------64------------> <--- L(iP6) --> <-- 16 --> < 32 - L(P4)> +---//--------+-----//------------+---------+---//---+-----//-----+ v6 | = iP6 | = 0 | HP | = 0 | xS | +---//--------+-----//------------+---------+---//---+-----//-----+ HP = "v6" = 0 ou "v4" = 1 selon que le protocole d'hôte est IPv6 ou IPv4 < L(P4)>< 32 - L(P4)> +--//---+-----//-----+ v4 | iP4 | xS | +--//---+-----//-----+ Les adresses IPv6 unicast lien-local (préfixe FE80:/16) sont aussi traitées comme si des adresses sur le lien.

Si l'adresse X est sur le lien IPv6, qui est le réseau IPv4 global

<----------------64--------------><----------------64-------------> <-- 16 --><---- 32 ----><-- 16 --><-- 16 --><-- 16--><---- 32 ----> +---------+-------------+---------+---------+--------+-------------+ v6 | = iP6 | xA4 | = 0 | HP | = 0 | xA4 | | (0x2002)| | | | | | +---------+-------------+---------+---------+--------+-------------+ HP = "v6" = 0 ou "v4" = 1 selon que le protocole d'hôte est IPv6 ou IPv4 <--------- 32 --------> +----------------------+ v4 | xA4 | +----------------------+ Note : la répétition de xA4 dans la 1ère partie assure la compatibilité avec les routeurs et relais 6to4.

Page 15: 1 IPv6&4 Une Architecture Unifiée pour la Coexistence IPv4-IPv6 Rémi Després (remi.despres@rd-iptech.com)remi.despres@rd-iptech.com Avec la participation.

152005-02-24

Correspondances entre adresses v6 et v4 à une interface i (2)

Si X partage le préfixe du lien IPv6 mais n'est pas sur le lien

<---------------------------------128-------------------------------> <-- L(iP6) -->< 32 - L(iP4)> +----//-------+-----//------+-----//---------------------------------+ v6 | = iP6 |xSs ≠ 0, ≠ iS | | +----//-------+-----//------+-----//---------------------------------+ < L(iP4)>< 32 - L(iP4)> +---//---+-----//------+ v4 | iP4 | xSs | +---//---+-----//------+

Si X ne partage pas le préfixe du lien IPv6

<-------L(iP6)----><---------------- 128 - L(iP6)----------------> +---//-------------+----------------------------------------------+ v6 | ≠ iP6 | | +---//-------------+----------------------------------------------+ +---+---+---+---+ v4 |192| 88| 99| 1| (C058:7301) l'adresse IPv4 anycast des relais 6to4, ref. RFC 3068 +---+---+---+---+

Exceptions : L'adresse IPv6 multicast "tous les routeurs du lien", à savoir FF02::2, est traduite en l'adresse IPv4 multicast réservée à cet usage. Sa valeur provisoire est 224.0.1.20, réservée par l'IANA pour les expérimentations en multicast IPv4.

L'adresse multicast "tous les hôtes du lien", à savoir FF02::1, est traduite en l'adresse IPv4 de diffusion limitée 255.255.255.255.

Page 16: 1 IPv6&4 Une Architecture Unifiée pour la Coexistence IPv4-IPv6 Rémi Després (remi.despres@rd-iptech.com)remi.despres@rd-iptech.com Avec la participation.

162005-02-24

IPv6(V6S)

IPv4(V4S)

Adresse(DA6)

Protocole de l'hôteHP(DA6)

= L6 ≠ iP6::/64,,,

= L6 = iP6::/64 … = v6

= FF02::2

= 6E4 ≠ iP6::/64,,,

= 6E4 = iP6 … = v6

≠ L6 = FF02::2

=6EF4 = iP6::/64 … = v6

= 6EF4 ≠ iP6::/64,,,

≠ L6et

≠ 6E4= FF02::2

= L4 ≠ 0./0 = 2002:<32 bits>:0:1:: = iP6::/64 … = v4

= L4 = 0./0 = 2002:<32 bits>:0:,,, = v4

= L4 ≠ 0./0 = 2002:<32 bits>:0:,,, = iP6::/64 … = v4

Elimination

L6

Le support d'IPv6 sur le lien IPv6 est natif ET la destination n'est pas sur le lien IPv6 OU la destination est sur le lien IPv6 et a IPv6 comme protocole d'hôteOU la destination est "tous les routeurs du lien IPv6"

Le support d'IPv6 sur le lien IPv6 est l'encapsulation simple ET la destination n'est pas sur le lien IPv6 OU la destination est sur le lien IPv6 mais n'a pas IPv4 comme protocole d'hôteOU le support d'IPv6 sur le lien IPv6 n'est pas natif ET la destination est "tous les routeurs du lien IPv6" ET l'interface a une adresse IPv4

Conversion en IPv4

6C4

Le lien IPv6 supporte IPv4 ET la destination est sur le lien IPv6 avec IPv4 comme protocole d'hôteET la source a une adresse IPv4 globale avec IPv4 comme protocole d'hôte (le lien IPv6 ne devant donc pas être le réseau IPv4 global)

Aiguillage IPv6&4 à partir de la pile IPv6

Encapsulation respectant les pare-feux IPv4

6EF4

Le support d'IPv6 sur le lien IPv6 est l'encapsulation respectant les pare-feux IPv4 ET la destination n'est pas sur le lien IPv6 OU la destination est sur le lien IPv6 mais n'a pas IPv4 comme protocole d'hôteOU le support d'IPv6 sur le lien n'est ni natif ni l'encapsulation simple ET la destination est "tous les routeurs du lien IPv6" ET l'interface a une adresse IPv4

Fonction de l'aiguillage 4to6 Conditions

DestinationPréfixe IPv4 de sous-

réseau de l'interface

(iP4)

Description

Support de protocoles sur le

lien

Toutes les autres conditions

Adresse de source(SA6)

Abbéviation

Encapsulation simple dans

IPv46E4

Description

Transmission sur le lien en

IPv6

Traduction en IPv4

(NAT6to4)6T4

Le lien IPv6 supporte IPv4 ET la destination est sur le lien IPv6 avec protocole d'hôte IPv4,ET le lien est le réseau IPv4 global OU Le lien n'est pas le réseau IPv4 global ET la source est sur le réseau IPv4 global

Exemple de tests de l'aiguillage : à partir de la pile v6

Page 17: 1 IPv6&4 Une Architecture Unifiée pour la Coexistence IPv4-IPv6 Rémi Després (remi.despres@rd-iptech.com)remi.despres@rd-iptech.com Avec la participation.

172005-02-24

Adresses, Routes et paramètres du démonstrateur

F G H I

J

K M

N192.168../162002:c:c:77::/64

2002:c:c:88::/64

192.168.128.1

192.168..2 192.168..3

192.168..1

0./0 0::/0 ; 0./0

0::/0

C.C.C.CJ.J.J../24 0::/0 distance mini

0../02002::/160::/0 distance maxi

Relais 6to4

J.J.J.254

Réseau IPv4

2002:c:c::/48

i:i:i:i:i:i:i:i

i:i:i:i:i:i:i:i

FE80::2

192.168.0.2 2002:c:c:77::3192.168..3

2002:c:c:88::110..1

i:i:i:i:i:i:i:i

0::/0 ; 0./0

iP6 = 2002::/16 ; iP4 = 0::/0 ;V6S = 6E4 ; V4S = L4

iP6 = 2002:c:c:77::/64iP4 = 192.168./16V6S = 6EF4V4S = L4

iP6 = 2002:c:c:77::/64iP4 = 192.168./16V6S = L6V4S = L4

IPv4

IPv6 IPv4 et IPv6 Aiguillage IPv6&4

FE80::1

B

0./0

B.B.B.B

B.B.B.B

B.B.B.B

192.168.128.2

192.168.0../17

0./0

192.88.99../24 2002::/16

Réseau IPv6 natif

NAT- PT 0::/96J.J.J../25

Page 18: 1 IPv6&4 Une Architecture Unifiée pour la Coexistence IPv4-IPv6 Rémi Després (remi.despres@rd-iptech.com)remi.despres@rd-iptech.com Avec la participation.

182005-02-24

Relation avec les outils existants Utilisée tel quel

Le protocole 41 (encapsulation directe IPv6 dans IPv4)

Utilisés en étendant son application 6to4 (automatisation de "tunnels" sur le réseau IPv4)

Utilisés en restreignant leur application puis en l'étendant NAT-PT devient NAT-6to4, sans fragmentation ni ALG

Pouvant coexister mais plus nécessaires ISATAP

A domaine d'application disjoint (et plus nécessaires en 4to6) Teredo A étudier en vue d'en ajouter une partie dans le modèle

4to6

Dont une partie pourrait être ajoutée à v6&4 DSTM (Le but serait d'étendre à des applications non compatibles

NAT-v4 les connexions de site v6 à serveur à protocole et adresse v4).

Page 19: 1 IPv6&4 Une Architecture Unifiée pour la Coexistence IPv4-IPv6 Rémi Després (remi.despres@rd-iptech.com)remi.despres@rd-iptech.com Avec la participation.

192005-02-24

État d'avancement

Les grands principes ont été finalisés vers mi 2004 (deux

demandes de brevet)

La démarche est soutenue par le Ministère de la

Recherche et l'ANVAR (concours 2004).

Des premiers échanges en France (à l'ENST-B

notamment), et à l'IETF, ont conduit à améliorer de façon

importante les choix de réalisation.

L'implémentation en Q1 2005 d'un démonstrateur par

l'équipe de Laurent Toutain (pôle de compétence IPv6 de

la région Bretagne) est engagée.

Page 20: 1 IPv6&4 Une Architecture Unifiée pour la Coexistence IPv4-IPv6 Rémi Després (remi.despres@rd-iptech.com)remi.despres@rd-iptech.com Avec la participation.

202005-02-24

FIN