Skip to content

Come funziona il subnetting IPv6 e come si differenzia da quello IPv4?

Può capitare che trovi qualche incompatibilità con il tuo codice o lavoro, ricordati di testare sempre in un ambiente di test prima di aggiungere il codice al lavoro finale.

Soluzione:

Soluzione 1:

La prima cosa che va menzionata a proposito del subnetting IPv6 è che un differente modo di pensare è necessario. In IPv4 di solito si pensa a quanti indirizzi avete a disposizione e come è possibile assegnarne un numero sufficiente a ciascun utente finale. In IPv6 di solito si pensa a quanti indirizzi /64-sottoreti disponibili e a come allocarle agli utenti finali. Non ci si preoccupa quasi mai di quanti indirizzi IP verranno utilizzati in una determinata sottorete. A parte alcuni casi speciali come i collegamenti punto a punto, ogni sottorete ha semplicemente molti più indirizzi disponibili di quanti ne richieda, quindi ci si preoccupa solo di allocare le sottoreti, non gli host al loro interno.

Le sottoreti IPv6 sono solitamente /64 perché ciò è necessario per far funzionare lo SLAAC (stateless address auto-configuration). Anche quando SLAAC non è in uso, ci possono essere altre ragioni per usare /64. Ad esempio, ci potrebbero essere alcuni dispositivi dell'utente finale che assumono semplicemente/64, oppure che instradano sottoreti più strette di /64 potrebbe essere inefficiente su alcuni router perché l'implementatore del router ha ottimizzato il caso di /64 o di percorsi più ampi per risparmiare memoria della tabella di routing.

Perché si consiglia di usare /127 per i collegamenti punto-punto

Per il caso specifico dei collegamenti punto-punto, /127 è consigliato al posto di /64 per evitare una vulnerabilità in cui i pacchetti indirizzati a uno qualsiasi dei quadrilioni di indirizzi inutilizzati sulla sottorete causano richieste di sollecitazione di vicini indesiderate e voci di tabella che potrebbero affogare un router. Questi pacchetti con indirizzi errati possono essere dannosi o accidentali. Ma anche se si configura effettivamente un collegamento punto-punto come /127, alcuni sostengono l'assegnazione di un intero indirizzo /64 in ogni caso, per essere coerenti.

Perché le macchine virtuali dovrebbero essere fornite con sottoreti più strette di quelle di /64?

Non so perché le macchine virtuali dovrebbero essere fornite con sottoreti più strette di /64?

. /64. Forse perché un provider di hosting presumeva che un server fosse come un utente finale e richiedesse solo una singola sottorete /64 . /64 senza prevedere che il server sarebbe stato in realtà un insieme di macchine virtuali che richiedevano 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, poi ogni VM riceve PREFIX:0:NNNN::/96 dove NNNN è unico per la VM e la VM può allocare PREFIX:0:NNNN:XXXX:YYYY a suo piacimento.

È possibile mappare direttamente dalle sottoreti IPv4 alle sottoreti IPv6? Ad esempio, un IPv4 /24 corrisponde direttamente a un IPv6 /56 o /120?

Dal punto di vista del funzionamento dell'indirizzamento e del routing, la lunghezza del prefisso ha lo stesso significato in IPv6 e in IPv4. A questo livello, si può fare un'analogia del tipo "un IPv4 /16 utilizza la metà dei bit per l'indirizzo di rete e la metà dei bit per l'indirizzo dell'host, è come un /64in IPv6". Ma questo paragone non è davvero azzeccato. Nell'IPv6 sono emerse forti convenzioni che rendono le divisioni delle dimensioni delle reti più simili al vecchio mondo delle reti di classe dell'IPv4. Per essere sicuri, IPv6 non ha reintrodotto l'indirizzamento di classe in cui i pochi bit più significativi dell'indirizzo costringono a una particolare netmask, ma ciò che IPv6 fa ha è un certo [defacto/conventionally] dimensioni standard della rete:

  • /64: la dimensione di base di una singola sottorete: LAN, WAN, blocco di indirizzi per host virtuali web, ecc... Le sottoreti "normali" non dovrebbero mai essere più strette (prefisso più lungo) di /64 . Non ci si aspetta che le sottoreti siano più larghe (prefisso più corto) di /64./64poiché un /64di indirizzi host è molto più di quanto si possa immaginare di aver bisogno.
  • /56: un blocco di 256 sottoreti di base. Anche se le politiche attuali consentono agli ISP di distribuire blocchi grandi come /48 a ogni utente finale e considerare comunque ben giustificato l'utilizzo degli indirizzi, alcuni ISP possono (e già lo fanno) scegliere di assegnare un blocco di /56 sottoreti di base./56ai clienti di fascia consumer come compromesso tra l'assegnazione di molte sottoreti e il risparmio di indirizzi.
  • /48: un blocco di 65536 sottoreti di base e la dimensione raccomandata del blocco che ogni sito finale di un cliente ISP dovrebbe ricevere.
  • /32: la dimensione predefinita del blocco che la maggior parte degli ISP riceve ogni volta che richiede un maggior numero di indirizzi da un registro regionale degli indirizzi.

