...

Indirizzi IPv6

by user

on
Category: Documents
11

views

Report

Comments

Transcript

Indirizzi IPv6
IPv6
Internet of Things (IoT)
Lauree Magistrali in Ing. delle Telecomunicazioni,
dell’Automazione e Informatica
Docente: Luigi Alfredo Grieco, PhD
1
Sommario


Perché Ipv6?
Caratteristiche IPv6





Header
Indirizzi
ICMP
Neighbor Discovery
Transizione IPv6



Dual-stack
Tunnel
Traduzione
Perché IPv6?
1993
Perché IPv6?
2000
Perché IPv6?
2007
Projected IANA Unallocated Address Pool Exhaustion: 12-Jan-2011

Projected RIR Unallocated Address Pool Exhaustion: 28-Nov-2011

Larghezza spazio degli indirizzi
Caratteristiche di IPv6









Spazio di indirizzamento più grande (indirizzi a 128 bit)
Nuovo formato dell’header progettato per minimizzare
l’overhead
Infrastruttura di routing e schema di indirizzamento progettati
per essere efficienti e gerarchici
Configurazione stateful e stateless degli indirizzi
Supporto built-in per la sicurezza (è implementato l’IPSec)
Supporto per la QoS (nuovi campi nell’header)
Meccanismo di Neighbor Discovery
Jumbograms
Mobile IPv6
Confronto header IPv4 e IPv6
IPv6 Header
IPv4 Header
Version
IHL
Type of Service
Total Length
Version
Identification
Time to Live
Protocol
Flags
Traffic Class
Flow Label
Fragment
Offset
Header Checksum
Payload Length
Next
Header
Hop Limit
Source Address
Destination Address
Legend
Options
Padding
Source Address
- field’s name kept from IPv4 to IPv6
- fields not kept in IPv6
- Name & position changed in IPv6
- New field in IPv6
Destination Address
Cambiamenti dell'header



Semplificato

Il campo fragmentation non non fa più parte del base header

Le opzioni IP non fanno più parte del base header

Eliminato header checksum

Eliminato Header Length

Il campo Length esclude l'IPv6 header

L'allineamento passa da 32 a 64 bit
Cambiato

Time to Live => Hop Limit

Protocol => Next Header

Precedence & TOS => Traffic Class

Ampiezza indirizzo 32 bit => 128 bit
Esteso

Aggiunto campo Flow Label
Extension header
IPv6 header TCP header + data
next header =
TCP
IPv6 header Routing header TCP header + data
next header = next header =
Routing
TCP
IPv6 header Routing header Fragment header fragment of TCP
header + data
next header = next header = next header =
Routing
Fragment
TCP
Extension Header: caratteristiche

Precessati generalmente solamente dal nodo
destinazione  molto meno overhead rispetto
all'IPv4


Eliminato il limite di 40 byte dell'IPv4



Eccezione: Hop-by-Hop Options header
in IPv6, limit is total packet size,
or Path MTU in some cases
Option header attualmente definiti:

Fragment, Hop-by-Hop Options, Routing,
Authentication, Encryption, Destination Options
Tipi di Extension Header






Hop-by-hop Options Header: trasporta informazioni che
devono essere esaminate da ogni nodo lungo il percorso del
pacchetto
Routing Header: indica uno o più nodi intermedi che devono
essere attraversati dal pacchetto nel percorso verso la
destinazione
Fragment Header: l’host mittente deve frammentare il
pacchetto se ha dimensione maggiore rispetto al Path MTU
(determinato tramite Path MTU Discovery)
Destination Options Header: trasporta informazioni che
devono essere esaminate solo dal nodo destinatario
Authentication Header: garantisce autenticazione ed
integrità dei dati
Encapsulating Security Payload Header: garantisce
riservatezza, autenticazione ed integrità dei dati
Frammentazione e Path MTU Discovery
Next Header


00M
La frammentazione in IPv6 è una funzione endto-end
I router NON frammentano i pacchetti


