Come funziona la sottorete IPv6 e in cosa differisce dalla sottorete IPv4?


116

Questa è una domanda canonica sulla sottorete IPv6.

Relazionato:

So molto sulla sottorete IPv4 e mentre mi preparo a (distribuire | lavorare su) una rete IPv6, devo sapere quanta parte di questa conoscenza è trasferibile e cosa devo ancora imparare. IPv6 sembra a prima vista molto più complesso di IPv4. Quindi vorrei sapere:

  • IPv6 è 128 bit, quindi perché / 64 è la sottorete consigliata più piccola per gli host? In relazione a questo:
    • Perché si consiglia di utilizzare / 127 per i collegamenti punto a punto tra i router e perché è stato consigliato in passato? Devo modificare i collegamenti router esistenti per utilizzare / 127?
    • Perché alle macchine virtuali dovrebbe essere assegnato un indirizzo inferiore a / 64?
    • Ci sono altre situazioni in cui utilizzerei una sottorete più piccola di / 64?
  • Posso mappare direttamente dalle subnet IPv4 alle subnet IPv6? Ad esempio, un IPv4 / 24 corrisponde direttamente a un IPv6 / 56 o / 120?
  • Le mie interfacce hanno diversi indirizzi IPv6. La sottorete deve essere uguale per tutti?
  • Perché a volte vedo una% anziché un / in un indirizzo IPv6 e cosa significa?
  • Sto sprecando troppe sottoreti? Non finiremo di nuovo?
  • In quali altri modi principali la sottorete IPv6 è diversa dalla sottorete IPv4?

Risposte:


