Wersja krótka
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
Wersja długa
RFC6724 zdefiniowała zmianę w sposobie preferowania adresów. Z tą zmianą IPv6 nie jest już preferowanym adresem w prawie każdym przypadku :(
To pytanie, które zostało zadane w czerwcu 2012 zostało “naprawione” przez RFC z września 2012. W zależności od wersji systemu Windows, albo miałeś te nowe zasady po wyjęciu z pudełka (Windows 8.1), albo prawdopodobnie już dostarczone przez aktualizację (Windows 8, Windows 7, Windows Vista).
Jesteśmy tutaj, ponieważ chcemy używać IPv6; chcemy, aby ta zmiana została cofnięta.
Jak to cofnąć
Jeśli otrzymasz wiele adresów IP dla jednego hosta, twoja maszyna musi zdecydować, którego adresu będzie używać. Przykładowy ranking może wyglądać następująco:
- IPv6 loopback
- Native IPv6
- Unique-Local addresses (ULAs), np. fdxx::
- Site-local, np. fec0
- 6bone
- 6to4
- IPv4compat
- IPv4
- Teredo, np. 2001
Na komputerze z systemem Windows, ten ranking jest nazywany polityką prefiksów.
Polityka prefiksowa
Możesz zobaczyć politykę prefiksową swojego komputera uruchamiając:
>netsh int ipv6 show prefixpolicies
W dawnych czasach (pierwotnie zdefiniowanych przez RFC 3484 ), polityka prefiksowa była:
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
Więc widzisz, że to prawie zawsze używa IPv6 (yay!):
- IPv6 loopback
- Natywny IPv6, ULAs, site-local, 6one
- 6to4
- IPv4compat
- IPv4
- Teredo
Jeśli zadałeś sobie trud, aby wdrożyć IPv6: to po prostu zadziałało.
Nowa polityka prefiksowa
W 2012 roku nowy porządek preferencji został zdefiniowany przez RFC6724 . Obecnie polityka prefiksowa zapewnia, że nigdy nie użyjesz 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
Zobaczysz, że nigdy nie będziesz w stanie użyć swojego Unikalnego Adresu Lokalnego, lub adresu site-local; jest on wiecznie zepsuty:
- IPv6 loopback
- Natywny IPv6
- IPv4
- 6to4
- Teredo
- ULAs
- site-local
- 6bone
- IPv6compat
Jak to naprawić?
Chcemy naprawić IPv6 tak, aby ULA były preferowane w stosunku do IPv4. Przynajmniej chcemy przesunąć użycie ULA (fc00::/7
) ponad użycie 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
Co jest robione przez:
>netsh interface ipv6 set prefixpolicy prefix=fc00::/7 precedence=37 label=13 store=active
To sprawi, że będzie to aktywne tylko do następnego restartu. Aby zmiana była trwała:
>netsh interface ipv6 set prefixpolicy fc00::/7 37 13
Jeśli ja:
- zadałem sobie trud wygenerowania globalnego prefiksu ULA dla mojego /48
- i wybrałem id podsieci dla mojego /64
- i wdrożyłem ULA na każdej maszynie w przedsiębiorstwie
- i zaktualizowałem serwery DNS, aby zwracały adresy IPv6 ULA oprócz adresów IPv4
to przynajmniej komputer mógłby zrobić to, co do niego należy, to mieć zwykłą uprzejmość, aby użyć adresu.
Bonus Chatter
Zakres fc00::/7
jest podzielony na dwie części:
fd00::/8
- prefiks GlobalID generowany lokalnie
fc00::/8
- ????
Nikt nigdy tak naprawdę nie zdecydował, do czego fc
może się przydać, więc po prostu tam siedzi.
Adresy fd
są zdefiniowane jako:
fd
[40-bit random GlobalID]
[16-bit subnet]
Więc jeśli wygenerowałeś [64-bits for host assignment]
jako swój kryptoghpcallly losowy 40-bitowy GlobalID, to daje ci to twój /48:
a4d7f6dd66
/48
fda4:d7f5:dd66::
/64 (w podsieci fda4:d7f5:dd66:face::
)
face
jako adres IP hosta
SixXS utrzymywał publiczną bazę prefiksów Unique Local Address GlobalID w celu zmniejszenia szansy na kolizje, np. np.:
fda4:d7f5:dd66:face::825
: Apple Inc - Leopard OSX
fdee:e004:2208::/48
: TekSavvy - Danny Murray
fdd4:43c8:ba34::/48
: IBM Rational Build Forge - Chris Fuller
Ale ze względu na spowolnienie użycia, a także wątpliwą wartość w pierwszej kolejności, SixXS zaprzestał świadczenia usługi w 2018 roku.
Bonus Reading