Reserved
Fragment Offset
Original Packet Identifier
Se un pacchetto è troppo grande per l'MTU del
prossimo link i router inviano un ”ICMP packet too
big”
Viene implementato di default il meccanismo di
Path MTU Discovery, mentre in IPv4 è
opzionale
Notazione Indirizzi IPv6
• Notazioni equivalenti per indicare un indirizzo IPv6:
 FE80:0000:0000:0000:0202:B3FF:FE1E:8329
 FE80:0:0:0:202:B3FF:FE1E:8329
 FE80::202:B3FF:FE1E:8329
Indirizzi IPv6 letterali negli URL:
 http://[2001:0db8:85a3:08d3:1319:8a2e:0370:7348]/
 https://[2001:0db8:85a3:08d3:1319:8a2e:0370:7344]:443/
Link local:
 fe80::1122:33ff:fe11:2233%eth0
Tipi di Indirizzo IPv6



Unicast

Identifica univocamente una interfaccia

Un pacchetto inviato a tale indirizzo è consegnato solo alla
relativa interfaccia
Multicast

Identifica un gruppo di interfacce

Un pacchetto inviato a tale indirizzo è consegnato a tutti i
membri del gruppo
Anycast

Identifica più interfacce, di solito su nodi diversi

Un pacchetto inviato a tale indirizzo è consegnato solo ad una di
queste interfacce
Eliminato il Broadcast
Indirizzi IPv6: caratteristiche

Gli indirizzi sono assegnati alle interfacce:
 Cambiamento rispetto a IPv4:



Le interfacce hanno più indirizzi
Gli indirizzi hanno uno scope:
 Link Local
 Site Local
 Global
Gli indirizzi hanno un tempo di validità
 Valid and Preferred lifetime
Indirizzi unicast
Struttura generale dell’indirizzo IPv6:
G
l
o
b
a
l
r
o
u
t
i
n
g
p
r
e
f
i
xS
u
b
n
e
t
I
D
(
n
b
i
t
)
(
m
b
i
t
)





I
n
t
e
r
f
a
c
e
I
D
(
1
2
8
n
m
b
i
t
)
Global unicast addresses
Link-local addresses (fe80::/10)
Site-local addresses (deprecati) (fec0::/10)
Unique local IPv6 unicast addresses (privati) (fc00::/7)
Special addresses, loopback (::1), unspecified (::)
Tipi di indirizzi IPv6
Address type
Ipv4-compatible (depr)
Ipv4-mapped
global unicast
link-local unicast
site-local unicast
multicast
Binary prefix
Hex Prefix
0000...0 (96 zero bits)
::ffff:a.b.c.d
001
1111 1110 10
1111 1110 11
1111 1111
Tutti gli altri sono riservati (circa. 7/8 del totale)
Gli indirizzi anycast utilizzano prefissi unicast
FF80::/10
FFC0::/10
FF00::/8
Indirizzi IPv6
Link Local
FP (10bits)
RESERVED (54bits)
Interface ID (64bits)
1111111010
MUST be 0
MAC derived
Site Local
FP (10bits)
1111111011
Subnet (38bits)
Locally
Administered
Subnet (16bits)
Interface ID (64bits)
Locally
Administered
MAC derived or Locally Administered
Global
FP
(3bits)
Registry / provider assigned
(45bits)
Subnet (16bits)
Interface ID (64bits)
001
Provider Administered
Locally
Administered
MAC derived or Locally Administered or Random
Multicast
FP (8bits)
Flags (4bits)
Scope (4bits)
RESERVED (80bits)
Group ID (32bits)
11111111
000T
Lcl/Sit/Gbl
MUST be 0
Locally administered
flag field
low-order bit indicates permanent/transient group

(three other flags reserved)
scope field:
1 - node local
8 - organization-local
2 - link-local
B - community-local
5 - site-local
E - global

(all other values reserved)

