Протокол ipv6: что это такое и как он работает
Содержание:
- Внедрение протокола TCP/IPv6
- История
- Модель адресации
- Настройка протокола IPv6 через графический интерфейс
- Префикс IPv6
- [править] Протокол обнаружения соседей (Neighbor Discovery)
- Privacy Extensions
- Как использовать адреса IPv6 в URL
- Протокол IPv6
- Как настроить SSH для работы только с IPv6
- Могут ли роутеры и компьютеры одновременно работать с IP и IPv6
- Как организовать плавную миграцию
- Типы автоконфигурации
- Как сканировать IPv6 и диапазоны IPv6
- Предпосылки к IPv6
Внедрение протокола TCP/IPv6
Несмотря на долгую историю разработки, которая берет начало в 1992 году, тестирование нового протокола состоялось одномоментно 8 июня 2011 года в Международный день IPv6. Эксперимент прошел удачно и предоставил возможность для выработки рекомендаций по дальнейшему совершенствованию данной технологии, ее массовому внедрению.
Первой компанией, внедрившей в 2008 году стандарт протокола IPv6 на постоянной основе, стал Google. Тестирование проводилось в течение четырех лет, было признано успешным. 6 июня 2012 года состоялся Всемирный запуск IPv6. Сегодня мировые лидеры в производстве сетевого оборудования Cisco и D-Link применяют данный сетевой стандарт в своих маршрутизаторах на базовом уровне. В мобильных сетях стандарта LTE поддержка протокола IPv6 является обязательной. IT-компании Google, Facebook, Microsoft и Yahoo используют IPv6 на своих основных web-ресурсах. Протокол получает все большее распространение в корпоративных сетях и при домашнем использовании.
Согласно исследованиям Google, на начало 2020 года доля IPv6 в общемировом сетевом трафике составляла около 30%. В России данный показатель значительно ниже, он составляет приблизительно 4,5% всего трафика. В то же время все большее количество отечественных регистраторов доменов и хостинг-провайдеров переводят свои DNS-серверы на протокол IPv6.
История
В последнее время интернет-протоколы, встроенные в современные системы, основаны на более сложных и запутанных технологиях, основанных на разработках протокола NCP (Программа сетевого управления) ARPANET (Advanced Research and Project Agency Network). Винтон Серф и Роберт Кан известны как предки протокола TCP/IP (Transmission Control Protocol / Internet Protocol). Работая с TCP, IP был представлен как датаграмма, которая не полагалась на подключенный протокол, а содержала заголовок и полезную нагрузку. Заголовок шифрует адреса источника и назначения пакета данных, в то время как полезная нагрузка переносит фактические данные. Серф и Кан сотрудничали с Министерством обороны США в опросе первой основной версии IP-адреса, которая до сих пор широко используется — IPv4.
В частности, IPv4 был впервые применен в 1983 году для производства ARPANET. IPv4 описан в публикации IETF RFC 791 в 1981 г., заменяющей более раннее определение, данное в 1980 г. Однако правительство США пришло к пониманию того, что IPv4 адрес представляет собой ограниченный набор адресов, всего около 4 миллиардов возможных комбинаций, для 7 миллиардов человек в мире, и начало с более новой версии, которая в настоящее время интегрируется в существующие сети — IPv6. Когда IPv6 предназначался для замены IPv4, IPv6 стал проектом стандарта IETF в 1998 году. Впоследствии, 14 июля 2017 года, он был ратифицирован в качестве интернет-стандарта.
Модель адресации
IPv6 адреса всех типов ассоциируются с интерфейсами, а не узлами. Так как каждый интерфейс принадлежит только одному узлу, уникастный адрес интерфейса может идентифицировать узел.
IPv6 уникастный адрес соотносится только с одним интерфейсом. Одному интерфейсу могут соответствовать много IPv6 адресов различного типа (уникастные, эникастные и мультикстные). Существует два исключения из этого правила:
- Одиночный адрес может приписываться нескольким физическим интерфейсам, если приложение рассматривает эти несколько интерфейсов как единое целое при представлении его на уровне Интернет.
- Маршрутизаторы могут иметь ненумерованные интерфейсы (например, интерфейсу не присваивается никакого IPv6 адреса) для соединений точка-точка, чтобы исключить необходимость вручную конфигурировать и объявлять (advertise) эти адреса. Адреса не нужны для соединений точка-точка маршрутизаторов, если эти интерфейсы не используются в качестве точки отправления или назначения при посылке IPv6 дейтограмм. Маршрутизация здесь осуществляется по схеме близкой к используемой протоколом CIDR в IPv4.
IPv6 соответствует модели IPv4, где субсеть ассоциируется с каналом. Одному каналу могут соответствовать несколько субсетей.
Настройка протокола IPv6 через графический интерфейс
Как правило, особенно в последней версии системы от Майкрософт всё происходит автоматически и данное подключение не является исключением. Всё-таки если произошла неполадка и есть надобность выполнить проверку и исправление, то нужно попасть в окно сетевых подключений. Для этого на кнопке «Пуск» рабочего стола следует кликнуть правой кнопкой мышки, а затем выбрать строку «Сетевые Подключения». Если у вас восьмая версия ОС, то после проделанного вы окажитесь на требуемом месте, для пользователей десятки нужно следовать дальше. Затем в открывшемся окне состояния сети следует выбрать пункт «Настройка параметров адаптера». Также всю процедуру можно проделать, используя горячие клавиши. Первое, вызвать утилиту «Выполнить» горячие клавиши Win + R. В поле окна программы вбить ncpa.cpl и нажать на «ENTER» или кнопку «OK» находящуюся справа. Обладателям Windows 7 нужно кликнуть левой кнопкой мышки по значку пуск рабочего стола и в появившемся поле поиска ввести слово «Выполнить» затем нажать на «ENTER». Далее следовать указаниям из предыдущего предложения (воспользоваться командой ncpa.cpl).
Затем в окне «Сетевые подключения» требуется выбрать ваше актуальное соединение, кликнуть по нему правой кнопкой мышки и зайти в пункт «Свойства». В окошке свойств актуального соединения нужно найти строку, отвечающую за подключения протокола IPv6 (IP версии 6 TCP/IPv6) и убедится, что там поставлена галочка если нет тогда исправьте. В большинстве случаев отсутствие галочки и является проблемой.
Затем для большей уверенности зайдите в свойства подключения протокола версии IPv6. Для этого фокус должен стоять на строке, обозначающей данное соединение, после чего нужно нажать на кнопку «Свойства» находящуюся справа. Во вновь появившемся окне радиокнопки должны быть установлены в положении обозначающим автоматическое определение.
Если в автоматическом режиме существуют неполадки тогда можно воспользоваться альтернативными адресами DNS от Google. В поле напротив предпочитаемого введите 2001:4860:4860::8888. Там, где нужен альтернативный следует прописать 2001:4860:4860::8844. После всех изменений требуется нажать на кнопку «OK». Радиокнопку, отвечающую за получение адреса IPv6 трогать не следует.
Выполнить проверку корректности подключения можно несколькими способами. Чтобы далеко не ходить в окне сетевых подключений кликните правой кнопкой мышки на своём соединении и выберите строку «Состояние». Во вновь открывшемся окошке нужно нажать на кнопочку «Сведения». После чего откроется новое и напротив строчки «Адрес IPv6» должен появиться ваш сетевой адрес. Также можно запустить Windows PowerShell (или командную строку) там вбить команду ipconfig /all затем нажать на «ENTER». В появившемся списке следует искать строку «IPv6-адрес» где будет требуемая запись. Также в конце стать я дам две ссылочки перейдя по которым вы сможете протестировать подключение.
Префикс IPv6
IPv4 IP адрес состоит из двух частей: адрес подсети и адрес хоста. Для того, чтобы определить, где в IP адресе, адрес сети, а где адрес хоста, используется так называемая маска подсети. Протокол IPv6 использует похожие понятия, но с другими названиями.
IPv6 адрес также состоит из двух частей, адрес сети и адрес компьютера, но адрес сети называется префиксом IPv6, а адрес хоста называется адресом интерфейса. То, что в IPv4 называлось маской подсети в протоколе IPv6 называется длиной префикса.
Длина префикса в протоколе IPv6 показывает, сколько цифр в IP адресе относится к адресу сети, а сколько к адресу компьютера.
Вот пример записи префикса в IPv6: 2a02:6b8:0892:ad61:59a2:3149:c5a0:67a4/64, маска подсети в IPv4 также может записываться в подобном формате. Кроме этого маска подсети в IPv4 может быть записана в десятичном формате, но в IPv6 десятичный формат не используется.
Длина префикса 64 означает, что первые 64 бита IPv6 адреса относится к адресу сети, а оставшиеся 64 бита к адресу интерфейса или адресу хоста.
Вычисления префикса IPv6
Правила вычисления адреса сети или префикса, как он называется в протоколе IPv6, точно такие же, как и в протоколе IPv4. Необходимо перевести адрес в двоичную форму, отсчитать количество бит которое, соответствует длине префикса, эти биты IP адреса оставить без изменения, а остальные заменить нулями.
Чаще всего в IPv6 можно использовать упрощенную процедуру. Если длина префикса кратна 16, то префикс заканчивается, как раз на одной из групп шестнадцатеричных чисел, поэтому мы можем оставить без изменения те шестнадцатеричные числа, которые входят в префикс, а всё остальное заменить нулями.
Например, если длина префикса /64, то мы можем первые четыре группы шестнадцатеричных чисел оставит без изменения, остальные заменить нулями.
Более сложный случай, если длина префикса кратна 4, в этом случае префикс включает полностью какую-либо шестнадцатеричную цифру, поэтому мы оставляем без изменения всю начальную часть IP адреса, до той цифры на который заканчивается префикс, а оставшуюся часть заменяем нулями.
Например: длина нашего префикса 52 бита, первые три группы шестнадцатеричных чисел заканчиваются на границе 48 бит, длина нашего префикса 52 на 4 бита больше, соответственно в префикс включается еще одна шестнадцатеричная цифра, здесь у нас находиться цифра а, поэтому в адрес сети мы включаем всю начальную часть IPv6 адреса, в том числе и эту цифру а, а все остальные цифры заменяют нулями.
Так как длина IPv6 адреса очень большая, и таких адресов очень много, то есть возможность использовать именно такие адреса, которые нам удобны. Поэтому сейчас на практике чаще всего используются префиксы длина которых кратна 16 или 4. Однако что делать если вы столкнетесь ситуации когда длина префиксы не кратна 4?
Например, длина нашего префикса 54, нам придется перевести адрес IPv6 в двоичную форму, для простоты мы можем переводить не весь адрес, а только ту часть в которой заканчивается наш префикс. (картинка ниже)
Например, префикс длиной 54 заканчивается в группе цифр ad61, нам нужно перевести это число из шестнадцатеричного формата в двоичный. Выполнить логическое И (AND) с префиксом, получиться вот такой результат:
мы переводим его в обратно 16-ричный формат получилось ac00, все остальные группы цифр заменяются на . (картинка ниже)
[править] Протокол обнаружения соседей (Neighbor Discovery)
Протокол обнаружения соседей (Neighbor Discovery, ND) — протокол, с помощью которого
IPv6 хосты разделяющие линк могут обнаружить друг друга, определить адрес канального уровня другого хоста (вместо ARP, который использовался в IPv4), обнаружить маршрутизаторы, поддерживать информацию о доступности путей к другим активным соседям.
Задачи протокола
Протокол ND описан в RFC2461.
Этот протокол решает ряд проблем относящихся к взаимодействию между хостами разделяющими линк.
Он определяет механизмы для решения каждой из перечисленных задач:
- Обнаружение маршрутизатора (Router Discovery) — хосты могут обнаружить маршрутизаторы, которые находятся на том же линке, что и они;
- Обнаружение префикса (Prefix Discovery) — хосты обнаруживают префиксы, которые определяют какие получатели находятся на одном линке с ними (хосты используют префиксы для того чтобы определить какие получатели доступны на линке, а какие доступны только через маршрутизатор);
- Обнаружение параметров (Parameter Discovery) — хосты получают параметры линка (например, MTU);
- Автоматическая настройка адреса (Address Autoconfiguration) — хосты автоматически настраивают адрес на интерфейсе;
- Преобразование адреса (Address resolution) — хосты определяют адрес канального уровня соседей по IP-адресу получателя;
- Определение next-hop (Next-hop determination) — алгоритм для установки соответствия между IP-адресом получателя и IP-адресом соседа, которому нужно отправить трафик для того чтобы он был доставлен получателю. Next-hop может быть маршрутизатор или сам получатель;
- Определение недоступности соседа (Neighbor Unreachability Detection, NUD) — хосты определяют, что сосед более недоступен;
- Определение дублирующегося адреса (Duplicate Address Detection, DAD) — хост определяют, что адрес, который он хочет использовать не используется другим хостом;
- Перенаправление (Redirect) — маршрутизатор оповещает хост, что есть лучший маршрутизатор (first-hop), для отправки трафика к конкретному получателю.
Типы сообщений
Neighbor Discovery определяет пять разных типов ICMP пакетов:
Тип сообщения | Назначение | Адрес отправителя | Адрес получателя | ICMP тип, код |
---|---|---|---|---|
Router Solicitation (RS) | Хост запрашивает информацию о присутствии маршрутизаторов на линке | Адрес присвоенный интерфейсу или ::, если адрес не присвоен | FF02::2 | 133, 0 |
Router Advertisement (RA) | Маршрутизатор анонсирует своё присутствие, префикс линка, MTU и hop limit | Link-local адрес маршрутизатора | FF02::1 для периодических сообщений или адрес хоста, который отправлял запрос RS | 134, 0 |
Neighbor Solicitation (NS) | Хост запрашивает информацию о адресах канального уровня других хостов. Используется для DAD и проверки доступности соседа | Адрес присвоенный интерфейсу или ::, если адрес не присвоен | Solicited-node multicast адрес или адрес целевого хоста, если он известен | 135, 0 |
Neighbor Advertisement (NA) | Отправляется в ответ на NS сообщение и периодически для предоставления информации соседям | Настроенный или автоматически присвоенный адрес интерфейса отправителя | FF02::1 для периодических сообщений или адрес хоста, который запрашивал NA | 136, 0 |
Redirect | Отправляется маршрутизатором для информирования хоста о лучшем next-hop маршрутизаторе | Link-local адрес маршрутизатора | Адрес хоста, который отправлял запрос | 137, 0 |
Privacy Extensions
Когда устройство-клиент получает адрес посредством SLAAC, его IPv6-адрес вычисляется на основании префикса сети и MAC-адреса сетевого интерфейса. Это может иметь определённые последствия с точки зрения безопасности, поскольку MAC-адрес компьютера теперь можно узнать по IPv6-адресу. Для решения этой проблемы был разработан стандарт IPv6 Privacy Extensions (RFC 4941). В соответствии с ним ядро видоизменяет исходный адрес, генерируя вместо него временный. Такой подход используется, когда необходимо скрыть настоящий адрес при подключении к удалённому серверу.
Чтобы включить Privacy Extensions, добавьте в файл следующие строки:
# Enable IPv6 Privacy Extensions net.ipv6.conf.all.use_tempaddr = 2 net.ipv6.conf.default.use_tempaddr = 2 net.ipv6.conf.nic0.use_tempaddr = 2 ... net.ipv6.conf.nicN.use_tempaddr = 2
Здесь … — названия сетевых интерфейсов. В статье описано, как узнать имена сетевых интерфейсов на вашей машине. Параметры и не будут применены к сетевым интерфейсам, которые уже определены в системе на момент выполнения файла настроек sysctl.
После перезагрузки Privacy Extensions будут включены.
dhcpcd
Стандартная конфигурация dhcpcd содержит опцию (RFC 7217), которая включает назначение стабильных приватных адресов вместо вычисления оных на основе аппаратных параметров. Дополнительная настройка не требуется, если, конечно, вы не хотите изменять адрес IPv6 чаще, чем в начале каждого нового подключения к сети. Если задать опцию , то будут назначаться постоянные адреса.
NetworkManager
NetworkManager использует IPv6 Privacy Extensions в соответствии с настройкой в файле или в профиле соединения. Если параметр не задан ни глобально, ни для соединения, NetworkManager будет использовать .
Чтобы включить IPv6 Privacy Extensions явно, добавьте следующие строки в файл :
/etc/NetworkManager/conf.d/ip6-privacy.conf
ipv6.ip6-privacy=2
и переподключитесь ко всем активным соединениям.
Чтобы включить IPv6 Privacy Extensions для отдельных соединений под управлением NetworkManager, отредактируйте соответствующий нужному соединения файл в каталоге , добавив к разделу пару ключ-значение :
/etc/NetworkManager/system-connections/соединение.nmconnection
... method=auto ip6-privacy=2 ...
Перезагрузите соединение и подключитесь к нему снова.
Примечание: Может показаться, что временный адрес IPv6, созданный при включении Privacy Extensions, никогда не обновляется (он не переходит в статус после истечения времени жизни ). На самом деле это не совсем так: через больший промежуток времени адрес всё же изменится.
systemd-networkd
Systemd-networkd тоже не учитывает настройки в файле , если оцпия в файле не установлена в значение .
Тем не менее, учитываются некоторые другие опции:
net.ipv6.conf.xxx.temp_prefered_lft net.ipv6.conf.xxx.temp_valid_lft
Примечание: — корректное имя переменной, хотя допущена грамматическая ошибка (правильно preferred).
См. также systemd-networkd и .
Как использовать адреса IPv6 в URL
Каждому человеку, кто хотя бы раз настраивал роутер знакома ситуация, когда IP-адрес вводится в строке адреса браузера. Другой вариант, когда это приходится делать — в случае если кто-то запустил на компьютере веб-сервер без привязки доменного имени и Вам по какой-либо причине надо на него зайти. В случае IPv4 делается Вы просто пишете IP, например 192.168.0.1, в строке адреса и нажимаете кнопку Enter. Браузер преобразует IP-адрес в http, получаем такую строчку: http://192.168.0.1 По-умолчанию для Веб-сервера используется TCP-порт 80. Но иногда в настройках используют альтернативные порты, например 8080. В этом случае строка адреса будет выглядеть так: http://192.168.0.1:8080, т.е. порт указывается через двоеточие -:- после адреса.
Но что же делать в случае, когда используется IPv6, ведь там все числа через двоеточие и браузер будет думать что это порт.
Так вот в случае IPv6 IP-адрес в адресной строке браузера закрывается квадратными скобками. Выглядит это так:http:///
Если надо указать ещё и порт, то так:http://:8080/
Протокол IPv6
Одним из самых главных недостатков интернет протокола IPv4 является относительно небольшое количество выдаваемых адресов около 4,23 миллиарда адресов, так как это число уже не кажется столь большим в сравнении с количеством задействованных устройств подключенных к сети интернет. По сей день использование IPv4 проходит штатно, поскольку используются различные технологии экономии использования сетевых адресов, в частности технология NAT (NetworkAddressTranslation, преобразование сетевых адресов), но уже всем понятно, что дни эксплуатации IPv4 подходят к концу, поскольку в ближайшем будущем предусматривается наделять возможностью доступа к интернету всех бытовых приборов (холодильников, СВЧ-печей), для осуществления управления данными приборами удаленно, посредством сети с любой точки Земли.
В сложившейся ситуации переход на новый формат сетевого адреса становится крайне остров. Хотя многие специалисты предвидели проблему нехватки сетевых адресов еще в начале 1990 года, в то же время начала работать группа проектирования Интернета IETF над новой версией сетевого протокола — IPv6.
Основные решаемые задачи:
- Возможность доступа к глобальной сети миллиардов хостов даже при нерациональном использовании адресного пространства.
- Сокращение размера таблиц маршрутизации
- Упрощение протокола для ускорения обработки пакетов маршрутизации
- Повышение уровня безопасности протокола
- Упрощение работы многоадресных рассылок с помощью указания областей рассылки.
- Перспективы дальнейшего развития протокола в будущем
- Организация совместимости старого и нового протокола
Протокол IPv6 разработан в конце 1992 года.
Протокол IPv6 (Internet Protocol version 6) — это новая версия интернет протокола (IP), созданная с целью решения проблем, с которыми столкнулась предыдущая версия (IPv4) при её использовании в интернете, одна из которых – это использование длины адреса 128 бит вместо 32.
В наше время протокол IPv6 активно используется во множестве сетей по всему миру, но пока ещё не получил столь широкого распространения в Интернете, как IPv4.
Интернет протокол IPv6 хорошо справляется с основными поставленными задачами. Ему присущи достоинствами интернет протокола IP и лишен некоторых недостатков, к тому не обладает некоторыми новыми возможностями. В общем случае протокол IPv6 несовместим с протоколом IPv4, но зато совместим со всеми остальными протоколами Интернета, включая TCP, UDP, ICMP, OSPF, DNS для чего иногда требуются небольшие изменения.
Особенности IPv6:
Протокол IPv6 имеет длину 16 байт, что решает основную проблему — обеспечить практически неограниченный запас интернет – адресов.
Протокол IPv6 по сравнению с IPv4 имеет более простой заголовок пакета. Таким образом, маршрутизаторы могут быстрее обрабатывать пакеты, что повышает производительность.
Улучшенная поддержка необязательных параметров
Подобное изменение действительно было существенным, так как в новом заголовке требуемые прежде поля стали необязательными.
Повышен уровень безопасности, аутентификация и конфиденциальность являются ключевыми чертами нового IP-протокола
Уделено больше внимание типу представляемых услуг. Для этой цели в заголовке пакета IPv4 было отведено 8-разрядное поле.
Как настроить SSH для работы только с IPv6
Настройка SSH сервера выполняется в файле /etc/ssh/sshd_config, подробности смотрите в разделе «SSH (ч.2): Настройка сервера OpenSSH».
В системе может быть несколько сетевых интерфейсов с несколькими IP адресами, по умолчанию sshd прослушивает их все, в том числе IPv6 адреса:
ListenAddress 0.0.0.0 ListenAddress ::
Если убрать запись ListenAddress 0.0.0.0, то будут прослушиваться только IPv6.
Директивой ListenAddress вы также можете указать конкретный IP, который будет прослушиваться в ожидании подключений. А опцией AddressFamily вы можете выбрать для прослушивания все адреса, только IPv4 или только IPv6:
AddressFamily any
Варианты:
- any (по умолчанию — любые адреса),
- inet (использовать только IPv4),
- inet6 (использовать только IPv6),
Могут ли роутеры и компьютеры одновременно работать с IP и IPv6
IPv6 — это новая версия протокола IP. IPv6 сети, оборудование и программное обеспечение с поддержкой IPv6 распространены уже довольно широко — по крайней мере, в некоторых странах.
Сейчас, когда IP и IPv6 протоколы работают вместе, это приводит к существованию фактически двух параллельных сетей. Например, роутер моего Интернет-провайдера поддерживает IPv6 и IP. Если я обращаюсь к сайту, у которого есть IPv6 адрес (большинство сайтов), то мой запрос и ответ идёт по сетям (узлам) с поддержкой IPv6. Если я обращусь к сайту, у которого только IP адрес, то мой запрос и ответ на него может пойти по другому маршруту.
При анализе сети, допустим, с помощью Wireshark или tcpdump можно пропустить половину или даже больше трафика, если забыть про IPv6! То есть в качестве фильтра отображения пакетов в Wireshark вы введёте (обычный фильтр для показа трафика IP протокола):
ip
То вы увидите примерно такое:
Но если ввести такой фильтр
ipv6
То картина изменится кардинально (обращаю внимание, что это тот же самый трафик), окажется, что компьютер подключается ещё и к совершенно другим хостам:
При анализе сети, при настройке фильтров отображения по IP, при выполнении атак (например, ARP и DNS спуфинг в локальной сети), нужно помнить про IPv6!
Ещё раз: IP и IPv6 это две параллельные сети, которые не особо связаны друг с другом (хотя одно и то же оборудование может поддерживать работу с обоими протоколами). В результате при настройке сети, например, файервола, нужно отдельно сделать настройки для протокола IP, а затем делать такую же настройку IPv6. Поскольку это разные сети, есть шанс, что системный администратор настроил их по-разному, что даёт лазейки для выполнения атак или обхода ограничений с использованием IPv6. Реальный пример я описывал здесь (краткий пересказ: у отечественного VPS хостера ВНЕЗАПНО для клиентов сломался доступ к DNS серверам Google. При этом каждому VPS серверу прилагается 3 бесплатных IPv6 адреса. В дополнении к существующим записям DNS серверов, я добавил ещё парочку IPv6 адресов DNS Google в настройки и всё заработало! Видимо, при блокировке доступа, произошло именно это — администратор сети забыл (не посчитал нужным) позаботиться об IPv6 сети…)
IPv6 адреса могут пригодиться при исследовании локальных сетей Интернет-провайдеров, стоит попробовать использовать IPv6 для обхода Captive Portal (перехватывающих порталов) и других ограничений сети, про IPv6 нужно помнить при анализе трафика на своём компьютере и в локальных сетях, либо наоборот для увеличения скрытности своего пребывания (в надежде, что в настройках логирования трафика не упомянут IPv6 или что геолокация по IPv6 сейчас в зачаточном состоянии (по крайней мере, в публичных базах данных)).
Кстати про блокировки, насколько я понимаю (поправьте, если ошибаюсь), в реестре РКН ведь IPv6 отсутствуют вовсе?..
Эта статья поможет вам сделать первые шаги по использованию IPv6 адресов с популярными программами.
Как организовать плавную миграцию
IPv6 не имеет обратной совместимости с IPv4. Из-за этого многие администраторы избегают нового протокола. Что делать?
Во-первых, нужно переместить устройства в гибридную среду, в которой сосуществуют IPv4 и IPv6. Для многих переход на IPv6 начался много лет назад. Большинство аналитиков предсказывали, что на это уйдут годы, но гибридные модели дают даже больше времени, поскольку пользователи будут запускать свои сети с использованием обоих типов адресов.
Поскольку структуры адресов сильно отличаются друг от друга, а IPv6 использует другую архитектуру пакетов данных, устройства IPv4 и устройства IPv6 не могут взаимодействовать без использования шлюза.
Наиболее популярные гибридные стратегии совместного использования включают туннелирование, при котором трафик IPv6 инкапсулируется в заголовок IPv4. Хотя это приводит к дополнительным накладным расходам, двойному стеку, который осложняет работу сети и требует дополнительных ресурсов..
Предположим, у компании есть настольные компьютеры, которые используют IPv6, но серверы используют IPv4. Между ПК и серверами будет шлюз, который сделает возможным преобразование IPv6-адресов в IPv4-адреса.
Многие производители маршрутизаторов и коммутаторов разрабатывают устройства , которые помогают с переходом на IPv6. Поэтому когда больше не нужно подключаться к службам, которые все еще используют IPv4, можно перейти от гибридной среды к сети, полностью оборудованной для IPv6.
В комфортном переходе на IPv6 может помочь механизм NAT (Network Address Translation — трансляция сетевых адресов и портов), который применяется в IP-протоколах и позволяет заменять локальный (серый) IP-адрес на публичный (белый). Исчерпание IPv4 увеличивает затраты поставщика услуг, тогда как инвестиции в NAT снизят затраты.
Например, технология Carrier-grade NAT позволяет нескольким абонентам совместно использовать один публичный IPv4-адрес, что продлевает использование ограниченного адресного пространства IPv4 и делает миграцию с IPv6-адресацией проще.
Типы автоконфигурации
Существует три типа автоконфигурации:
- Stateless конфигурация адресов и других параметров основана на получении сообщений Router Advertising. Эти сообщения имеют флаги конфигурации управляемых адресов и других состояний, установленных в 0, и они включают в себя один или несколько параметров информации о префиксах, каждый из которых имеет свой флаг автономности, установленный в 1.
- Конфигурация Stateful основана на использовании протокола конфигурации адресов, такого как DHCPv6, для получения адресов и других параметров конфигурации. Хост использует автоконфигурацию с состоянием, когда он получает сообщение с рекламой маршрутизатора без опций информации о префиксах, и либо флаг конфигурации управляемого адреса, либо флаг другой конфигурации состояния установлен на 1. Хост также может использовать автосохранение с состоянием, если на маршрутизаторе нет маршрутизаторов локальная ссылка.
- Обе конфигурации основаны на получении рекламных сообщений маршрутизатора, которые включают в себя параметры информации о префиксах, каждый из которых имеет свой флаг Автономия, установленный в 1, и имеет флаги конфигурации управляемого порта или другого состояния, установленные в 1. Для всех типов автоконфигурации ссылка, локальный адрес всегда настраивается автоматически.
Как сканировать IPv6 и диапазоны IPv6
Программа nmap поддерживает работу с IPv6 адресами и может сканировать диапазоны IPv6, хотя есть некоторые ограничения: поддерживаются не все виды нотаций, которые доступны для обычных IP.
Предположим, я хочу просканировать свою локальную IPv6 сеть к которой принадлежит мой адрес 2403:6200:8862:ea24::2/128 (маска подсети /128 означает только один адрес). Хотя это не совсем верное выражение, поскольку 2403:6200:8862:ea24::2 адрес является глобальным. В этот же момент моему сетевому интерфейсу присвоен IPv6 адрес 2403:6200:8862:ea24:40b3:e3e3:fdf8:bcf8/64. Если посмотреть информацию о данном адрес:
whois 2403:6200:8862:ea24:40b3:e3e3:fdf8:bcf8
то окажется, что он принадлежит диапазону 2403:6200::/32. Диапазон с длиной сети /32 является слишком большим для сканирования. Подсеть /64 тоже слишком большая. Поэтому я просканирую подсеть /120, в которой всего:
2(128-120) = 256 адресов.
То есть в качестве цели я выбираю 2403:6200:8862:ea24::2/120. Nmap не будет жаловаться, что установлен не сетевой бит (в отличии, кстати, от tcpdump, которая не принимает фильтр с таким допущением). Но «более правильнее», конечно, было бы указать цель как 2403:6200:8862:ea24::/120:
sudo nmap -6 2403:6200:8862:ea24::/120
Из просканированных 256 хостов, 4 хоста оказалось онлайн. Это те же самые хосты, которые входят в подсеть 192.168.1.0/24.
На самом деле, если копнуть глубже и внимательнее присмотреться к протоколу IPv6, то мы узнаем, что клиентам выделяются очень крупные подсети, а так много адресов нужно из-за особенностей маршрутизации IPv6. Может оказаться, что клиенты собраны в начале крупных диапазонов и нет смысла сканировать весь большой диапазон IPv6 адресов целиком — достаточно разбить цели сканирования на такие же подсети, которые выделяет Интернет-провайдер клиентам и сканировать только самое начало каждого такого диапазона. В результате время сканирования должно уменьшиться драматически. ИМХО, в сканировании IPv6 сетей есть простор для оптимизации, но это требует понимание топологии конкретной сети и глубокое понимание протокола IPv6 и его маршрутизации.
Итак, для сканирования IPv6 адресов или диапазонов к команде сканирования nmap нужно добавить опцию -6 и в качестве цели указать:
- полный IPv6 адрес
- имя хоста (если к нему привязан IPv6)
- для подсетей можно использовать нотацию CIDR
В настоящее время диапазоны октетов для IPv6 ещё не поддерживаются.
Даже если в качестве цели явно указан IPv6 адрес, опцию -6 нужно обязательно указывать, иначе возникнет ошибка вида:
2a0b:f4c0:16c:4::1 looks like an IPv6 target specification -- you have to use the -6 option.
Все опции и возможности nmap поддерживаются также и для IPv6 адресов.
Дополнительно смотрите «».
Онлайн сервис «Сканирование открытых портов IPv6 адреса»: https://suip.biz/ru/?act=nmap-ipv6
Предпосылки к IPv6
Основной протокол, по которому в Интернете передадаются данные, называется IP (Internet Protocol). Всякие HTTP, ICQ и сервисы работают поверх него (с TCP или UDP в промежутке). IP умеет упаковывать данные в пакеты и передавать их между компьютерами. Понятно, желающим обменяться данными нужно как-то друг друга идентифицировать. Для этой цели используются IP-адреса.
А вот с адресами и начинаются проблемы. IP был придуман в 80-х годах XX века, когда никто и не предполагал, что доступ в Интернет через какие-то пятнадцать лет будет не то, что у каждой уважающей себя фирмы, а вовсе у каждого школьника. Поэтому адреса сделали длиной в четыре байта (от 0.0.0.0 до 255.255.255.255). Их 2^32 = 4294967296, казалось, что хватит всем. Прямо как 640 килобайт.
Но это еще не самый большой просчет. На ранних этапах развития сети адреса можно было получать не сколько тебе реально надо, а только блоками по 16777216, 65536 или 256 адресов. Если тебе надо 500 адресов, бери сразу 65536. Если надо 66000, бери 16 миллионов. Явно не самый эффективный расход адресного пространства.
Есть и еще один прикол: сеть 224.0.0.0/4 (268435456 адресов) выделили для многоадресной рассылки (через нее, в частности, работает IPTV), а адреса после нее зарезервировали для использования в будущем. Многие разработчики сетевого оборудования поставили аппаратный фильтр на эти зарезервированные адреса, и теперь если разрешить их использование, часть исторической инфраструктуры не сможет с ними работать.
Но до какого-то момента это все не имело значения, поскольку Интернет был только у военных и в университетах.
Когда число пользователей сети начало стремительно возрастать, стало ясно, что адресов не так уж и много. В первую очередь отказались от дурацкой классовой адресации (той самой выдачи блоками фиксированного размера) и сделали возможным выдавать адреса в минимально нужном количестве.
Потом и это перестало помогать, тогда подумали, что во имя спасения сети можно отказаться от уникальности адреса каждой машины и выдавать по одному уникальному адресу на сеть, чтобы все машины сети ходили в Интернет через него. Так появился NAT (Network Address Translation), который подменяет адрес источника у соединений вовне сети на адрес маршрутизатора. Для сетей за такими маршрутизаторами выделили всем теперь известные сети 10.0.0.0/8, 172.16.0.0/12 и 192.168.0.0/16.
Но это все временные меры, которые только помогли бы продержаться до внедрения нового протокола с большим адресным пространством.