138

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::/96dove NNNN è unico per la VM e la VM può allocare PREFIX:0:NNNN:XXXX:YYYYa 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/24Diventa 2001:db8:abcd:234::/64) che binario ( 10.0.234.0/24diventa 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 nbit. 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::/10blocco. 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.


13
Ottima spiegazione! Soprattutto sulla diversa mentalità. Se guardi i numeri vedi che ci sono 536.870.912 / 32 (piccoli ISP) nel 2000 :: / 3. Con una popolazione mondiale di 7 miliardi che è un ISP per 13 persone, e ciascuno di questi ISP può avere 65.536 clienti con un / 48 ciascuno. Non
devi

Ya, questa è un'ottima spiegazione.
Fergus,

2
Buona spiegazione dei dettagli specifici di 2000 :: / 3.
Koos van den Hout,

5
Bella spiegazione. +1 sul commento finale. Spero che tutti lo abbiano già visto: xkcd.com/865
Nico,

@SanderSteffann E se dovesse diventare un problema sarebbe abbastanza ragionevole per gli ISP assegnare nuovi / 64 agli utenti residenziali anziché / 48s., E per i piccoli ISP richiedere blocchi di 4096 di quelli alla volta (/ 52 blocchi ). Lo schema attuale è progettato per lasciare spazio per l'espansione ad ogni livello.
immibis

45

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

Prima di tutto, un po 'di arte ASCII dagli 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 in genere la rete globale a cui appartiene l'indirizzo. Di solito sono 48 bit. L'ID interfaccia identifica una determinata interfaccia di rete. Di solito è a 64 bit. I restanti 16 bit sono il tuo ID sottorete.

OK, avanti con la spiegazione:

Secondo RFC 4291 - Architettura di indirizzamento IP versione 6 :

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

E RFC 5375 - Considerazioni sull'assegnazione dell'indirizzo unicast IPv6 :

Una parte importante di un piano di indirizzamento IPv4 sta decidendo la lunghezza di ciascun prefisso di sottorete. A differenza di IPv4, l'architettura di indirizzamento IPv6 [RFC4291] specifica che tutte le sottoreti che utilizzano indirizzi univoci globali e ULA hanno sempre la stessa lunghezza prefisso di 64 bit.

Quindi, ignorando l'eccezione del prefisso 000, l'ID interfaccia ha sempre esattamente 64 bit. Questo è un altro modo di dire che tutte le reti di trasmissione locali sono sempre a 64 bit . Se si dispone di un indirizzo IPv6, la sua maschera di rete è sempre a 64 bit. Mai più, mai meno. Se ti è stato assegnato uno spazio di indirizzi maggiore di quello (maschera di rete più corta di 64 bit), si presume che suddividerai lo spazio di indirizzi in reti a 64 bit e gestirai tu stesso il routing. Se ti è stata assegnata una rete più piccola di quella (maschera di rete più lunga), qualcuno ha sbagliato.

Quindi, perché esattamente 64 bit?

Di norma, gli indirizzi IPv6 sono configurati automaticamente anziché assegnati. Il router pubblicizzerà quale prefisso di rete è disponibile (prefisso di routing + ID subnet: primi 64 bit) e il computer inserirà gli ultimi 64 bit utilizzando il proprio identificatore univoco. Come viene fornito al tuo computer un identificatore univoco? Ci sono alcune possibilità, la più comune è usare l'indirizzo MAC della tua interfaccia. Dividi il MAC a metà (metà fornitore / metà seriale), capovolgi il bit universale-locale sul lato fornitore e li unisci di nuovo insieme FF:FEnel mezzo. Così 00:30:48:01:23:45diventa 0230:48ff:fe01:2345. Ora metti il ​​prefisso di rete a 64 bit pubblicizzato sul lato sinistro di quello e hai il tuo indirizzo IP.

Il punto importante qui è che se segui questo schema, le collisioni di indirizzi IP non accadranno. Poiché ogni dispositivo su una determinata rete di trasmissione ha BISOGNO di un indirizzo MAC univoco per funzionare, legare l'ID dell'interfaccia all'indirizzo MAC significa che fino a quando il traffico di trasmissione non si scontra, nemmeno gli indirizzi IPv6. L'uso di 64 bit (anziché solo i 48 dedicati agli indirizzi MAC) fornisce un po 'di spazio di manovra oltre i soli indirizzi forniti da questo schema (ce ne sono molti altri).

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

No. A meno che tu non sia rotto. Bene, potresti avere una giustificazione basata sui requisiti locali per l'impostazione del routing manuale con la tua rete esistente. Ma tieni presente che facendo così, probabilmente stai facendo un casino:

Da RFC 5375 - Considerazioni sull'assegnazione dell'indirizzo unicast IPv6 :

L'uso di una lunghezza del prefisso di sottorete diversa da a / 64 interromperà molte funzionalità di IPv6, tra cui Neighbor Discovery (ND), Secure Neighbor Discovery (SEND) [RFC3971], estensioni di privacy [RFC4941], parti di Mobile IPv6 [RFC4866], Indipendente dal protocollo Multicast - Sparse Mode (PIM-SM) con Embedded-RP [RFC3956] e Site Multihoming tramite IPv6 Intermediation (SHIM6) [SHIM6], tra gli altri. Numerose altre funzionalità attualmente in fase di sviluppo, o proposte, si basano anche su / 64 prefissi di sottorete.

....

Tuttavia, alcuni amministratori di rete hanno utilizzato prefissi più lunghi di / 64 per i collegamenti che collegano i router, in genere solo due router su un collegamento punto-punto. Sui collegamenti in cui tutti gli indirizzi sono assegnati tramite la configurazione manuale e tutti i nodi sul collegamento sono router (non host finali) conosciuti dalla rete, gli amministratori non hanno bisogno di nessuna delle funzionalità IPv6 che si basano su / 64 prefissi di sottorete, questo può funzionare. L'uso di prefissi di sottorete più lunghi di / 64 non è raccomandato per l'uso generale e l'utilizzo di questi per collegamenti contenenti host finali sarebbe un'idea particolarmente negativa, poiché è difficile prevedere quali funzionalità IPv6 verranno utilizzate dagli host in futuro.

Perché si consiglia di utilizzare / 127 per i collegamenti punto a punto tra i router e perché è stato consigliato in passato?

Potresti voler sorvolare RFC 3627 - L'uso della lunghezza del prefisso / 127 tra i router è considerato dannoso . Dai un'occhiata al successivo RFC 6164 - Utilizzo dei prefissi IPv6 a 127 bit sui collegamenti tra router .

L'obiezione all'utilizzo di prefissi più lunghi di / 64 sui router ha a che fare con l'autoconfigurazione del router potenzialmente non riuscita in rare circostanze. L'obiezione all'utilizzo di prefissi inferiori a / 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 indirizzati. Poiché i problemi di denial-of-service nel mondo reale sono peggiori degli errori teorici di autoconfigurazione, / 127 è il nuovo preferito.

Devo modificare i collegamenti router esistenti per utilizzare / 127?

Se controlli un router IPv6, ti consiglio di leggere i due RFC (sono brevi!) E decidere tu stesso.

Posso mappare direttamente dalle subnet IPv4 alle subnet IPv6?

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

Attualmente si. Ricordi quel prefisso 000 che abbiamo intenzionalmente ignorato in precedenza? Bene, ecco un uso per questo:

Sui sistemi dual-stack (quelli con stack IPv4 e IPv6 attivi), è possibile rappresentare IPv4 utilizzando la meccanica IPv6. Lo chiamano " indirizzi IPv6 mappati IPv4 ". Il modello è a zero, seguito da FFFF, seguito dall'indirizzo IPv4 a 32 bit.

Così, 192.168.100.21diventa ::FFFF:C0A8:6415- o più semplicemente: ::FFFF:192.168.100.21. Dato che quel bit di destra rappresenta un indirizzo IPv4, viene tradizionalmente scritto usando la forma decimale puntata.

Poiché si tratta di un vero indirizzo IPv4, utilizza ancora le intestazioni IPv4 ecc. Ciò significa che deve essere presente uno stack IPv4, impostare percorsi IPv4 e tutto il resto. Il vantaggio è che puoi rappresentare sia gli indirizzi IPv4 che IPv6 utilizzando un'unica struttura di indirizzi, che può semplificare lo sviluppo delle applicazioni. Non fa alcuna differenza per quanto riguarda la rete.


20
  1. IPv6 è 128 bit, quindi perché / 64 è la sottorete consigliata più piccola per gli host?

    Questa dimensione del prefisso era stata originariamente raccomandata in un vecchio RFC - da allora c'è stata una revoca di questa politica in cui viene considerato il problema degli attacchi di scoperta del vicino e l'utilizzo di / 126 è una mitigazione valida - tuttavia, se si stanno impostando collegamenti PtP con il al solo scopo di instradare il traffico, un'opzione alternativa è semplicemente quella di attaccare con un / 64 e firewall quella sottorete. Meglio ancora, allocare te stesso un pool dal quale attingerai / 64 sottoreti e avrai tutto il pool come destinazione nella lista nera ai tuoi margini (e in qualsiasi altro luogo da cui potrebbe provenire l'ostilità)

  2. Perché si consiglia di utilizzare / 127 per i collegamenti punto a punto tra i router e perché è stato consigliato in passato? Devo modificare i collegamenti router esistenti per utilizzare / 127?

    / 127 non è raccomandato tra i router e non lo è mai stato - l'indirizzo Anycast per tutti i router è l'indirizzo di tutti zeri della sottorete; ciò significa che / 127 è tecnicamente valido solo tra due macchine in cui una di esse NON funge da router. / 126 va bene.

    In ogni caso, tuttavia, non consiglierei di cambiare i collegamenti esistenti / 64 a meno che l'apparecchiatura non sia vulnerabile a un attacco di inondazione della cache di Neighbor Discovery - e anche in questo caso, determinare innanzitutto se si utilizzerà effettivamente quel / 64 per la connettività Internet , se la risposta è no, basta firewall.

  3. Perché le macchine virtuali dovrebbero essere fornite con subnet inferiori a / 64?

    Questo interrompe SLAAC e RA, a meno che tu non sappia davvero cosa stai facendo, è improbabile che tu abbia qualche buon motivo per farlo - forse il tuo upstream ti ha dato solo un singolo / 64 ma se è così, devi andare tornate da loro e chiedete di più, se vogliono farvi pagare per questo, iniziate a cercare un nuovo fornitore e magari inviate loro alcune e-mail snark che si collegano alle RFC pertinenti.

  4. Ci sono altre situazioni in cui utilizzerei una sottorete più piccola di / 64?

    Onestamente? probabilmente no. Se penso a un motivo legittimo in cui una sottorete più piccola è preferibile per scopi diversi dalla prevenzione degli attacchi NDP, modificherò questa sezione.

    Al contrario, ci sono situazioni in cui NON si desidera utilizzare sottoreti più piccole di / 64, in particolare ovunque si esegua un ambiente con apparecchiature di inoltro hardware (si pensi a router di marca e switch L3) - alcuni non saranno in grado di eseguire il routing hardware dei prefissi più lungo di / 64, altri devono suddividere l'operazione in più confronti, quindi dovresti almeno fare del tuo meglio per assicurarti che / 64 sia il prefisso più lungo nel tuo backbone (OSPF / ISIS / EIGRP / etc.).

  5. Posso mappare direttamente dalle subnet IPv4 alle subnet IPv6? Ad esempio, un IPv4 / 24 corrisponde direttamente a un IPv6 / 56 o / 120?

    Ufficialmente :: ffff: xxxx è il formato di un indirizzo IPv4 mappato su IPv6 - ci sono ovviamente anche una serie di meccanismi di transizione, vale a dire 6to4 e il suo relativo, 6 °, che mappano un indirizzo IPv4 in un IPv6 globale ai fini di fornire accesso IPv6 su IPv4 creando un prefisso IPv6 derivato dall'indirizzo IPv4 su cui è stato trasferito.

  6. Le mie interfacce hanno diversi indirizzi IPv6. La sottorete deve essere uguale per tutti?

    No, l'utilizzo di indirizzi e dimensioni di subnet diversi nella stessa interfaccia non dovrebbe costituire un problema. In tal caso, l'implementazione è errata. Certo, una domanda migliore è: perché dovresti farlo?

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

    Questo è un delimitatore, generalmente applicato agli indirizzi link-local (fe80 :: / 12) - poiché lo stesso indirizzo link-local può esistere legittimamente su più interfacce, il delimitatore% viene utilizzato per consentire di specificare quale interfaccia si intende. Linux generalmente rende obbligatoria la specifica dell'interfaccia quando si eseguono operazioni che coinvolgono un collegamento locale. Windows Vista / 2008 e oltre sono un po 'più intelligenti e non si lamentano a meno che un collegamento locale non sia univoco.

  8. Sto sprecando troppe sottoreti? Non finiremo di nuovo?

    No. Questo è un cavallo morto che è stato frustato WAAAAAAAAAY troppe volte - l'attuale Internet IPv6 globale è 2000 :: / 3 - ci sono molti altri prefissi che IANA potrebbe iniziare a usare se, in qualche modo, ogni RIR sul pianeta riuscisse a esaurire il proprio indirizzo scorte. Quindi no, non rimarremo a corto di spazio e, anche se lo facciamo, richiede un tocco di penna per far apparire un nuovo prefisso, non un cambiamento tecnico. L'unica cosa che questa domanda mette in luce è l'incapacità della mente umana di comprendere appieno quanto sia ridicolmente vasto lo spazio degli indirizzi.

  9. In quali altri modi principali la sottorete IPv6 è diversa dalla sottorete IPv4?

    Oltre a non preoccuparti della quantità di spazio che stai utilizzando, ricorda che non esiste alcun indirizzo di trasmissione 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 un utile effetto collaterale nel consentire all'utente di utilizzare tutti gli indirizzi zero come rotta predefinita in una rete (no, non causerà la duplicazione dei pacchetti, è ANYcast, non MULTIcast) - tenere presente tuttavia, l'host può passare da un router all'altro ogni pochi secondi, quindi non è appropriato per una configurazione con firewall con stato se il tracciamento della connessione non è sincronizzato tra di loro.

    A parte questo, l'altra grande differenza è che IPv6 si preoccupa degli indirizzi duplicati e dei vicini morti (NUD) - quindi, a differenza di IPv4, un host rifiuterà di usare un indirizzo se può determinare che un altro nodo sul link lo sta già utilizzando . NUD d'altra parte è utile se stai configurando route statiche: puoi effettivamente definire più route separate verso un prefisso con metriche variabili e funzioneranno effettivamente, a differenza di IPv4 in cui verrà utilizzata la route metrica più bassa indipendentemente dal fatto che la successiva -hop è vivo o morto (anche se questo potrebbe non essere vero per alcune implementazioni IPv4 che utilizzano ARP per convalidare percorsi come Cisco e altri principali fornitori di router)

    TLDR; IPv6 rileva indirizzi duplicati e vicini non raggiungibili. L'indirizzo all-zero è anycast su tutti i router e non esiste una trasmissione, all-one è un indirizzo regolare.