map IPv6 multicast addresses directly into low order 32 bits of the IEEE
802 MAC
Source Address Selection
• Rule 1: Prefer same address
• Rule 2: Prefer appropriate scope
Smallest matching scope
•
•
•
•
Rule 3: Avoid deprecated addresses
Rule 4: Prefer home addresses
Rule 5: Prefer outgoing interface
Rule 6: Prefer matching label from policy table
Native IPv6 source > native IPv6 destination
6to4 source > 6to4 destination
IPv4-compatible source > IPv4-compatible destination
IPv4-mapped source> IPv4-mapped destination
• Rule 7: Prefer temporary addresses
• Rule 8: Use longest matching prefix
Destination Address Selection
•
•
•
•
•
Rule 1: Avoid unusable destinations
Rule 2: Prefer matching scope
Rule 3: Avoid dst with matching deprecated src address
Rule 4: Prefer home addresses
Rule 5: Prefer matching label from policy table
Native IPv6 source > native IPv6 destination
6to4 source > 6to4 destination
IPv4-compatible source > IPv4-compatible destination
IPv4-mapped source> IPv4-mapped destination
•
•
•
•
Rule 6: Prefer higher precedence
Rule 7: Prefer smaller scope
Rule 8: Use longest matching prefix
Rule 9: Order returned by DNS
Protocollo ICMP
•




E’ più potente dell’ICMPv4 e contiene nuove funzionalità
Incorpora le funzioni di:

IGMP per la gestione dei gruppi multicast IPv4

ARP e RARP per la risoluzione degli indirizzi di livello 2 e 3
Ha nuove caratteristiche come:

la procedura di Neighbor Discovery

il supporto per il Mobile IPv6
Si possono distinguere due classi di messaggi:
messaggi ICMP di errore

Destination
Unreacheable

Packet Too Big

Time Exceeded

Parameter Problem

messaggi ICMP di informativi

Echo Request

Echo Reply

...
Neighbor Discovery
• ICMP message types:

router solicitation

router advertisement

neighbor solicitation

neighbor advertisement

redirect
• Funzioni effettuate:

router discovery

prefix discovery

autoconfiguration of
address & other
parameters

duplicate address detection
(DAD)

neighbor unreachability
detection (NUD)

link-layer address
resolution

first-hop redirect
Neighbor Discovery
Struttura di un messaggio per la Neighbor Discovery
I
P
v
6
H
e
a
d
e
r
e
i
g
h
b
o
r
D
i
s
c
o
v
e
r
y
M
e
s
s
a
g
e
H
e
a
d
e
r
N
e
x
t
h
e
a
d
e
r
=
5
8 N
N
e
i
g
h
b
o
r
D
i
s
c
o
v
e
r
y
M
e
s
s
a
g
e
O
p
t
i
o
n
s
N
e
i
g
h
b
o
r
D
i
s
c
o
v
e
r
y
M
e
s
s
a
g
e
F
i
g
u
r
a
9
:
s
t
r
u
t
t
u
r
a
d
i
u
n
m
e
s
s
a
g
g
i
o
p
e
r
l
a
N
e
i
g
h
b
o
r
D
i
s
c
o
v
e
r
y
Equivalenza fra le caratteristiche dell’IPv6 e quelle definite per l’IPv4
IPv4
IPv6
ARP Request message
Neighbor Solicitation message
ARP Reply message
Neighbor Advertisement message
ARP cache
Neighbor cache
Gratuitous ARP
Duplicate Address Detection
Router Solicitation message (optional)
Router Solicitation message (required)
Router Advertisement message (optional)
Router Advertisement message (required)
Neighbor Discovery: Router discovery
Router
Advertisement
Router
Advertisement
Definizione del pacchetto Router Advertisement
ICMPv6 Type = 134
IPv6 sorgente = indirizzo link-local del router
IPv6 destinazione = indirizzo multicast all-node (FF02::1)
Dati = router preference, lifetime, opzioni Prefix Information
e Source link-layer Address, …
Neighbor Discovery: Address Resolution
Neighbour
Solicitation
ICMPv6 Type = 135
IPv6 sorgente = indirizzo di A
IPv6 destinazione = indirizzo solicited-node di
B
Dati = indirizzo link-layer di A
Query = qual’è il tuo indirizzo link-layer?
ICMPv6 Type = 136
IPv6 sorgente = indirizzo di B
IPv6 destinazione = indirizzo di
A
Dati = indirizzo link-layer di B
Neighbour
Advertisement
Ora A e B possono scambiarsi pacchetti su questo link
Solicited-Node Multicast Address
• Struttura dell’indirizzo multicast solicited-node [RFC 2373]:
– FF02:0:0:0:0:1:FFXX:XXXX
– la sequenza XX:XXXX rappresenta gli ultimi 24 bit
dell’indirizzo MAC della scheda cui tale indirizzo è
associato.
• N.B. “solicited-node multicast address - a link-local
scope multicast address that is computed as a function
of the solicited target's address. …. The function is
chosen so that IP addresses which differ only in the
high-order bits, e.g., due to multiple high-order prefixes
associated with different providers, will map to the same
solicited-node address thereby reducing the number of
multicast addresses a node must join” [RFC 2461].
Ethernet Multicast





