IPv6
Интернет превратился в сложную сеть взаимосвязанных пользователей, устройств, платформ и многих других сервисов, которыми люди пользуются каждый день. Каждое устройство, которое подключается к Интернету, имеет свой уникальный идентификатор, известный как IP-адрес. Текущая отраслевая норма для IP-адресов известна как IPv4, который в настоящее время постепенно заменяется IPv6.
Что такое IPv6-адрес?
IPv6 или Internet Protocol Version 6 — это обновление IPv4. IP версии 6 — это протокол сетевого уровня, который позволяет передавать пакеты данных по сети. Это включает отправку и получение данных в форме пакетов между 2 узлами в сети. Инженерный совет Интернета (IETF) представила спецификацию RFC 2460 для IPv6 в 1998 году.
IPv6 был введен на замену IPv4 и часто упоминается как «Интернет следующего поколения» из-за его расширенных возможностей и роста в последние годы.
Протокол IPv4, предыдущий стандарт, состоит из четырех числовых строк, каждая из которых содержит три цифры, разделенные точками. Стандартный адрес IPv4 32-битный и выглядит примерно как 255.255.255.255, что позволяет использовать 4,2 миллиарда уникальных IP-адресов.
Поскольку количество беспроводных и подключенных к сети устройств быстро растет с каждым днем, ожидалось, что к 2010 году Интернет исчерпает все уникальные адреса IPv4. Чтобы предложить новый стандарт протокола сетевого уровня, который позволяет создавать больше уникальных IP-адресов, был стандартизован IPv6.
Протокол IPv6, который является 128-битным, состоит из восьми пронумерованных строк, каждая из которых содержит четыре символа (буквенно-цифровых), разделенных двоеточием. Это дает нам невероятное количество уникальных IP-адресов; 340 282 366 920 938 463 463 374 607 431 768 211 456 если быть точным. Это также гарантирует, что у нас не закончатся уникальные IP-адреса для назначения новым устройствам в ближайшее время.
Вам должно быть интересно, если IPv6 является лучшей и обновленной версией IPv4, то почему он еще не принят в полной мере.
Одна из основных причин этого — преобразование сетевых адресов (NAT), при котором частные IP-адреса преобразуются в общедоступные IP-адреса.
Такая корпоративная машина с частным IP-адресом может отправлять и получать пакеты с машины за пределами частной сети с общедоступным IP-адресом.
Без NAT крупные компании с тысячами компьютеров будут использовать большое количество общедоступных адресов IPv4, если они хотят общаться с внешним миром. Однако эти IPv4-адреса ограничены и почти исчерпаны до того момента, когда их нужно назначить.
NAT помогает решить проблему. С помощью NAT тысячи компьютеров с частными адресами могут быть представлены в общедоступном Интернете через компьютеры NAT, такие как межсетевые экраны или маршрутизаторы.
NAT работает так: когда компьютер компании с частным IP-адресом отправляет пакеты на общедоступный IP-адрес за пределами корпоративной сети, он сначала входит в NAT. Затем он регистрирует адреса источника и назначения пакетов в таблице преобразования.
NAT изменяет адрес источника пакета на публичный адрес устройства NAT и отправляет его внешнему адресату.
Когда пакет отвечает, NAT преобразует адрес назначения в частный IP-адрес компьютера, на котором начинается связь. Один общедоступный IP-адрес может представлять компьютер с несколькими частными адресами.
Ниже приведены преимущества IPv6:
- Поддерживает длинные 128-битные (16 байт) адреса
- Использует связанный локальный диапазон многоадресных адресов с полным узлом
- Не требует ручной настройки или DHCP
- Назначение имя хоста IPv6-адресу, зарегистрировав ресурсы адреса хоста (AAAA) в DNS.
- Использование записи ресурсов указателя в IPV6. Домен ARPA DNS назначает IPv6-адреса имени хоста.
- Поддерживает размер пакета 128 байт (без фрагментации).
- Использует поле метки потока, чтобы определить последовательность пакетов, обрабатываемых функцией качества обслуживания (QoS) маршрутизатора
- Использует запросы маршрутизатора протокола управляющих сообщений Интернета версии 6 (ICMPv6) и сообщения с объявлением маршрутизатора, чтобы определить IP-адрес наилучшего шлюза по умолчанию.
- Преобразовывает IP-адрес в адрес канального уровня с помощью сообщения многоадресного запроса соседа.
- Управляет членством в локальной подсети с помощью сообщений об обнаружении многоадресного прослушивателя (MLD). Адрес может представлять компьютер с несколькими частными адресами.
Недостатки
Контрольные суммы не включаются в заголовок. IPv6 больше не имеет контрольной суммы заголовка, которая защищает заголовок IP. Это означает, что пакеты могут передаваться неправильно, если заголовок пакета поврежден из-за ошибки передачи.
- Компьютеры IPv4 и IPv6 не могут напрямую связываться друг с другом.
- Процесс переключения с IPv4 на IPv6 медленный и утомительный.
- Понимание самой подсети IPv6 может быть трудным.
- Поскольку заголовки в IPv6 имеют фиксированную длину, параметры не могут быть помечены в заголовках IP, как в IPv4.
- IPSec требуется
- Использует поле метки потока, чтобы определить последовательность пакетов, которые маршрутизатор выполняет обработку QoS.
- Разрешает хостам отправлять фрагментированные пакеты, но не разрешает маршрутизаторам.
Безопасность IPv6
IPv6 может использовать сквозное шифрование (E2EE). В результате широкое распространение IPv6 затруднит атаки типа «man-in-the-middle». По словам компании Sohpos, занимающейся кибербезопасностью, поддержка IPv6 протокола Secure Neighbor Discovery (Send) затрудняет отравление протокола разрешения адресов (ARP) и другие атаки на основе именования. Используя IPv4, злоумышленник может сделать это довольно легко.
IPv6 затрудняет злоумышленнику перенаправление трафика и манипулирование разговорами между двумя законными хостами.
Повышенная безопасность полностью зависит от правильного проектирования и реализации, а более сложная и гибкая инфраструктура IPv6 выполняет больше работы. Например, если сервер включен по умолчанию, но брандмауэр не включен, сеть более уязвима для атак.
Запуск сети, реализующей два Интернет-протокола (IPv4 и IPv6), обычно означает, что IPv6 должен реплицировать конфигурацию сети, то есть сеть должна быть настроена до того, как IPv6 сможет работать как IPv4.
Эта сетевая конфигурация включает не только включение маршрутизации IPv6 и включение информации IPv6 в систему доменных имен, но также реализацию политик сетевой безопасности посредством фильтрации пакетов.
Введение: IPv6 — это просто
В этой статье мы рассмотрим IPv6 (Internet Protocol version 6), причины, по которым он нам нужен, а также следующий аспект: различия с IPv4. Пока существует Интернет, используется протокол IPv4 для адресации и маршрутизации. Однако проблема с IPv4 заключается в том, что у нас закончились адреса.
Так что же случилось с IPv4? Что же пошло не так? У нас есть 32 бита, которые дают нам 4 294 467 295 IP-адресов. Когда появился Интернет, мы получили сети класса А, В или С. Класс С дает нам блок из 256 IP-адресов, класс B — это 65.535 IP-адресов, а класс A даже 16 777 216 IP-адресов. Крупные компании, такие как Apple, Microsoft, IBM и др. имеют одну или несколько сетей класса А. Но действительно ли им нужно 16 миллионов IP-адресов? Большинство из этих IP-адресов не были использованы.
Поэтому мы начали использовать VLSM, чтобы использовать любую маску подсети, которая нам нравится, и создавать более мелкие подсети, а не только сети класса A, B или C. У нас также имеется NAT и PAT, следовательно, мы имеем много частных IP-адресов за одним публичным IP-адресом.
Тем не менее интернет вырос так, как никто не ожидал 20 лет назад. Несмотря на все наши крутые трюки, такие как VLSM и NAT/PAT, нам нужно было больше IP-адресов, и поэтому родился IPv6.
А что случилось с IPv5? Хороший вопрос . IP-версия 5 была использована для экспериментального проекта под названием «Протокол интернет-потока». Он определен в RFC, если вас интересуют исторические причины: http://www.faqs.org/rfcs/rfc1819.html
IPv6 имеет 128-битные адреса по сравнению с нашими 32-битными IPv4-адресами. Имейте в виду, что каждый дополнительный бит удваивает количество IP-адресов. Таким образом мы переходим от 4 миллиардов к 8 миллиардам, 16,32,64 и т. д. Продолжайте удвоение, пока не достигнете 128-битного уровня. Просто вы увидите, сколько IPv6-адресов это даст нам:
- 340,282,366,920,938,463,463,374,607,431,768,211,456;
Можем ли мы вообще произнести это? Давайте попробуем вот это:
- 340 — ундециллионов;
- 282 — дециллионов;
- 366 — нониллионов;
- 920 — октиллионов;
- 938 — септиллионов;
- 463 — секстиллионов;
- 463 — квинтильонов;
- 374 — квадрильонов;
- 607 — триллионов;
- 431 — биллионов;
- 768 — миллионов;
- 211 — тысяч;
- 456.
Это умопомрачительно. это дает нам достаточное количество IP-адресов для сетей на Земле, Луне, Марсе и остальной Вселенной. IPv6-адреса записываются в шестнадцатеричном формате.
IPv4 и IPv6 несовместимы друг с другом, поэтому многие протоколы были обновлены или заменены для работы с IPv6, вот некоторые примеры:
- OSPF был обновлен с версии 2 (IPv4) до версии 3 (IPv6);
- ICMP был обновлен до версии ICMP 6;
- ARP был заменен на NDP (Neighborhood Discovery Protocol).
Заголовок пакета IPv6 содержит адреса источника и назначения, но по сравнению с IPv4 он стал намного проще:
Вместо того чтобы уже добавлять все поля в заголовок, заголовок IPv6 использует «следующий заголовок», который ссылается на необязательные заголовки. Поскольку заголовок намного проще, маршрутизаторам придется выполнять меньше работы.
А как насчет маршрутизации? Есть ли разница между IPv4 и IPv6? Давайте рассмотрим варианты маршрутизации:
Вы все еще можете использовать статическую маршрутизацию, как и в IPv4, ничего нового здесь нет. RIP был обновлен и теперь называется RIPng или RIP Next Generation.
OSPF для IPv4 на самом деле является версией 2, а для IPv6 у нас есть версия 3. Это отдельный протокол, он работает только на IPv6. Есть только незначительные изменения, внесенные в OSPFv3.
BGP (Border Gateway Protocol) — это протокол маршрутизации, который объединяет Интернет вместе.MP-BGP расшифровывается как Multi-Protocol BGP, и он может маршрутизировать IPv6. EIGRP также поддерживает IPv6.
Просто имейте в виду, что OSPF и EIGRP поддерживают IPv6, но это отдельные протоколы. Если у вас есть сеть с IPv4 и IPv6, вы будете запускать протокол маршрутизации для IPv4 и еще один для IPv6. Запуск IPv4 и IPv6 одновременно называется двойным стеком.
Поскольку эти два протокола несовместимы, в будущем будет происходить переход с IPv4 на IPv6. Это означает, что вы будете запускать оба протокола в своей сети и, возможно, однажды вы сможете отключить IPv4, так как весь интернет будет настроен на IPv6.
Давайте взглянем на формат IPv6-адреса: 2041:0000:140F:0000:0000:0000:875B:131B
Во-первых, он шестнадцатеричный и гораздо длиннее, чем IPv4-адрес. Существует восемь частей, состоящих из 4 шестнадцатеричных цифр каждая, поэтому 128-битный адрес может быть представлен 32-битными шестнадцатеричными символами. Если вы забыли, как работает шестнадцатеричный код, взгляните на таблицу ниже:
В шестнадцатеричной системе счисления мы считаем от 0 до F точно так же, как мы считали бы от 0 до 15 в десятичной системе счисления:
- A = 10;
- B = 11;
- C = 12;
- D = 13;
- E = 14;
- F = 15.
Использование шестнадцатеричного кода помогает сделать наши адреса короче, но ввод адреса IPv6 — это все еще большая работа. Представьте себе, что вы звоните другу и спрашиваете его, может ли он пинговать IPv6-адрес 2041:0000:140F:0000:0000:0000:875B:131B, чтобы узнать, может ли он достучаться до своего шлюза по умолчанию.
Чтобы облегчить нам работу с такими адресами, можно сделать IPv6-адреса короче. Вот пример:
Оригинальный: 2041: 0000:140F:0000:0000:0000:875B:131B
Сокращенный: 2041: 0000:140F:: 875B:131B
Если есть строка нулей, вы можете удалить их, заменив их двойным двоеточием (::). В приведенном выше IPv6-адресе удалены нули, сделав адрес немного короче. Вы можете сделать это только один раз.
Мы можем сделать этот IPv6 адрес еще короче используя другой трюк:
- Сокращенный: 2041: 0000:140F:: 875B:131B;
- Еще короче: 2041:0:140F:: 875B:131B
Если у вас есть блок с 4 нулями, вы можете удалить их и оставить там только один ноль.
Мы также можем удалить все впередистоящие нули:
- Оригинальный: 2001:0001:0002:0003:0004:0005:0006:0007;
- Сокращенный: 2001:1:2:3:4:5:6:7
Подытожим небольшие правила:
- Строку нулей можно удалить, оставив только двоеточие (::). Вы можете сделать только это однажды.;
- 4 нуля можно удалить, оставив только один ноль. Впередиидущие нули могут быть удалены в пределах одного блока.;
- Вы не можете удалить все нули, иначе ваше устройство, работающее с IPv6 не поймет, где заполнить нули, чтобы снова сделать его 128-битным.;
Вычисление префикса IPV6 мы пропустим, так как ресурсов, рассказывающих об этом в сети Интернет, специальных книгах полно. Нет смысла повторяться.
Потребуется некоторое время, чтобы привыкнуть к IPv6-адресации и поиску префиксов, но чем больше вы этим занимаетесь, тем дальше становиться проще. В оставшейся части этой статьи мы еще немного поговорим о различных типах адресации IPv6. IPv4-адреса организованы с помощью «системы классов», где класс A, B и C предназначены для одноадресных IP-адресов, а класс D-для многоадресной передачи. Большинство IP-адресов в этих классах являются публичными IP-адресами, а некоторые-частными IP-адресами, предназначенными для наших внутренних сетей. Нет такой вещи, как классы для IPv6, но IANA действительно зарезервировал определенные диапазоны IPv6 для конкретных целей. У нас также есть частные и публичные IPv6-адреса. Первоначально идея IPv4 заключалась в том, что каждый хост, подключенный к Интернету, будет иметь общедоступный IP-адрес. Каждая компания получит сеть класса А, В или С, и сетевые инженеры в компании будут дополнительно подсоединять ее так, чтобы каждый хост и сетевое устройство имели общедоступный IP-адрес.
Проблема, однако, заключается в том, что адресное пространство IPv4 было слишком маленьким, и выдавать полные сети A, B или C было не очень разумно. Даже если вам требуется только небольшое количество IP-адресов, вы все равно получите сеть класса C, которая дает вам 254 пригодных для использования IP-адреса. Компания, которой требуется 2.000 IP-адресов, получит класс B, который дает вам более 65.000 IP-адресов.
Поскольку у нас заканчивались IP-адреса, мы начали использовать такие вещи, как VLSM (избавляясь от идеи класса A, B, C) и настраивали частные IP-адреса в наших локальных сетях, а вместо этого использовали NAT/PAT. Протокол IPv6 предлагает два варианта для одноадресной рассылки:
Раньше существовал третий диапазон адресов, называемый «site local«, который начинался с FEC0:: / 10. Этот диапазон изначально предназначался для использования во внутренних сетях, но был удален из стандарта IPv6.
Global Unicast передачи IPv6 похожи на публичные IPv4-адреса. Каждая компания, которая хочет подключиться к интернету с помощью IPv6, получит блок IPv6-адресов, которые они могут дополнительно разделить на более мелкие префиксы, чтобы все их устройства имели уникальный IPv6-адрес. Зарезервированный блок называется префиксом глобальной маршрутизации.
Поскольку адресное пространство IPv6 настолько велико, каждый может получить префикс глобальной маршрутизации. Давайте посмотрим, как назначаются префиксы IPv6-адресов. Допустим, компания получает префикс 2001:828:105:45::/64. Как они его получили?
Мы пройдемся по этой картине сверху вниз:
- IANA отвечает за распределение всех префиксов IPv6. Они будут назначать реестрам различные блоки. ARIN — для Северной Америки, RIPE -для Европы, Ближнего Востока и Центральной Азии. Всего таких реестров насчитывается 5. IANA присваивает 2001: 800:: /23 RIPE и 2001: 0400::/23 ARIN (и многие другие префиксы).;
- ISP, который попадает под реестр RIPE, запрашивает блок пространства IPv6. Они получают от них 2001: 0828:: / 32, которые в дальнейшем могут использовать для клиентов.;
- ISP дополнительно подсоединит свое адресное пространство 2001:0828::/32 для своих пользователей. В этом примере клиент получает префикс 2001:828:105::/48.;
IANA зарезервировала определенные диапазоны адресов IPv6 для различных целей, точно так же, как это было сделано для IPv4. Первоначально они зарезервировали IPv6-адреса, которые с шестнадцатеричными 2 или 3 являются global unicast адресами. Это можно записать как 2000:: / 3. В настоящее время они используют все для global unicast рассылки, которая не зарезервирована для других целей.
Некоторые из зарезервированных префиксов являются:
- FD: Unique Local;
- FF: Multicast;
- FE80: Link-Local.
Обсудим префиксы local и link-local
В моем примере клиент получил 2001: 828:105:: / 48 от провайдера, но прежде чем я смогу что-либо сделать с этим префиксом, мне придется разбить на подсети его для различных VLAN и point-to-point соединений, которые у меня могут быть. Подсети для IPv6 — это примерно то же самое, что и для IPv4, но математика в большинстве случаев проще. Поскольку адресное пространство настолько велико, почти все используют префикс /64 для подсетей. Нет смысла использовать меньшие подсети.
При использовании IPv4 у нас была часть «сеть» и «хост», а класс A, B или C определяет, сколько битов мы используем для сетевой части:
Когда мы используем подсети в IPv4 мы берем дополнительные биты от части хоста для создания большего количества подсетей:
И, конечно, в результате у нас будет меньше хостов на подсеть. Подсети для IPv6 используют аналогичную структуру, которая выглядит следующим образом:
Префикс global routing был назначен вам провайдером и в моем примере клиент получил его 2001:828:105::/48. Последние 64 бита называются идентификатором интерфейса, и это эквивалентно части хоста в IPv4.
Это оставляет нас с 16 битами в середине, которые я могу использовать для создания подсетей. Если я хочу, я могу взять еще несколько битов из идентификатора интерфейса, чтобы создать еще больше подсетей, но в этом нет необходимости.
Используя 16 бит, мы можем создать 65.536 подсетей . более чем достаточно для большинства из нас. И с 64 битами для идентификатора интерфейса на подсеть, мы можем иметь восемнадцать квинтиллионов, четыреста сорок шесть квадриллионов, семьсот сорок четыре триллиона, семьдесят четыре миллиарда, семьсот девять миллионов, пятьсот пятьдесят одну тысячу, шестьсот с чем-то хостов на подсеть. Этого должно быть более чем достаточно!
Использование 64-битного идентификатора интерфейса также очень удобно, потому что он сокращает ваш IPv6-адрес ровно наполовину!
Допустим, наш клиент с префиксом 2001: 828: 105:: / 48 хочет создать несколько подсетей для своей внутренней сети. Какие адреса мы можем использовать?
16 бит дает нам 4 шестнадцатеричных символа. Таким образом, все возможные комбинации, которые мы можем сделать с этими 4 символами, являются нашими возможными подсетями. Все, что находится между 0000 и FFFF, является допустимыми подсетями:
- 2001:828:105:0000::/64;
- 2001:828:105:0001::/64;
- 2001:828:105:0002::/64;
- 2001:828:105:0003::/64;
- 2001:828:105:0004::/64;
- 2001:828:105:0005::/64;
- 2001:828:105:0006::/64;
- 2001:828:105:0007::/64;
- 2001:828:105:0008::/64;
- 2001:828:105:0009::/64;
- 2001:828:105:000A::/64;
- 2001:828:105:000B::/64;
- 2001:828:105:000C::/64;
- 2001:828:105:000D::/64;
- 2001:828:105:000E::/64;
- 2001:828:105:000F::/64;
- 2001:828:105:0010::/64;
- 2001:828:105:0011::/64;
- 2001:828:105:0012::/64;
- 2001:828:105:0013::/64;
- 2001:828:105:0014::/64;
- И так далее.
Всего существует 65 535 возможных подсетей, поэтому, к сожалению, я не могу добавить их все в статью. теперь мы можем назначить эти префиксы различным соединениям типа point-to-point, VLAN и т. д.
Что такое протокол IPv6 и как он работает
IPv6 представляет собой новую версию протокола IP (Internet Protocol), протокола сетевого уровня в стеке TCP/IP. IPv6 по сути является преемником четвёртой версии протокола IP, и призван прийти ему на смену по весьма банальной причине – адреса протокола IPv4 стремительно заканчиваются, и очень скоро свободных адресов не останется совсем. Так, что же такое протокол IPv6, как он работает и чем он отличается от протокола версии номер четыре? Попробуем разобраться. Поехали!
Зачем он вообще понадобился?
Итак, как мы уже сказали в самом начале, пул адресов IPv4 – близок к исчерпанию. Математика здесь очень простая: так как длина IP-адреса в четвёртой версии составляет 4 байта (32 бита), то общее количество уникальных адресов IPv4 равняется 2 32 , а это – 4 294 967 296. При этом, население нашей планеты на данный момент составляет около восьми миллиардов. Теперь представьте, что будет, если каждый второй на Земле займёт по одному IP-адресу (смартфон, планшет, ноутбук и т.п.). А если не по одному? А ведь ещё огромное количество адресов заняты серверами, маршрутизаторами, интернет-ресурсами и т.д.
В далёком 1981-ом, когда был описан протокол IPv4, число устройств в почти 4,3 миллиона единиц, наверное, не казалось таким уж легко достижимым. Но, уже меньше чем через десять лет после этого, проблема сохранения запаса адресов обрела свою актуальность. Были разработаны технологии, позволяющие замедлить темпы расходования уникальных адресов, типа NAT или CIDR, но, несмотря на это, недостаточность таких мер становилась всё более очевидной. Для того, чтобы предотвратить исчерпание пула адресов, нужны были более кардинальные изменения.
В 1992 году возникло несколько предложений по решению проблемы исчерпания пула IP-адресов, и Инженерным Советом Интернета (IETF) был объявлен конкурс. Цель конкурса – разработка интернет-протокола следующего поколения. В результате чего, в конце 1995 года произошла регистрация первого рабочего предложения RFC 1883 с описанием интернет-протокола версии 6 (номер 5 ранее был присвоен протоколу, разработка которого носила экспериментальный характер).
Создание IPv6 послужило решением, которое должно отложить проблему нехватки адресов на значительно более далёкую перспективу. Всё дело в том, что, в отличие от протокола четвёртой версии, длина адреса IPv6 составляет 128 бит. А это значит, что использование интернет-протокола шестой версии обеспечивает существование уникальных адресов в количестве 340 282 366 920 938 463 463 374 607 431 768 211 456 штук. Проще говоря, это – чуть больше, чем 3.4х10 38 .
Как выглядит IPv6
Итак, длина адреса IPv6 – 128 бит. Запись такого адреса представляет собой восемь групп, каждая из которых состоит из четырёх цифр в шестнадцатеричном формате. Такие шестнадцатеричные группы (гекстеты) разделяются друг от друга при помощи двоеточия. Пример написание адреса IPv6 выглядит так:
2001:0db8:abf2:29ea:5298:ad71:2ca0:4ff1
В написании IP-адреса шестой версии существуют несколько общепринятых правил:
- Во-первых, в текстовом представлении адреса договорились опускать начальные нули. То есть, группу, которая выглядит 04fd , принято записывать как 4fd , а группу 0003 – как 3 . Например, адрес
2001:0db8:0000:42e9:000f:c360:008a:0b00
при применении данного правила будет выглядеть как
2001:db8:0:42e9:f:c360:8a:b00
- Во-вторых, двойным двоеточием ( :: ) принять заменять одну или несколько идущих подряд групп, содержащих одни нули. Например,
2001:0db8:0000:42e9:000f:c360:008a:0b00
можно записать как
2001:db8::42e9:f:c360:8a:b00
или, написание адреса
2001:0db8:0000:0000:0000:c360:008a:0b00
можно сократить до
2001:db8::c360:8a:b00
Второе правило сокращения можно использовать в адресе только один раз, иначе возникнет неоднозначность в его написании.
Ну и плюс к этому, в текстовом представлении IPv6 общепринято использовать строчные латинские символы, а не заглавные.
В браузере при использовании IPv6 в URL необходимо помещать адрес в квадратные скобки, например:
https://[2001:db8::42e9:f:c360:8a:b00]
А при необходимости указать номер порта, его ставят после квадратных скобок через двоеточие:
https://[2001:db8::42e9:f:c360:8a:b00]:443
Пакет IPv6
Пакеты, поддерживающие IPv6, состоят из данных, которые нужны для доставки пакета, а также, информации, которая пересылается непосредственно адресату. По сравнению с IP-протоколом четвёртой версии в формат пакета IPv6 были внесены определённые изменения. В связи с тем, что размер IPv6-адреса вырос с 32 бит до 128, также изменился и размер заголовка пакета – с 20 байт он увеличился до 40 байт. При этом, структура заголовка стала проще: длина адреса увеличилась в четыре раза, а длина заголовка – всего в два. Необходимая для маршрутизации информация – находится в фиксированном заголовке.
Фиксированный заголовок состоит из следующих полей:
- Версия – в данной версии протокола значение должно равняться 0110 в битах (6 – в десятичной системе). Длина поля, как вы понимаете, составляет 4 бита.
- Класс трафика – приоритет пакета. Длина поля – 8 бит, старшие 6 их которых классифицируют пакет, а ещё два бита используются для контроля перегрузки (8 бит).
- Метка потока – используется для передачи устройствам маршрутизации информации о последовательности пакетов в данном потоке, которые должны подвергаться определённой обработке (20 бит).
- Длина полезной нагрузки – определяет размер пакета в его полезной нагрузке (16 бит).
- Следующий заголовок – указывает тип расширенного заголовка, идущего следующим (8 бит).
- Предельное число шагов – аналог TTL в протоколе четвёртой версии (8 бит).
- Оставшиеся два поля – адреса отправителя пакета и его получателя. Длина каждого из этих полей – 128 бит.
Также, протокол IPv6 использует информацию, которая помещается между фиксированным заголовком и заголовком более высокого уровня в форме расширенных заголовков. Такая информация является дополнительной и используется не всегда. Расширенные заголовки обрабатываются конечным устройством, кроме заголовка Hop-By-Hop Options. Заголовок Hop-By-Hop Options обрабатывается каждым промежуточным узлом, в том числе отправителем и получателем пакета.
Наименование расширенного заголовка | Тип | Описание |
Hop-by-Hop Options | 0 | Параметры, считываемые всеми устройствами при прохождении |
Routing Header | 43 | Содержит список транзитных устройств для пакета |
Fragment Header | 44 | Содержит данные по фрагментации пакета |
Encapsulating Security Payload Header | 50 | Содержит информацию по шифрованию |
Authentication Header | 51 | Содержит данные по аутентификации пакета |
Destination Options | 60 | Содержит данные для считывания конечными устройствами |
Типы адресов IPv6
Адреса IPv6 делятся на следующие типы:
- Unicast-адреса: предназначены для идентификации интерфейса узла, работающего под управлением IP-протокола шестой версии.
- Multicast-адреса: предназначены для отправки пакетов на несколько адресов (в шестой версии протокола является заменой широковещательного (broadcast) адреса).
- Anycast-адреса: назначается сразу нескольким устройствам, при этом пакет, отправляемый на anycast-адрес, получает узел, являющийся ближайшим из имеющих данный адрес.
Unicast-адреса, в свою очередь, также делятся на типы:
- Global: публичный адрес (является аналогом публичного адреса в протоколе четвёртой версии). К таким адресам в интернете можно проложить полноценный маршрут. Он – уникален, и может настраиваться как статически, так и присваиваться провайдером динамически.
- Unique Local: это – аналог частного адреса в IPv4. Такие адреса не предназначены для маршрутизации в глобальном протоколе шестой версии.
- Link Local: канальные (локальные) адреса, автоматически назначаемые самим хостом. Пакеты, имеющие канальный адрес источника или конечного узла, не могут маршрутизироваться в глобальном интернете и используются только в пределах того канала, в котором созданы. К этим адресам не предъявляется требование уникальности, они могут быть одними и теми же в каждой из сетей. Канальные адреса используются, например, при проведении процедуры обнаружения соседей, примерно так же, как это делает ARP в IPv4. Эти адреса находятся в диапазоне fe80::/10 , то есть, первый гекстет имеет значения от fe80 до febf .
За распределение всех префиксов адресов IPv6 отвечает «Администрация адресного пространства Интернет» IANA. Различные блоки префиксов назначаются различным реестрам. Всего таких реестров – пять. Один из них – RIPE NCC, распределяет префиксы IPv6 для Европы, Ближнего Востока и Центральной Азии. Ещё один – ARIN, распределяет их для Северной Америки. Также, есть и другие: APNIC – для Азии и Тихоокеанского региона; LACNIC — для Латинской Америки и Карибского региона; AfriNIC — для Африки и региона Индийского океана. Например, RIPE NCC получил от IANA диапазон адресов 2001: 800:: /23 , а ARIN – 2001: 0400::/23 и так далее.
Некоторые диапазоны являются зарезервированными. Например, диапазон fd зарезервирован для адресов Unique Local, диапазон ff – для адресов Multicast, а диапазон fe80 – для адресов Link Local.
Подсети
Разделение адресов IPv6 на подсети использует иной подход в отличие от того, как это происходит в сетях IPv4. Разделение на подсети в IPv6 не преследует своей целью экономию адресов в глобальном пространстве. В шестой версии протокола более важным является обеспечение иерархической структуры сети.
В обычной ситуации префикс глобальной маршрутизации является идентификатором всей сети, в которой находится адрес. Как правило, это – 48 бит. В свою очередь идентификатор интерфейса определяет сетевой интерфейс данного узла. Обычно, это – 64 бита. Всё остальное, а это, как правило, 16 бит, представляет из себя идентификатор вашей подсети. При помощи этих самых 16-ти бит можно создать 65536 подсетей – от подсети 0000 до подсети ffff .
Как правило, адреса IPv6 настраиваются автоматически, при этом маршрутизатор сообщает о том, какой префикс доступен в данной ситуации. Под префиксом маршрутизатор понимает префикс глобальной маршрутизации плюс идентификатор данной подсети. То есть, речь идёт о первых 64-х битах. Внутри же подсети интерфейсы устройств идентифицируются при помощи канальных (локальных) адресов. Настраиваемый узел может заполнить 64 бита идентификатора интерфейса самостоятельно, используя префикс канального адреса fe80 . Для этого устройство имеет несколько возможностей.
В большинстве случаев это происходит при помощи использования MAC-адреса интерфейса данного узла. Для генерации идентификатора интерфейса существует определённый алгоритм. Для устройства с MAC-адресом, например, f8:ac65:2b:ba:11 это выглядит следующим образом:
- В середину MAC-адреса нужно вставить ff:fe – и привести запись к формату IPv6 – f8ac:65ff:fe2b:ba11 .
- Первый октет необходимо перевести из шестнадцатеричной системы в двоичную: f8 -> 11111000 .
- Шестой бит (начиная с нулевого) нужно инвертировать: 11111000 – > 11111010 .
- Полученное число необходимо снова перевести в шестнадцатеричную систему: 11111010 -> fa .
- Первый октет нужно заменить на полученное значение: faac:65ff:fe2b:ba11 .
Таким образом, вместо того, чтобы получать адрес по DHCP, как это происходит в IPv4, сетевой адаптер самостоятельно назначает себе адрес IPv6, используя для этого свой же MAC-адрес.
Вместо заключения
Несмотря на свою неидеальность, IPv6 имеет ряд неоспоримых преимуществ перед IP-протоколом четвёртой версии. IPv6 более эффективно маршрутизируется не применяя фрагментацию пакетов, “из коробки” поддерживает IPsec и автоконфигурацию адресов. И по причине исчерпания адресов IPv4 переход на IPv6 неизбежен, хотя и довольно сложен. Требуются значительные вложения по времени и финансам в обновление программно-технической базы провайдеров. Поэтому, по мере модернизации оборудования мы постепенно будем отходить от IPv4.