я не претендую на полноту повествования. просто хочу подчеркнуть некоторые отличия
IPv6 от IPv4. считается что IPv6 это что-то сложное и непонятное, но для админа и пользователя он даже проще чем IPv4. кроме того IPv6 проще обрабатывать устройствам маршрутизации т.к. в IPv6 лаконичный заголовок фиксированной длины. IPv6 проще для домашнего роутера, который в принципе можно заменить офисным свичем, который вообще не надо настраивать.
при этом что можно отметить, что что количество пользователей
google на IPv6 приближается к 50%. надо отметить лидирующие позиции России по переходу на IPv6. телеком в России действительно развит хорошо. кроме того у меня на IPv6 до сих пор работает YouTube, а оператор связи у меня RTcom.
Адреса IPv6
записываются в шестнадцатеричном виде. адрес разбивается на 8 групп по 16 бит, каждая группа представляется четырьмя шестнадцатеричными цифрами, отделяются друг от друга знаком двоеточия.
пример полной записи адреса: 2001:0db8:11a3:09d7:1f34:8a2e:07a0:765d.
полная запись может быть сокращена. например 2001:0db8:0000:0000:0000:8a2e:0370:7334 нули вначале можно не писать. нулевые группы можно заменить на :: при всех этих упрощениях надо руководствовадся одним единственным правилом "однозначность".
0001 = 1
1000 != 1
2001 != 21
и если употребите :: два раза непонятно какой длины какая последовательность нулей. пример равнозначен адресу 2001:db8::8a2e:370:7334.
можно придумать боле понятное, но менее универсальное правило. в группах можно отбрасывать сплошные только нули слева, а двойное двоеточие может заменять только нулевые группы и употребить его можно только один раз:
000a =a
0010 = 10
005b= 5b
0c07= c07
2001:00d0:0000:0000:0000:90a5:0000:abcd = 2001:d0::90a5:0:abcd
в десятичной системе все тоже самое 000050786 = 50786
некоторые админы правда жалуются, что дескать длинный 128-битный адрес IPv6 сложно запомнить. но на в самом деле такие заявы дают повод объявить админу о не полном служебном соответствии. адрес забивается в DNS и забывается. ну да придется строить сети чуть-чуть правильней - вот такая вот засада.
простой пример.
вы пришли куда-то с ноутбуком вам дали в руки шланг с IPv6. вы просто воткнули его в ноут и... оказались в интернете, даже без динамически-автоматической настройки хоста (DHCP). вот такая вот магия. как такое возможно? первое, что надо понимать что в IPv6 очень много разных типов адресов. рассмотрим основные т.е. не все.
публичный IP адрес
юникаст (Global unicast) - это аналог публичных адресов в IPv4 это в общем-то обычный IP адрес, который можно использовать в интернете. ничем примечательным не выделяется. кроме своего размера - 128 бит в IPv4 адрес 32-битный. т.е. адресов в v6 значительно больше.
IP адрес уникальный на линьке
это адрес генерируется на основании
МАС адреса и начинается на FE80. механизм формирования адреса называется EUI-64. адрес уникальный в пределах L2 сегмента, в качестве которого как правило выступает сеть
Ethernet.
приватный IP адрес
это аналог 10/8 172.16/12 192.168/16 адреса начинаются на FD00::/7 - (зарезервирован FC00::/7) адреса предназначенные для построения приватных сетей. обращаю внимание на то, что их невозможно
NATтить в публичные адреса. в классическом понимании слова, NAT в IPv6 просто нет. есть некоторые специальные случаи о которых я рассказывать не буду.
кстати говоря FD00::/7 можно записать как FD0::/7 ? а как FD::/7 ?
многоадресный (мультикаст) адрес
специальный диапазон FF00::/8. То есть, все адреса, начинающиеся с FF - мультикастовые. в IPv6 используются мультикастовые адреса двух типов:
- назначенные (Assigned multicast) - специальные адреса, назначение которых предопределено. отправляемый на такой адрес пакет будет получен всеми устройствами, входящими в группу. это аналог 224/4 в IPv4.
- запрошенные (Solicited multicast) - остальные адреса, которые устройства могут использовать устройством для решения своих шкурных вопросов.
назначенные адреса зарезервированы для определённых групп устройств. Отправляемый на такой адрес пакет будет получен всеми устройствами, входящими в группу.
запрошенные адреса автоматически появляются, когда на некотором интерфейсе появляется обычный адрес. такие мультикастовые используются в ситуации, когда некоторое устройство хочет узнать MAC-адрес своего соседа.
сети IPv6
сети в IPv6 значат не то что в IPv4. они предназначены для обозначения группы адресов, а не для экономии адресного пространства. т.е. нельзя сделать сеть из 4 адресов (правильнее сказать 2) как в IPv4. минимальная подсеть в IPv6 /64 (это ну очень много адресов).
кто тут скажет: "стой как же так - такая большая подсеть и нет NAT что клиенту выдавать /64?" но все проще: каждое устройство клиента получает 1 адрес из подсети к которой клиент подключается. например у клиента 10 устройств. 10 IPv6 адресов устройства клиента получили.
адреса можно кстати по прежнему назначать с помощью DHCP, но я не буду рассматривать этот случай. сеть провайдера с IPv6
я не так давно уже рассматривал.
разрешение адресов.
вторым сюрпризом будет то что в IPv6 нет прямого аналога
ARP. вместо этого в IPv6 есть протокол обнаружения соседей (Neighbor Discovery Protocol, NDP) который служит для того, чтобы устройства могли обнаруживать и общаться с соседними устройствами на одном канале т.е. в одном L2 сегменте.
еще сюрпризом будет что в IPv6 нет бродкаста. вместо этого используют адреса типа "все узлы - FF02::1", "все маршрутизаторы - FF02::2." как вы наверное уже догадались по FF это мультикаст адреса. вы скажете это те же яйца вид с боку? ну в общем-тот да, правда мозгов немного побольше, о чем скажу ниже, но так оно и есть. в FF02::1 входят все устройства в локальной сети. таким образом адрес ведёт себя как широковещательный адрес в IPv4. поэтому его использование не рекомендуется.
некоторые функции NDP:
- разрешение адреса. Когда устройство хочет общаться с другим устройством через свой IPv6-адрес, оно отправляет сообщение Neighbor Solicitation для разрешения соответствующего адреса канального уровня (MAC). вы будете смеяться, но Neighbor Solicitation не использует широковещание как ARP, а использует мультикаст. я не буду на этом подробно останавливаться, факт тот, что этот адрес можно вычислить. в результате только удаленный хост получит запрос соседа. это намного эффективнее, чем широковещательная передача, которую получают все.
- обнаружение маршрутизатора. NDP обеспечивает автоматическое обнаружение маршрутизаторов на канале. Маршрутизаторы периодически отправляют сообщения Router Advertisement, чтобы предоставить хостам важную сетевую информацию, включая префиксы, информацию о шлюзе по умолчанию. узел также может отправлять Router Solicitation (RS) работает это следующим образом: сообщение RS отправляется на многоадресный (мукльтикаст) адрес "все маршрутизаторы"
- автоматическая настройка адреса. NDP позволяет хостам автоматически настраивать свои IPv6-адреса. Когда хост подключается к сети, он использует сообщения Router Advertisement, чтобы определить префиксы сети и сгенерировать уникальные IPv6-адреса.
NDP работает на сетевом уровне и использует сообщения ICMPv6
получение IP адреса.
адрес по прежнему можно настроить в ручную или с помощью
DHCP и такой способ, например в сети провайдера, предпочтительнее т.к. даёт больше контроля, но мы рассмотрим встроенный механизм
SLAAC.
- клиент отправляет сообщение Router Solicitation (RS), чтобы определить, есть ли какие-либо маршрутизаторы, подключённые к локальному линку.
- затем он ждёт, пока маршрутизатор отправит Router Advertisement (RA), которое идентифицирует префикс, используемый маршрутизатором (шлюз по умолчанию), подключённом к той же сети, в которой находится клиент.
- после этого клиент использует эту информацию о префиксе для создания своего собственного IPv6-адреса в той же сети, что и интерфейс маршрутизатора, который сгенерировал RA.
при этом существует механизм DAD (Duplicated Address Detection) позволяющий решать конфликты адресов.
наш пример чуть подробнее
- вы включили устройство. оно автоматически сгенерировало уникальный адрес на линке на основании своего MAC.
- используя уникальный адрес на линьке и протокол NDP, устройство сконфигурировало свой публичный IPv6 адрес, и узнало МАС адрес маршрутизатора. теперь у устройства два IPv6 адреса.
- есть механизмы получения DNS, но я их касаться не буду.
- ну и собственно все - вы в итернетах.