All'interno delle reti dei service provider e delle aziende si possono vedere molti più prefissi di queste 4 lunghezze. Osservando le tabelle di routing dei router all'interno di queste reti, IPv4 e IPv6 hanno molto in comune, compresa la maggior parte del funzionamento del routing: le rotte per i prefissi più lunghi sovrascrivono le rotte di copertura per i prefissi più corti, quindi è possibile aggregare (rendere più brevi) e approfondire (rendere più lunghe) le rotte. Come in IPv4, le rotte possono essere aggregate o riassunte in blocchi più grandi con prefissi più corti per ridurre al minimo le dimensioni delle tabelle di routing.

Un'altra questione di mappatura tra IPv4 e IPv6 è come armonizzare le assegnazioni IPv4 e IPv6 sulle macchine dual-stack in modo che i piani di indirizzamento possano essere facilmente compresi. A questo proposito, esistono certamente delle convenzioni di uso comune: incorporare il "numero di sottorete" IPv4 in una porzione del prefisso IPv6, sia con BCD (ad es. 10.0.234.0/24 diventa 2001:db8:abcd:234::/64) o binario (10.0.234.0/24 diventa 2001:db8:abcd:ea::/64).

Le mie interfacce hanno diversi indirizzi IPv6. La sottorete deve essere la stessa per tutte?

Assolutamente no! Gli host IPv6 devono essere in grado di essere multihomed, ossia di avere più indirizzi IP contemporaneamente provenienti da sottoreti diverse, proprio come avviene per IPv4. Se sono autoconfigurati con SLAAC, le diverse sottoreti potrebbero provenire da annunci di router diversi.

Perché a volte vedo un % invece di un / in un indirizzo IPv6 e cosa significa?

Non si può vedere uno al posto dell'altro. Hanno significati diversi. Una barra indica un prefisso (sottorete), ovvero un blocco di indirizzi che iniziano tutti con lo stesso nome. n bit. Un indirizzo senza barra è un indirizzo host. Si può pensare a un indirizzo di questo tipo come a un indirizzo implicito di tipo /128 alla fine, il che significa che tutti i 128 bit sono specificati.

Il segno di percentuale accompagna un collegamento locale indirizzo. In IPv6, ogni interfaccia ha un indirizzo link-local oltre agli altri indirizzi IP che potrebbe avere. Ma il fatto è che gli indirizzi link-local sono sempre, senza eccezioni, nell'indirizzo fe80::/10 . Ma se cerchiamo di parlare con un peer usando un indirizzo link-local e l'host locale ha più interfacce, come facciamo a sapere quale interfaccia usare per parlare con questo peer? Normalmente la tabella di routing ci dice quale interfaccia usare per un particolare prefisso, ma in questo caso ci dirà che fe80::/10 è raggiungibile attraverso 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 è che le stiamo esaurendo di nuovo?

Nessuno lo sa. Chi può prevedere il futuro?

Ma considerate questo. Nell'IPv6 il numero di canali disponibili sottoreti è il quadrato del numero di sottoreti disponibili indirizzi individuali in IPv4. È davvero molto. No, intendo dire proprio un bel po'!

Ma comunque: stiamo distribuendo automaticamente un /32 a qualsiasi ISP che ne richieda uno, stiamo distribuendo un /32a qualsiasi ISP che ne richieda uno. /48 ad ogni singolo cliente ISP. Forse stiamo esagerando e alla fine sprecheremo l'IPv6. Ma c'è una disposizione in merito: Finora è stato reso disponibile solo un ottavo dello spazio IPv6: 2000::/3. L'idea è che se facciamo un terribile pasticcio con il primo ottavo e dobbiamo rivedere drasticamente le politiche di allocazione liberale, possiamo provare altre 7 volte prima di essere nei guai.

