La prima cosa che dovrebbe essere menzionata sulla sottorete IPv6 è che è richiesta una diversa modalità di pensiero . In IPv4 di solito pensi a quanti indirizzi hai a disposizione e come puoi assegnarne un numero sufficiente a ciascun utente finale. In IPv6 di solito pensi a quante sottoreti (/ 64) hai a disposizione e come puoi assegnarle agli utenti finali. Quasi mai ti preoccupi di quanti indirizzi IP verranno utilizzati in una determinata sottorete. Tranne alcuni casi speciali come i collegamenti punto a punto, ogni sottorete ha semplicemente più indirizzi disponibili di quanti ne richiederanno mai, quindi ti preoccupi solo di allocare sottoreti, non host al loro interno.
Le sottoreti IPv6 sono in genere / 64 perché è necessario per il funzionamento di SLAAC (autoconfigurazione dell'indirizzo senza stato). Anche quando SLAAC non è in uso, potrebbero esserci altri motivi per utilizzare / 64. Ad esempio, potrebbero esserci alcuni dispositivi per utenti finali che assumono solo / 64, oppure il routing di subnet più lunghe di / 64 potrebbe essere inefficiente su alcuni router perché l'implementazione del router ha ottimizzato il caso di / 64 o percorsi più brevi al fine di salvare memoria della tabella di routing.
Perché si consiglia di utilizzare / 127 per i collegamenti punto a punto
Per il caso specifico dei collegamenti punto-punto, si consiglia / 127 anziché / 64 per evitare una vulnerabilità in cui i pacchetti indirizzano a uno qualsiasi dei quadrilioni di indirizzi non utilizzati sulla sottorete causando richieste di sollecito vicine indesiderate e voci di tabella che potrebbe annegare un router. Tali pacchetti errati possono essere dannosi o accidentali. Ma anche se in realtà configuri un collegamento punto-punto come / 127, alcune persone sostengono di assegnare un intero / 64 comunque solo per essere coerenti.
Perché le macchine virtuali dovrebbero essere fornite con subnet inferiori a / 64?
Non so esattamente perché il provisioning delle macchine virtuali con subnet inferiori a / 64. Forse perché un provider di hosting supponeva che un server fosse come un utente finale e richiedesse solo una singola sottorete (/ 64), senza anticipare che il server sarebbe effettivamente una raccolta di macchine virtuali che richiedono una topologia di routing interna? Potrebbe essere fatto anche semplicemente per rendere il piano di indirizzamento più facile da memorizzare: l'host ottiene PREFIX::/64
, quindi ogni VM ottiene PREFIX:0:NNNN::/96
dove NNNN è unico per la VM e la VM può allocare PREFIX:0:NNNN:XXXX:YYYY
a proprio piacimento.
Posso mappare direttamente dalle subnet IPv4 alle subnet IPv6? Ad esempio, un IPv4 / 24 corrisponde direttamente a un IPv6 / 56 o / 120?
Da una prospettiva di basso livello sul funzionamento di indirizzamento e routing, la lunghezza del prefisso ha lo stesso significato in IPv6 e IPv4. A quel livello, puoi fare un'analogia come "un IPv4 / 16 usa metà dei bit per l'indirizzo di rete e metà dei bit per l'indirizzo host, che è come un / 64 in IPv6". Ma questo confronto non è proprio appropriato. In IPv6 sono emerse solide convenzioni che rendono le divisioni delle dimensioni delle reti un po 'più simili al vecchio mondo delle reti di classe in IPv4. Per essere sicuri, IPv6 non reintrodurre a classi di indirizzamento, in cui i più significativi pochi bit dell'indirizzo forzare un particolare maschera di rete, ma che IPv6 non ha è talune [de facto / convenzionalmente] formati standard di rete:
- / 64 : le dimensioni di base di una singola sottorete: LAN, WAN, blocco di indirizzi per host virtuali Web, ecc. Le sottoreti "normali" non dovrebbero mai essere più piccole (prefisso più lungo) di / 64. Non ci si aspetta che nessuna sottorete sia più grande (prefisso più corto) di / 64 poiché gli indirizzi host di un valore di / 64 sono molto più di quanto possiamo immaginare di aver bisogno.
- / 56 : un blocco di 256 sottoreti di base. Sebbene le attuali politiche consentano agli ISP di distribuire blocchi grandi come / 48 a tutti gli utenti finali e comunque ritengono che il loro utilizzo degli indirizzi sia ben giustificato, alcuni ISP possono (e già lo fanno) scegliere di assegnare un / 56 ai clienti di livello consumer come un compromesso tra allocazione molte sottoreti per loro e indirizzo economico.
- / 48 : un blocco di 65536 sottoreti di base e la dimensione di blocco consigliata che dovrebbe ricevere ogni sito finale del cliente ISP.
- / 32 : la dimensione predefinita del blocco che la maggior parte degli ISP riceverà ogni volta che richiederà più indirizzi da un registro indirizzi regionale.
All'interno del provider di servizi e delle reti di imprese, è possibile vedere molte più lunghezze di prefisso di queste 4. Quando si esaminano le tabelle di routing dei router all'interno di queste reti, IPv4 e IPv6 hanno molto in comune tra cui la maggior parte del modo in cui funziona il routing: le rotte per prefissi più lunghi sovrascrivono le rotte per i prefissi più corti, quindi è possibile aggregare (abbreviare) ed eseguire il drill giù (allunga) le rotte. Come in IPv4, le route possono essere aggregate o riepilogate in blocchi più grandi con prefissi più brevi al fine di ridurre al minimo le dimensioni delle tabelle di routing.
Una diversa domanda di mappatura tra IPv4 e IPv6 sarebbe come armonizzare le assegnazioni IPv4 e IPv6 su macchine dual-stack in modo che i piani di indirizzamento possano essere facilmente compresi. A parte questo, ci sono certamente convenzioni di uso comune per fare questo: incorporare il "numero di sottorete" IPv4 in una porzione del prefisso IPv6, sia con BCD (es. 10.0.234.0/24
Diventa 2001:db8:abcd:234::/64
) che binario ( 10.0.234.0/24
diventa 2001:db8:abcd:ea::/64
).
Le mie interfacce hanno diversi indirizzi IPv6. La sottorete deve essere uguale per tutti?
Assolutamente no! Ci si aspetta che gli host IPv6 possano essere multihomed avendo contemporaneamente più indirizzi IP che provengono da diverse sottoreti, proprio come IPv4. Se sono configurati automaticamente con SLAAC, le diverse sottoreti potrebbero provenire da annunci router di router diversi.
Perché a volte vedo una% anziché un / in un indirizzo IPv6 e cosa significa?
Non vedresti l'uno invece dell'altro. Hanno significati diversi. Una barra indica un prefisso (sottorete), ovvero un blocco di indirizzi che iniziano tutti con gli stessi n
bit. Un indirizzo senza barra è un indirizzo host. Potresti pensare a un indirizzo del genere con un "/ 128" implicito alla fine, il che significa che tutti i 128 bit sono specificati.
Il segno di percentuale accompagna un indirizzo locale di collegamento. In IPv6, ogni interfaccia ha un indirizzo locale di collegamento oltre a qualsiasi altro indirizzo IP che potrebbe avere. Ma il fatto è che gli indirizzi link-local sono sempre, senza eccezioni, nel fe80::/10
blocco. Ma se proviamo a parlare con un peer usando un indirizzo locale di collegamento e l'host locale ha più interfacce, come possiamo sapere quale interfaccia usare per parlare con questo peer? Normalmente la tabella di routing ci dice quale interfaccia usare per un particolare prefisso, ma qui ci dirà che fe80::/10
è raggiungibile tramite ogni interfaccia.
La risposta è che dobbiamo dirgli quale interfaccia usare usando la sintassi address%interface
. Ad esempio fe80::1234:5678:8765:4321%eth0
,.
Sto sprecando troppe sottoreti? Non finiremo di nuovo?
Nessuno sa. Chi può dire il futuro?
Ma considera questo. In IPv6 il numero di sottoreti disponibili è il quadrato del numero di singoli indirizzi disponibili in IPv4. È davvero molto. No, intendo davvero parecchio!
Ma ancora: stiamo distribuendo automaticamente un / 32 a qualsiasi ISP che ne richieda uno, stiamo distribuendo un / 48 a ogni singolo cliente ISP. Forse stiamo esagerando e sperpereremo IPv6 dopo tutto. Ma v'è una disposizione per questo: solo un ottavo dello spazio IPv6 è stato reso disponibile per l'uso finora: 2000::/3
. L'idea è che se facciamo un casino orribile del primo ottavo e dobbiamo rivedere drasticamente le politiche di allocazione liberale, dobbiamo provare altre 7 volte prima di essere nei guai.
E infine: IPv6 non deve durare per sempre. Forse avrà una durata più lunga di IPv4 (una durata impressionante già e non è finita) ma come ogni tecnologia un giorno smetterà di importare. Dobbiamo solo farcela fino ad allora.