IPv6 fa un largo uso del supporto livello ethernet del multicasting, che
non era molto utilizzato dall'IPv4.
Un pacchetto multicast Ethernet è un pacchetto che è destinato
potenzialmente a più host, l'insieme dei quali è detto ”multicast group”
ed è identificato da un indirizzo a 48-bit, esattamente come avviene
per gli host normali.
Un indirizzo multicast si distingue dagli altri per avere il bit meno
significativo del suo primo byte (ovvero il primo bit trasmesso) settato
ad uno, pertanto:
 00-C0-4F-68-12-CB è un unicast address
 33-33-FF-68-12-CB è un multicast address
Si noti che FF-FF-FF-FF-FF-FF, l'indirizzo Ethernet di broadcast, è un
indirizzo multicast speciale.
Concettualmente, allora, un'interfaccia Ethernet deve mettersi in
ascolto non solo per i pacchetti destinati al suo indirizzo unicast, ma
anche per quellli indirizzati ai gruppi multicast di cui fa parte
Address Lifetime
Si sta verificando l’unicità
dell’indirizzo ricavato
secondo il formato EUI-64,
tramite la procedura di DAD
[RFC 4429]
L’indirizzo è valido, unico,
si può usare senza
limitazioni
L’indirizzo è valido,
unico,
ma è sconsigliato l’uso
per nuove comunicazioni
L’indirizzo non
è più valido
V
a
l
i
d
T
e
n
t
a
t
i
v
e
P
r
e
f
e
r
r
e
d
P
r
e
f
e
r
r
e
d
L
i
f
e
t
i
m
e
D
e
p
r
e
c
a
t
e
d
I
n
v
a
l
i
d
t
i
m
e
V
a
l
i
d
L
i
f
e
t
i
m
e
Sono indicati nell’opzione Prefix Information dei Router Advertisement
Autoconfigurazione degli host




Gli host generalmente costruiscono gli indirizzi dai messaggi
di RA:
 subnet prefix(es) dai messaggi periodici multicast generati
dai router ”vicini”
 L'ID dell'interfaccia è generato localmente
 MAC addresses : pseudo-random temporary
Altri parametri IP-layer vengono comunicati dai messaggi di
RA (router addresses, recommended hop limit, ecc.)
Informazioni di livello più elevato (indirizzi DNS e NTP, per
esempio) vengono comunicati da altri protocolli di livello
superiore tramite meccanismi di service location basati su
multicast o anycast (anche se ci sono lavori in corso a
riguardo, vedi RDNSS, Recursive DNS Server per esempio)
È possibile utilizzare DHCPv6
Renumbering
• IPv6 facilita la rinumerazione di una rete: i nuovi indirizzi
possono essere introdotti e i vecchi cancellati.
• Si assume un periodo di sovrapposizione fra vecchi e nuovi
indirizzi.
• I vecchi indirizzi vengono utilizzati finché risultano ancora
validi per le connessioni in corso che un cambio di indirizzo
interromperebbe.
Gli host ricevono il ilfetime di ciascun prefisso dai RA
le vecchie connessioni TCP continuano fino alla fine della
sovrapposizione.

le nuove connessioni usano il prefisso con lifetime più lungo
Router Renumbering (RR) protocol, per il renumbering nei
router
Transizione IPv4/IPv6
• Per permettere la transizione sono possibili varie
tecniche, che cadono nelle tre categorie
seguenti:



