Comments
Description
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