Difference between revisions of "Déploiement d'IPv6 et mécanismes d'intégration"
From Livre IPv6
m |
|||
(4 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
+ | {{suivi| Utilisation des mécanismes d'intégration d'IPv6 | Utilisation des mécanismes d'intégration d'IPv6 | Déploiement IPv6 des fournisseurs d'accès (ISP) | Déploiement IPv6 des fournisseurs d'accès (ISP) }} | ||
Plusieurs champs de déploiement d'IPv6 sont présentés dans la suite de ce chapitre : le déploiement d'IPv6 dans le coeur de réseau en premier lieu, dans les réseaux de fournisseurs d'accès ensuite, et pour finir, l'accès des réseaux d'entreprises et de particuliers à la connectivité IPv6. | Plusieurs champs de déploiement d'IPv6 sont présentés dans la suite de ce chapitre : le déploiement d'IPv6 dans le coeur de réseau en premier lieu, dans les réseaux de fournisseurs d'accès ensuite, et pour finir, l'accès des réseaux d'entreprises et de particuliers à la connectivité IPv6. | ||
Line 7: | Line 8: | ||
Le mécanisme de double pile IP consiste à doter chaque équipement du réseau d'une double pile protocolaire (''Dual Stack'') et d'affecter une adresse IPv4 et/ou IPv6 à chaque interface réseau. Il s'applique à tous les segments d'un réseau. En contrepartie, ce mécanisme ne prend pas en compte les problèmes de pénurie d'adresses IPv4. | Le mécanisme de double pile IP consiste à doter chaque équipement du réseau d'une double pile protocolaire (''Dual Stack'') et d'affecter une adresse IPv4 et/ou IPv6 à chaque interface réseau. Il s'applique à tous les segments d'un réseau. En contrepartie, ce mécanisme ne prend pas en compte les problèmes de pénurie d'adresses IPv4. | ||
− | Tous les équipementiers de coeur de réseaux supportent ce mécanisme, qui permet rapidement d'acheminer du trafic IPv6 dans une infrastructure IPv4 existante. Le déploiement de ce mécanisme peut être progressif et ne concerner qu'une partie du coeur de réseau dans un premier temps. Lorsque le déploiement est partiel, une attention particulière doit être portée au protocole de routage utilisé. Dans ce cas en effet, l'activation de fonctions permettant de gérer plusieurs topologies peut s'avérer nécessaire (cf. [[ | + | Tous les équipementiers de coeur de réseaux supportent ce mécanisme, qui permet rapidement d'acheminer du trafic IPv6 dans une infrastructure IPv4 existante. Le déploiement de ce mécanisme peut être progressif et ne concerner qu'une partie du coeur de réseau dans un premier temps. Lorsque le déploiement est partiel, une attention particulière doit être portée au protocole de routage utilisé. Dans ce cas en effet, l'activation de fonctions permettant de gérer plusieurs topologies peut s'avérer nécessaire (cf. [[ISIS]]). |
Pour les équipements terminaux, ce mécanisme de transition a été défini et a été très largement employé dès le début de la standardisation d'IPv6. De la même manière, il consiste à doter chaque équipement d'une double pile protocolaire et d'affecter une adresse IPv4 et/ou IPv6 à chaque inteface réseau. Cela ne résoud pas le problème de la pénurie d'adresses IPv4, mais permet dans un premier temps d'acheminer indifférement du trafic IPv4 ou IPv6 sur un équipement donné (station, routeur). | Pour les équipements terminaux, ce mécanisme de transition a été défini et a été très largement employé dès le début de la standardisation d'IPv6. De la même manière, il consiste à doter chaque équipement d'une double pile protocolaire et d'affecter une adresse IPv4 et/ou IPv6 à chaque inteface réseau. Cela ne résoud pas le problème de la pénurie d'adresses IPv4, mais permet dans un premier temps d'acheminer indifférement du trafic IPv4 ou IPv6 sur un équipement donné (station, routeur). | ||
Line 23: | Line 24: | ||
supported media: autoselect 100baseTX | supported media: autoselect 100baseTX | ||
− | Reste le problème des applications. Une application écrite avec l'API socket IPv6 ([[L'interface de programmation "socket" IPv6]]), utilisant en particulier des <tt>struct sockaddr_storage</tt> et la fonction <tt>getaddrinfo</tt>, peut dialoguer indifférement en IPv4 et en IPv6. Simplement, pour un serveur, deux sockets sont nécessaires, l'une pour IPv4 et l'autre pour IPv6. La station B devrait, dans l'exemple de la figure ci-dessus, posséder des serveurs pour chacune des versions de IP, ou au moins des serveurs écoutant sur plusieurs ports en parallèle. Cela peut être évité en utilisant des [[ | + | Reste le problème des applications. Une application écrite avec l'API socket IPv6 ([[L'interface de programmation "socket" IPv6]]), utilisant en particulier des <tt>struct sockaddr_storage</tt> et la fonction <tt>getaddrinfo</tt>, peut dialoguer indifférement en IPv4 et en IPv6. Simplement, pour un serveur, deux sockets sont nécessaires, l'une pour IPv4 et l'autre pour IPv6. La station B devrait, dans l'exemple de la figure ci-dessus, posséder des serveurs pour chacune des versions de IP, ou au moins des serveurs écoutant sur plusieurs ports en parallèle. Cela peut être évité en utilisant des [[Autres types d'adresses#mappee|adresses mappées]], qui permettent à une application de voir l'espace d'adresses IPv4 comme une partie de l'espace d'adressage IPv6. |
Comme le montre la figure Adresse IPv4 mappée, l'adresse IPv4 est contenue dans l'adresse IPv6. | Comme le montre la figure Adresse IPv4 mappée, l'adresse IPv4 est contenue dans l'adresse IPv6. | ||
Line 58: | Line 59: | ||
Les applications recompilées avec l'API IPv6 ne fonctionnent que sur des équipements pourvus d'un système récent (et d'une pile IPv6 si on utilise les adresses IPv4 mappées), ce qui peut poser des problèmes de compatibilité entre les différentes versions d'un système. | Les applications recompilées avec l'API IPv6 ne fonctionnent que sur des équipements pourvus d'un système récent (et d'une pile IPv6 si on utilise les adresses IPv4 mappées), ce qui peut poser des problèmes de compatibilité entre les différentes versions d'un système. | ||
+ | |||
+ | ===6PE (MPLS)=== | ||
+ | |||
+ | Ce mécanisme profite de la commutation de MPLS (''Multi Protocol Label Switching'') selon l'étiquette insérée dans un paquet, pour rendre un réseau capable de transporter des paquets IPv6 sans avoir à en modifier tous les équipements. Le coeur du réseau MPLS (les équipements P : ''Provider'') reste inchangé. 6PE permet à un opérateur / ISP, dont le coeur de réseau s'appuie sur la technologie MPLS pour acheminer le trafic IPv4, de ne faire évoluer que la partie périphérique de son réseau (les équipements de périphérie : PE : ''Provider Edge'') pour pouvoir transporter aussi le trafic IPv6 de ses usagers. Le routage IPv6 est réalisé par les équipements de périphérie (PE) qui attribuent une étiquette à chaque paquet IPv6. | ||
+ | |||
+ | La commutation de paquets IPv6 à haut débit peut poser des problèmes si les composants électroniques chargés de la commutation ne prennent pas en compte le nouveau format de paquets. MPLS peut être une solution pour véhiculer le trafic dans un réseau ne connaissant pas IPv6 puisque la décision de commuter une trame MPLS est faite en fonction d'une étiquette placée avant le paquet. | ||
+ | |||
+ | 6PE, ([[La technique 6PE]]), propose l'utilisation de BGP pour créer automatiquement des tunnels dans un système autonome. Nous allons présenter ici sommairement une des possibilités appliquée à MPLS. | ||
+ | |||
+ | [[image:CS177.gif]] | ||
+ | |||
+ | La figure Architecture d'un réseau MPLS illustre succintement l'architecture d'un réseau MPLS avec les routeurs en bordure de réseau (PE) qui insèrent les étiquettes en fonction de la destination et les routeurs en coeur de réseau (P) qui commutent rapidement les trames MPLS en fonction de l'étiquette. | ||
+ | |||
+ | Si la commutation de trame ne pose pas de problème, il faut pouvoir assigner les étiquettes en fonction de leur destination dans le réseau de l'opérateur. Or, pour ce faire, il faut modifier le processus de signalisation et par conséquent les équipements du coeur de réseau. | ||
+ | |||
+ | Les routeurs de bordure doivent être capables de prendre en compte les spécificités d'IPv6 en particulier insérer l'étiquette MPLS en fonction de l'adresse IPv6 de destination. Par contre, il existe une possibilité de ne pas modifier les équipements du coeur de réseau en utilisant le protocole de routage iBGP. Le peering BGP est fait en utilisant IPv4 comme protocole de transport. Grâce aux extensions multi-protocole de BGP, il est possible de transporter des préfixes IPv6 et les étiquettes MPLS associées à ces préfixes. Le routeur de bordure en entrée du réseau peut donc associer le préfixe IPv6 et le champ Next Hop correspondant à l'adresse IPv4 du routeur ayant fait l'annonce iBGP (48). | ||
+ | |||
+ | Le protocole de routage interne et le protocole de distribution d'étiquette permettent de construire des chemins pour les préfixes IPv4 internes. Quand un routeur MPLS reçoit un paquet IPv6, il ajoute deux étiquettes : | ||
+ | |||
+ | * la première (L1 dans l'exemple figure Architecture d'un réseau MPLS) permet de joindre le routeur de sortie. Cette étiquette est déterminée à partir de la valeur du champ ''Next Hop'' associé au préfixe de l'adresse de destination du paquet. | ||
+ | * la seconde (L2) contient l'étiquette annoncée par iBGP correspondant au préfixe IPv6. | ||
+ | {{suivi| Utilisation des mécanismes d'intégration d'IPv6 | Utilisation des mécanismes d'intégration d'IPv6 | Déploiement IPv6 des fournisseurs d'accès (ISP) | Déploiement IPv6 des fournisseurs d'accès (ISP) }} |
Latest revision as of 11:55, 21 February 2006
Utilisation des mécanismes d'intégration d'IPv6 | Table des matières | Déploiement IPv6 des fournisseurs d'accès (ISP) |
Plusieurs champs de déploiement d'IPv6 sont présentés dans la suite de ce chapitre : le déploiement d'IPv6 dans le coeur de réseau en premier lieu, dans les réseaux de fournisseurs d'accès ensuite, et pour finir, l'accès des réseaux d'entreprises et de particuliers à la connectivité IPv6.
Déploiement d'IPv6 dans le coeur du réseau
Double pile
Le mécanisme de double pile IP consiste à doter chaque équipement du réseau d'une double pile protocolaire (Dual Stack) et d'affecter une adresse IPv4 et/ou IPv6 à chaque interface réseau. Il s'applique à tous les segments d'un réseau. En contrepartie, ce mécanisme ne prend pas en compte les problèmes de pénurie d'adresses IPv4.
Tous les équipementiers de coeur de réseaux supportent ce mécanisme, qui permet rapidement d'acheminer du trafic IPv6 dans une infrastructure IPv4 existante. Le déploiement de ce mécanisme peut être progressif et ne concerner qu'une partie du coeur de réseau dans un premier temps. Lorsque le déploiement est partiel, une attention particulière doit être portée au protocole de routage utilisé. Dans ce cas en effet, l'activation de fonctions permettant de gérer plusieurs topologies peut s'avérer nécessaire (cf. ISIS).
Pour les équipements terminaux, ce mécanisme de transition a été défini et a été très largement employé dès le début de la standardisation d'IPv6. De la même manière, il consiste à doter chaque équipement d'une double pile protocolaire et d'affecter une adresse IPv4 et/ou IPv6 à chaque inteface réseau. Cela ne résoud pas le problème de la pénurie d'adresses IPv4, mais permet dans un premier temps d'acheminer indifférement du trafic IPv4 ou IPv6 sur un équipement donné (station, routeur).
La figure Compatibilité grâce à la double pile illustre ce principe. La station B peut parler en IPv4 avec la station A et en IPv6 avec la station C. Le listing suivant donne un exemple de configuration d'une double pile dans un environnement Unix.
xl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 inet 192.108.119.134 netmask 0xffffff00 broadcast 192.108.119.255 inet6 3ffe:305:1002:1:2b0:d0ff:fe5c:4aee/64 inet6 fe80::2b0:d0ff:fe5c:4aee/64 ether 00:b0:d0:5c:4a:ee media: 10baseT/UTP <half-duplex> supported media: autoselect 100baseTX
Reste le problème des applications. Une application écrite avec l'API socket IPv6 (L'interface de programmation "socket" IPv6), utilisant en particulier des struct sockaddr_storage et la fonction getaddrinfo, peut dialoguer indifférement en IPv4 et en IPv6. Simplement, pour un serveur, deux sockets sont nécessaires, l'une pour IPv4 et l'autre pour IPv6. La station B devrait, dans l'exemple de la figure ci-dessus, posséder des serveurs pour chacune des versions de IP, ou au moins des serveurs écoutant sur plusieurs ports en parallèle. Cela peut être évité en utilisant des adresses mappées, qui permettent à une application de voir l'espace d'adresses IPv4 comme une partie de l'espace d'adressage IPv6.
Comme le montre la figure Adresse IPv4 mappée, l'adresse IPv4 est contenue dans l'adresse IPv6.
Quand la pile IPv4 d'un équipement reçoit un paquet et qu'une application s'est enregistrée via une socket IPv6 (famille de protocoles PF_INET6), les adresses IPv4 mappée source et destination sont construites à partir des informations contenues dans l'en-tête du paquet. Réciproquement quand une application IPv6 émet des paquets avec une adresse IPv4 mappée, ceux-ci sont aiguillés vers la pile IPv4.
L'exemple suivant illustre ce fonctionnement. Le client telnet, compilé en IPv6 peut contacter les équipements IPv4 en utilisant l'adresse mappée.
>telnet rhadamanthe Trying 3ffe:305:1002:1:2b0:d0ff:fe5c:4aee... Connected to rhadamanthe.ipv6.rennes.enst-bretagne.fr. Escape character is '^]'. FreeBSD/i386 (rhadamanthe.ipv6.rennes.enst-br) (ttyp3) login:^D >telnet bloodmoney Trying ::ffff:193.52.74.211... Connected to bloodmoney.rennes.enst-bretagne.fr. Escape character is '^]'. SunOS UNIX (bloodmoney) login:
Le mécanisme de double pile permet de résoudre tous les problèmes d'interopérabilité liés à l'introduction de la pile IPv6. Quand cela est possible, la communication se fait en utilisant la nouvelle version du protocole. Dès qu'un des éléments n'est pas compatible (réseau, système d'exploitation, application), le protocole IPv4 est utilisé. Le principal intérêt vient du fait qu'il est possible d'écrire des applications en IPv6 qui restent compatibles avec les applications IPv4 existantes. Pourtant ce mécanisme n'est pas suffisant :
- Il ne résout pas le problème de la pénurie d'adresses puisque chaque machine doit disposer d'une adresse IPv4 et d'une adresse IPv6. Cela complique aussi les mécanismes de configuration automatique.
- Il implique que tous les routeurs soient aussi configurés pour router les deux types de paquets.
- Les applications doivent être compilées pour IPv6, ce qui implique la disponibilité du code source et un "effort" de reprogrammation.
Les applications recompilées avec l'API IPv6 ne fonctionnent que sur des équipements pourvus d'un système récent (et d'une pile IPv6 si on utilise les adresses IPv4 mappées), ce qui peut poser des problèmes de compatibilité entre les différentes versions d'un système.
6PE (MPLS)
Ce mécanisme profite de la commutation de MPLS (Multi Protocol Label Switching) selon l'étiquette insérée dans un paquet, pour rendre un réseau capable de transporter des paquets IPv6 sans avoir à en modifier tous les équipements. Le coeur du réseau MPLS (les équipements P : Provider) reste inchangé. 6PE permet à un opérateur / ISP, dont le coeur de réseau s'appuie sur la technologie MPLS pour acheminer le trafic IPv4, de ne faire évoluer que la partie périphérique de son réseau (les équipements de périphérie : PE : Provider Edge) pour pouvoir transporter aussi le trafic IPv6 de ses usagers. Le routage IPv6 est réalisé par les équipements de périphérie (PE) qui attribuent une étiquette à chaque paquet IPv6.
La commutation de paquets IPv6 à haut débit peut poser des problèmes si les composants électroniques chargés de la commutation ne prennent pas en compte le nouveau format de paquets. MPLS peut être une solution pour véhiculer le trafic dans un réseau ne connaissant pas IPv6 puisque la décision de commuter une trame MPLS est faite en fonction d'une étiquette placée avant le paquet.
6PE, (La technique 6PE), propose l'utilisation de BGP pour créer automatiquement des tunnels dans un système autonome. Nous allons présenter ici sommairement une des possibilités appliquée à MPLS.
La figure Architecture d'un réseau MPLS illustre succintement l'architecture d'un réseau MPLS avec les routeurs en bordure de réseau (PE) qui insèrent les étiquettes en fonction de la destination et les routeurs en coeur de réseau (P) qui commutent rapidement les trames MPLS en fonction de l'étiquette.
Si la commutation de trame ne pose pas de problème, il faut pouvoir assigner les étiquettes en fonction de leur destination dans le réseau de l'opérateur. Or, pour ce faire, il faut modifier le processus de signalisation et par conséquent les équipements du coeur de réseau.
Les routeurs de bordure doivent être capables de prendre en compte les spécificités d'IPv6 en particulier insérer l'étiquette MPLS en fonction de l'adresse IPv6 de destination. Par contre, il existe une possibilité de ne pas modifier les équipements du coeur de réseau en utilisant le protocole de routage iBGP. Le peering BGP est fait en utilisant IPv4 comme protocole de transport. Grâce aux extensions multi-protocole de BGP, il est possible de transporter des préfixes IPv6 et les étiquettes MPLS associées à ces préfixes. Le routeur de bordure en entrée du réseau peut donc associer le préfixe IPv6 et le champ Next Hop correspondant à l'adresse IPv4 du routeur ayant fait l'annonce iBGP (48).
Le protocole de routage interne et le protocole de distribution d'étiquette permettent de construire des chemins pour les préfixes IPv4 internes. Quand un routeur MPLS reçoit un paquet IPv6, il ajoute deux étiquettes :
- la première (L1 dans l'exemple figure Architecture d'un réseau MPLS) permet de joindre le routeur de sortie. Cette étiquette est déterminée à partir de la valeur du champ Next Hop associé au préfixe de l'adresse de destination du paquet.
- la seconde (L2) contient l'étiquette annoncée par iBGP correspondant au préfixe IPv6.
Utilisation des mécanismes d'intégration d'IPv6 | Table des matières | Déploiement IPv6 des fournisseurs d'accès (ISP) |