E infine: L'IPv6 non deve durare per sempre. Forse avrà una vita più lunga dell'IPv4 (una vita impressionante e non è ancora finita), ma come ogni tecnologia un giorno smetterà di essere importante. Dobbiamo solo farcela fino ad allora.

Soluzione 2:

IPv6 è a 128 bit, quindi perché /64 è la subnet più piccola consigliata per gli host?

Prima di tutto, un po' di arte ASCII dalle RFC per stabilire la terminologia:

|         n bits         |   m bits  |       128-n-m bits         |
+------------------------+-----------+----------------------------+
| global routing prefix  | subnet ID |       interface ID         |
+------------------------+-----------+----------------------------+

Il prefisso di routing globale identifica tipicamente la rete complessiva a cui appartiene l'indirizzo. In genere è di 48 bit. L'ID interfaccia identifica una determinata interfaccia di rete. In genere è di 64 bit. I 16 bit rimanenti sono l'ID della sottorete.

OK, continuiamo con la spiegazione:

Secondo RFC 4291 -- Architettura di indirizzamento IP versione 6:

Tutti gli indirizzi Unicast globali diversi da quelli che iniziano con il binario 000 hanno un campo ID interfaccia a 64 bit.

E RFC 5375 -- Considerazioni sull'assegnazione degli indirizzi unicast IPv6:

Una parte importante di un piano di indirizzamento IPv4 è la decisione della lunghezza di ogni prefisso di sottorete.
di ogni prefisso di sottorete. A differenza dell'IPv4, l'architettura di indirizzamento dell'IPv6
architettura [RFC4291] specifica che tutte le sottoreti che utilizzano indirizzi univoci globali e ULA
Globally Unique Addresses e ULA hanno sempre la stessa lunghezza di prefisso di 64 bit.
bit.

Quindi, ignorando l'eccezione del prefisso 000, l'ID interfaccia è sempre esattamente 64 bit. Questo è un altro modo per dire che tutte le reti di trasmissione locali sono sempre a 64 bit. Se si dispone di un indirizzo IPv6, la sua netmask è sempre 64 bit. Mai di più, mai di meno. Se vi è stato assegnato uno spazio di indirizzi più grande di questo (netmask più corta di 64 bit), si presume che lo spazio di indirizzi venga suddiviso in reti a 64 bit e che l'instradamento venga gestito da voi. Se vi è stata assegnata una rete più piccola (netmask più lunga), allora qualcuno ha sbagliato.

Quindi, perché proprio 64 bit?

Di norma, gli indirizzi IPv6 sono configurati automaticamente piuttosto che assegnati. Il router comunica quale prefisso di rete è disponibile (prefisso di routing + ID di sottorete: primi 64 bit) e il computer compila gli ultimi 64 bit utilizzando il proprio identificativo univoco. Come fa il computer a trovare un identificatore unico? Ci sono diverse possibilità, la più comune è quella di utilizzare l'indirizzo MAC dell'interfaccia. Si divide il MAC a metà (metà vendor / metà serial), si inverte il bit universal-local sul lato vendor e si uniscono di nuovo con FF:FE nel mezzo. Quindi 00:30:48:01:23:45 diventa 0230:48ff:fe01:2345. Ora mettete il prefisso di rete a 64 bit pubblicizzato sul lato sinistro di questo, e avrete il vostro indirizzo IP.

Il punto importante è che se si segue questo schema, non si verificheranno collisioni di indirizzi IP. Poiché ogni dispositivo su una determinata rete broadcast ha bisogno di un indirizzo MAC univoco per funzionare, legare l'ID dell'interfaccia all'indirizzo MAC significa che finché il traffico broadcast non entra in collisione, non lo faranno nemmeno gli indirizzi IPv6. L'uso di 64 bit (invece dei 48 dedicati agli indirizzi MAC) offre un po' di margine di manovra oltre agli indirizzi forniti da questo schema (ce ne sono molti altri).

Ci sono altre situazioni in cui dovrei usare una sottorete più piccola di /64?