Dual-stack, per permettere la coesistenza di IPv4 e
IPv6 sulla stessa rete.
Tunneling, per evitare problemi di dipendenza nel
caso si effettui l'upgrade di singoli host, router o
regioni
Tecniche di traduzione, per permettere device a
IPv6-only di comuicare con device IPv4-only
Dual stack

IPv6 Enabled




IPv6 Enabled
IPv4-Only
Meccanismo preferito
Permette le normali
operazioni con nodi
Address Selection
generalmente preferisce
IPv6
Dual Stack IPv6
Dominant Transition
Mechanism (DSTM)
Se (quasi) tutto è dualstack, la transizione è
regolata dal DNS
Dual stack
IPv4-only Host:
Dual-Stacked
Host:
stan.v4.com
207.14.182.10
Query:
stan.v4.com?
A Resource Record:
207.14.182.10
199.15.23.87
3ffe:3700:1100:1:210:a4ff:fea0:bc97
DNS
IPv6-only Host:
ollie.v6.com
3ffe.2301.1700.1.abcd.1234.dada.1
Dual Stack
IPv4-only Host:
Dual-Stacked
Host:
stan.v4.com
207.14.182.10
Query:
ollie.v6.com?
AAAA Resource Record:
3ffe.2301.1700.1.abcd.1234.dada.1
199.15.23.87
3ffe:3700:1100:1:210:a4ff:fea0:bc97
DNS
IPv6-only Host:
ollie.v6.com
3ffe.2301.1700.1.abcd.1234.dada.1
Tunneling
IPv4
IPv6
IPv6
IPv6
Router to Router
IPv4
IPv6
Host to Host
IPv4
IPv6
IPv6
Host to Router / Router to Host
Tunnel



• Configured Tunnels
Applicazioni:

Connettività permanente
site-to-site

Linee, Service Provider,
grandi backbone
Tecnologie:

GRE, IP-IP, IPSec…

MPLS
Controllati, deterministici




• Automatic Tunnels
Application:

Connettività temporanea

Connettività attaverso
segmenti ”Ipv6-unaware”

Router to Router

Host to Router

Host to Host
Tecnologie:

6to4

ISATAP

Teredo?

DSTM
Eventualmente non
deterministici
Possibli problemi di sicurezza
Determinazione End Point



Nei tunnel configurati gli indirizzi IP degli
endpoint sono determinati dall'amministratore
I tunnel automatici richiedono un meccanismo di
determinazione degli indirizzi IP
Esistono due approcci:

Assegnati da un server autoritativo


Tunnel brokers, Teredo, DSTM
Incapsuati nell'indirizzo IPv6