3

Per coloro che si chiedono da dove provengano i requisiti / 64 per SLAAC, ecco alcuni riferimenti extra:

Dall'autoconfigurazione dell'indirizzo stateless IPv6 (RFC 4862) :

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

È responsabilità dell'amministratore di sistema assicurarsi che la lunghezza dei prefissi contenuti negli annunci router sia coerente con la lunghezza degli identificatori di interfaccia per quel 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 000, gli ID interfaccia devono essere lunghi 64 bit e costruiti in formato EUI-64 modificato.

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


2

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

Perché ai sostenitori di IPv6 piaceva l'idea della configurazione automatica senza stato.

Se si scelgono altre dimensioni di sottorete, la configurazione automatica senza stato si interromperà. Anche alcune altre cose minori potrebbero rompersi, leggi rfc7421 per maggiori dettagli.

Personalmente penso che l'autoconfigurazione senza stato sia un'idea stupida comunque. Porta a indirizzi illeggibili e non ti dà praticamente alcun controllo sull'indirizzamento oltre a fornire il blocco alla sottorete.

Naturalmente la cosa con le convenzioni è che se le segui e le cose vanno male, puoi indicare la convenzione, se rifiuti di seguirle e le cose vanno male, sarà colpa tua.

Perché si consiglia di utilizzare / 127 per collegamenti punto a punto tra router,

