Passa al contenuto principale

Appendice B. Esempi

Appendice B. Esempi

B.1. Architettura basata su gateway

Questa architettura è destinata alle distribuzioni a banda larga residenziali, ma può essere facilmente adattata ad altri tipi di distribuzione in cui è importante la base installata di dispositivi solo IPv4.

Si consideri uno scenario in cui un CPE Dual-Stack Lite è configurato con solo IPv6 sulla porta WAN, non IPv4. Il CPE agisce come server DHCP IPv4 per la LAN (cablata e senza fili), assegnando indirizzi [RFC1918]. Inoltre, il CPE può supportare l'autoconfigurazione IPv6 e/o un server DHCPv6 per la LAN. Quando un dispositivo solo IPv4 si connette al CPE, quest'ultimo gli assegna un indirizzo [RFC1918]. Quando un dispositivo capace di dual stack si connette al CPE, quest'ultimo gli assegna un indirizzo [RFC1918] e un indirizzo IPv6 globale. Il CPE crea inoltre un tunnel softwire IPv4-in-IPv6 [RFC5571] verso un AFTR situato nella rete del fornitore di servizi.

Quando il dispositivo accede a un servizio IPv6, invia nativamente il datagramma IPv6 al CPE. Il CPE instrada il traffico a monte verso il gateway IPv6 predefinito.

Quando il dispositivo accede a un servizio IPv4, usa l'indirizzo [RFC1918] come sorgente del datagramma IPv4 e invia il datagramma IPv4 al CPE. Il CPE incapsula il datagramma IPv4 nel tunnel softwire IPv4-in-IPv6 e inoltra il datagramma IPv6 all'AFTR. Questo differisce dal comportamento normalmente adottato dal CPE, che esegue il NAT dell'indirizzo [RFC1918] verso l'indirizzo IPv4 pubblico e instrada il datagramma a monte. Quando l'AFTR riceve il datagramma IPv6, decapsula l'intestazione IPv6 ed esegue NAT da IPv4 a IPv4 sull'indirizzo sorgente.

Come illustrato nella Figura 1, questo modello di distribuzione Dual-Stack Lite è composto da tre elementi: il router domestico Dual-Stack Lite con un elemento B4, l'AFTR e un softwire fra l'elemento B4, che agisce come iniziatore softwire (SI) [RFC5571] nel router domestico Dual-Stack Lite, e il concentratore softwire (SC) [RFC5571] nell'AFTR. L'AFTR esegue traduzioni NAT IPv4-IPv4 per multiplare più abbonati mediante un pool di indirizzi IPv4 globali. Gli spazi di indirizzamento sovrapposti usati dagli abbonati sono disambiguati identificando gli endpoint del 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 |
+-----------+

Figura 1: Architettura basata su gateway

Note:

  • Il router domestico Dual-Stack Lite non deve necessariamente trovarsi sullo stesso collegamento dell'host.

  • Il router domestico Dual-Stack Lite potrebbe essere sostituito da un router Dual-Stack Lite nella rete del fornitore di servizi.

La soluzione risultante accetta un datagramma IPv4 che viene tradotto in un datagramma softwire IPv4-in-IPv6 per la trasmissione attraverso il softwire. All'endpoint corrispondente, il datagramma IPv4 viene decapsulato e l'indirizzo IPv4 tradotto viene inserito in base a una traduzione dal softwire.

B.1.1. Flusso di messaggi di esempio

Nell'esempio mostrato nella Figura 2, le tabelle di traduzione nell'AFTR sono configurate per inoltrare tra IP/TCP (10.0.0.1/10000) e IP/TCP (192.0.2.1/5000). In altre parole, un datagramma ricevuto dal router domestico Dual-Stack Lite dall'host all'indirizzo 10.0.0.1, che usa la porta TCP DST 10000, viene tradotto in un datagramma con indirizzo IPv4 SRC 192.0.2.1 e porta TCP SRC 5000 su 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 |
+-----------+

