Tecnologie e Servizi di Rete (1).pdf
Document Details
Uploaded by FavoriteCarnelian
2023
Tags
Full Transcript
Tecnologie e Servizi di Rete Computer Engineering Marco Lampis 23 febbraio 2023 Indice 0 Informazioni 1 0.1 Contributi.................................
Tecnologie e Servizi di Rete Computer Engineering Marco Lampis 23 febbraio 2023 Indice 0 Informazioni 1 0.1 Contributi.......................................... 2 1 IPv4 Summary 3 1.1 Terminologia per l’indirizzamento............................. 3 1.2 Indirizzi speciali....................................... 3 1.3 Indirizzamento con classi................................. 3 1.4 Indirizzamento IP senza classi (CIDR)........................... 4 1.5 IP routing.......................................... 5 1.6 IP addressing methodology................................ 7 1.6.1 Esercizi....................................... 9 1.7 Multicast.......................................... 19 1.7.1 Status........................................ 21 2 IPv6 23 2.1 Perché IPv4 non basta e soluzioni............................. 23 2.2 Chi assegna gli indirizzi IP................................. 24 2.3 Address pool status e scalabilità.............................. 24 2.4 Notazione.......................................... 25 2.5 Routing........................................... 26 2.6 Multicast.......................................... 27 2.7 Unicast........................................... 28 2.7.1 Link local/site local Addresses........................... 29 2.7.2 Unique Local Addresses.............................. 30 2.7.3 IPv4 Embedded Addresses............................ 30 2.7.4 Loopback Addresses................................ 31 2.7.5 Unspecified Addresses............................... 31 2.8 Anycast Addresses..................................... 31 2.9 Protocolli utilizzati..................................... 32 2.10 Packet Header Format................................... 32 2.10.1 Hop‑by‑Hop Extension Header.......................... 35 i 23 febbraio 2023 Tecnologie e Servizi di Rete 2.10.2 Routing Extension Header............................. 35 2.10.3 Altre estensioni................................... 36 2.11 Interfacciarsi con i livelli più bassi............................. 37 2.11.1 Incapsulamento.................................. 37 2.11.2 Address mapping................................. 37 2.11.3 IPv6 Multicast transmission............................ 37 2.12 Neighbor Discovery and Address Resolution....................... 38 2.12.1 Solicited‑Node Multicast Address......................... 38 2.12.2 Risoluzione di un indirizzo............................. 39 2.13 La transizione tra IPv4 e IPv6................................ 40 2.14 ICMPv6........................................... 40 2.14.1 Formato del messaggio.............................. 42 2.14.2 Multicast Group Management........................... 44 2.14.3 Host Membership Discovery............................ 45 2.15 Device Configuration in IPv6................................ 45 2.15.1 Privacy extension Algorithm............................ 47 2.15.2 Indirizzi....................................... 48 2.15.3 ICMP Redirect................................... 49 2.15.4 Duplicate Address Detection (DAD)........................ 51 2.15.5 Fasi di una configurazione Stateless....................... 51 2.16 Scoped Addresses..................................... 51 2.17 Routing Protocols...................................... 52 2.18 La transizione da IPv4 a IPv6................................ 53 2.18.1 Host centered solutions.............................. 54 2.18.2 Network center solution.............................. 56 2.19 Scalable, Carrier‑grade Solutions............................. 58 2.19.1 AFTR: Address Family Transition Router..................... 59 2.19.2 DS‑Lite....................................... 60 2.19.3 A+P (Address plus Port).............................. 61 2.19.4 Mapping Address and Port (MAP)......................... 61 2.19.5 Port Set....................................... 62 2.19.6 Mapping Rule.................................... 63 2.19.7 Border Relay.................................... 63 2.20 NAT64 + DNS64....................................... 63 3 Reti wireless e cellulari 67 3.1 Introduzione........................................ 67 ii Marco Lampis Tecnologie e Servizi di Rete 23 febbraio 2023 3.2 Wireless LAN........................................ 69 3.2.1 CSMA/CA...................................... 70 3.3 Reti cellulari......................................... 73 3.3.1 Cluster....................................... 74 3.3.2 Power Control................................... 76 3.3.3 Allocazione della frequenza............................ 77 3.3.4 Architettura di rete................................. 77 3.4 Evoluzione della rete cellulare............................... 80 3.4.1 GSM ‑ Seconda generazione............................ 80 3.4.2 4G/LTE ‑ quarta generazione............................ 85 3.5 Modalità di sleep...................................... 91 3.5.1 5G ‑ quinta generazione.............................. 92 3.6 Mobilità nel 4G/5G..................................... 94 4 Principi del modern Lan Design 99 4.1 Ripetitori.......................................... 99 4.2 Bridge............................................ 101 4.3 LAN Moderne........................................ 102 4.3.1 Transparent bridges................................ 103 4.3.2 Filtering database................................. 104 4.4 Routers........................................... 106 4.5 VLAN............................................. 106 5 VPN 113 5.1 Modalità di distribuzione.................................. 117 5.1.1 Site to Site VPN Tunneling (s2s).......................... 117 5.1.2 End to End VPN Tunneling (e2e).......................... 117 5.1.3 Remote VPN Tunneling.............................. 118 5.1.4 Overlay Model................................... 118 5.1.5 Peer Model..................................... 118 5.1.6 Customer Provisioned VPN............................ 118 5.1.7 Provider Provisioned VPN............................. 119 5.1.8 Access VPN Customer Provisioned........................ 119 5.1.9 Tunneling...................................... 121 5.2 Topologie.......................................... 121 5.3 Livelli............................................ 122 5.3.1 Livello 2....................................... 122 5.3.2 Livello 3....................................... 122 Marco Lampis iii 23 febbraio 2023 Tecnologie e Servizi di Rete 5.3.3 Livello 4....................................... 123 5.4 Generic Routing Encapsulation (GRE)........................... 123 5.4.1 Enhanced GRE (version 1)............................. 124 5.5 Protocolli di livello 2.................................... 125 5.5.1 L2TP........................................ 125 5.5.2 Point to Point Tunneling Protocol (PPTP)..................... 128 5.6 IPsec............................................. 129 5.7 SSL VPN........................................... 131 5.7.1 Protocolli con SSL................................. 133 5.7.2 Application Translation.............................. 133 5.7.3 Application Proxying................................ 134 5.7.4 Port Forwarding.................................. 134 5.8 VPN Gateway Positioning & anomalies.......................... 134 5.9 Anomalie e posizionamento................................ 134 5.9.1 Monitorability anomaly.............................. 135 5.9.2 Skewed Channel anomaly............................. 137 6 Routing 139 6.1 Introduzione........................................ 139 6.1.1 Proactive routing.................................. 139 6.1.2 On the fly routing................................. 139 6.2 Algoritmi per il proactive routing............................. 140 6.2.1 Non adaptive algorithms............................. 140 6.2.2 Adaptive algorithms................................ 140 6.3 Distance vector (Bellman‑Ford).............................. 141 6.4 Path Vector......................................... 146 6.5 Link State Routing Algorithm................................ 146 6.5.1 Algoritmo di Dijkstra................................ 147 6.6 Internet Routing Architecture............................... 148 6.6.1 Autonomous System................................ 148 6.7 Protocolli di routing.................................... 150 6.7.1 Algoritmi IGP.................................... 151 6.7.2 Algoritmi EGP................................... 153 7 MPLS 155 7.1 Architettura di rete..................................... 156 7.2 Storia di MPLS....................................... 158 7.3 Header MPLS........................................ 159 iv Marco Lampis Tecnologie e Servizi di Rete 23 febbraio 2023 7.4 LSP setup ‑ selezione del path e delle etichette...................... 160 7.4.1 Label Binding.................................... 160 7.4.2 Label Mapping................................... 160 7.4.3 Label Distribution................................. 160 7.4.4 Label Binding statico (e mapping)......................... 161 7.4.5 Label Binding dinamico.............................. 161 7.4.6 Protocolli per la Label Distribution........................ 161 7.5 Protocolli di routing.................................... 162 7.5.1 Modalità di Routing................................ 162 7.6 Traffic Engineering..................................... 164 7.7 CoS e QoS.......................................... 165 7.7.1 Class of Service (CoS)............................... 165 7.7.2 Quality of Service (QoS).............................. 165 7.8 Fast fault recovery..................................... 166 7.9 Gerarchia e scalabilità................................... 166 7.10 Penultimate Hop Popping (PHP).............................. 167 7.11 MPLS VPN.......................................... 167 7.11.1 PWE3........................................ 168 7.11.2 MPLS‑based Layer 3 VPNs............................. 168 7.11.3 Componenti.................................... 169 7.11.4 Benefici....................................... 169 7.11.5 MPLS VPN basate su BGP............................. 170 7.11.6 MPLS Virtual Router VPNS............................. 170 7.12 6PE............................................. 171 8 Rete Ottica 173 8.1 Switching Core....................................... 174 8.1.1 Optical Core.................................... 174 8.1.2 Electronic Core................................... 175 8.2 Switching Dynamics.................................... 175 8.2.1 Cross Connect................................... 175 8.2.2 Fiber Cross Connect................................ 175 8.2.3 Wavelength Cross Connect............................ 176 8.3 Wavelength Conversion.................................. 176 8.4 Combinazioni comuni................................... 176 8.4.1 Wavelength cross‑connect con Wavelength Conversion............. 176 8.4.2 Dynamic Optical Switching............................ 176 8.5 Distribuzione........................................ 177 Marco Lampis v 23 febbraio 2023 Tecnologie e Servizi di Rete 8.6 Control Plane........................................ 177 8.7 Routing........................................... 178 8.8 Data Transport and Protocol Stack............................ 179 9 Quality of Service 181 9.1 Requisiti........................................... 181 9.2 Contromisure........................................ 182 9.2.1 Classificazione................................... 182 9.2.2 Scheduling..................................... 183 9.3 Controllo del traffico.................................... 183 9.3.1 Call Admission Control............................... 185 9.4 Routing........................................... 185 9.5 Frameworks......................................... 185 9.5.1 IntServ....................................... 185 9.5.2 DiffServ....................................... 185 vi Marco Lampis 0 Informazioni La seguente dispensa è stata realizzata nell’anno accademico 2022‑2023 durante il corso di Tecnologie e Servizi di Rete. Il materiale non è ufficiale e non è revisionato da alcun docente, motivo per cui non mi assumo responsabilità per eventuali errori o imprecisioni. Per qualsiasi suggerimento o correzione non esitate a contattarmi o a eseguire una pull request su GitHub. E’ possibile riutilizzare il materiale con le seguenti limitazioni: Utilizzo non commerciale Citazione dell’autore Riferimento all’opera originale E’ per tanto possibile: Modificare parzialmente o interamente il contenuto Questi appunti sono disponibili su GitHub al seguente link: 1 https://github.com/Guray00/polito_lectures Figura 1: Repository GitHub La seguente dispensa è rilasciata sotto la Creative Commons Attribution‑NonCommercial‑ShareAlike 4.0 International Public License. 1 23 febbraio 2023 Tecnologie e Servizi di Rete 0.1 Contributi La condivisione è alla base del successo di qualsiasi progetto, citando: “Open source is about collaborating; not competing. ~ Kelsey Hightower” La seguente dispensa ha avuto il prezioso contributo di: Marco Lampis 2 Marco Lampis 1 IPv4 Summary In questo capitolo viene fatto un ripasso generico su quanto visto nei corsi precedenti relativo al IPv4, con particolare riferimento a Reti Informatiche (o equivalenti). 1.1 Terminologia per l’indirizzamento Gli indirizzi IP in IPv4 hanno una lunghezza pari a 32 bit e vengono utilizzati per identificare le inter‑ facce per router e host. Questi sono composti da due parti: network part: sono i bit più alti, identificano la rete in cui un host si trova. host part: sono i bit più bassi, identificano l’host all’interno della rete. Un insieme di dispositivi con interfacce IP identificano una IP Network, caratterizzata dalla medesima network part, a cui tutti i dispositivi sono connessi al medesimo physical network (link layer). 1.2 Indirizzi speciali In IPv4, oltre ai “classici” indirizzi, sono presenti alcuni indirizzi speciali: tutti i bit a 1: indirizzo di broadcast, non può essere assegnato 127.x.x.x: indirizzo di loopback, è una classe di indirizzi e servono a identificare l’host stes‑ so e per tale motivo vengono solitamente utilizzati per debug. Ricorda: Spesso al giorno d’oggi non è consentito l’invio di messaggi in broadcast per motivi di sicurezza. 1.3 Indirizzamento con classi Le rappresentazioni possono essere classes (a classe) o classless (senza l’utilizzo di classi), in modo da sapere quali bit individuano la rete e quali gli host. 3 23 febbraio 2023 Tecnologie e Servizi di Rete Figura 1.1: Indirizzi Speciali La suddivisione in classi sulle seguenti tipologie: A: il MSB identifica la classe, i 7 bit seguenti l’indirizzo di rete, i rimanenti sono per i dispositivi. Il totale degli indirizzi è 27 (128) per la rete e 22 4 per i dispositivi. B: i 2 MSB identificano la classe, i 14 bit seguenti la rete e 16 bit per i dispositivi. C: 3 bit per la classe, 21 bit per la rete e 8 bit per gli host. D: 4 bit per la classe, 28 bit per la rete e 4 bit per gli host. Questi indirizzi sono riservati per i multicast. Basta guardare i primi bit per capire la classe di un indirizzo. Figura 1.2: Classi 1.4 Indirizzamento IP senza classi (CIDR) Il sistema Classless InterDomain Routing permette di indirizzare in modo più preciso tra rete e e dispo‑ sitivi, rendendo la porzione di rete di lunghezza arbitraria. Il formato con cui può essere rappresen‑ tato un indirizzo è il seguente: networkID + prefix length oppure netmask. 4 Marco Lampis Tecnologie e Servizi di Rete 23 febbraio 2023 Il prefix length, specificato con /x, è il numero di bit della rete. La netmask è identificata da una serie di bit posti a 1 che determinano quali bit identificano la rete, attraverso un and bit a bit. Esempio: 1 200.23.16.0/23 # prefix length 2 200.23.16.0 255.255.255.254.0 # netmask L’indirizzo viene espresso attraverso gruppi di 8 bit, rappresentanti in modo decimale puntato (4 grup‑ pi in quanto 32 bit totali). Ogni raggruppamento avrà un valore compreso tra 0 e 255. In realtà non tutti i valori sono permessi, il più piccolo è 252. Questo è dovuto al fatto che è sempre presente e non assegnabile l’indirizzo della sottorete (Network ID) e l’indirizzo del inter‑broadcast. Un modo per verificare se un indirizzo è scritto in modo corretto è prendere il prefix length /x e con‑ trollare che l’ultimo numero puntato sia multiplo di 2^(32‑x). Esempi: 1 130.192.1.4/30 => 4%2^(32-30) = 4%4 = 0, si! 2 130.192.1.16/30 => 16%2^(32-30) = 16%4 = 0, si! 3 130.192.1.16/29 => 16%2^(32-29) = 16%8 = 0, si! 4 5 130.192.1.1/30 => 1%2^(32-30) = 1%4 != 0, no! 6 130.192.1.1/29 => 1%2^(32-29) = 1%8 != 0, no! 7 130.192.1.1/28 => 1%2^(32-28) = 1%16 != 0, no! Ricorda: prefix length e netmask sono due modi equivalenti per rappresentare un indirizzo. Per il ragionamento di sopra appare evidente che un indirizzo che termina con.1 non sarà mai un indirizzo corretto, in quanto ritornerà sempre un resto. 1.5 IP routing Il routing degli host avviene attraverso la routing table, caratterizzata da due colonne che identifica‑ no: destinazione: indirizzi ip interfaccia: etho, wlan etc… Marco Lampis 5 23 febbraio 2023 Tecnologie e Servizi di Rete Figura 1.3: Esempio di rete Quando viene inviato un pacchetto, si cerca un match all’interno della tabella per identificare dove l’indirizzo IP di destinazione. Se è presente più di un match, viene considerato quello con il prefisso più lungo attraverso la tecnica del longest prefix matching. Nota: i router sono identificati solitamente con un cerchio con dentro una x. Di seguito è mostrato un esempio di routing: Sono presenti in totale 7 sottoreti, di cui 3 reti locali e 4 reti punto punto. Tutta la sottorete ha come indirizzo quello raffigurato in alto a sinistra. Gli indirizzi di ciascuna di queste sono come segue: Scriviamo la routing table del router identificando le reti direttamente connesse e raggiungibili. Pren‑ diamo come riferimento R1: Destination Next Type 130.192.3.0/30 130.192.3.1 direct 130.192.3.4/30 130.192.3.5 direct 130.192.2.0/24 130.192.2.1 direct 80.105.10.0/30 80.105.10.1 direct 6 Marco Lampis Tecnologie e Servizi di Rete 23 febbraio 2023 Destination Next Type 0.0.0.0/0 80.105.10.2 static 130.192.0.0/24 130.192.3.2 static 130.192.1.0/24 130.192.3.2 static 130.192.3.8/30 130.192.3.2 static 1.6 IP addressing methodology Presa come esempio la rete che segue, la metodologia da adoperare è la seguente: 1. Localizzare le reti IP, in questo caso 3. 2. Individuare il numero di indirizzi richiesti, in questo caso nel router in alto a destra è sufficiente /30 perché ne sono richiesti 4 (22 ), /26 a sinistra (26 ) e /25 in basso a destra (27 ). 3. Calcolare quanti indirizzi è possibile allocare. 4. Verificare il range di validità degli indirizzi,in questo caso /26, /25 e /30 dunque mi basterebbe o tutti e 3, o due /25 o infine un solo /24. 5. Calcolare la netmask / prefix length. 6. Calcolare address range. 7. Calcolare gli indirizzi degli host. Nota: in basso a sinistra sono richiesti 43 indirizzi per 40 dispositivi. Ciò è dovuto al fatto che oltre ai 40 richiesti serve l’indirizzo di rete, l’indirizzo di broadcast e l’indirizzo del router. Per riuscire a trovare le sottoreti, si prosegue in ordine dal più grande (ovvero il valore minore): 1 # tutta la rete (/24) 2 10.0.0.0/24 3 4 # subnet2 (/25), 32-25 = 7 => 2^7 = 128 indirizzi 5 # range: 0-127 6 10.0.0.0/25 /29 23 − 2 = 6 100 255.255.255.128 (32‑7) ‑> /25 27 − 2 = 126 10 255.255.255.240 (32‑4) ‑> /28 24 − 2 = 14 300 255.255.254.000 (32‑9) ‑> /23 29 − 2 = 510 1010 255.255.252.000 (32‑10) ‑> /22 21 0 − 2 = 1022 55 255.255.255.192 (32‑6) ‑> /26 26 − 2 = 62 167 255.255.255.000 (32‑8) ‑> /24 28 − 2 = 254 1540 255.255.248.000 (32‑11) ‑> /21 21 1 − 2 = 2046 Nota: per calcolare la netmask, si esegue 256 − 2bit 1.6.1.2 Esercizio 2 Verifica se i seguenti indirizzi sono validi o meno. IP / Prefix Length pair Valido? 192.168.5.0/24 Si, 0 mod 2(32−24) = 0 192.168.2.36/30 Si, 36 mod 2(32−30) = 0 192.168.2.36/29 No, 36 mod 2(32−29) ≠ 0 192.168.2.32/28 Si, 32 mod 2(32−28) = 0 192.168.2.32/27 Si, 32 mod 2(32−27) = 0 192.168.3.0/23 No, 3 mod 2(1) ! = 0 192.168.2.0/31 No, /31 non ha senso 192.168.2.0/23 Si, 2 mod 2(1) ≠ 0 192.168.16.0/21 Si, 16 mod 23 = 0 192.168.12.0/21 No, 12 mod 23 ≠ 0 10 Marco Lampis Tecnologie e Servizi di Rete 23 febbraio 2023 Consiglio: quando devi verificare la validità con prefix length che supera 8, significa che il con‑ trollo è da fare sul gruppo precedente (e così via), quindi puoi fare 2(32−𝑥)−8. Stesso ragiona‑ mento quando si supera 16, 24, ecc… 1.6.1.3 Esercizio 3 Trova l’errore di configurazione nella rete indicata di seguito e spiega il motivo per cui questa non funziona come dovrebbe. Figura 1.7: Configurazione errata Il problema è relativo al fatto che il router non si trova nella medesima rete della rete arancione, in quanto essendo una /28 il range di indirizzi vanno da 192.168.1.0 a 192.168.1.15. In realtà quelli utilizzabili però sono da.1 a.14 in quanto i due rimanenti sono riservati per broadcast (.15) e rete (.0). Le soluzioni sono due: utilizzare un /27 invece del /28 in modo da arrivare fino a.31, rendendo.23 corretto cambiare l’indirizzo del dns, ad esempio con 192.168.1.10 1.6.1.4 Esercizio 4 Definire un piano di indirizzamento IP per la rete in figura. Considerare entrambi i tipi di indiriz‑ zamento: “tradizionale” (senza minimizzare) e una soluzione che minimizzi il numero di indirizzi IP utilizzati. si assuma di utilizzare il range 10.0.0.0/16. Partiamo evidenziando come il router a sinistra, al fine di servire 350 host, ha in realtà bisogno di 353 indirizzi: 350 host + 1 indirizzo di rete + 1 indirizzo di broadcast + 1 indirizzo del router, dunque /23. Stesso ragionamento è applicabile al router di destra, che ha bisogno di 123 indirizzi dunque /25. Marco Lampis 11 23 febbraio 2023 Tecnologie e Servizi di Rete Figura 1.8: Rete Troviamo così che 10.0.0.0/23 è la rete A (sinistra). Il suo indirizzo di broadcast sarà 10.0.1.255 in quanto adoperiamo 9 bit (quindi gli ultimi 8 bit a 1 e il primo bit del terzo gruppo a 1). La sottorete C (destra) sarà identificata da 10.0.2.0/25 in quanto l’indirizzo immediatamente suc‑ cessivo. Il suo indirizzo di broadcast sarà 10.0.2.127. La sottorete B (centrale) sarà identificata da 10.0.2.128/30, con /30 proveniente dal fatto che è una sottorete punto punto. Questa soluzione comporta un grosso spreco, in quanto c’è un /25 che non viene utilizzato. La seconda soluzione prevede l’utilizzo di più sottoreti per non sprecare indirizzi, in particolare un /24, /26, /27, /28 per un totale di 256 + 64 + 32 + 16 = 368 indirizzi. Figura 1.9: Soluzioni 1.6.1.5 Esercizio 5 12 Marco Lampis Tecnologie e Servizi di Rete 23 febbraio 2023 Definisci un albero di routing per tutti i nodi della rete mostrata di seguito. Figura 1.10: Rete esercizio 5 L’albero di instradamento è quello che, a partire da un router della rete, stabilisce i percorsi minimi per raggiungere tutti i nodi. Per calcolarlo si prende un router come riferimento, ad esempio A, ei si calcolano tutte le distanze dagli altri nodi. dest next B 3 (ramo dx) C 2 (ramo inf) D 4 (sia dx che inf) E 7 (ramo inf) La stessa procedura dovrà essere poi eseguita per tutti i nodi rimanenti, minimizzando le distanze. A parità di distanza solitamente ci sono motivi differenti per cui si scegli un percorso piuttosto che un altro (ad esempio router più nuovi). Figura 1.11: Soluzione esercizio 5 Marco Lampis 13 23 febbraio 2023 Tecnologie e Servizi di Rete 1.6.1.6 Esercizio 6 Data la rete mostrata di seguito, definire la routing table di R1. La route aggregation deve essere massimizzata. Gli indirizzi ip mostrati in figura sono relativi all’interfaccia del router più vicino. Figura 1.12: Esercizio 6 Cominciamo scrivendo la routing table di R1: dest next hop Type 130.192.2.36/30 (A) 130.192.2.37 D 130.192.2.0/30 (B) 130.192.2.1 D 130.192.2.40/30 (C) 130.192.2.41 D 130.192.1.126/30 (D) 130.192.2.38 S 130.192.0.0/24 (E) 130.192.2.38 S 130.192.1.128/25 (F) 130.192.2.38 S 130.192.2.32/30 (G) 130.192.2.38 S D ed F possono essere accorpati con 130.192.1.0/24, che a sua volta può essere aggregato con e ottenendo l’indirizzo 130.192.0.0/23 avendo il valore di broadcast pari a 130.192.1.255, per includere anche G è possibile usare 130.192.0.0/22. Dobbiamo però stare attenti a controllare come questi si rapportano con le entry statiche. In questo caso le include tutte, e non è un proble‑ ma. Nota: l’indirizzo 130.192.2.38 è l’indirizzo del router R2, 130.192.2.36 è l’indirizzo della sottorete (scelto prendendo il più alto multiplo di 2(32−30) minore di 36), mentre 130.192.2.37 è l’indirizzo dell’interfaccia di R1 per comunicare con R2. 14 Marco Lampis Tecnologie e Servizi di Rete 23 febbraio 2023 1.6.1.7 Esercizio 7 Realizzare un piano di indirizzamento che minimizza il numero di indirizzi necessari. Figura 1.13: Esercizio 7 Troviamo la routing table di R1, analizzando ogni nodo a partire dai collegamenti diretti: Nella sottorete A sono presenti 27 host, per cui sono necessari 27+3 indirizzi e un prefix length di (32 − 5) = 27. Nella sottorete B sono invece necessari 120+3 indirizzi, per cui un prefix length di (32 − 7) = 25. Le sottorete C e D sono invece una sottoreti punto punto, per cui è necessario un prefix length di 30. La sottorete E ha bisogno di 60+3 indirizzi, per cui un prefix length di (32 − 6) = 26. Infine la sottorete F ha bisogno di 10+3 indirizzi, per cui un prefix length di (32 − 4) = 28. Troviamo adesso quali sono gli indirizzi delle sottoreti, partendo da quella di dimensione maggiore (B, in quanto /25). B: 130.192.0.0/25, con indirizzo di broadcast 130.192.0.127 in quanto gli ultimi 7 bit sono a 1. E: 130.192.0.128/26 con indirizzo di broadcast 130.192.0.191 A: 130.192.0.192/27, con indirizzo di broadcast 130.192.0.223 F: 130.192.0.224/28, con indirizzo di broadcast 130.192.0.239 C: 130.192.0.240/30, con indirizzo di broadcast 130.192.0.243 C: 130.192.0.244/30, con indirizzo di broadcast 130.192.0.247 E’ ora possibile calcolare gli indirizzi dei next hop, prendendo come riferimento il router più vicino: Marco Lampis 15 23 febbraio 2023 Tecnologie e Servizi di Rete dest Gateway Type 130.192.0.240/30 (C) 130.192.0.241 D 130.192.0.244/30 (D) 130.192.0.245 D 130.192.0.192/27 (A) 130.192.0.242 S 130.192.0.0/25 (B) 130.192.0.242 S 130.192.0.128/26 (E) 130.192.0.246 S 130.192.0.224/28 (F) 130.192.0.246 S Di queste entry bisogna valutare se è possibile fare qualche aggregazione. E’ possibile farlo con E ed F in quanto: avendo /26 e 28, possono essere racchiusi in un /25 (quindi 27 ) con il medesimo indirizzo di E (130.192.0.128/25 è valido perché 128 % 128 = 0). La soluzione risulta comunque inefficiente perché non abbiamo ottenuto solo una entry. Ricorda: Il piano di indirizzamento si fa sempre partendo dalla sottorete più grande, ovvero l’intero minore. 1.6.1.8 Esercizio 8 Realizzare un piano di indirizzamento che minimizza il numero di indirizzi necessari. Utilizzare il risultato della routing table di R1. Figura 1.14: Esercizio 9 1.6.1.9 Esercizio 9 16 Marco Lampis Tecnologie e Servizi di Rete 23 febbraio 2023 Assumendo di avere interamente la cache libera, indicare il numero e il tipo di frames catturati da uno sniffer localizzato nella rete cablata dell’host A. Figura 1.15: Esercizio 10 In una macchina Windows il ping viene eseguito 4 volte. Bisogna innanzitutto verificare che le due macchine siano effettivamente nella stessa rete, lo si fa vedendo se hanno la stessa sottorete (in questo caso si, entrambi coerenti sulla 130.192.16.0/24 ). Scriviamo ora la tabella: ID MACS MACD IPS IPD DESCRIZIONE 1 MACA broadcast ‑ ‑ ARP Request 2 MACB MACA ‑ ‑ ARP Response 3 MACA MACB IPA IPB ICMP echo request 4 MACB MACA IPB IPA ICMP echo response Il passaggio 3 e 4 sono quelli eseguiti 4 volte. 1.6.1.10 Esercizio 10 Assuming that all caches are empty, indicate the number and the type of the frames captured by a sniffer located sulla rete dell’host A. Marco Lampis 17 23 febbraio 2023 Tecnologie e Servizi di Rete Figura 1.16: Esercizio 10 L’indirizzo IP del DNS è in realtà l’indirizzo di un host in quanto l’indirizzo della sottorete, con prefix length pari a /23 abbiamo 130.192.16.0/23 (osservando il router). Il relativo indirizzo di broad‑ cast viene calcolato sapendo di avere gli ultimi 9 bit a 1, quindi 130.192.17.255, quindi l’indirizzo fornito è incluso. La sottorete di A ha indirizzo della sottorete pari a 130.192.16.0, è errato il prefix length in quanto viene indicato /24 invece di /23. A quando comunica per parlare con il DNS, che è all’esterno della sua sottorete, parla con il suo default gateway. ID MACS MACD IPS IPD DESCRIZIONE 1 MACA broadcast ‑ ‑ ARP Request 2 MACDG MACA ‑ ‑ ARP Response 3 MACA MACDG IPA IPDNS DNS request 4 MACDG broadcast ‑ ‑ ARP request 5 MACDNS MACDG ‑ ‑ ARP response 6 MACDG MACDNS IPA IPDNS DNS request 7 MACDNS broadcast ‑ ‑ ARP request 8 MACA MACDNS ‑ ‑ ARP response 9 MACDNS MACA IPDNS IPA DNS response 10 MACA MACDG IPA IP google ICMP echo request 18 Marco Lampis Tecnologie e Servizi di Rete 23 febbraio 2023 ID MACS MACD IPS IPD DESCRIZIONE 11 MACDG MACA IP google IPA ICMP echo response Essendo uno shared bus tutti i pacchetti sono condivisi, solo che che chi non è interessato ai pacchetti che riceve li scarta. Nota: DG viene utilizzato per indicare default gateway; arp è di livello 2. Il traffico viene ottenuto prima che entri nel nodo A. Il passaggio 10 e 11 sono quelli eseguiti 4 volte. 1.7 Multicast Il multicast è un concetto che sta nel mezzo tra una comunicazione unicast (1 a 1) e broadcast (1 a tutti). I pacchetti vengono indirizzati da una sorgente verso multiple destinazioni, quindi verso solo alcuni host. Sono dunque presenti dei gruppi a cui degli host possono entrare o uscire. E’ vantaggioso in quanto l’alternativa sarebbe mandare pacchetti uno ad uno in modo molto più lento. Nel multicast viene inviato un solo pacchetto, che viene poi instradato correttamente dal router ai destinatari uti‑ lizzando meno traffico (nel broadcast è sempre un pacchetto, ma viene poi mandato anche ai non interessati). Il multicast è implementato in IPv4 attraverso l’utilizzo del protocollo aggiuntivo IGMP, il quale con‑ sente a un router IPv4 di scoprire quali gruppi multicast sono presenti in una rete ad esso direttamente connessa e permette a un host di comunicare ad altri router il proprio interesse nel ricevere il traffico di un determinato gruppo multicast. In IPv4 viene utilizzato poco a causa dei problemi con l’indirizzamento, ma al contrario è ampiamente utilizzato in IPv6 dove risulta chiave per la comunicazioni tra gruppi (videoconferenze, video broadca‑ st ecc). La richiesta da parte di un host di ricevere le informazioni di un dato gruppo multicast è man‑ dato ai router e non direttamente agli host. A ogni gruppo multicast viene associato un indirizzo IPv4 di classe D identificato dai primi bit posti a 1110. Fanno parte del range 224.0.0.0 ‑ 239.255.255.255 che essendo riservati è necessario acquistarne uno per utilizzarlo. Il protocollo prevede che il group delivery venga eseguito al livello 2, occupandosi di scartare i pacchet‑ ti che non sono di interesse. Nonostante ciò è comunque possibile associare un indirizzo di livello 2 a uno di livello 3 in modo che possa essere scartato successivamente. Questo avviene attraverso un Marco Lampis 19 23 febbraio 2023 Tecnologie e Servizi di Rete Figura 1.17: Multicast mapping: L’indirizzo MAC è formato da 48 bit di cui la parte alta, solitamente riservata al produtto‑ re, ha invece la costante 01-00-5E-0 che identifica la mappatura per un totale di 25 bit (l’ultimo gruppo è solo un bit), mentre la parte bassa è formata dai 23 bit meno significativi del IP address (non comprendendo tutti i casi ma cercando di ridurre il numero di collisioni). I gruppi multicast vengono identificati da particolari indirizzi IP che non possono essere asse‑ gnati alle singole stazioni. Figura 1.18: Mappatura IP a MAC I router trovano i dispositivi su ciascuna LAN mediante il protocollo IGPM (Internet Group Managment Protocol), annunciando gli host di un gruppo ai rimanenti mediante dei protocolli di routing appositi per il multicasting. Si forma così tra i router un albero di distribuzione per ogni gruppo verso tutte le LAN con almeno un partecipante. 20 Marco Lampis Tecnologie e Servizi di Rete 23 febbraio 2023 Una stazione è sempre raggiunta da un pacchetto multicast relativo a un particolare gruppo anche se non vi è iscritta, in quanto in tal caso verrà scartato a livello 2. Non è quindi vero che una stazione consegna sempre a livello applicazione tutti i pacchetti multicast ricevuti. 1.7.1 Status Attualmente, il multicast in IPv4 non è molto supportato in quanto non è in grado di rispondere alle esegenze comuni di control engineering e traffic engineering. Spesso l’utilizzo avviene in ambienti limitati, come il video broadcasting su soluzioni IP. Marco Lampis 21 2 IPv6 IPv6 nasce per soddisfare le esigenze di un maggior numero di indirizzi, superando i limiti di IPv4. La nuova versione del protocollo risulta superiore sotto molti punti di vista, ma nonostante ciò IPv4 è ancora largamente utilizzato e non è stato completamente sostituito e anzi, al contrario, nel corso degli anni è stato ulteriormente esteso e migliorato. Altre motivazioni che hanno portato alla nascita di IPv6 sono: Più efficiente sulle LAN Supporto di Multicast e Anycast Sicurezza Policy routing Plug and Play Traffic Differentiation Mobility Supporto alla Quality of Service Riuscire a definire il protocollo IPv6 ha richiesto molto tempo, attualmente è in una fase di migrazione (utilizzando soluzioni temporanee applicate su IPv4). E’ dunque lecito dire che ciò che ha comportato la nascita di IPv6 è l’inefficienza del piano di indirizzamento di IPv4. 2.1 Perché IPv4 non basta e soluzioni Il protocollo IPv4 ha indirizzi di lunghezza pari a 32 bit, con un totale di circa 4 miliardi di indirizzi. No‑ nostante ciò, solo parte di questi indirizzi possono essere effettivamente utilizzati a causa dell’utilizzo di classi, multicast, ecc… Inoltre, molti di questi sono utilizzati in modo gerarchico: il prefisso usato in una rete fisica non può essere usato in una differente. Infine, molti indirizzi IP risultano non utilizzati, causando un grande spreco. Alcune delle soluzioni utilizzate per risolvere tali problemi sono: 23 23 febbraio 2023 Tecnologie e Servizi di Rete Introduzione di reti “su misura” mediante l’utilizzo di netmask. Utilizzo di indirizzi privati (intranet), ma non è abbastanza da risolvere il problema. NAT, che però annulla la connessione end to end aumentando il carico dei gateway e la relativa complessità. ALG (Application Layer Gateway). 2.2 Chi assegna gli indirizzi IP Gli indirizzi IP vengono assegnati da parte dell’organizzazione IANA, che fornisce a ciascun Regional Internet Registry (RIR) un blocco di /8 indirizzi ip: AFRINIC: Africa APNIC: East Asia, Australia and Oceania ARIN: USA, Canada and some Caribbean islands LACNIC: South America, Mexico and some Caribbean islands RIPE NCC: Europe, Middle East and Central Asia Successivamente, le RIR dividono i blocchi in blocchetti più piccoli di dimensione minore da assegnare alle National Internet Registries (NIR) e alle Local Internet Registries (LIR). 2.3 Address pool status e scalabilità Ogni singolo indirizzo IPv4 può essere in uno dei seguenti stati: far parte del pool di indirizzi non allocati da IANA far parte del pool di indirizzi non allocati da RIR assegnato a un end user entity ma non annunciato dal BGP (Border Gateway Protocol) assegnato e annunciato dal BGP Ciò comporta dei problemi anche in termini di scalabilità, dovuti: dimensione delle routing table: ogni subnet network deve essere advertised. Risorse dei router limitate: troppe informazioni da gestire. Limitazioni dei protocolli di routing: spesso i router cambiano e con loro anche i protocolli (perlopiù riguarda i router backbone). Sono state tentate alcune soluzioni, come: aggregazione di router mediante prefissi più piccoli 24 Marco Lampis Tecnologie e Servizi di Rete 23 febbraio 2023 CIDR (Classless Inter‑Domain Routing) Limitazione di assegnamento di prefissi IP “non razionali” e indirizzi IP (es vendita di /8) Ma nonostante ciò il problema persiste, in particolare la scalabilità dei protocolli di routing risulta attualmente non risolvibile. Figura 2.1: Status degli address pool 2.4 Notazione E’ stato scelto, attraverso un approccio scientifico e con un focus sull’efficienza, l’utilizzo di indirizzi di lunghezza pari a 128 bit, con un totale di 2128 indirizzi. La notazione utilizzata non è più puntata, ma utilizza gruppi di 2 byte (4 cifre esadecimali) separati dal carattere :. Tale notazione può essere resa più compatta nei seguenti modi: è possibile rimuovere i gruppi pari a 0000 comprimendoli in 0 (o gruppi aventi degli zeri all’inizio). Esempio: da 1080:0000:0000:0007:0200:A00C:3423:A089 a 1080:0:0:0:7:200:A00C:3423:A089. e’ possibile omettere un gruppo di soli zeri inserendo :: (1080::7:200:A00C:3423:A089 ), ma solo una volta. Questo perché in caso contrario non sarebbe possibile sapere il numero di zeri omessi. Se mettessimo FEDC::0876:45FA:0562::3DAF:BB01 avremmo raffigurati 12 dei 18 by‑ te, ma non saremmo in grado di dedurre in che modo sono distribuiti i 6 byte mancanti tra i due ::. Marco Lampis 25 23 febbraio 2023 Tecnologie e Servizi di Rete 2.5 Routing Il routing IPv6 è stato pensato in modo da non modificare la struttura adoperata in IPv4, a eccezione della lunghezza degli indirizzi. Figura 2.2: Routing Per dividere la parte del prefisso di rete e la parte dell’interfaccia si è deciso, per il momento, di applica‑ re una separazione a metà con un prefisso di rete pari ad n=64, ma è previsto che in futuro potremmo aver bisogno di un prefisso di rete più lungo. Il concetto di aggregazione rimane il medesimo, è infatti possibile utilizzare il prefix length come già visto, ad esempio: FEDC:0123:8700::100/40. Non è più necessario l’utilizzo di classi. Nota: il prefix length non sarà, per quanto detto precedentemente, superiore a 64. Per quanto attualmente sia fisso a 64 è comunque pensato per essere flessibile. Nonostante ora sia definito solo a 64, rimane comunque vero che la flessibilità. Figura 2.3: Struttura dell’indirizzo Sono però presenti alcune differenze in quanto a terminologia: Link: physical network. 26 Marco Lampis Tecnologie e Servizi di Rete 23 febbraio 2023 Subnetwork: Link, set di host con lo stesso prefisso. Dividiamo le comunicazioni in: On‑link: gli host hanno lo stesso prefisso, comunicano direttamente tra loro all’interno della stessa sottorete. Off‑link: gli host hanno un prefisso diverso, comunicano attraverso un router. A loro volta è possibile ulteriormente suddividere gli indirizzi di rete: Figura 2.4: Spazio di indirizzamento 2.6 Multicast L’equivalente dell’indirizzo multicast IPv4 224.0.0.0/4 è FF00::/8, che si suddivide in: Well‑know Multicast: FF00::/12, utilizzato per comunicazioni di servizio e vengono asse‑ gnati a gruppi di dispositivi, sono riservati. Un esempio è l’indirizzo di Google. Transient: FF10::/12, indirizzi transitori, assegnati dinamicamente da applicativi multicast (corrispettivo della vecchia modalità multicast in IPv4). Solicited‑node Multicast: FF02:0:0:0:0:1:FF00::/104, simile a un indirizzo IP broad‑ cast in ARP. Una caratteristica importante è la scomparsa in IPv6 l’utilizzo del broadcast, che in seguito alle evoluzioni ha dimostrato essere un rischio per la sicurezza. L’indirizzo si scompone in: 8 bit iniziali, identificano che è un indirizzo multicast (tutti i bit sono posti a 1). 4 bit per il T flag, specifica se è well known (permanente) o transient (non permanente), viene assegnato da IANA. 4 bit per lo scope, consente ai dispositivi di definire il range dei pacchetti multicast. Marco Lampis 27 23 febbraio 2023 Tecnologie e Servizi di Rete 112 bit per il group ID. Non è vero che in multicast il pacchetto viene inoltrato su tutte le porte tranne quella da cui arriva (sarebbe broadcast). Il router manda un pacchetto multicast solo sulle porte in cui è possibile raggiungere i disposi‑ tivi appartenenti al gruppo multicast. Figura 2.5: Struttura indirizzo multicast 2.7 Unicast Gli indirizzi Unicast, anche denominati aggregatable global unicast addresses, continuano a essere disponibili In IPv6, si suddividono in: 2000::/3, Global Unicast FE80::/10, Link‑Local ::1/128, Loopback (in IPv4 era 127.0.0.1) ::/128, Unspecified FC00::/7, Unique Local ::80, Embedded IPv4 Sono indirizzi di tipo aggregato, utilizzati in modo equivalente agli indirizzi pubblici in IPv4. Hanno la caratteristica di essere raggiungibili e indirizzabili globalmente, oltre a essere plug and play. At‑ tualmente sono disponibili in un range definito tra 3FFF:: e 2000::. Questi indirizzi hanno i primi 3 bit (più significativi) posti a 001. Hanno la caratteristica di essere distribuiti geograficamente in modo gerarchico. I prefissi per il Global Routing sono formalmente assegnati da multi‑level authorities: 3 bit, tipologia (001). 13 bit, TLA ID (Top Level Authority, grandi ISP) 28 Marco Lampis Tecnologie e Servizi di Rete 23 febbraio 2023 Figura 2.6: Global Unicast Addresses 32 bit, NLA ID (Next‑level Authority, organizzazioni) 16 bit, SLA ID 64 bit, Interface ID Figura 2.7: Global Routing Prefix 2.7.1 Link local/site local Addresses I link local/site local sono un gruppo di indirizzi compresi tra FE80 ed FEBF e vengono assegnati in automatico ai link quando viene acceso un router. Gli indirizzi Link local, identificati nella rete FE80::/64, vengono assegnati quando più router de‑ vono parlare tra di loro oppure devono annunciarsi a un router vicino, oltre a consentire una confi‑ gurazione automatica o quando un router non è presente. Sono normalmente assegnati automatica‑ mente dalla stazione a partire dall’indirizzo MAC della scheda di rete, a cui si pre‑pende un prefisso predefinito. Marco Lampis 29 23 febbraio 2023 Tecnologie e Servizi di Rete Gli indirizzi site local sono nella rete FEC0::/10 e sono ormai ritenuti deprecati perché pensati come vecchi indirizzi privati riconfigurabili, possono avere assegnati i router nelle comunicazioni (tipo stella, mesh ecc…). Utilizzano comunicazioni dirette e possono essere assegnati sono a indirizzi di rete. Quando il dispositivo si accende, dunque, prenderà in automatico un indirizzo link local dipen‑ dente dal MAC della propria scheda di rete. 2.7.2 Unique Local Addresses Gli Unique Local Addresses (ULA) possono essere utilizzati in modo simile agli indirizzi globali uni‑ cast, ma sono per un utilizzo privato e non per l’indirizzamento sull’internet. Sono identificati da FFC00::/7 e vengono utilizzati dai dispositivi che non hanno necessità di connettersi ad internet o di essere raggiungibili dall’esterno. Sono indirizzi privati che possono comunicare su internet grazie ad operazioni di tunneling. L’ottavo bit è il Local (L) Flag, che divide in: FC00::/8, se L flag è 0, potrebbe essere assegnato in futuro FD00::/8, se L flag è 1, l’indirizzo è assegnato localmente Attualmente gli indirizzi FD00::/8 sono gli unici indirizzi ULA validi. Sono dunque privati e non uti‑ lizzati da altri dispositivi. Figura 2.8: Unique Local Addresses Dopo i primi 8 bit, sono presenti 40 bit generati casualmente in modo da non avere collisioni con altri indirizzi. 2.7.3 IPv4 Embedded Addresses Gli IPv4 embedded addresses sono utilizzati per rappresentare indirizzi IPv4 all’interno di un indiriz‑ zo IPv6. Vengono utilizzati per facilitare la transizione tra i due protocolli. L’indirizzo IPv4 è inserito negli ultimi 32 bit (low order) mentre i primi 80 devono necessariamente essere pari a 0, a cui seguono 16 bit dal valore di FFFF (sedici bit posti a 1). 30 Marco Lampis Tecnologie e Servizi di Rete 23 febbraio 2023 Figura 2.9: Struttura indirizzi IPv4 Embedded 2.7.4 Loopback Addresses L’indirizzo di loopback viene utilizzato per finalità di test e consiste nel inviare un pacchetto IPv6 a se stesso. E’ identificato da ::1 (equivalente di 127.0.0.1 di IPv4) ed è subordinato alle medesime regole della versine precedente: Non può essere assegnato a un’interfaccia fisica. Pacchetti con un indirizzo di loopback non dovrebbero mai essere trasmessi oltre il dispositivo. I router non devono mai fare il forwarding di un pacchetto contenente un indirizzo di loopback. Il dispositivo deve fare il drop di pacchetti ricevuti da un’interfaccia se il destinatario è un indi‑ rizzo di loopback. 2.7.5 Unspecified Addresses Un indirizzo unicast non specificato è tale da contenere solo 0. Tale indirizzo viene utilizzato come sorgente per indicare l’assenza di un indirizzo. Non può essere assegnato a un’interfaccia e viene utilizzato per il duplicate address detection in ICMPv6. 2.8 Anycast Addresses Gli indirizzi anycast possono essere assegnati a più di un’interfaccia (tipicamente su dispositivi dif‑ ferenti), dando dunque la possibilità di avere su dispositivi differenti lo stesso indirizzo anycast. Un pacchetto che viene inviato a un indirizzo anycast viene reindirizzato all’interfaccia più vicina avente quel indirizzo. Questo permette di avere un indirizzo unico per un servizio, ma che può essere rag‑ giunto da più dispositivi. Inizialmente venne realizzato per il DNS, ma è ancora in uno stato sperimentale. Nota: molto utile, ma non è ancora utilizzato. Marco Lampis 31 23 febbraio 2023 Tecnologie e Servizi di Rete 2.9 Protocolli utilizzati L’architettura del protocollo IPv6 è molto simile a quella di IPv4, ma presenta alcune differenze: IP: utilizzato, salvo alcune modifiche. ICMP: viene utilizzato ICMPv6. ARP: non più utilizzato, inglobato in ICMPv6. IGMP: non più utilizzato, inglobato in ICMPv6. Sono invece stati aggiornati senza modifiche essenziali: DNS (type AAAA record) RIP e OSPF BGP e IDRP TCP e UDP Socket interface Attenzione: non è più possibile utilizzare ARP E IGMP per risolvere gli indirizzi IPv6. Il protocollo IGMP, non più presente in IPv6, permette ad un router IPv4 di scoprire quali gruppi multicast sono presenti in una rete ad esso direttamente connessa. 2.10 Packet Header Format L’header è stato modificato in modo sostanziale in seguito all’introduzione di IPv6. Ciò è stato fatto al fine di avere un header il più snello possibile, ottenendo una lunghezza di 40 byte. L’header utilizzato in IPv6 è invece il seguente: Osservando le immagini si può notare come alcune informazioni siano state rimosse: Header Checksum: Non è più presente. Veniva utilizzato per verificare se il dato trasmesso è corrotto, ma non è più necessario in quanto a livello data link (2) vengono eseguiti già controlli di errore. Analogamente, i protocolli di livello superiore come UDP e TCP hanno i propri mecca‑ nismi di checksum. Frammentazione: I router IPv6 non frammentano i pacchetti a meno che non siano loro la sor‑ gente. I pacchetti più grandi di MTU vengono scartati e viene restituito alla sorgente un messag‑ gio di errore ICMPv6 Packet Too big. 32 Marco Lampis Tecnologie e Servizi di Rete 23 febbraio 2023 Figura 2.10: Header IPv4 Figura 2.11: Header IPv6 Marco Lampis 33 23 febbraio 2023 Tecnologie e Servizi di Rete Nota: Il checksum su UDP diventa opzionale in IPv6. L’header può essere ulteriormente esteso attraverso il campo next header, che consente di puntare a un altro header con ulteriori informazioni creando una catena di header. Funzionano in modo simile al campo “protocol” di IPv4. Figura 2.12: Chaining Inoltre, sono presenti: version: versione del protocollo. traffic class: permette di indicare la priorità del traffico (quality of service). flow label: permette di indicare il flusso di dati (nuovo campo), associando un’etichetta a un certo tipo di traffico (label routing). Un esempio è il caso di un datore di lavoro che non si fida dei suoi dipendenti e vuole che tutto il loro traffico passi per un dispositivo di sicurezza che lo analizzi. payload length: lunghezza del payload. hop limit: numero di router che possono essere attraversati prima che il pacchetto venga scar‑ tato. Se il valore è 0, il pacchetto viene scartato. Se il valore è 1, il pacchetto viene inviato al destinatario senza essere ulteriormente inoltrato. Se il valore è 255, il pacchetto non viene scartato mai. Il formato del campo next header è il seguente: next header: indica il tipo di header successivo. length: lunghezza del header successivo. extension header: header successivo. extension data: dati dell’header successivo. Nota: Header length non serve più! Viene eseguita la frammentazione attraverso il next header. 34 Marco Lampis Tecnologie e Servizi di Rete 23 febbraio 2023 Figura 2.13: Extension Header Format 2.10.1 Hop‑by‑Hop Extension Header L’Hop‑by‑Hop Extension Header è utilizzato per andare a inserire dei campi/vincoli che servono all’hop per capire se il pacchetto deve essere scartato o meno (strumento di analisi). Se è presente, è indicato immediatamente dopo l’header IPv6. Questo header viene utilizzato per inserire dei campi opzionali. Ogni opzione ha un set di: option type: indica il tipo di opzione. option length: lunghezza dell’opzione. option value: valore dell’opzione. Figura 2.14: Hop‑by‑Hop Extension Header Nota: si ottiene una tripletta TLV (type‑length‑value). 2.10.2 Routing Extension Header Il Routing Extension Header permette alla sorgente di un pacchetto di specificare il percorso di desti‑ nazione, indicando uno o più router intermedi. Viene utilizzato per il supporto alla mobilità in IPv6. Marco Lampis 35 23 febbraio 2023 Tecnologie e Servizi di Rete Figura 2.15: Routing Extension Header 2.10.3 Altre estensioni Sono possibili altri due tipi di estensioni a seconda delle necessità: Fragment Extension Header Authentication and Encapsulating Security Payload Extension Headers: utilizzato da IPsec (una suite di protocolli per la sicurezza). 2.10.3.1 fragmentation header Il Fragmentation header viene utilizzato per la frammentazione dei pacchetti ognuno dei quali ha un proprio header IPv6 e un frammento di extension header. Il ricevente del pacchetto deve riunire i frammenti in un unico pacchetto. A differenza di IPv4, il protocollo IPv6 non frammenta un pacchetto a meno che non sia la sorgente del pacchetto. 2.10.3.2 Authentication and Encapsulation Header Gli header Authentication and Encapsulation Header vengono utilizzati per la sicurezza, sono usati da IPsec: una suite di protocolli per l’invio in sicurezza dei pacchetti in una rete IP. Authentication Hea‑ der (AH) è utilizzato per l’autenticità e la integrità dei pacchetti mentre Encapsulating Security Payload (ESP) è utilizzato per la cifratura, autenticazione e integrità dei pacchetti. 36 Marco Lampis Tecnologie e Servizi di Rete 23 febbraio 2023 2.11 Interfacciarsi con i livelli più bassi 2.11.1 Incapsulamento La prima cosa che risulta evidente appena si approccia IPv6 è che lo stack ISO/OSI prevede un campo in cui viene specificato il contenuto del livello superiore. Questo approccio è detto dual stack: creando uno nuovo stack è possibile far funzionare i dispositivi sia in IPv4 che in IPv6 (lo trattiamo come un nuovo protocollo), senza alterare il funzionamento nel protocollo precedente. I pacchetti IPv6 sono incapsulati nel frame di livello 2, ad esempio per ethernet il tipo è 86DD. Un dispositivo con un interfaccia IPv6 e una IPv4 può ricevere pacchetti IPv4 e IPv6, come av‑ verrebbe normalmente. 2.11.2 Address mapping Un indirizzo di un pacchetto IPv6 viene associato a un MAC di destinazione attraverso: IP unicast address: mediante discovery procedurale (protocol based) o neighbor discovery. IP multicast address: utilizza un algoritmo di mapping. 2.11.3 IPv6 Multicast transmission La trasmissione Multicast si basa sul ethernet multicast, e a differenza del ethernet broadcast può essere filtrato dalla scheda di rete (NIC). Gli indirizzi multicast IPv6 vengono associati ad indirizzi MAC, in particolare è riservato l’indirizzo MAC Ethernet 33-33-xx-xx-xx-xx per il trasporto di pacchetti multicast IPv6. Questo viene fatto po‑ nendo i 4 byte (32 bit) meno significativi dell’indirizzo IPv6 in un indirizzo MAC Ethernet multicast 33-33. Figura 2.16: Multicast Transmission Marco Lampis 37 23 febbraio 2023 Tecnologie e Servizi di Rete Un esempio può essere il seguente: quando viene inviato un pacchetto all’indirizzo IP multicast FFOC ::89:AABB:CCDD, questo viene incapsulato in un MAC frame con indirizzo 33:33:AA:BB:CC:DD. Nota: abbiamo FF all’inizio dell’indirizzo proprio perché è multicast. 2.12 Neighbor Discovery and Address Resolution ICMPv6 sostituisce completamente il protocollo ARP. E’ basato su multicast e sfrutta il Solicited‑ Node Multicast Address. A causa di come il multicast solicited address è realizzato, per lo più solo un nodo viene coinvolto. Attenzione: l’inoltre dei pacchetti IPv6 su una LAN non utilizza meccanismi di neighbor disco‑ very in quanto esiste una regola per mappare gli indirizzi IPv6 in indirizzi MAC (4 byte meno significativi). 2.12.1 Solicited‑Node Multicast Address Mediante il Solicited‑Node Multicast Address, gli indirizzi vengono automaticamente creati per ogni indirizzo unicast dell’interfaccia. Tutti gli host si iscrivono e vengono mappati nel seguente modo: FF :02::1:FF/104 | 24 ip meno significativi, in modo da ottenere per lo più un host per gruppo. Il solicited‑node Multicast Address viene utilizzato come indirizzo di destinazione in un pacchetto di Neighbor Solicitation. Figura 2.17: Mappatura indirizzo 38 Marco Lampis Tecnologie e Servizi di Rete 23 febbraio 2023 2.12.2 Risoluzione di un indirizzo La risoluzione di un indirizzo avviene attraverso ICMP Neighbor Solicitation: 1. Il richiedente invia un frame al Solicited Node Multicast Address contenente l’indirizzo IPv6 del host target. 2. Viene inviata dal target una risposta ICMP Neighbor Advertisement, attraverso la quale viene spedita indietro all’indirizzo unicast del richiedente la risposta. La mappatura tra IPv6 e MAC address viene memorizzata nella cache dell’host (in modo equivalente alla cache ARP). Figura 2.18: Risoluzione dell’indirizzo Figura 2.19: Risoluzione dell’indirizzo A causa della mancanza degli indirizzi broadcast il numero di MAC aumenta molto, per questo motivo è necessario che il router sia in grado di rispondere alle richieste di risoluzione di un indirizzo. Marco Lampis 39 23 febbraio 2023 Tecnologie e Servizi di Rete Figura 2.20: Risoluzione dell’indirizzo 2.13 La transizione tra IPv4 e IPv6 La transizione da IPv4 a IPv6 sta avvenendo in modo incrementale, in quanto non è stato stabilito un limite entro cui forzare il passaggio ma al contrario sarà stabilito automaticamente quando sarà, nel pratico, il più utilizzato. Questo approccio trasparente e graduale mira a far prendere piede a IPv6 nel corso di molto tempo ma in modo seamless (ovvero senza cambiamenti) utilizzando approcci di tipo dual stack. Questo risultato viene ottenuto attraverso tre meccanismi: Address Mapping Tunneling Translation mechanisms Quando è nato IPv6 erano presenti poche reti dual stack e una forte presenza di IPv4 nella backbone (dorsale, architettura di rete). Nel corso del tempo le infrastrutture si sono adeguate al passaggio, aumentando il numero di host con comunicazioni on‑link in IPv6. L’obbiettivo è quello di riuscire a creare una rete maggioritaria su IPv6 con solo poche connessioni IPv4 (in realtà le infrastrutture per eseguire il passaggio sono già pronte). 2.14 ICMPv6 Il protocollo ICMPv6 permette di eseguire operazioni di: diagnostica 40 Marco Lampis Tecnologie e Servizi di Rete 23 febbraio 2023 Figura 2.21: Pochi host IPv6 Figura 2.22: Aumento di host IPv6 Figura 2.23: Maggioranza IPv6 Marco Lampis 41 23 febbraio 2023 Tecnologie e Servizi di Rete neighbor discovery Multicast group management issue notification Inoltre, include alcune funzionalità che in IPv4 erano delegate ad ARP (Address Resolution Protocol) e IGMP (Internet Group Membership Protocol). 2.14.1 Formato del messaggio Il messaggio è incapsulato in pacchetti IPv6 con next header = 58, che permette di identificare il nuovo header di tipo ICPMv6, che avrà al più 576 byte. Figura 2.24: Formato del messaggio Code Spiegazione tipo 1 Destination Unreachable Errore 2 Packet too big Errore 3 Time exceeded Errore 4 Parameter Problem Errore 128 Echo Request Informativo 129 Echo Reply Informativo 130 Multicast Listener Query Informativo 131 Multicast Listener Report Informativo 132 Multicast Listener Done Informativo 133 Router Solicitation Informativo 134 Router Advertisement Informativo 135 Neighbor Solicitation Informativo 42 Marco Lampis Tecnologie e Servizi di Rete 23 febbraio 2023 Code Spiegazione tipo 136 Neighbor Advertisement Informativo 137 Redirect Informativo 2.14.1.1 Messaggi di errore Analizzando più nel dettaglio i messaggi di errore: Destination unreachable (tipo 1): solitamente generato dal router o firewall, nel campo “code” viene fornita la motivazione (nessuna route, scope errato, indirizzo/porta non raggiungibile). Packet too big (tipo 2): IPv6 non fa più la frammentazione dei pacchetti. Time exceeded (tipo 3): avviene quando il router riceve un pacchetto con Hop Limit = 0. Parameter Problem (tipo 4): generato quando un dispositivo trova un problema con un campo del header IPv6 main o con un extension header. Un esempio è un valore non valido del campo Next Header. 2.14.1.2 Messaggi informativi 2.14.1.2.1 Echo La richiesta di echo ha tipo 128 mentre la echo reply ha 129; viene utilizzato, ad esempio, da ping. Figura 2.25: Echo request 2.14.1.2.2 Neighbor Solicitation 2.14.1.2.3 Neighbor Advertisement E’ importante evidenziare la presenza di flag aggiuntivi: R router flag, se true arriva da un router. S solicited flag, se arriva da un nodo che ha fatto una richiesta di risoluzione. Marco Lampis 43 23 febbraio 2023 Tecnologie e Servizi di Rete Figura 2.26: Neighbor Solicitation O override flag, se la host cache deve essere aggiornata o meno. Figura 2.27: Neighbor Advertisment Nota: non è presente un campo MAC, in quanto è dato per scontato sia presente nelle opzioni. Viene invece specificato l’ip, anche se ridondante, in quanto potrebbe essere sia un nodo che un router. 2.14.2 Multicast Group Management Quando si ha un collegamento che fa affidamento al data link layer multicasting services, è necessario eseguire il mapping di un indirizzo multicast IPv6 su un indirizzo MAC. Questo deve essere eseguito tra i link e i pacchetti inviati dai router in modo che ICMPv6 sappia i membri on‑link (ovvero gli host interessati a ricevere i pacchetti). 44 Marco Lampis Tecnologie e Servizi di Rete 23 febbraio 2023 Inoltre consente ai protocolli di multicast routing di sapere quando sono presenti membri off‑link. 2.14.3 Host Membership Discovery La Multicast Listener Query è una domanda che il router manda ai suoi host per verificare se sono interessati a far parte di un gruppo multicast, ponendosi in attesa di una risposta. La risposta con la quale un host comunica al router tale interesse è detto Multicast Listener Report. Figura 2.28: Host Membership Discovery Multicast listener query (type=130): il router manda una query per capire se un host è inte‑ ressato a ricevere i pacchetti multicast. Multicast Listener Report (type=131): l’host risponde al router dicendo che è interessato a ricevere i pacchetti multicast. Multicast Listener Done (type=132): l’host manda un messaggio di fine per avvisare che non è più interessato a ricevere i pacchetti multicast. Il messaggio di done è importante, perché se un host esce da un gruppo, il router deve essere infor‑ mato. Potrebbe succedere che il messaggio non venga inviato: in questo caso il router prevede dei timer, se dopo un intervallo di tempo (maximum response delay) l’host non manda un messaggio di interesse verso un gruppo, allora verranno inoltrati i pacchetti multicast. Adesso la gestione del multicast viene rappresentato solo a livello 3 (quindi diviene compito del router e non più dello switch). 2.15 Device Configuration in IPv6 Le informazioni necessarie per eseguire la configurazione di un dispositivo sono: Address prefix Marco Lampis 45 23 febbraio 2023 Tecnologie e Servizi di Rete Figura 2.29: Formato richiesta Interface identifier Default gateway DNS server Hostname Domain name MTU (Maximum Transmission Unit) … Molte di queste informazioni vengono recuperate automaticamente in modo da rendere gli host plug and play. Le configurazioni possono essere: Manual configuration: configurazione manuale. Stateful configuration: tutte le informazioni recuperate mediante DHCPv6. Stateless configuration: generate automaticamente, con il prefisso dell’indirizzo ottenuto dal router. Hybrid (Stateless DHCP): ulteriori informazioni oltre l’indirizzo recuperate mediante DHCPv6. L’identificatore dell’interfaccia (64 bit bassi) può essere ottenuto in più modi: configurazione manuale ottenuto tramite DHCPv6 generato automaticamente da EUI‑64 MAC address (privacy aware) Ci sarà in realtà un ulteriore meccanismo che si assicura che l’indirizzo utilizzato sia unico all’interno della rete. EUI‑48 to EIU‑64 (Extended Unique Identifier) estende un indirizzo MAC da 48 bit a 64 bit, aggiungen‑ do i bit 11111110 e 11111111 in posizione 1 e 2. La rete FE80::/64 dovrebbe essere utilizzata solo per indirizzi di tipo link local (cioè per comunicare sulla stessa rete locale senza uscire sulla rete pubblica), per ottenere i 64 bit bassi di interface ID è 46 Marco Lampis Tecnologie e Servizi di Rete 23 febbraio 2023 Figura 2.30: EUI‑48 to EUI‑64 mapping necessario prendere il MAC address(48 bit), separare i 24 bit alti dai 24 bassi e al centro inserire 16 bit pari a FFFE, inoltre per convenzione il settimo bit deve essere post a 1 nel caso in cui l’indirizzo mac sia stato configurato manualmente. Dal punto di vista della tracciabilità, i 64 bit meno significativi di un indirizzo IPv6 di un’interfaccia non cambiano mai quando viene utilizzato un MAC address. Un esempio è il seguente: FE80::0201:06FF:FEA5:3A4C potrebbe avere come MAC associato 00:01:06:A5:3A:4C. 2.15.1 Privacy extension Algorithm Per quanto detto fino ad adesso, riuscire a tracciare un dispositivo non è complicato in quanto i 64 bit meno significativi dell’indirizzo IPv6 non cambiano mai quando il MAC address è utilizzato. Per questo motivo è stato implementato il Privacy Extensions for Stateless Address Autoconfigura‑ tion in IPv6, in modo da consentire una configurazione automatica e non tracciabile dei dispositivi. Il Privacy extension Algorithm garantisce la privacy al livello 3 (network layer), in quanto non è pos‑ sibile dai 64 bit ricavare l’indirizzo. Questo consiste nel unire i 64 bit del MAC address con i 64 bit di un random number (parte più significativa) dato poi in pasto a un algoritmo di hashing (come md5) in modo da non poter ricavare il MAC iniziale. Viene infine fatto una & bit a bit con 64 bit posti ad 1 ad esclusione del settimo bit più significativo che viene posto a 0 trovando un nuovo random number per la prossima configurazione. Ormai da qualche anno, non viene più utilizzato MD5. Marco Lampis 47 23 febbraio 2023 Tecnologie e Servizi di Rete Figura 2.31: Privacy extension Algorithm 2.15.2 Indirizzi Un host potrebbe avere più di un indirizzo IPv6 (default o privacy aware). Questi possono essere utiliz‑ zati per accettare o iniziare connessioni. Solo una un numero selezionato di indirizzi potrebbe essere disponibile per un user o una applicazione. Il prefisso di un indirizzo può essere configurato manualmente, ottenuto tramite DHCPv6, generato automaticamente (link local) oppure ottenuto dal router. Come faccio a capire quali sono i 64 bit alti che ha comprato il mio amministratore di rete? Dal rou‑ ter. In particolare sono di nostro interesse il router prefix discovery, router solicitation e il router advertisement. 2.15.2.1 Router Prefix Discovery Attraverso la Router/Prefix Discovery è possibile introdurre una “sincronia”: se l’host non ha chie‑ sto un messaggio potrebbe essere direttamente il router a mandare l’informazione tempestivamente senza che venga richiesta un solecitation. 2.15.2.2 Router Solicitation Una router solicitation viene viene mandata solamente ai router, dunque non all node ma bensì all routers (FF01::2). 48 Marco Lampis Tecnologie e Servizi di Rete 23 febbraio 2023 Figura 2.32: Router Solicitation 2.15.2.3 Router Advertisement Nel messaggio di advertisement sono rilevanti alcuni parametri: M flag (Managed addres Configuration): se è settato a 1 significa che l’indirizzo è stato configu‑ rato tramite DHCPv6. O flag (other configuration): se è settato a 1 sono presenti altre configurazioni, ad esempio DNS server. reachable time: tempo in millisecondi che il router impiega per raggiungere un host. retrans timer: intervallo di tempo per cui ritenere l’indirizzo valido. Option: sono presenti delle opzioni, in formato generico ovvero type, length (multipli di 8) e value. tra le opzioni c’è il prefix information option che ha sempre: lifetime: tempo di vita dell’indirizzo. preferred lifetime: periodo in cui non dovrei più utilizzarlo. L: se è utilizzato all’interno di un on‑link. A: il prefisso può essere utilizzato per una configurazione automatica. prefix: il prefisso. Link layer address option: indirizzo MAC del mio default gateway. Se il default gateway invia il mes‑ saggio perché lo inserisco? per comodità dello stack iso/osi. 2.15.3 ICMP Redirect Il redirect viene utilizzato per informare, all’interno di una stessa sottorete, un host A che per raggiun‑ gere un determinato host B è più conveniente utilizzare un altro router. Se la comunicazione è a livello globale questo solitamente non avviene. Marco Lampis 49 23 febbraio 2023 Tecnologie e Servizi di Rete Figura 2.33: Message Format Figura 2.34: header Option 50 Marco Lampis Tecnologie e Servizi di Rete 23 febbraio 2023 2.15.4 Duplicate Address Detection (DAD) Il Duplicate Address Detection (DAD) è un meccanismo che permette di verificare che un indirizzo IPv6 sia unico all’interno della rete. Il funzionamento è molto semplice: l’host manda un messaggio ICMPv6 a tutti gli host con destinazio‑ ne all nodes al IPv6 Soliticted Node Multicast Address e al corrispondente MAC multicast address, con il payload contenente l’indirizzo che si vuole utilizzare. Se non vi è nessuna risposta entro 1 secon‑ do, l’indirizzo viene considerato valido, se invece vi è risposta significa che l’indirizzo è già utilizzato in quanto un host ha risposto con un messaggio ICMPv6 di tipo DAD con il payload contenente l’indirizzo da utilizzare. 2.15.5 Fasi di una configurazione Stateless La configurazione stateless di un nuovo dispositivo permette il non utilizzo del protocollo DHCP per la configurazione automatica dei dispositivi. Avviene nei seguenti passaggi: Generazione di un indirizzo link local. Verifica dell’unicità dell’indirizzo (DAD). il dispositivo si pone in ascolto di un messaggio di router advertisement o manda una solicitation per scoprire le informazioni sull’indirizzo privato. Una volta scoperta la parte alta: si verifica se anche all’interno della sotto rete che l’indirizzo sia unico (di nuovo). iscrizione al corrispondente IPv6 Solicited Node Multicast Address, configurando la ricezione del multicast MAC corrispondente e inviando un ICP MUlticast Listener Report. La comunicazione on‑link è abilitata. Un vantaggio è quello del renumbering, che consente un funzionamento plug and play. Tramite l’advertisement vengono riconfigurati tutti i dispositivi in modo automatico. Questi rimangono in ascolto per il Router Advertisement e quando arriva un messaggio con un nuovo prefisso, cambiano indirizzoGl, in modo da poterli riconfigurare in qualsiasi momento. Si identificano così indirizzi “pre‑ ferred” e “deprecated” permettendo di cambiare ISP senza aggiornare tutti gli indirizzi. 2.16 Scoped Addresses Un dispositivo può avere più interfacce con il medesimo indirizzo, per cui un determinato pacchetto viene mandato su un interfaccia piuttosto che un’altra in base allo scopo e al programma che lo ha Marco Lampis 51 23 febbraio 2023 Tecnologie e Servizi di Rete generato (concetto di scopo). Un indirizzo scoped è composto da un indirizzo IPv6 seguito da % e un numero che identifica l’interfaccia. Ad esempio: FE80::0237:00FF:FE02:A7FD%19 Attenzione: il valore dello scopo è specifico per ogni implementazione. Attenzione: Questo byte di scope non viene più utilizzato perché è utile solo per il sistema operativo. 2.17 Routing Protocols Il routing in due tisi differenzia in due tipologie: On the fly routing: è il forwarding, usa le routing tables e permette, a fronte di un pacchetto en‑ trante in un nodo di rete, di determinare qual è la migliore porta di uscita verso la destinazione. Proactive routing: crea le routing tables in modo da individuare un percorso valido per un pac‑ chetto, dal mittente al destinatario. La creazione di tali tabelle di tipo manuale prende il nome di static routing, in caso contrario la distri‑ buzione delle informazioni all’interno della rete è ottenuta attraverso protocolli di routing. Le routing table in IPv6 sono basate sul longest prefix match (come in IPv4), ma nonostante alcune peculiarità, IPv4 e IPv6 si comportano come due protocolli indipendenti (con routing table separa‑ te). I protocolli di routing possono essere: Integrated routing: viene adoperato un singolo protocollo che informa i destinatari per en‑ trambe le protocol families (sia IPv4 che IPv6). Ha come vantaggio quello di non avere mecca‑ nismi di duplicazione, ma è necessaria l’implementazione di un nuovo protocollo dedicato che potrebbe comportare bug con il funzionamento delle operazioni in IPv4. Inoltre, le topologie di rete tra IPv4 ed IPv6 potrebbero essere diverse e quindi il routing potrebbe non essere ottimale. ships in the night: ogni family address ha il suo protocollo di routing, con la caratteristica che tutti i protocolli sono indipendenti l’uno dall’altro. In questo modo è possibile utilizzare proto‑ colli di routing differenti (scelti in base alla topologia o scenario). Il vantaggio è una più semplice integrazione e troubleshooting, ma comporta un inevitabile meccanismo di duplicazione. Esempi di routing protocol: 52 Marco Lampis Tecnologie e Servizi di Rete 23 febbraio 2023 Protocollo Approccio Static Ships in the night RIPng Ships in the night EIGRP Ships in the night OSPFv3 Ships in the night (Integrated routing is possible) IS‑IS Integrated routing MP‑BGP Both (configuration‑dependent); “Integrated Routing” is the most commonly deployed because of practicality: BGP process identified by AS number, which is the same for both IPv4 and IPv6. 2.18 La transizione da IPv4 a IPv6 La transizione da IPv4 e IPv6, come già detto, è tutt’ora in corso e molto lenta. In prima battuta, quando la maggior parte delle connessioni erano su IPv4 si andava a utilizzare il tunneling di IPv6, il cui nome deriva dal fatto che IPv6 veniva inserito in un header IPv4 per compatibilità. Figura 2.35: Esempio di Tunneling L’approccio iniziale è stato di tipo dual stack con lo scopo di supportare le funzionalità di entrambi i protocolli, ma con la limitazione di non ridurre l’utilizzo di IPv4 e di lasciare la responsabilità alle applicazioni di utilizzare IPv6 o IPv4. Un aspetto però negativo era la completa duplicazione di tutto lo stack di protocolli necessari (routing protocols, routing table, access list). Un differente approccio è quello di utilizzare il tunneling, ovvero incapsulare un pacchetto IPv6 in uno IPv4 al fine di emulare il link diretto tra dispositivi IPv6 ma in una infrastruttura IPv4. Alcuni protocolli che implementano soluzioni di tipo tunneling sono: GRE (Generic Routing Encapsulation) IPv6 in IPV4 (protocollo di tipo 41) Marco Lampis 53 23 febbraio 2023 Tecnologie e Servizi di Rete setup manuale ed automatico Figura 2.36: Tunneling 2.18.1 Host centered solutions Una soluzione potrebbe essere di utilizzare un approccio di tipo dual stack host, ovvero un host che supporta sia IPv4 che IPv6. In questo modo, il tunneling non è più necessario. Per fare ciò, degli indirizzi IPv6 devono essere riservati per la compatibilità con IPv4, in particolare quelli con il prefisso ::/96, in modo da ignorare i bit più significativi e renderlo retrocompatibile. Le applicazioni mandano pacchetti IPv6 attraverso un indirizzo IPv6, ad esempio ::2.2.2.2 e ven‑ gono reindirizzati a ::/96 attraverso una pseudo‑interfaccia (che fa tunneling automaticamente). Questa dunque incapsula i pacchetti IPv6 in pacchetti IPv4 e li invia. Nota: devono essere riservati ::/96 perché consente di mantenere libero i 32 bit meno signi‑ ficativi per IPv4: $ 128 ‑ 96 = 32 $. Figura 2.37: End‑to‑End‑Tunneling 54 Marco Lampis Tecnologie e Servizi di Rete 23 febbraio 2023 Figura 2.38: Dual stack router 2.18.1.1 6over4 Il protocollo 6over4 utilizza una rete IPv4 per emulare una virtual LAN, attraverso il broadcast multiple access data link e l’IP multicasting. Il neighbor e router discovery sono abilitati in modo da consentire l’individuazione di nodi e dei router vicini. L’indirizzo IPv4 è utilizzato per la generazione automatica di un interface ID IPv6 dell’indirizzo link lo‑ cal. Nota: Non è molto utilizzato a causa della poca diffusione del supporto IPv4 multicast. 2.18.1.2 ISATAP: Intra‑site Automatic Tunnel Addressing Protocol ISATAP si differenzia in quanto al posto di usare il multicast, utilizza una soluzione con un prefisso di rete 0000:5EFE. La rete IPv4 viene utilizzata come una Non‑Broadcast Multiple Access (NBMA) data link, in questo modo non è necessario il supporto per IP multicast. L’interface ID viene derivata dall’indirizzo IPv4. Utilizza il protocollo DNS, ma ha come limitazione che ogni indirizzo deve avere associato un hostna‑ me. Quindi la richiesta non parte dall’indirizzo di IPv6, ma dal hostname (potrebbe essere un problema in alcuni casi). Non è necessario eseguire data‑link address discovery in quando l’indirizzo IPv4 è incluso nell’indirizzo IPv6, in particolare negli ultimi 4 byte. Si rende necessario fornire una PRL (Potential Router List) in quanto la router discovery non è possibile. Può essere configurata manualmente oppure acquisita dal DNS. Marco Lampis 55 23 febbraio 2023 Tecnologie e Servizi di Rete 2.18.1.3 Configurazione automatica La configurazione automatica è diventata lo standard nel tempo. Vengono utilizzati indirizzi IPv4, in‑ dirizzi DNS e il nome del dominio viene ottenuto tramite DHCPv4. L’indirizzo IPv6 link local viene generato automaticamente, mentre l’interface ID è ottenuto dall’indirizzo IPv4. Per ottenere il Potential Router List si utilizza una query DNS, a meno che non sia fornita da DHCPv4. Periodicamente viene eseguita una router discovery verso tutti i router su link prefixed per l’auto‑ configurazione. 2.18.2 Network center solution Si configurano intere reti IPv6 all’interno di una struttura ancora IPv4, dovendo però rinunciare a parte delle funzionalità IPv6, inoltre il range di indirizzi continua a essere ridotto. Figura 2.39: Network centered solution 2.18.2.1 6to4 Attraverso il protocollo 6to4 gli indirizzi dei relay sono embedded in un prefisso IPv6. Iniziano con 2002 e sono indirizzi pubblici (inizia con 2). Questo protocollo non è pensato per le comunicazioni da host IPv4 a host IPv6. Un relay 6to4 deve essere necessariamente il default gateway per i router 6to4. 2.18.2.2 Tunnel broker In questa modalità le comunicazioni avvengono attraverso un tunnel broker server che si occupa di individuare i tunnel server e fa da mediatore tra le configurazioni dei tunnel. 56 Marco Lampis Tecnologie e Servizi di Rete 23 febbraio 2023 Figura 2.40: Schema indirizzo Figura 2.41: Scenario base Figura 2.42: Scenario misto Marco Lampis 57 23 febbraio 2023 Tecnologie e Servizi di Rete Vengono utilizzati tunnel IPv6 in IPv4 (a.k.a. proto‑41). Per eseguire la configurazione dei tunnel viene utilizzato il Tunnel Setup Protocol (TSP) o il Tunnel In‑ formation Control (TIC). Questo tipo di soluzione è centralizzata. Figura 2.43: Architettura tunnel broker 2.19 Scalable, Carrier‑grade Solutions Le soluzioni adottate da i grandi provider prevedono ancora il supporto per i server e i client IPv4 in modo che possano comunicare con host IPv6 e host IPv4. Le soluzioni più utilizzate sono: DS‑Lite A+P (evoluzione di DS‑Lite) MAP‑T and MAP‑E NAT64 6PE (MPLS‑based) Tutte queste soluzioni si basano sul concetto di mapping di un indirizzo IP, ovvero il NAT, eseguendo un mapping tra ipv4 e ipv4. Quello che viene fatto è associare una porta a un indirizzo privato. Prende il nome di LSN il Large Scale NAT, utilizzato per gestire una grande quantità di richieste. E’ possibile avere più livelli di NAT ponendoli in cascata (pratica piuttosto comune). Nonostante il grande utilizzo, non è da dimenticare il fatto che il NAT comporti un single point of failure e che a causa della scarsità di indirizzi possa essere difficile da implementare. 58 Marco Lampis Tecnologie e Servizi di Rete 23 febbraio 2023 Figura 2.44: Nat è ampiamente utilizzato E’ necessario tenere a mente che nelle soluzioni proposte, anche se è previsto l’utilizzo del NAT, è comunque presente l’utilizzo di tunnel. Figura 2.45: Stessa architettura con IPv6 E’ importante notare la posizione del NAT nei protocolli esposti sopra: DS‑Lite: il NAT è presente nel AFTR. A+P: il NAT è post sul CPE (Customer Provided Equipment). NAT64: il NAT è post sul NAT64. Attenzione: notare dove le funzionalità di NAT sono presenti. 2.19.1 AFTR: Address Family Transition Router L’utilizzo del Address Family Transition Router (AFTR) Abilita gli host IPv4 a comunicare con altri host IPv4 attraverso una rete IPv6 (ad esempio la connessione residenziale fornita dagli attuali provider). Ha dunque come conseguenza il poter connettere strutture IPv6 con una infrastruttura nel mezzo IPv4. Marco Lampis 59 23 febbraio 2023 Tecnologie e Servizi di Rete Ha due tipi di funzionalità: sia come NAT, in quanto gestisce richieste di natting. parte hardware che consentono le operazioni di tunneling. Nota: Viene utilizzato da DS‑Lite e A+P. 2.19.2 DS‑Lite La soluzione Dual‑Stack Lite è caratterizzata da Internet Service Provider che utilizzano una backbone (infrastruttura di rete) IPv6. Questo consente di avere solo parti IPv4 o IPv6 con altre sottoreti IPv4 o IPv6. Questa soluzione, rispetto a quelle già viste, sono molto articolate e consentono di coprire tutte le casistiche. Figura 2.46: DS‑Lite Permette di ridurre il numero di indirizzi IPv4 richiesti rispetto a un approccio dual stack (che aveva bisogno di un indirizzo pubblico per ogni host). La soluzione adottata da DS‑Lite funziona come segue: da IPv4 privato si arriva sul home gateway (CPE) che effettua tunnel verso l’AFTR tramite una rete IPv6 su cui è installato un Large Scale NAT (LSN), in questo modo Un unico NAT gestisce tutti i clienti. Ha però delle limitazioni: il cliente non ha controllo sul NAT. possono esserci problemi con i server in quanto static mapping e port forwarding non possono essere configurati. Il NAT esteso consente l’indirizzamento assegnato dal cliente (ovvero sovrapposto). 60 Marco Lampis Tecnologie e Servizi di Rete 23 febbraio 2023 Il NAT è posizionato sul AFTR. 2.19.3 A+P (Address plus Port) Il vantaggio di A+P risiede nella possibilità per il cliente di avere sotto controllo il NAT. Una ulteriore caratteristica è che il range di TCP/UDP è assegnato a ciascun customer (solo le porte sono utilizzate dal NAT in uscita). La soluzione A+P parte da un indirizzo IPv4 privato che arriva sul CPE e viene convertito in indirizzo pubblico e solo successivamente viene effettuato il tunnel IPv6 verso l’AFTR. Quando il pacchetto esce dal tunnel è già stato trattato dal NAT e dunque può andare verso la rete pubblica. Le features sono: nessun problema con la sovrapposizione degli indirizzi privati nello spazio di indirizzi dei custo‑ mer. Le porte possono essere assegnate automaticamente al CPE utilizzando il Port Control Protocol (PCP), mentre il CPE può negoziare più porte in qualsiasi momento. AFTR è solo un tunnel terminator IPv4 in IPv6 (NAT44 non è più necessario in AFTR). Nota: Il concetto alla base è di spostare la complessità sulle foglie. Figura 2.47: A+P 2.19.4 Mapping Address and Port (MAP) Il Mapping Address and Port (MAP) utilizza un approccio di tipo stateless. Questo sfrutta i vantaggi del DHCP e del DNS anche all’interno del sistem