# Protocolli e architetture di instradamento/Instradamento IPv6

Protocolli e architetture di instradamento
Copertina Tutti i moduli · Sviluppo
    CopertinaProtocolli e architetture di instradamento/Copertina
* Algoritmi di instradamento
** Inoltro e instradamentoProtocolli e architetture di instradamento/Inoltro e instradamento
** Algoritmi di instradamentoProtocolli e architetture di instradamento/Algoritmi di instradamento
** L'algoritmo Distance VectorProtocolli e architetture di instradamento/L'algoritmo Distance Vector
** L'algoritmo Link StateProtocolli e architetture di instradamento/L'algoritmo Link State
** Instradamento gerarchicoProtocolli e architetture di instradamento/Instradamento gerarchico
** Instradamento inter-dominioProtocolli e architetture di instradamento/Instradamento inter-dominio
** Instradamento multicastProtocolli e architetture di instradamento/Instradamento multicast
* Protocolli di instradamento
** Routing Information ProtocolProtocolli e architetture di instradamento/Routing Information Protocol
** IGRP e EIGRPProtocolli e architetture di instradamento/IGRP e EIGRP
** Open Shortest Path FirstProtocolli e architetture di instradamento/Open Shortest Path First
** Instradamento inter-dominio: peering e transito in InternetProtocolli e architetture di instradamento/Instradamento inter-dominio: peering e transito in Internet
** Border Gateway ProtocolProtocolli e architetture di instradamento/Border Gateway Protocol
** Instradamento IPv6Protocolli e architetture di instradamento/Instradamento IPv6
** Instradamento multicastProtocolli e architetture di instradamento/Instradamento multicast2
** Content Delivery NetworkProtocolli e architetture di instradamento/Content Delivery Network
* Elaborazione di rete
** Cenni sull'architettura degli apparati di reteProtocolli e architetture di instradamento/Cenni sull'architettura degli apparati di rete
** Filtraggio dei pacchetti basato su softwareProtocolli e architetture di instradamento/Filtraggio dei pacchetti basato su software
** Introduzione alle Software-Defined NetworkProtocolli e architetture di instradamento/Introduzione alle Software-Defined Network
Modifica il sommario
Oggi i router sono per lo più pronti per IPv6, anche se le prestazioni in IPv6 sono ancora peggiori rispetto a quelle in IPv4 a causa della mancanza di esperienza e della più bassa domanda di traffico. Spesso l'instradamento IPv6 è disabilitato per impostazione predefinita anche se l'apparato supporta IPv6 (sui router Cisco si attiva con il comando ipv6 unicast-routing).
Due aspetti sono da considerare:
* tabelle di instradamento: come gestire l'inoltro dei pacchetti di dati?
* protocolli di instradamento: come distribuire le rotte nella rete?

## Tabelle di instradamento

L'instradamento in IPv6 è effettuato nello stesso modo di IPv4 ma richiede due tabelle di instradamento distinte, una per le rotte IPv4 e l'altra per le rotte IPv6. Le tabelle di instradamento IPv6 possono memorizzare diversi tipi di entry, tra cui:
* entry indirette (codici O/S): specificano gli indirizzi, tipicamente link local, delle interfacce dei router next hop ai quali inviare i pacchetti indirizzati verso link remoti;
* entry dirette: specificano le interfacce del router stesso attraverso le quali inviare i pacchetti indirizzati verso i link locali:
** reti connesse (codice C): specificano i prefissi dei link locali;
** indirizzi di interfaccia (codice L): specificano gli interface identifier nei link locali.

### Next hop

Come next hop nelle rotte dinamiche calcolate, i protocolli di instradamento utilizzano sempre gli indirizzi link local, anche se è configurato un indirizzo global sull'interfaccia vicina, per motivi di semplicità: gli indirizzi link local esistono sempre, mentre gli indirizzi global potrebbero non essere utilizzati in alcune porzioni della rete.
Tuttavia l'uso degli indirizzi link local rende difficile il compito di determinare la posizione di quell'indirizzo: l'indirizzo di rete di un indirizzo global permette almeno di identificare la rete in cui l'host dovrebbe essere presente e determinare così l'interfaccia di uscita, ma un indirizzo link local che inizia con FE80:: può essere ovunque → accanto all'indirizzo del next hop, i router stampano anche l'interfaccia locale di uscita per risolvere le ambiguità, come:
Per le rotte statiche, la scelta è lasciata al gestore della rete, che può utilizzare l'indirizzo che preferisce come next hop:
* interfaccia broadcast (ad es. Ethernet): è necessario specificare l'indirizzo del next hop:
** indirizzo global: non è necessario specificare l'interfaccia locale perché può essere determinata dal prefisso di rete: ipv6 route 2001:1::/64 2001::1
** indirizzo link local: è necessario specificare anche l'interfaccia locale per identificare l'ambito dell'indirizzo link local: ipv6 route 2001:1::/64 FastEthernet0/0 fe80::1
* interfaccia punto-punto (ad es. seriale): non è necessario specificare l'indirizzo del next hop perché è identificato univocamente dall'interfaccia locale: ipv6 route 2001:1::/64 serial 0
Siccome le rotte statiche non possono adattarsi ai cambiamenti della rete, è fortemente suggerito di utilizzare gli indirizzi global come next hop per le rotte statiche. Ciò evita che una rotta diventi non valida se il next hop cambia: ad esempio, se la scheda di rete sul router next hop viene sostituita a causa di un guasto hardware:
* indirizzo link local: dipende dall'indirizzo MAC della scheda → occorre modificare la rotta;
* indirizzo global: è sufficiente assegnare alla nuova interfaccia lo stesso indirizzo global.