Figura 2: Datagramma in uscita
DatagrammaCampo dell'intestazioneContenuto
IPv4 datagram 1IPv4 Dst198.51.100.1
IPv4 Src10.0.0.1
TCP Dst80
TCP Src10000
IPv6 datagram 2IPv6 Dst2001:db8:0:2::1
IPv6 Src2001:db8:0:1::1
IPv4 Dst198.51.100.1
IPv4 Src10.0.0.1
TCP Dst80
TCP Src10000
IPv4 datagram 3IPv4 Dst198.51.100.1
IPv4 Src192.0.2.1
TCP Dst80
TCP Src5000

Contenuto dell'intestazione del datagramma

Quando il datagramma 1 è ricevuto dal router domestico Dual-Stack Lite, l'elemento B4 lo incapsula nel datagramma 2 e lo inoltra al NAT carrier-grade Dual-Stack Lite attraverso il softwire.

Quando il concentratore di tunnel nell'AFTR riceve il datagramma 2, inoltra il datagramma IPv4 al NAT, che determina dalla propria tabella NAT che il datagramma ricevuto sul softwire con porta TCP SRC 10000 deve essere tradotto nel datagramma 3 con indirizzo IPv4 SRC 192.0.2.1 e porta TCP SRC 5000.

La Figura 3 mostra un messaggio in ingresso ricevuto dall'AFTR. Quando la funzione NAT nell'AFTR riceve il datagramma 1, cerca le informazioni IP/TCP DST nella propria tabella di traduzione. Nell'esempio della Figura 3, il NAT modifica la porta TCP DST in 10000, imposta l'indirizzo IP DST a 10.0.0.1 e inoltra il datagramma al softwire. Il B4 nel router domestico decapsula il datagramma IPv4 dal datagramma softwire in ingresso e lo inoltra all'host.

                  +-----------+
| 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 |
+-----------+

Figura 3: Datagramma in ingresso
DatagramHeader fieldContents
IPv4 datagram 1IPv4 Dst192.0.2.1
IPv4 Src198.51.100.1
TCP Dst5000
TCP Src80
IPv6 datagram 2IPv6 Dst2001:db8:0:1::1
IPv6 Src2001:db8:0:2::1
IPv4 Dst10.0.0.1
IPv4 Src198.51.100.1
TCP Dst10000
TCP Src80
IPv4 datagram 3IPv4 Dst10.0.0.1
IPv4 Src198.51.100.1
TCP Dst10000
TCP Src80

Contenuto dell'intestazione del datagramma

B.1.2. Dettagli della traduzione

L'AFTR dispone di un NAT che traduce tra coppie softwire/porta e coppie indirizzo IPv4/porta. La stessa traduzione viene applicata ai datagrammi IPv4 ricevuti sull'interfaccia esterna del dispositivo e dall'endpoint softwire nel dispositivo.

Nella Figura 2, l'interfaccia di rete del traduttore nell'AFTR è su Internet e l'interfaccia softwire si collega al router domestico Dual-Stack Lite. Il traduttore AFTR è configurato come segue:

Interfaccia di rete: traduce l'indirizzo IPv4 di destinazione e la porta TCP di destinazione nell'identificatore softwire e nella porta TCP di destinazione.

Interfaccia softwire: traduce l'identificatore softwire e la porta TCP sorgente nell'indirizzo IPv4 sorgente e nella porta TCP sorgente.

Ecco come funziona la traduzione nella Figura 3:

  • Il datagramma 1 è ricevuto sull'interfaccia di rete del traduttore AFTR. Il traduttore cerca la coppia indirizzo IPv4/porta nella propria tabella di traduzione, riscrive l'indirizzo IPv4 di destinazione come 10.0.0.1 e la porta TCP sorgente come 10000, quindi inoltra il datagramma al softwire.

  • Il datagramma IPv4 è ricevuto dal B4 del router domestico Dual-Stack Lite. La funzione B4 estrae il datagramma IPv4 e il router domestico Dual-Stack Lite inoltra il datagramma 3 all'host.

Softwire-Id/IPv4/Prot/PortIPv4/Prot/Port
2001:db8:0:1::1/10.0.0.1/TCP/10000192.0.2.1/TCP/5000

