Appendix B. Examples
Appendix B. Examples (Exemples)
B.1 Gateway-Based Architecture (Architecture fondée sur une passerelle)
Cette architecture vise les déploiements haut débit résidentiels mais peut s'adapter facilement à d'autres types de déploiement où le parc installé d'équipements IPv4-only est important.
Considérez un scénario où un CPE Dual-Stack Lite n'est provisionné qu'en IPv6 sur le port WAN, pas en IPv4. Le CPE agit comme serveur DHCP IPv4 pour le LAN (filaire et sans fil) en distribuant des adresses [RFC1918]. En outre, le CPE peut prendre en charge la configuration automatique IPv6 et/ou un serveur DHCPv6 pour le LAN. Lorsqu'un équipement IPv4-only se connecte au CPE, ce CPE attribue une adresse [RFC1918] à l'équipement. Lorsqu'un équipement dual-stack-capable se connecte au CPE, ce CPE attribue une adresse [RFC1918] et une adresse IPv6 globale à l'équipement. De plus, le CPE crée un tunnel softwire IPv4 dans IPv6 [RFC5571] vers un AFTR situé dans le réseau du fournisseur de services.
Lorsque l'équipement accède à un service IPv6, il envoie le datagramme IPv6 au CPE de manière native. Le CPE route le trafic en amont vers la passerelle par défaut IPv6.
Lorsque l'équipement accède à un service IPv4, il émet le datagramme IPv4 avec l'adresse [RFC1918] et envoie le datagramme IPv4 au CPE. Le CPE encapsule le datagramme IPv4 dans le tunnel softwire IPv4 dans IPv6 et transmet le datagramme IPv6 à l'AFTR. Cela contraste avec ce que le CPE fait habituellement aujourd'hui, qui consiste à traduire l'adresse [RFC1918] vers l'adresse IPv4 publique et à router le datagramme en amont. Lorsque l'AFTR reçoit le datagramme IPv6, il retire l'en-tête IPv6 et effectue un NAT IPv4 vers IPv4 sur l'adresse source.
Comme l'illustre la figure 1, ce modèle de déploiement Dual-Stack Lite comporte trois composants : le routeur résidentiel Dual-Stack Lite avec un élément B4, l'AFTR, et un softwire entre l'élément B4 agissant comme initiateur de softwire (Softwire Initiator, SI) [RFC5571] dans le routeur résidentiel Dual-Stack Lite et le concentrateur de softwire (Softwire Concentrator, SC) [RFC5571] dans l'AFTR. L'AFTR effectue des traductions NAT IPv4-IPv4 pour multiplexer plusieurs abonnés via un pool d'adresses IPv4 globales. Les espaces d'adresses qui se chevauchent utilisés par les abonnés sont levés par l'identification des extrémités de tunnel.
+-----------+
| Host |
+-----+-----+
|10.0.0.1
|
|
|10.0.0.2
+---------|---------+
| | |
| Home router |
|+--------+--------+|
|| B4 ||
|+--------+--------+|
+--------|||--------+
|||2001:db8:0:1::1
|||
|||<-IPv4-in-IPv6 softwire
|||
-------|||-------
/ ||| \
| ISP core network |
\ ||| /
-------|||-------
|||
|||2001:db8:0:2::1
+--------|||--------+
| AFTR |
|+--------+--------+|
|| Concentrator ||
|+--------+--------+|
| |NAT| |
| +-+-+ |
+---------|---------+
|192.0.2.1
|
--------|--------
/ | \
| Internet |
\ | /
--------|--------
|
|198.51.100.1
+-----+-----+
| IPv4 Host |
+-----------+
Figure 1: Gateway-Based Architecture
Notes :
-
Le routeur résidentiel Dual-Stack Lite n'est pas tenu d'être sur le même lien que l'hôte.
-
Le routeur résidentiel Dual-Stack Lite pourrait être remplacé par un routeur Dual-Stack Lite dans le réseau du fournisseur de services.
La solution obtenue accepte un datagramme IPv4 qui est traduit en datagramme softwire IPv4 dans IPv6 pour la transmission sur le softwire. À l'extrémité correspondante, le datagramme IPv4 est désencapsulé et l'adresse IPv4 traduite est insérée sur la base d'une traduction issue du softwire.
B.1.1 Example Message Flow (Exemple de flux de messages)
Dans l'exemple de la figure 2, les tables de traduction dans l'AFTR sont configurées pour relayer entre IP/TCP (10.0.0.1/10000) et IP/TCP (192.0.2.1/5000). Autrement dit, un datagramme reçu par le routeur résidentiel Dual-Stack Lite depuis l'hôte à l'adresse 10.0.0.1, utilisant le port de destination TCP 10000, sera traduit en un datagramme avec adresse source IPv4 192.0.2.1 et port source TCP 5000 sur l'Internet.
+-----------+
| Host |
+-----+-----+
| |10.0.0.1
IPv4 datagram 1 | |
| |
v |10.0.0.2
+---------|---------+
| | |
| home router |
|+--------+--------+|
|| B4 ||
|+--------+--------+|
+--------|||--------+
| |||2001:db8:0:1::1
IPv6 datagram 2| |||
| |||<-IPv4-in-IPv6 softwire
-----|-|||-------
/ | ||| \
| ISP core network |
\ | ||| /
-----|-|||-------
| |||
| |||2001:db8:0:2::1
+------|-|||--------+
| | AFTR |
| v ||| |
|+--------+--------+|
|| Concentrator ||
|+--------+--------+|
| |NAT| |
| +-+-+ |
+---------|---------+
| |192.0.2.1
IPv4 datagram 3 | |
| |
-----|--|--------
/ | | \
| Internet |
\ | | /
-----|--|--------
| |
v |198.51.100.1
+-----+-----+
| IPv4 Host |
+-----------+
Figure 2: Outbound Datagram
| Datagramme | Champ d'en-tête | Contenu |
|---|---|---|
| IPv4 datagram 1 | IPv4 Dst | 198.51.100.1 |
| IPv4 Src | 10.0.0.1 | |
| TCP Dst | 80 | |
| TCP Src | 10000 | |
| — | — | — |
| IPv6 datagram 2 | IPv6 Dst | 2001:db8:0:2::1 |
| IPv6 Src | 2001:db8:0:1::1 | |
| IPv4 Dst | 198.51.100.1 | |
| IPv4 Src | 10.0.0.1 | |
| TCP Dst | 80 | |
| TCP Src | 10000 | |
| — | — | — |
| IPv4 datagram 3 | IPv4 Dst | 198.51.100.1 |
| IPv4 Src | 192.0.2.1 | |
| TCP Dst | 80 | |
| TCP Src | 5000 |
Contenu des en-têtes de datagrammes
Lorsque le datagramme 1 est reçu par le routeur résidentiel Dual-Stack Lite, l'élément B4 encapsule le datagramme dans le datagramme 2 et le transmet au NAT de niveau opérateur Dual-Stack Lite sur le softwire.
Lorsque le concentrateur de tunnel dans l'AFTR reçoit le datagramme 2, il transmet le datagramme IPv4 au NAT, qui détermine d'après sa table NAT que le datagramme reçu sur le softwire avec le port source TCP 10000 doit être traduit en datagramme 3 avec l'adresse source IPv4 192.0.2.1 et le port source TCP 5000.
La figure 3 montre un message entrant reçu à l'AFTR. Lorsque la fonction NAT dans l'AFTR reçoit le datagramme 1, elle consulte les informations IP/TCP de destination dans sa table de traduction. Dans l'exemple de la figure 3, le NAT modifie le port de destination TCP en 10000, fixe l'adresse IP de destination à 10.0.0.1 et transmet le datagramme au softwire. Le B4 du routeur résidentiel désencapsule le datagramme IPv4 du datagramme softwire entrant et le transmet à l'hôte.
+-----------+
| Host |
+-----+-----+
^ |10.0.0.1
IPv4 datagram 3 | |
| |
| |10.0.0.2
+---------|---------+
| +-+-+ |
| home router |
|+--------+--------+|
|| B4 ||
|+--------+--------+|
+--------|||--------+
^ |||2001:db8:0:1::1
IPv6 datagram 2 | |||
| |||<-IPv4-in-IPv6 softwire
| |||
-----|-|||-------
/ | ||| \
| ISP core network |
\ | ||| /
-----|-|||-------
| |||
| |||2001:db8:0:2::1
+------|-|||--------+
| AFTR |
|+--------+--------+|
|| Concentrator ||
|+--------+--------+|
| |NAT| |
| +-+-+ |
+---------|---------+
^ |192.0.2.1
IPv4 datagram 1 | |
| |
-----|--|--------
/ | | \
| Internet |
\ | | /
-----|--|--------
| |
| |198.51.100.1
+-----+-----+
| IPv4 Host |
+-----------+
Figure 3: Inbound Datagram
| Datagramme | Champ d'en-tête | Contenu |
|---|---|---|
| IPv4 datagram 1 | IPv4 Dst | 192.0.2.1 |
| IPv4 Src | 198.51.100.1 | |
| TCP Dst | 5000 | |
| TCP Src | 80 | |
| — | — | — |
| IPv6 datagram 2 | IPv6 Dst | 2001:db8:0:1::1 |
| IPv6 Src | 2001:db8:0:2::1 | |
| IPv4 Dst | 10.0.0.1 | |
| IPv4 Src | 198.51.100.1 | |
| TCP Dst | 10000 | |
| TCP Src | 80 | |
| — | — | — |
| IPv4 datagram 3 | IPv4 Dst | 10.0.0.1 |
| IPv4 Src | 198.51.100.1 | |
| TCP Dst | 10000 | |
| TCP Src | 80 |
Contenu des en-têtes de datagrammes
B.1.2 Translation Details (Détails de la traduction)
L'AFTR dispose d'un NAT qui traduit entre les paires softwire/port et adresse IPv4/port. La même traduction s'applique aux datagrammes IPv4 reçus sur l'interface externe de l'équipement et depuis l'extrémité softwire de l'équipement.
Sur la figure 2, l'interface réseau du traducteur dans l'AFTR est sur l'Internet, et l'interface softwire se connecte au routeur résidentiel Dual-Stack Lite. Le traducteur AFTR est configuré comme suit :
Interface réseau : traduire l'adresse de destination IPv4 et le port de destination TCP vers l'identifiant de softwire et le port de destination TCP
Interface softwire : traduire l'identifiant de softwire et le port source TCP vers l'adresse source IPv4 et le port source TCP
Voici comment fonctionne la traduction sur la figure 3 :
-
Le datagramme 1 est reçu sur l'interface réseau du traducteur AFTR. Le traducteur consulte la paire adresse IPv4/port dans sa table de traduction, réécrit l'adresse de destination IPv4 en 10.0.0.1 et le port source TCP en 10000, et transmet le datagramme au softwire.
-
Le datagramme IPv4 est reçu sur le B4 du routeur résidentiel Dual-Stack Lite. La fonction B4 extrait le datagramme IPv4, et le routeur résidentiel Dual-Stack Lite transmet le datagramme 3 à l'hôte.
| Softwire-Id/IPv4/Prot/Port | IPv4/Prot/Port |
|---|---|
| 2001:db8:0:1::1/10.0.0.1/TCP/10000 | 192.0.2.1/TCP/5000 |
Table de traduction NAT de niveau opérateur Dual-Stack Lite
Le Softwire-Id est l'adresse IPv6 attribuée au CPE Dual-Stack Lite. Les hôtes derrière le même routeur résidentiel Dual-Stack Lite partagent le même Softwire-Id. L'adresse IPv4 source est l'adresse [RFC1918] attribuée par le routeur résidentiel Dual-Stack Lite et est unique pour chaque hôte derrière le CPE. L'AFTR recevrait des paquets émis depuis différentes adresses IPv4 dans le même tunnel softwire. L'AFTR combine le Softwire-Id et l'adresse/port IPv4 [Softwire-Id, IPv4+Port] pour identifier de manière unique l'hôte derrière le même routeur résidentiel Dual-Stack Lite.
B.2 Host-Based Architecture (Architecture fondée sur l'hôte)
Cette architecture vise les nouveaux déploiements à grande échelle d'équipements dual-stack-capable implémentant une interface Dual-Stack Lite.
Considérez un scénario où un équipement hôte Dual-Stack Lite est connecté directement au réseau du fournisseur de services. L'équipement hôte est dual-stack capable mais n'est provisionné qu'avec une adresse globale IPv6. En outre, l'équipement hôte préconfigure une adresse IPv4 non routable bien connue ; voir la section 10 (Considérations IANA). Cette adresse IPv4 non routable bien connue est analogue à l'adresse de bouclage 127.0.0.1. Chaque équipement hôte implémentant Dual-Stack Lite préconfigurera la même adresse. Cette adresse servira à émettre le datagramme IPv4 lorsque l'équipement accède aux services IPv4. En outre, l'équipement hôte crée un tunnel softwire IPv4 dans IPv6 vers un AFTR. Le NAT de niveau opérateur réside dans le réseau du fournisseur de services.
Lorsque l'équipement accède à un service IPv6, il envoie le datagramme IPv6 de manière native à la passerelle par défaut.
Lorsque l'équipement accède à un service IPv4, il émet le datagramme IPv4 avec l'adresse IPv4 non routable bien connue. Puis l'équipement hôte encapsule le datagramme IPv4 dans le tunnel softwire IPv4 dans IPv6 et envoie le datagramme IPv6 à l'AFTR. Lorsque l'AFTR reçoit le datagramme IPv6, il retire l'en-tête IPv6 et effectue un NAT IPv4 vers IPv4 sur l'adresse source.
Ce scénario fonctionne sur des réseaux filaires et sans fil. Un équipement sans fil typique se connecte directement au fournisseur de services sans CPE intermédiaire.
Comme l'illustre la figure 4, ce modèle de déploiement Dual-Stack Lite comporte trois composants : l'hôte Dual-Stack Lite, l'AFTR, et un softwire entre l'initiateur de softwire B4 dans l'hôte et le concentrateur de softwire dans l'AFTR. On suppose que l'hôte Dual-Stack Lite dispose d'un service IPv6 et peut échanger du trafic IPv6 avec l'AFTR.
L'AFTR effectue des traductions NAT IPv4-IPv4 pour multiplexer plusieurs abonnés via un pool d'adresses IPv4 globales. Les espaces d'adresses IPv4 qui se chevauchent utilisés par les hôtes Dual-Stack Lite sont levés par l'identification des extrémités de tunnel.
Dans cette situation, l'hôte Dual-Stack Lite configure l'adresse IPv4 192.0.0.2 issue de la plage bien connue 192.0.0.0/29 (définie par l'IANA) sur son interface B4. Il configure également la première adresse IPv4 non réservée de la plage réservée, 192.0.0.1, comme adresse de sa passerelle par défaut.
+-------------------+
| |
| Host 192.0.0.2 |
|+--------+--------+|
|| B4 ||
|+--------+--------+|
+--------|||--------+
|||2001:db8:0:1::1
|||
|||<-IPv4-in-IPv6 softwire
|||
-------|||-------
/ ||| \
| ISP core network |
\ ||| /
-------|||-------
|||
|||2001:db8:0:2::1
+--------|||--------+
| AFTR |
|+--------+--------+|
|| Concentrator ||
|+--------+--------+|
| |NAT| |
| +-+-+ |
+---------|---------+
|192.0.2.1
|
--------|--------
/ | \
| Internet |
\ | /
--------|--------
|
|198.51.100.1
+-----+-----+
| IPv4 Host |
+-----------+
Figure 4: Host-Based Architecture
La solution obtenue accepte un datagramme IPv4 qui est traduit en datagramme softwire IPv4 dans IPv6 pour la transmission sur le softwire. À l'extrémité correspondante, le datagramme IPv4 est désencapsulé et l'adresse IPv4 traduite est insérée sur la base d'une traduction issue du softwire.
B.2.1 Example Message Flow (Exemple de flux de messages)
Dans l'exemple de la figure 5, les tables de traduction dans l'AFTR sont configurées pour relayer entre IP/TCP (192.0.0.2/10000) et IP/TCP (192.0.2.1/5000). Autrement dit, un datagramme reçu depuis l'hôte à l'adresse 192.0.0.2, utilisant le port de destination TCP 10000, sera traduit en un datagramme avec adresse source IPv4 192.0.2.1 et port source TCP 5000 sur l'Internet.
+-------------------+
| |
|Host 192.0.0.2 |
|+--------+--------+|
|| B4 ||
|+--------+--------+|
+--------|||--------+
| |||2001:db8:0:1::1
IPv6 datagram 1| |||
| |||<-IPv4-in-IPv6 softwire
| |||
-----|-|||-------
/ | ||| \
| ISP core network |
\ | ||| /
-----|-|||-------
| |||
| |||2001:db8:0:2::1
+------|-|||--------+
| | AFTR |
| v ||| |
|+--------+--------+|
|| Concentrator ||
|+--------+--------+|
| |NAT| |
| +-+-+ |
+---------|---------+
| |192.0.2.1
IPv4 datagram 2 | |
-----|--|--------
/ | | \
| Internet |
\ | | /
-----|--|--------
| |
v |198.51.100.1
+-----+-----+
| IPv4 Host |
+-----------+
Figure 5: Outbound Datagram
| Datagramme | Champ d'en-tête | Contenu |
|---|---|---|
| IPv6 datagram 1 | IPv6 Dst | 2001:db8:0:2::1 |
| IPv6 Src | 2001:db8:0:1::1 | |
| IPv4 Dst | 198.51.100.1 | |
| IPv4 Src | 192.0.0.2 | |
| TCP Dst | 80 | |
| TCP Src | 10000 | |
| — | — | — |
| IPv4 datagram 2 | IPv4 Dst | 198.51.100.1 |
| IPv4 Src | 192.0.2.1 | |
| TCP Dst | 80 | |
| TCP Src | 5000 |
Contenu des en-têtes de datagrammes
Lors de l'envoi d'un paquet IPv4, l'hôte Dual-Stack Lite l'encapsule dans le datagramme 1 et le transmet à l'AFTR sur le softwire.
Lorsqu'il reçoit le datagramme 1, le concentrateur dans l'AFTR remet le datagramme IPv4 au NAT, qui détermine d'après sa table de traduction que le datagramme reçu sur le softwire avec le port source TCP 10000 doit être traduit en datagramme 3 avec l'adresse source IPv4 192.0.2.1 et le port source TCP 5000.
La figure 6 montre un message entrant reçu à l'AFTR. Lorsque la fonction NAT dans l'AFTR reçoit le datagramme 1, elle consulte la destination IP/TCP dans sa table de traduction. Dans l'exemple de la figure 6, le NAT traduit le port de destination TCP en 10000, fixe l'adresse IP de destination à 192.0.0.2 et transmet le datagramme au softwire. Le B4 à l'intérieur de l'hôte désencapsule le datagramme IPv4 du datagramme softwire entrant et le transmet à la couche application de l'hôte.
+-------------------+
| |
|Host 192.0.0.2 |
|+--------+--------+|
|| B4 ||
|+--------+--------+|
+--------|||--------+
^ |||2001:db8:0:1::1
IPv6 datagram 2 | |||
| |||<-IPv4-in-IPv6 softwire
| |||
-----|-|||-------
/ | ||| \
| ISP core network |
\ | ||| /
-----|-|||-------
| |||
| |||2001:db8:0:2::1
+------|-|||--------+
| AFTR |
| | ||| |
|+--------+--------+|
|| Concentrator ||
|+--------+--------+|
| |NAT| |
| +-+-+ |
+---------|---------+
^ |192.0.2.1
IPv4 datagram 1 | |
-----|--|--------
/ | | \
| Internet |
\ | | /
-----|--|--------
| |
| |198.51.100.1
+-----+-----+
| IPv4 Host |
+-----------+
Figure 6: Inbound Datagram
| Datagramme | Champ d'en-tête | Contenu |
|---|---|---|
| IPv4 datagram 1 | IPv4 Dst | 192.0.2.1 |
| IPv4 Src | 198.51.100.1 | |
| TCP Dst | 5000 | |
| TCP Src | 80 | |
| — | — | — |
| IPv6 datagram 2 | IPv6 Dst | 2001:db8:0:1::1 |
| IPv6 Src | 2001:db8:0:2::1 | |
| IPv4 Dst | 192.0.0.2 | |
| IPv4 Src | 198.51.100.1 | |
| TCP Dst | 10000 | |
| TCP Src | 80 |
Contenu des en-têtes de datagrammes
B.2.2 Translation Details (Détails de la traduction)
Les étapes de traduction de l'AFTR sont les mêmes que dans l'annexe B.1.2. Une différence est que tous les B4 fondés sur l'hôte utiliseront la même adresse IPv4 bien connue 192.0.0.2. Pour identifier de manière unique le B4 fondé sur l'hôte, l'AFTR utilisera l'adresse IPv6 du B4 fondé sur l'hôte, qui est unique pour l'hôte.
| Softwire-Id/IPv4/Prot/Port | IPv4/Prot/Port |
|---|---|
| 2001:db8:0:1::1/192.0.0.2/TCP/10000 | 192.0.2.1/TCP/5000 |
Table de traduction NAT de niveau opérateur Dual-Stack Lite
Le Softwire-Id est l'adresse IPv6 attribuée à l'hôte Dual-Stack. Chaque hôte a un Softwire-Id unique. L'adresse IPv4 source est l'une des adresses IPv4 bien connues. L'AFTR pourrait recevoir des paquets de différents hôtes émis depuis la même adresse IPv4 bien connue depuis différents tunnels softwire. Comme pour l'architecture à passerelle, l'AFTR combine le Softwire-Id et l'adresse/port IPv4 [Softwire-Id, IPv4+Port] pour identifier de manière unique chaque hôte individuel.