## Protocolli di instradamento

I protocolli di instradamento che supportano IPv6 possono adottare due approcci:
* instradamento integrato (IS-IS, MP-BGP4): il protocollo consente di scambiare informazioni di instradamento sia IPv4 sia IPv6 allo stesso tempo:
** efficienza: gli indirizzi IPv4 e IPv6 appartenenti alla stessa destinazione possono essere trasportati tramite un singolo messaggio;
** flessibilità: un singolo protocollo trasporta più famiglie di indirizzi;
** reattività: se avviene un guasto o un cambiamento nella rete, il protocollo lo scopre per entrambe le famiglie di indirizzi;
** bug: un problema nel protocollo influenza reti IPv4 e IPv6 allo stesso modo;
** migrazione: se il protocollo usa IPv4 per trasportare i pacchetti di Hello, non è possibile abolire IPv4 nella rete;
* navi nella notte (RIPng, EIGRP, OSPFv3): il protocollo consente di scambiare informazioni di instradamento solo IPv6:
** efficienza: data una destinazione, deve essere scambiato un messaggio per il suo indirizzo IPv4 e un altro messaggio per il suo indirizzo IPv6, e i messaggi sono completamente indipendenti tra loro;
** flessibilità: si possono usare due protocolli diversi, uno per le informazioni di instradamento IPv4 e un altro per le informazioni di instradamento IPv6;
** reattività: se avviene un guasto o un cambiamento nella rete, entrambi i protocolli devono scoprirlo, ciascuno con le proprie tempistiche e con messaggi duplicati;
** bug: un problema nel protocollo non influenza l'instradamento nell'altro;
** migrazione: ogni protocollo di instradamento genera messaggi della famiglia di indirizzi a cui appartiene.

### RIPng

RIPng adotta l'approccio "navi nella notte", e apporta a RIP dei miglioramenti principalmente nell'interfaccia a riga di comando di Cisco:
* supporto alle istanze multiple: il campo tag permette di specificare l'istanza di protocollo;
* configurazione per interfaccia: sono stati introdotti nuovi comandi:
** ipv6 rip <tag> enable: sostituisce il comando network e configura automaticamente RIP su quell'interfaccia senza dover specificare un indirizzo;
** ipv6 rip <tag> default-information originate: origina la rotta di default (::/0), cioè il resto del mondo è raggiungibile tramite questa interfaccia.

### OSPFv3

OSPFv3 adotta l'approccio "navi nella notte", e differisce da OSPF principalmente per tre aspetti:
* configurazione per interfaccia: è stato introdotto il comando ipv6 ospf <ID processo> area <ID area> che specifica che tutte le reti e gli indirizzi configurati su questa interfaccia verranno annunciati come appartenenti all'area specificata;
* Router ID: sfortunatamente OSPFv3 usa ancora un Router ID da 32 bit, che non è neanche capace di impostare automaticamente quando nessun indirizzo IPv4 è disponibile → il comando ipv6 router-id <numero> diventa obbligatorio quando il router è solo IPv6 o è in una rete solo IPv6;
* tunnel: è possibile configurare un tunnel IPv6 su IPv4 per collegare tra loro isole IPv6 attraverso una rete IPv4.

### IS-IS

IS-IS per IPv6 adotta l'approccio "instradamento integrato": usa infatti un proprio protocollo di livello 3 per trasportare i pacchetti specifici del protocollo, indipendentemente dalla versione del protocollo IP sottostante.

### MP-BGP4

MP-BGP4 può adottare entrambi gli approcci a seconda della configurazione: i pacchetti TCP possono essere imbustati in IPv4 o in IPv6 a seconda delle necessità.
La distribuzione più comune segue l'approccio "instradamento integrato", per la necessità di utilizzare il numero dell'AS (che è uguale sia per IPv4 sia per IPv6) per il processo BGP. L'integrazione si riflette anche nelle politiche: è possibile mischiare indirizzi IPv4 e indirizzi IPv6 a piacimento.

## Note

* ↑ Il supporto per le istanze multiple era già presente in RIPv2, ma non era configurabile sui router Cisco.