Tabella di traduzione NAT carrier-grade Dual-Stack Lite

Il Softwire-Id è l'indirizzo IPv6 assegnato al CPE Dual-Stack Lite. Gli host dietro lo stesso router domestico Dual-Stack Lite hanno lo stesso Softwire-Id. L'indirizzo IPv4 sorgente è l'indirizzo [RFC1918] assegnato dal router domestico Dual-Stack ed è univoco per ciascun host dietro il CPE. L'AFTR riceve pacchetti con sorgenti IPv4 diverse nello stesso tunnel softwire. L'AFTR combina Softwire-Id e indirizzo IPv4/porta [Softwire-Id, IPv4+Port] per identificare univocamente l'host dietro lo stesso router domestico Dual-Stack Lite.

B.2. Architettura basata su host

Questa architettura è destinata a nuove distribuzioni su larga scala di dispositivi capaci di dual stack che implementano un'interfaccia Dual-Stack Lite.

Si consideri uno scenario in cui un dispositivo host Dual-Stack Lite è connesso direttamente alla rete del fornitore di servizi. Il dispositivo host è capace di dual stack ma è configurato solo con un indirizzo IPv6 globale. Il dispositivo host preconfigura inoltre un indirizzo IPv4 non instradabile ben noto; vedere la Sezione 10 (Considerazioni IANA). Questo indirizzo IPv4 non instradabile ben noto è simile all'indirizzo di loopback 127.0.0.1. Ogni dispositivo host che implementa Dual-Stack Lite preconfigura lo stesso indirizzo, che viene usato come sorgente del datagramma IPv4 quando il dispositivo accede a servizi IPv4. Il dispositivo host crea inoltre un tunnel softwire IPv4-in-IPv6 verso un AFTR. Il NAT carrier-grade risiede nella rete del fornitore di servizi.

Quando il dispositivo accede a un servizio IPv6, invia nativamente il datagramma IPv6 al gateway predefinito.

Quando il dispositivo accede a un servizio IPv4, usa il noto indirizzo IPv4 non instradabile come sorgente del datagramma IPv4. Il dispositivo host incapsula quindi il datagramma IPv4 nel tunnel softwire IPv4-in-IPv6 e invia il datagramma IPv6 all'AFTR. Quando l'AFTR riceve il datagramma IPv6, decapsula l'intestazione IPv6 ed esegue NAT da IPv4 a IPv4 sull'indirizzo sorgente.

Questo scenario funziona sia su reti cablate sia senza fili. Un tipico dispositivo wireless si connette direttamente al fornitore di servizi senza un CPE intermedio.

Come illustrato nella Figura 4, questo modello di distribuzione Dual-Stack Lite è composto da tre elementi: l'host Dual-Stack Lite, l'AFTR e un softwire fra l'iniziatore softwire B4 nell'host e il concentratore softwire nell'AFTR. Si presume che l'host Dual-Stack Lite disponga di un servizio IPv6 e possa scambiare traffico IPv6 con l'AFTR.

L'AFTR esegue traduzioni NAT IPv4-IPv4 per multiplare più abbonati tramite un pool di indirizzi IPv4 globali. Gli spazi di indirizzamento IPv4 sovrapposti usati dagli host Dual-Stack Lite sono disambiguati identificando gli endpoint del tunnel.

In questa situazione, l'host Dual-Stack Lite configura sulla propria interfaccia B4 l'indirizzo IPv4 192.0.0.2 dell'intervallo ben noto 192.0.0.0/29 (definito da IANA). Configura inoltre il primo indirizzo IPv4 non riservato dell'intervallo riservato, 192.0.0.1, come indirizzo del proprio gateway predefinito.

              +-------------------+
| |
| 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 |
+-----------+

Figura 4: Architettura basata su host

La soluzione risultante accetta un datagramma IPv4 che viene tradotto in un datagramma softwire IPv4-in-IPv6 per la trasmissione attraverso il softwire. All'endpoint corrispondente, il datagramma IPv4 viene decapsulato e l'indirizzo IPv4 tradotto viene inserito in base a una traduzione dal softwire.