No, a meno che non siate dei falliti. No, a meno che non siate dei falliti. Beh, si può avere una giustificazione basata su requisiti locali per impostare il routing manuale con la rete esistente. Ma tenete presente che, così facendo, probabilmente farete un pasticcio:

Da RFC 5375 -- Considerazioni sull'assegnazione degli indirizzi Unicast IPv6:

L'uso di una lunghezza di prefisso di sottorete diversa da /64 interrompe molte funzioni di
caratteristiche di IPv6, tra cui Neighbor Discovery (ND), Secure Neighbor
Neighbor Discovery (SEND) [RFC3971], le estensioni della privacy [RFC4941], parti di
IPv6 mobile [RFC4866], Protocol Independent Multicast - Modalità Sparse
(PIM-SM) con Embedded-RP [RFC3956]e Site Multihoming by IPv6
IPv6 (SHIM6) [SHIM6], tra gli altri. Un certo numero di altre
attualmente in fase di sviluppo o di proposta, si basano anch'esse su prefissi di sottorete
prefissi di sottorete /64.

....

Tuttavia, alcuni amministratori di rete hanno utilizzato prefissi più lunghi di /64 per i collegamenti tra router, di solito solo due router su una rete.
/64 per i collegamenti che connettono i router, di solito solo due router su un collegamento
collegamento punto-punto. Sui collegamenti in cui tutti gli indirizzi sono assegnati
configurazione manuale e tutti i nodi sul collegamento sono router (non host finali) che sono conosciuti dal
host finali) che sono conosciuti dalla rete, gli amministratori non hanno bisogno di
di IPv6 che si basano sui prefissi di sottorete /64, questa soluzione può funzionare.
funzionare. L'uso di prefissi di sottorete più lunghi di /64 non è raccomandato per l'uso generale.
per l'uso generale, e usarli per i collegamenti contenenti host finali sarebbe
una cattiva idea, poiché è difficile prevedere quali funzioni IPv6
IPv6 che gli host utilizzeranno in futuro.

Perché è consigliato l'uso di /127 per i collegamenti punto-punto tra router e perché in passato era sconsigliato?

Si consiglia di dare un'occhiata alla RFC 3627 -- L'uso della lunghezza del prefisso /127 tra router è considerato dannoso. Poi date un'occhiata alla successiva RFC 6164 -- Using 127-Bit IPv6 Prefixes on Inter-Router Links.

L'obiezione all'uso di prefissi più lunghi di /64 sui router ha a che fare con l'autoconfigurazione del router che potrebbe fallire in rare circostanze. L'obiezione all'uso di prefissi più corti di /127 (solo 2 host) ha a che fare con una serie di potenziali problemi di negazione del servizio relativi ai pacchetti inviati agli indirizzi non instradati. Poiché i problemi di negazione del servizio nel mondo reale sono peggiori dei fallimenti teorici dell'autoconfigurazione, /127 è il nuovo preferito.

Dovrei cambiare i collegamenti dei router esistenti per usare /127?

Se controllate un router IPv6, vi consiglio di leggere le due RFC (sono brevi!) e di decidere da soli.

Posso mappare direttamente da sottoreti IPv4 a sottoreti IPv6?

Ad esempio, un IPv4 /24 corrisponde direttamente a un IPv6 /56 o /120?

In realtà... sì. Ricordate il prefisso 000 che abbiamo intenzionalmente ignorato prima? Bene, eccone l'uso:

Sui sistemi dual-stack (quelli con entrambi gli stack IPv4 e IPv6 attivi), è possibile rappresentare IPv4 utilizzando la meccanica IPv6. Lo chiamano "Indirizzi IPv4 mappati IPv6". Lo schema è costituito da tutti zeri, seguiti da FFFF, seguito dall'indirizzo IPv4 a 32 bit.

Quindi, 192.168.100.21 diventa ::FFFF:C0A8:6415 -- o più semplicemente: ::FFFF:192.168.100.21. Poiché il bit di destra rappresenta un indirizzo IPv4, viene tradizionalmente scritto in forma decimale punteggiata.

Trattandosi di un indirizzo IPv4 vero e proprio, utilizza ancora le intestazioni IPv4 e così via, il che significa che deve essere presente uno stack IPv4, che devono essere impostate le rotte IPv4 e tutto il resto. Il vantaggio è che si possono rappresentare sia gli indirizzi IPv4 che quelli IPv6 utilizzando un'unica struttura di indirizzi, il che può semplificare lo sviluppo delle applicazioni. Per quanto riguarda la rete, non fa alcuna differenza.