L'uso di sottoreti con un numero limitato di indirizzi disponibili evita attacchi di esaurimento alla scoperta dei vicini.

Naturalmente questo ragionamento non si applica solo ai collegamenti punto a punto. Immagino sia stato politicamente possibile fare questa raccomandazione per i collegamenti router punto a punto ma non politicamente possibile farlo per altri collegamenti.

Perché alle macchine virtuali dovrebbe essere assegnato un indirizzo inferiore a / 64?

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

Possono assegnare loro indirizzi "on-link" in cui la macchina dovrebbe rispondere alle richieste di rilevamento dei vicini. Alcuni provider di hosting hanno scelto di assegnare a ogni macchina un / 64 che presenta vantaggi nella mobilità degli indirizzi, altri danno a ciascuna VLAN un / 64 e quindi forniscono ai singoli computer blocchi secondari di quello che utilizza meno indirizzi e può significare che il traffico locale rimane locale anziché passando a un router.

Oppure possono trattare la macchina come un router e assegnarle un blocco indirizzato. In questo caso avrebbe bisogno di indirizzi sufficienti per indirizzare tutte le sue sottoreti interne. Se segui la convenzione "tutte le sottoreti devono essere / 64" ciò significherebbe assegnarle almeno un / 64 e possibilmente più. Ciò ha senso per le macchine che dispongono di "reti all'interno della macchina", ad esempio un host contenitore.

Posso mappare direttamente dalle subnet IPv4 alle subnet 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 sottorete deve essere uguale per tutti?

No

Perché a volte vedo una% anziché un / in un indirizzo IPv6 e cosa significa?

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

Sto sprecando troppe sottoreti? Non finiremo di nuovo?

Non me ne preoccuperei troppo.

Anche con la strana decisione dei progettisti di IPv6 di utilizzare uno spazio di indirizzi a 128 bit e poi buttarne via quasi la metà nella configurazione automatica senza stato, IPv6 ha ancora molto più spazio di IPv4.

E se ci fosse uno scricchiolio ci vorrebbe poco più di un colpo di penna per annullare quella strana decisione.

Una preoccupazione molto più grande con la scalabilità di IPv6 è il routing delle dimensioni della tabella. IPv6 NAT è fortemente scoraggiato. L'esecuzione di una grande rete su indirizzi allocati dal provider comporta un rischio significativo di blocco del provider.

Quindi credo che man mano che la penetrazione di IPv6 nelle reti aziendali aumenterà, assisteremo a un'esplosione delle richieste di spazio IPv6 indipendente dal provider.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.