6to4, ISATAP
Tunnel Broker
1.
AAA Authorization
2.
Configuration request
3.
4.
5.
6.
3
Tunnel
Broker
1
2
6
Client
IPv4
Network
7
IPv6 Tunnel
4
DNS
7.
TB chooses:
•
TS
•
IPv6 addresses
•
Tunnel lifetime
TB registers tunnel IPv6 addresses
Config info sent to TS
Config info sent to client:
•
Tunnel parameters
•
DNS name
Tunnel enabled
5
Tunnel
Server
IPv6
Network
6to4: overview
Internet IPv4
Internet
IPv6-nativa
6to4 Router
6to4 Relay Router
6to4: indirizzi
Il router 6to4 ha indirizzo IPv4 pubblico, ad esempio:
193.204.59.58
2002 C1CC:3B3A 0000
Il router 6to4 annuncia la rete 2002:c1cc:3b3a::/64.
Sono disponibili 16 bit di SLA per l’indirizzamento locale.
E’ necessario configurare solo i router.
Gli host si autoconfigurano.
Comunicazione fra isole 6to4
Router 6to4 “Ares”
IPv4 = 193.204.49.36
IPv6=2002:c1cc:3b3a::1
Ares riceve:
src 2002:c1cc:3b3a:1::3
Router 6to4 “Acheron”
IPv4 = 1.2.49.2
IPv6 = 2002:102:c102::1
dst 2002:102:c102:3::25
Ares incapsula il pacchetto IPv6 in un pacchetto IPv4:
src 193.204.49.36
dst 1.2.49.2
Il pacchetto viene instradato nella rete IPv4 fino a Acheron.
Acheron capisce che è un pacchetto 6to4, lo decapsula e lo instrada.
Il ricevente risponde usando come destinazione l’indirizzo 6to4 del mittente.
Quando la risposta arriverà a Acheron, quest’ultimo lo instraderà nel verso
contrario.
6to4:
comunicazione 6to4 IPv6 nativa
Router 6to4 “Homer”
IPv4 = 193.204.49.36
IPv6 = 2002:c1cc:3b3a::1
Internet
IPv4
Homer riceve: src 2002:c1cc:3b3a:1::3
Relay router 6to4 “Boe”
IPv4 = 192.88.99.1
IPv6 = 2002:c058:6301::1
Internet
IPv6-nativa Altro indirizzo IPv6 nativo
dst 2001:4860:0:1001::68
La destinazione non è un indirizzo 6to4. Il default router di Homer è un “relay
router 6to4”, ovvero un router con un indirizzo 6to4 e connesso alla rete IPv6
nativa. Il pacchetto segue il procedimento già illustrato.
Quando il pacchetto arriva a Boe, quest’ultimo lo instrada nella rete Ipv6 nativa. In
fase di risposta, il pacchetto tornerà a un relay router (lo stesso Boe o un altro) e
verrà instradato fino ad Homer.
192.88.99.1 è un indirizzo IPv4 anycast ed è assegnato a più relay router.
Il pacchetto sarà instradato pertanto al relay router più vicino!!!
6to4 in pratica
tun6to4
eth0
#
#
#
#
ip
ip
ip
ip
eth1
tunnel add tun6to4 mode sit ttl 128 remote any local 193.204.59.58
link set dev tun6to4 up
addr add 2002:c1cc:3b3a::1/16 dev tun6to4
route add default via ::192.88.99.1 dev tun6to4 metric 1
enable
configure terminal
interface tunnel 0
ipv6 address 2002:c1cc:3b3a::1/16
tunnel source FastEthernet 0/0
tunnel mode ipv6ip 6to4
exit
ipv6 route ::/0 2002:c058:6301::1
SIIT
Stateless IP/ICMP Translation
204.127.202.4
IPv4
Network
IPv6
Network
Source = ::ffff:0:216.148.227.68
Dest = ::ffff:204.127.202.4
Source = 216.148.227.68
Dest = 204.127.202.4
SIIT
Source = 204.127.202.4
Dest = 216.148.227.68
Source = ::ffff:204.127.202.4
Dest = ::ffff:0:216.148.227.68
SIIT also changes:
•Traffic Class   TOS
•Payload length
•Protocol Number   NH Number
•TTL   Hop Limit
NAT-PT
NAT-PT
gateway
IPv6-only






IPv4-only
Il NAT-PT traduce tramite SIIT i pacchetti IPv6 in IPv4 e viceversa.
Il router NAT-PT annuncia prefix::/96 nella rete IPv6, ogni volta che
un pacchetto viene mandato a quel prefisso, esso viene tradotto.
SIIT richiede che gli host dispongano di indirizzi IPv4 globali
Il NAT-PT dispone di un pool di indirizzi (o di uno solo, NAPT-PT) e
il suo funzionamento è analogo a quello di un NAT in IPv4. In più è
necessario tradurre i pacchetti IPv4, i messaggi ICMP, le query
DNS,...
Richiede la presenza di un DNS Application-level gateway (DNSALG)
Ultima risorsa, problemi di scalabilità, single point of failure, elimina
Note
• Alcune immagini sono tratte da siti internet e presentazioni
reperibili presso i seguenti indirizzi:

http://arstechnica.com/articles/paedia/IPv6.ars

http://en.wikipedia.org/wiki/IPv6

http://www.nanog.org/mtg-0210/ppt/hain.ppt

http://www.6journal.org/archive/00000158/01/JDoyleIPv6.ppt
Fly UP