Укороченная версия
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
Длинная версия
RFC6724 определил изменение в том, как адреса должны быть предпочтительными. С этим изменением IPv6 больше не является предпочтительным адресом почти во всех случаях :(
Этот вопрос, который был задан в июне 2012 года, был «исправлен» RFC с сентября 2012 года. В зависимости от версии Windows у вас либо была новая политика «из коробки» (Windows 8.1), либо, скорее всего, она уже была доставлена через обновление ( Windows 8, Windows 7, Windows Vista).
Мы здесь, потому что хотим использовать IPv6; мы хотим, чтобы это изменение было отменено.
Как положить обратно
Если вы получаете несколько IP-адресов для одного хоста, ваш компьютер должен решить, какой адрес он будет использовать. Пример рейтинга может быть:
- IPv6 loopback
- Родной IPv6
- Уникальные локальные адреса (ULA), например, fdxx ::
- Локальный сайт, например, fec0
- 6bone
- 6to4
- IPv4compat
- IPv4
- Teredo, например, 2001
На вашем компьютере с Windows этот рейтинг называется политикой префиксов .
Политика префиксов
Вы можете просмотреть политику префиксов вашего компьютера, выполнив:
>netsh int ipv6 show prefixpolicies
В прежние времена (первоначально определенные RFC 3484 ), политика префикса была:
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
Итак, вы видите, что он почти всегда будет использовать IPv6 (ууу!):
- IPv6 loopback
- Собственный IPv6, ULA, локальный сайт, 6one
- 6to4
- IPv4compat
- IPv4
- древоточец
Если вы приложили усилия для развертывания IPv6: это просто сработало.
Новая политика префиксов
В 2012 году новый порядок преференций был определен RFC6724 . В настоящее время политика префиксов в значительной степени гарантирует, что вы никогда не будете использовать 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
Вы увидите, что вы никогда не сможете использовать свои уникальные локальные адреса или локальный адрес сайта; это постоянно сломано:
- IPv6 loopback
- Родной IPv6
- IPv4
- 6to4
- древоточец
- ulaş
- сайт-местный
- 6bone
- IPv6compat
Как это исправить?
Мы хотим исправить IPv6 так, чтобы ULA были предпочтительнее IPv4. По крайней мере, мы хотим выдвинуть использование ULA ( fc00::/7
) выше, чем 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
Что сделано:
>netsh interface ipv6 set prefixpolicy prefix=fc00::/7 precedence=37 label=13 store=active
Это будет держать его активным только до следующей перезагрузки. Чтобы сделать изменение постоянным:
>netsh interface ipv6 set prefixpolicy fc00::/7 37 13
Если я:
- Мы попытались сгенерировать глобальный префикс ULA для моего / 48
- и выберите идентификатор подсети для моего / 64
- и развертывание ULA на каждой машине на предприятии
- и обновите DNS-серверы, чтобы они возвращали адреса ULA IPv6 в дополнение к адресам IPv4
самое малое, что может сделать компьютер, - это вежливое обращение с адресом.
Бонус Болтовня
fc00::/7
Диапазон разделен на две части:
fd00::/8
- Префикс GlobalID генерируется локально
fc00::/8
- ???
Никто так и не решил, fc
что это будет хорошо, и поэтому просто сидит там.
Эти fd
адреса определяются как:
fd
[40-bit random GlobalID]
[16-bit subnet]
[64-bits for host assignment]
Так что если вы сгенерировали a4d7f6dd66
как свой криптографически случайный 40-битный GlobalID , это даст вам / 48:
fda4:d7f5:dd66::
/ 48
fda4:d7f5:dd66:face::
/ 64 (в face
подсети)
fda4:d7f5:dd66:face::825
в качестве IP-адреса хоста
SixXS поддерживает общедоступную базу данных префиксов GlobalID уникального локального адреса, чтобы уменьшить вероятность коллизий, например:
fdee:e004:2208::/48
: Apple Inc - Leopard OSX
fdd4:43c8:ba34::/48
: TekSavvy - Дэнни Мюррей
fdac:afbd:fea1::/48
: IBM Rational Build Forge - Крис Фуллер
Но из-за замедления использования и, в первую очередь, сомнительной ценности, SixXS прекратил обслуживание в 2018 году.
Бонус Чтение
netsh interface ipv6 show prefixpolicy
. Я мог бы опубликовать более подробный ответ завтра.