Versione breve
Before September 2012 After September 2012
Precedence Prefix Precedence Prefix
---------- ------------- ---------- -------------
50 ::1/128 IPv6 loopback 50 ::1/128 IPv6 loopback
40 ::/0 Native IPv6 40 ::/0 Native IPv6
40 fc00::/7 ULAs 35 ::ffff:0:0/96 IPv4
40 fec0::/10 site-local 30 2002::/16 6to4
40 3ffe::/16 6bone 5 2001::/32 Teredo
30 2002::/16 6to4 3 fc00::/7 ULAs
20 ::/96 IPv4compat 1 fec0::/10 site-local
10 ::ffff:0:0/96 IPv4 1 3ffe::/16 6bone
5 2001::/32 Teredo 1 ::/96 IPv4compat
Versione lunga
RFC6724 ha definito un cambiamento in come gli indirizzi dovrebbero essere preferiti. Con questo cambiamento IPv6 non è più l'indirizzo preferito in quasi tutti i casi :(
Questa domanda, che è stata posta nel giugno del 2012 è stata “fissata” da una RFC del settembre 2012. A seconda della tua versione di Windows, hai avuto questa nuova politica fuori dalla scatola (Windows 8.1), o probabilmente già consegnato attraverso un aggiornamento (Windows 8, Windows 7, Windows Vista).
Siamo qui perché vogliamo usare IPv6; vogliamo che questo cambiamento venga annullato.
Come rimetterlo
Se si ottengono più indirizzi IP per un singolo host, la macchina deve decidere quale indirizzo utilizzare. Un esempio di classifica potrebbe essere:
- IPv6 loopback
- IPv6 nativo
- Indirizzi Unique-Local (ULA), ad esempio fdxx::
- Site-local, ad esempio fec0
- 6bone
- 6to4
- IPv4compat
- IPv4
- Teredo, ad esempio 2001
Sulla tua macchina Windows, questa classifica è chiamata prefix policy.
Prefix policy
Puoi vedere la prefix policy del tuo computer eseguendo:
>netsh int ipv6 show prefixpolicies
Ai vecchi tempi (originariamente definita da RFC 3484 ), la prefix policy era:
Precedence Prefix
---------- -------------
50 ::1/128 IPv6 loopback
40 ::/0 Native IPv6
40 fc00::/7 ULAs
40 fec0::/10 site-local
40 3ffe::/16 6bone
30 2002::/16 6to4
20 ::/96 IPv4compat
10 ::ffff:0:0/96 IPv4
5 2001::/32 Teredo
Quindi vedi che userebbe praticamente sempre IPv6 (yay!):
- IPv6 loopback
- Native IPv6, ULAs, site-local, 6one
- 6to4
- IPv4compat
- IPv4
- Teredo
Se hai fatto lo sforzo di implementare IPv6: ha appena funzionato.
Nuova politica dei prefissi
Nel 2012 è stato definito un nuovo ordine di preferenza da RFC6724 . Oggi la politica dei prefissi assicura praticamente che non userete mai IPv6:
Precedence Prefix
---------- -------------
50 ::1/128
40 ::/0 Native IPv6
35 ::ffff:0:0/96 IPv4
30 2002::/16
5 2001::/32
3 fc00::/7 ULAs
1 fec0::/10 site-local
1 3ffe::/16
1 ::/96
Vedrete che non sarete mai in grado di usare il vostro indirizzo locale unico, o indirizzo locale del sito; è perennemente rotto:
- IPv6 loopback
- IPv6 nativo
- IPv4
- 6to4
- Teredo
- ULA
- Sito-locale
- 6bone
- IPv6compat
Come risolvere il problema?
Quello che vogliamo è sistemare IPv6 in modo che gli ULA siano preferiti a IPv4. Come minimo vogliamo spingere l'uso degli ULA (fc00::/7
) al di sopra di quello di IPv4:
Precedence Prefix
---------- -------------
50 ::1/128
40 ::/0 Native IPv6
37 fc00::/7 ULAs <---------- from 3 up to 37
35 ::ffff:0:0/96 IPv4
30 2002::/16
5 2001::/32
1 fec0::/10 site-local
1 3ffe::/16
1 ::/96
Il che è fatto da:
>netsh interface ipv6 set prefixpolicy prefix=fc00::/7 precedence=37 label=13 store=active
Che lo terrà attivo solo fino al prossimo riavvio. Per rendere il cambiamento permanente:
>netsh interface ipv6 set prefixpolicy fc00::/7 37 13
Se io:
- ho fatto lo sforzo di generare un prefisso globale ULA per il mio /48
- e scegliere un id di sottorete per il mio /64
- e distribuire gli ULA ad ogni macchina nell'impresa
- e aggiornare i server DNS per restituire indirizzi IPv6 ULA in aggiunta agli indirizzi IPv4
il minimo che il computer potrebbe fare è avere la cortesia di usare l'indirizzo.
Chiacchiere Bonus
La gamma fc00::/7
è divisa in due parti:
fd00::/8
- Prefisso GlobalID generato localmente
fc00::/8
- ??
Nessuno ha mai veramente deciso a cosa servisse fc
, e quindi se ne sta lì.
Gli indirizzi fd
sono definiti come:
fd
[40-bit random GlobalID]
[16-bit subnet]
[64-bits for host assignment]
a4d7f6dd66
Quindi se hai generato fda4:d7f5:dd66::
come tuo criptoghpcallly random 40-bit GlobalID, questo ti dà il tuo /48:
fda4:d7f5:dd66:face::
/48
face
/64 (nella sottorete fda4:d7f5:dd66:face::825
)
fdee:e004:2208::/48
come indirizzo IP dell'host
SixXS ha mantenuto un database pubblico di prefissi Unique Local Address GlobalID per ridurre la possibilità di collisioni, e. g.:
fdd4:43c8:ba34::/48
: Apple Inc - Leopard OSX
fdac:afbd:fea1::/48
: TekSavvy - Danny Murray
0x6&: IBM Rational Build Forge - Chris Fuller
Ma a causa del rallentamento dell'uso, e del dubbio valore in primo luogo, SixXS ha interrotto il servizio nel 2018.
Bonus Reading