Soluzione 3:

  1. L'IPv6 è a 128 bit, quindi perché /64 è la subnet più piccola consigliata per gli host?

    Questa dimensione del prefisso era originariamente raccomandata in una vecchia RFC; da allora è stata rivista questa politica in cui si tiene conto del problema degli attacchi Neighbour Discovery e l'uso di un /126 è una valida mitigazione; tuttavia, se si stanno impostando collegamenti PtP con l'unico scopo di instradare il traffico, un'opzione alternativa è semplicemente quella di attenersi a un /64 e di proteggere con un firewall quella sottorete. Meglio ancora, allocare un pool da cui attingere le subnet /64 e inserire l'intero pool come destinazione in blacklist sul vostro edge (e in qualsiasi altro luogo da cui potrebbe provenire l'ostilità).

  2. Perché è consigliato l'uso di /127 per i collegamenti punto a punto tra router e perché in passato era sconsigliato? Dovrei cambiare i collegamenti esistenti tra router per utilizzare /127?

    L'/127 non è raccomandato tra i router e non lo è mai stato: l'indirizzo Anycast per tutti i router è l'indirizzo all-zeros della sottorete; ciò significa che l'/127 è tecnicamente valido solo tra due macchine in cui uno dei due è NON agisce come router. Naturalmente, /126 va bene.

    In ogni caso, non consiglierei di cambiare i collegamenti /64 esistenti, a meno che l'apparecchiatura non sia vulnerabile a un attacco Neighbour Discovery cache flood e, anche in questo caso, bisogna prima determinare se si utilizzerà effettivamente quel /64 per la connettività a Internet.

  3. Perché le macchine virtuali dovrebbero essere fornite con sottoreti più piccole di /64?

    Questo rompe gli SLAAC e i RA, a meno che non si tratti di una soluzione reale, davvero non sappiate cosa state facendo, è improbabile che abbiate una buona ragione per farlo: forse il vostro upstream vi ha dato solo un singolo /64, ma se è così, dovete tornare da loro e chiedere di averne di più, se vogliono farvelo pagare, iniziate a cercare un nuovo provider e magari inviategli anche qualche e-mail sprezzante con i link alle RFC pertinenti.

  4. Ci sono altre situazioni in cui dovrei usare una subnet più piccola di /64?

    Onestamente? Probabilmente no. Se mi viene in mente una ragione legittima per cui una subnet più piccola è preferibile per scopi diversi dalla prevenzione degli attacchi NDP, modificherò questa sezione.

    Al contrario, c'è sono situazioni in cui si NON utilizzare sottoreti più piccole di /64 - in particolare ovunque si gestisca un ambiente con apparecchiature di inoltro hardware (si pensi a router e switch L3 di marca) - alcuni non sono in grado di eseguire l'instradamento hardware di prefissi più lunghi di /64, altri devono suddividere l'operazione in confronti multipli; pertanto, si dovrebbe almeno fare del proprio meglio per garantire che /64 sia il prefisso più lungo nella propria dorsale (OSPF/ISIS/EIGRP/ecc.).

  5. È possibile mappare direttamente da sottoreti IPv4 a sottoreti IPv6? Ad esempio, un IPv4 /24 corrisponde direttamente a un IPv6 /56 o /120?

    Ufficialmente, ::ffff:x.x.x.x è il formato per un indirizzo IPv4 mappato su IPv6; naturalmente esistono anche diversi meccanismi di transizione, in particolare 6to4 e il suo parente, 6rd, che mappano un indirizzo IPv4 in uno IPv6 globale allo scopo di fornire l'accesso IPv6 su IPv4 creando un prefisso IPv6 derivato dall'indirizzo IPv4 su cui viene riportato.

  6. Le mie interfacce hanno diversi indirizzi IPv6. La sottorete deve essere la stessa per tutte?

    No, l'uso di indirizzi e dimensioni di sottorete diverse per la stessa interfaccia non dovrebbe essere un problema. Se lo è, l'implementazione è difettosa. Naturalmente, una domanda migliore è perché lo fareste?

  7. Perché a volte vedo un % piuttosto che un / in un indirizzo IPv6 e cosa significa?

    Si tratta di un delimitatore, generalmente applicato agli indirizzi link-local (fe80::/12) - poiché lo stesso indirizzo link-local può legittimamente esistere su più interfacce, il delimitatore % viene utilizzato per consentire di specificare quale interfaccia si intende. In genere Linux rende obbligatoria la specificazione dell'interfaccia quando si effettuano operazioni che coinvolgono un link-local. Windows Vista/2008 e successivi sono un po' più intelligenti e non si lamentano se un link-local non è unico.

  8. Sto sprecando troppe sottoreti? Non è che le esauriremo di nuovo?

    No. Questo è un cavallo morto che è stato fustigato. AMPIAMENTE troppe volte - l'attuale Internet IPv6 globale è 2000::/3 - ci sono molti altri prefissi che la IANA potrebbe iniziare a utilizzare se, in qualche modo, ogni RIR del pianeta riuscisse a esaurire le proprie scorte di indirizzi. Quindi no, non finiremo lo spazio e anche se dovesse succedere, basterebbe un colpo di penna per trovare un nuovo prefisso, non una modifica tecnica. L'unica cosa che questa domanda mette davvero in evidenza è l'incapacità della mente umana di comprendere appieno quanto sia ridicolmente vasto lo spazio degli indirizzi.

  9. In quali altri aspetti principali il subnetting IPv6 è diverso da quello IPv4?

    Oltre a non preoccuparsi di quanto spazio si sta utilizzando, si ricorda che non esiste un indirizzo di broadcast e che l'indirizzo "subnet-zero" è ora l'indirizzo anycast di tutti i router (che è fondamentalmente un indirizzo che esiste implicitamente su tutti i nodi configurati per inoltrare i pacchetti IPv6) - questo ha l'utile effetto collaterale di consentire di utilizzare quell'indirizzo con tutti gli zeri come percorso predefinito in una rete (no, non causerà la duplicazione dei pacchetti, è ANYcast, non MULTIcast) - si tenga presente, però, che l'host può passare da un router all'altro ogni pochi secondi, quindi non è appropriato per una configurazione di stateful firewalling se il tracciamento delle connessioni non è sincronizzato tra di essi.

    A parte questo, l'altra differenza principale è che IPv6 si preoccupa degli indirizzi duplicati e dei vicini morti (NUD): quindi, a differenza di IPv4, un host si rifiuterà di usare un indirizzo se può determinare che un altro nodo sul collegamento lo sta già usando. Il NUD, d'altra parte, è utile se si configurano rotte statiche: è possibile definire più rotte separate verso un prefisso con metriche diverse e funzioneranno effettivamente, a differenza di quanto accade in IPv4, dove viene utilizzata la rotta con metrica più bassa, indipendentemente dal fatto che il next-hop sia vivo o morto (anche se questo potrebbe non essere vero per alcune implementazioni IPv4 che utilizzano ARP per convalidare le rotte, come Cisco e altri importanti fornitori di router).

    TLDR; IPv6 rileva gli indirizzi duplicati e i vicini irraggiungibili. L'indirizzo all-zero è un anycast all-router e non esiste un indirizzo broadcast, all-ones è un indirizzo normale.


Soluzione 4:

Per coloro che si chiedono da dove provenga nelle specifiche il requisito /64 per lo SLAAC, ecco alcuni riferimenti aggiuntivi:

Da IPv6 Stateless Address Autoconfiguration (RFC 4862):

Se la somma della lunghezza del prefisso e della lunghezza dell'identificatore di interfaccia
non è uguale a 128 bit, l'opzione Informazioni sul prefisso DEVE essere ignorata.
ignorata. [...]

È responsabilità dell'amministratore del sistema assicurarsi che la lunghezza dei prefissi
che le lunghezze dei prefissi contenuti nei Router Advertisements
siano coerenti con la lunghezza degli identificatori di interfaccia per quel tipo di collegamento.
tipo di collegamento.

E dall'Architettura di indirizzamento IP versione 6 (RFC 4291):

Per tutti gli indirizzi unicast, ad eccezione di quelli che iniziano con il valore binario
valore binario 000, gli ID di interfaccia devono essere lunghi 64 bit e devono essere
costruiti nel formato EUI-64 modificato.

Pertanto, poiché l'ID interfaccia deve essere di 64 bit e la somma della lunghezza del prefisso e dell'ID interfaccia deve essere di 128, l'unica lunghezza possibile del prefisso quando si utilizza SLAAC è di 64 bit.


Soluzione 5:

IPv6 è a 128 bit, quindi perché /64 è la subnet più piccola consigliata per gli host?

Perché ai sostenitori dell'IPv6 piaceva l'idea dell'autoconfigurazione stateless.

Se si sceglie un'altra dimensione di subnet, la configurazione automatica senza stato si interrompe. Anche altre cose minori potrebbero rompersi, si legga la rfc7421 per maggiori dettagli.

Personalmente penso che l'autoconfigurazione stateless sia comunque un'idea stupida. Porta a indirizzi illeggibili e non dà praticamente alcun controllo sull'indirizzamento al di là dell'assegnazione del blocco alla sottorete.

Naturalmente il problema delle convenzioni è che se le seguite e le cose vanno male potete additare la convenzione, se vi rifiutate di seguirle e le cose vanno male sarà colpa vostra.

Perché si raccomanda di usare /127 per i collegamenti punto-punto tra router,

L'uso di sottoreti con un numero ridotto di indirizzi disponibili evita gli attacchi di esaurimento del neighbour discovery.

Ovviamente questo ragionamento non si applica solo ai collegamenti punto-punto. Immagino che fosse politicamente possibile fare questa raccomandazione per i collegamenti punto-punto tra router, ma non fosse politicamente possibile farla per altri collegamenti.

Perché le macchine virtuali dovrebbero essere fornite con meno di un indirizzo /64?

Dobbiamo fare una distinzione. Ci sono due modi in cui un provider di hosting può assegnare indirizzi a una macchina (sia essa fisica o virtuale).

Possono assegnare loro indirizzi "on-link" in cui ci si aspetta che la macchina risponda alle richieste di rilevamento dei vicini. Alcuni provider di hosting scelgono di assegnare a ogni macchina un /64, il che comporta vantaggi in termini di mobilità degli indirizzi; altri assegnano a ogni VLAN un /64 e poi assegnano alle singole macchine dei sottoblocchi di tale indirizzo, il che comporta un minor utilizzo di indirizzi e può significare che il traffico locale rimane locale anziché passare a un router.

Oppure possono trattare la macchina come un router e assegnarle un blocco instradato. In questo caso avrebbe bisogno di un numero sufficiente di indirizzi per indirizzare tutte le sue sottoreti interne. Se si segue la convenzione "tutte le sottoreti devono essere /64", ciò significa assegnare almeno un /64 e forse di più. Questo ha senso per le macchine che hanno "reti interne alla macchina", ad esempio un host container.

È possibile mappare direttamente dalle sottoreti IPv4 alle sottoreti IPv6? Ad esempio, un IPv4 /24 corrisponde direttamente a un IPv6 /56 o /120?

Qualsiasi mappatura di questo tipo è una questione di politica locale.

Le mie interfacce hanno diversi indirizzi IPv6. La subnet deve essere la stessa per tutte?

No

Perché a volte vedo un % invece di un / in un indirizzo IPv6 e cosa significa?

% è un identificatore di interfaccia. Viene utilizzato insieme agli indirizzi link-local. È necessario perché una macchina può avere più interfacce e le reti collegate a tali interfacce possono avere indirizzi link-local sovrapposti.

Sto sprecando troppe sottoreti? Non è che le esauriremo di nuovo?

Non mi preoccuperei troppo.

Anche con la strana decisione dei progettisti dell'IPv6 di usare uno spazio di indirizzi di 128 bit e poi di buttarne via quasi la metà per la configurazione automatica stateless, l'IPv6 ha ancora molto più spazio dell'IPv4.

E se ci fosse una crisi ci vorrebbe poco più di un tratto di penna per tornare indietro a quella strana decisione.

Un problema molto più grande della scalabilità di IPv6 è la dimensione delle tabelle di routing. Il NAT IPv6 è fortemente sconsigliato. L'utilizzo di una rete di grandi dimensioni con indirizzi assegnati dal provider comporta un rischio significativo di lock-in del provider.

Credo quindi che con l'aumento della penetrazione dell'IPv6 nelle reti aziendali assisteremo a un'esplosione delle richieste di spazio IPv6 indipendente dal provider.

Ci piacerebbe se potessi comunicare questa sezione se ne valesse la pena.



Utilizzate il nostro motore di ricerca

Ricerca
Generic filters

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.