B.2.1. Flusso di messaggi di esempio

Nell'esempio mostrato nella Figura 5, le tabelle di traduzione nell'AFTR sono configurate per inoltrare tra IP/TCP (192.0.0.2/10000) e IP/TCP (192.0.2.1/5000). In altre parole, un datagramma ricevuto dall'host all'indirizzo 192.0.0.2, che usa la porta TCP DST 10000, viene tradotto in un datagramma con indirizzo IPv4 SRC 192.0.2.1 e porta TCP SRC 5000 su 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 |
+-----------+

Figura 5: Datagramma in uscita
DatagrammaCampo dell'intestazioneContenuto
IPv6 datagram 1IPv6 Dst2001:db8:0:2::1
IPv6 Src2001:db8:0:1::1
IPv4 Dst198.51.100.1
IPv4 Src192.0.0.2
TCP Dst80
TCP Src10000
IPv4 datagram 2IPv4 Dst198.51.100.1
IPv4 Src192.0.2.1
TCP Dst80
TCP Src5000

Contenuto dell'intestazione del datagramma

Quando invia un pacchetto IPv4, l'host Dual-Stack Lite lo incapsula nel datagramma 1 e lo inoltra all'AFTR attraverso il softwire.

Quando riceve il datagramma 1, il concentratore nell'AFTR consegna il datagramma IPv4 al NAT, che determina dalla propria tabella di traduzione che il datagramma ricevuto sul softwire con porta TCP SRC 10000 deve essere tradotto nel datagramma 3 con indirizzo IPv4 SRC 192.0.2.1 e porta TCP SRC 5000.

La Figura 6 mostra un messaggio in ingresso ricevuto dall'AFTR. Quando la funzione NAT nell'AFTR riceve il datagramma 1, cerca l'IP/TCP DST nella propria tabella di traduzione. Nell'esempio della Figura 6, il NAT traduce la porta TCP DST in 10000, imposta l'indirizzo IP DST a 192.0.0.2 e inoltra il datagramma al softwire. Il B4 dentro l'host decapsula il datagramma IPv4 dal datagramma softwire in ingresso e lo inoltra al livello applicativo dell'host.

              +-------------------+
| |
|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 |
+-----------+

Figura 6: Datagramma in ingresso
DatagrammaCampo dell'intestazioneContenuto
IPv4 datagram 1IPv4 Dst192.0.2.1
IPv4 Src198.51.100.1
TCP Dst5000
TCP Src80
IPv6 datagram 2IPv6 Dst2001:db8:0:1::1
IPv6 Src2001:db8:0:2::1
IPv4 Dst192.0.0.2
IPv4 Src198.51.100.1
TCP Dst10000
TCP Src80

Contenuto dell'intestazione del datagramma

B.2.2. Dettagli della traduzione

I passaggi di traduzione dell'AFTR sono gli stessi dell'Appendice B.1.2. Una differenza è che tutti i B4 basati su host usano lo stesso indirizzo IPv4 ben noto 192.0.0.2. Per identificare univocamente il B4 basato su host, l'AFTR usa l'indirizzo IPv6 del B4 basato su host, che è univoco per l'host.

Softwire-Id/IPv4/Prot/PortIPv4/Prot/Port
2001:db8:0:1::1/192.0.0.2/TCP/10000192.0.2.1/TCP/5000

Tabella di traduzione NAT carrier-grade Dual-Stack Lite

Il Softwire-Id è l'indirizzo IPv6 assegnato all'host Dual-Stack. Ogni host ha un Softwire-Id univoco. L'indirizzo IPv4 sorgente è uno degli indirizzi IPv4 ben noti. L'AFTR può ricevere pacchetti da host diversi con lo stesso indirizzo IPv4 ben noto come sorgente, provenienti da tunnel softwire diversi. Analogamente all'architettura basata su gateway, l'AFTR combina Softwire-Id e indirizzo IPv4/porta [Softwire-Id, IPv4+Port] per identificare univocamente il singolo host.