В чём разница между протоколами ipv4 и ipv6

Hackware.ru

Формат заголовка IPv6

Давайте рассмотрим формат заголовка протокола IPv6. Основное изменение это более длинные адреса отправителя и получателя, каждая из которых занимают по 16 байт.

  • Первое поле в заголовке протокола IPv6 также, как и в заголовке протокола IPv4, это номер версии 4 для IPv4 и 6 для IPv6.
  • Затем идет поле класс трафика, оно необходимо для реализации качества обслуживания. Самый простой вариант, разбиение трафика на два класса, обычный и важный. Маршрутизаторы, которые поддерживают обеспечение качества обслуживания, передают важный трафик быстрее используя специальную выделенную очередь, также возможны и другие варианты использования классов трафиков.
  • Следующее поле в заголовке IPv6 это метка потока, это поле используется для того чтобы объединить преимущества сетей коммутации пакетов с сетями с коммутацией каналов. У набора пакетов, которые передаются от одного отправителя к одному получателю, и требует определенного типа обслуживания, устанавливается одна и та же метка. Маршрутизаторы, которые поддерживают работу в таком режиме, обрабатывают пакет на основе метки, что гораздо быстрее.
  • Следующее поле это длина полезной нагрузки, в отличии от протокола IPv4, где в подобном поле указывается общая длина пакета, здесь указывается только размер данных без размера заголовка.
  • Затем идет поле следующий заголовок, которое необходимо, если используются дополнительные заголовки, в этом поле указывается тип первого дополнительного заголовка.
  • В IPv6 поле время жизни пакета переименовали в максимальное число транзитных участков, потому что на практике вместо времени жизни, даже в протоколе IPv4, указывается максимальное количество маршрутизаторов через которое может пройти пакет, перед тем как он будет отброшен.

По сравнению с заголовком протокола IPv4 в протоколе IPv6 нет полей, которые отвечают за фрагментацию, и за контрольную сумму. Расчет контрольной суммы создает большую нагрузку на маршрутизаторы, однако эта операция часто является излишней, так как контрольная сумма рассчитывается на канальном уровне, и на сетевом уровне. Поэтому от расчета контрольных сумм в протоколе IPv6, было решено отказаться.

Также было принято решение отказаться от фрагментации, потому что она так же как и расчет контрольной суммы, создает большую нагрузку на маршрутизаторы. На практике во многих сетях сейчас используется один и тот же размер пакета, соответствующий размеру кадра Ethernet 1500 байт, поэтому фрагментация часто являются ненужной. Если все же где-то по пути пакета встретиться сеть с меньшим максимальным размером пакета, то вместо фрагментации необходимо использовать технологию Path MTU Discovery.

Также как и заголовок протокола IPv4,  заголовок протокола IPv6 состоит из двух частей обязательный и необязательной. В необязательные части может быть несколько дополнительных заголовков.

Дополнительные заголовки IPv6

В IPv6 могут быть дополнительные заголовки следующих типов:

  1. Заголовок параметры маршрутизации —  содержит данные, которые необходимы маршрутизаторам для того, чтобы корректно обрабатывать пакеты.
  2. Заголовок параметры получателя —  содержит данные, которые необходимы для обработки пакета на стороне получателя.
  3. Дополнительный заголовок маршрутизация — содержит список маршрутизаторов, через который пакет должен обязательно пройти.

В протоколе IPv6 фрагментация преимущественно не используется, вместо неё используется технология Path MTU Discovery, но как вариант все-таки маршрутизаторы могут фрагментировать пакеты, для этого используется не обязательная часть заголовка.

Важным добавлением в протокол IPv6 является механизм защиты данных, которых не было в IPv4 это аутентификация и шифрование. Обе технологии не являются частью протокола IPv6, а описаны в отдельных документах. RFC 2402 IP Authentication Header используется для аутентификации, а документ RFC 2406 описывает технологию шифрования IP Encapsulation Security Payload, сейчас активными являются обновленные версии этих документов.

Внедрение протокола 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.

Как использовать адреса 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?

Вполне понятный вопрос: почему я ношусь с IPv6 сейчас, когда от него сейчас нет практически никакой пользы?

Сейчас с IPv6 можно возиться совершенно безопасно, без каких-либо негативных последствий. Можно мирно разбираться в граблях и особенностях, иметь его неработающим месяцами и nobody cares . Я не планирую в свои старшие годы становиться зашоренным коболистом-консерватором, который всю жизнь писал кобол и больше ничего, и все новинки для него «чушь и ерунда». А вот мой досточтимый воображаемый конкурент, когда IPv6 станет продакт-реальностью, будет либо мне не конкурентом, либо мучительно и в состоянии дистресса разбираться с DAD, RA, temporary dynamic addresses и прочими странными вещами, которым посвящено 30+ RFC. А что IPv6 станет основным протоколом ещё при моей жизни — это очевидно, так как альтернатив нет (даже если бы они были, их внедрение — это количество усилий бОльшее, чем завершение внедрения IPv6, то есть любая альтернатива всегда будет отставать). И что адреса таки заканчиваются видно, по тому, как процесс управления ими перешёл во вторую стадию — стадию вторичного рынка

Когда свободные резервы спекуляций и хомячаяния адресов закончится, начнётся этап суровой консолидации — то есть выкидывание всего неважного с адресов, перенос всех «на один адрес» и т.д. Примерно в это время IPv6 начнёт использоваться для реальной работы.

Впрочем, рассказ не про будущее IPv6, а про практику работы с ним. В Санкт-Петербурге есть такой провайдер — Tierа. И я их домашний пользователь. Это один из немногих провайдеров, или, может быть, единственный в городе, кто предоставляет IPv6 домашним пользователям. Пользователю выделяется один IPv6 адрес (для маршрутизатора или компьютера), плюс /64 сетка для всего остального (то есть в четыре миллиарда раз больше адресов, чем всего IPv4 адресов быть может — и всё это в одни руки). Я попробую не просто описать «как настроить IPv6», но разобрать базовые понятия протокола на практических примерах с теоретическими вставками.

Структура сети:(Оригиналы картинок: github.com/amarao/dia_schemes)

  • 1, 2, 3 — устройства в локальной сети, работают по WiFi
  • 4 — WiFi-роутер, принужденный к работе в роле access point (bridge), то есть коммутатора между WiFi и LAN
  • 5 — eth3 сетевой интерфейс, который раздаёт интернет в локальной сети
  • 6 — мой домашний компьютер (основной) — desunote.ru/, который раздачей интернета и занимается, то есть работает маршрутизатором
  • 7 — eth2, интерфейс подключения к сети Tiera

Я пропущу всю IPv4 часть (ничего интересного — обычный nat) и сконцентрируюсь на IPv6.

Полученные мною настройки от Tiera для IPv6:

  1. Адрес 2a00:11d8:1201:0:962b:18:e716:fb97/128 мне выдан для компьютера/шлюза
  2. Сеть 2a00:11d8:1201:32b0::/64 мне выдана для домашних устройств

У провайдера сеть 2a00:11d8:1201:32b0::/64 маршрутизируется через 2a00:11d8:1201:0:962b:18:e716:fb97 (то есть через мой компьютер). Заметим, это всё, что я получил. Никаких шлюзов и т.д. — тут начинается магия IPv6, и самое интересное. «Оно работает само».

Начнём с простого: настройка 2a00:11d8:1201:0:962b:18:e716:fb97 на eth2 для компьютера. Для удобства чтения все конфиги и имена файлов я оставлю на последнюю секцию.

Мы прописываем ipv6 адрес на интерфейсе eth2… И чудо, он начинает работать. Почему? Каким образом компьютер узнал, куда надо слать пакеты дальше? И почему /128 является валидной сетью для ipv6? Ведь /128 означает сеть размером в 1 ip-адрес и не более. Там не может быть шлюза!

Для того, чтобы понять, что происходит, нам надо взглянуть на конфигурацию сети (я вырежу всё лишнее, чтобы не пугать выводом):

# (обычно сокращают до )eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 (skip) inet6 2a00:11d8:1201:0:962b:18:e716:fb97/128 scope global valid_lft forever preferred_lft forever inet6 fe80::218:e7ff:fe16:fb97/64 scope link valid_lft forever preferred_lft forever

Упс. А почему у нас на интерфейсе два адреса? Мы же прописывали один? Наш адрес называется ‘scope global’, но есть ещё и ‘scope link’…

Privacy extension

Как я уже упомянул выше, автоматическое конфигурирование IPv6-адреса на основе MAC-адреса сетевого адаптера хорошо всем, кроме того, что создаёт практически идеальное средство для отслеживания пользователей в сети. Вы можете брать любые браузеры и операционные системы, использовать любых провайдеров (использующих IPv6, так что это всё пишется с прицелом на будущее) — но у вас будет один и тот же MAC-адрес, и любой гугуль, NSA или просто спамер смогут вас отслеживать по младшим битам вашего IPv6 адреса. Старшие будут меняться в зависимости от провайдера, а младшие сохраняться как есть.

Для решения этой проблемы были придуманы специальные расширения для IPv6, называющиеся privacy extensions (RFC 4941). Как любое RFC, его чтение — это обычно признак отчаяния, так что по сути этот стандарт описывает как с помощью шаманства и md5 генерировать случайные автоконфигурируемые адреса.

Как это работает?

Хост, в нашем случае обычная убунта на обычном ноутбуке, генерирует штатным образом IPv6 адрес из анонса маршрутизатора. После этого она придумывает себе другой адрес, проверяет, что этот адрес не является зарезервированным (например, нам так повезло, и md5 хеш сгенерировал нам все нули — вместо того, чтобы трубить об этом на всех углах, этот изумительный md5 хеш будет выкинут и вместо него будет взят следующий), и, главное, проверяет, что такого адреса в сети нет. Для этого используется штатный механизм DAD (см ниже). Если всё ок, то на интерфейс назначается новосгенерированный случайный адрес, и именно он используется для общения с узлами Интернета. Хотя наш ноутбук с тем же успехом ответит на пинг и по основному адресу.

Этот адрес периодически меняется и он же меняется при подключении к другим IPv6-сетям (и много вы таких знаете в городе?.. вздох ). В любом случае, даже если мы намертво обсыпаны куками и отпечатками всех браузеров, всё-таки маленький кусочек сохраняемой приватности — это лучше, чем не сохраняемый кусочек.

Что произойдёт если клиент с IPv4 попытается получить доступ к серверу, работающему только на IPv6

Вопрос:

Привет! В статье говорится что IPv6 это совсем другой протокол, у меня возник вопрос. Если у моего получателя электропочта работает только на IPv6 (то есть его почтовый сервер слушается только через протокол IPv6) значит ли это то, что отправляя письмо с почтового сервера, который подключён только на IPv4, письмо попросту не дойдёт получателю, то есть мне придётся выбрать какой-то почтовый сервис почтовый сервер которого работает и с IPv6 и IPv4 чтобы мой друг смог прочесть моё письмо?

Ответ:

Рассмотренная ситуация, когда один сервер имеет только IPv4 адрес, а второй сервер имеет только IPv6 адрес, является сугубо теоретической. Интернет-провайдеры, который используют IPv6 и предоставляют клиентам IPv6 адреса, одновременно с этим предоставляют и IPv4 адреса.

К примеру, данный роутер подключён к Интернет-провайдеру с поддержкой IPv6. Тем не менее, у роутера IP адреса двух типов:

  • 10.241.24.29
  • 2001:fb1:fc0:135:20e8:31d0:4821:6624

Мой компьютер подключён к этому роутеру, поэтому у него тоже IP адреса двух типов:

  • 192.168.1.58
  • 2001:fb1:139:20d8:82c0:cb25:b750:24d4

Обратите внимание, что IPv4 и IPv6 настолько отдельные сети, что для IPv6 на роутере установлен свой собственный IP DNS сервера – 2001:fb0:100::207:49.

Сказанное справедливо и для хостинг провайдеров. Вы можете знать, что в РФ Интернет-провайдеры не поддерживают IPv6. Но при этом хостинг провайдеры поддерживают IPv6 уже очень давно (к примеру, я настраивал IPv6 для SuIP.biz ещё в 2016, при этом к одному арендованному VPS серверу прилагался один бесплатный IPv4 и 3 бесплатных IPv6).

Вы можете поискать веб-сайты с поддержкой IPv6 и посмотреть их DNS записи — вы убедитесь, что всегда кроме AAAA записи (IPv6 адрес сайта) также присутствует A запись сайта (IPv4 адрес сайта).

То есть да, если один из компьютеров (клиент или сервер1) подключён только к IPv4 сети, а второй компьютер (сервер или сервер2) подключён только к IPv6 сети, то теоретически между ними просто невозможно построить сетевой маршрут от первого до второго. Но на практике такой проблемы не возникает просто по той причине, что абсолютно все клиенты и серверы поддерживают IPv4, а некоторые ещё и поддерживают IPv6. То есть всевозможные комбинации работают по одному из следующему варианту:

  • клиент и сервер поддерживают IPv6 — используется IPv6
  • клиент поддерживает IPv6, а сервер не поддерживает IPv6 — используется IPv4
  • клиент не поддерживает IPv6, а сервер поддерживает IPv6 — используется IPv4
  • клиент не поддерживает IPv6 и сервер не поддерживает IPv6 — используется IPv4

Тем не менее, можно изолировать сервер с поддержкой IPv6 от IPv4 сети, об этом я и говорю в разделе «».

Короче говоря: IPv4 и IPv6 это две разные сети, хоть они и работают на одних и тех проводах и на одном и том же оборудовании.

Если вам интересна конкретная ошибка, то при попытке открыть сайт с поддержкой только IPv6 с клиента с поддержкой только IPv4 возникает ошибка «Network is unreachable», то есть Сеть недоступна/недостижима.

Ещё один пример ошибки: если попытаться выполнить следующую команду из сети с поддержкой IPv6:

sudo nmap -6 suip.biz

то будет выполнено сканирование хоста suip.biz.

Если же выполнить эту же самую команду из сети без поддержки IPv6, то будет выведена ошибка: «setup_target: failed to determine route to suip.biz (2a02:f680:1:1100::3d60)», то есть «не удалось определить маршрут к suip.biz».

Преимущества протокола IPv6

На самом деле, ничего плохого в исчерпании IPv4-адресов нет. Четырехбайтные адреса продолжат работать в паре с новым протоколом, IPv6.

Еще в 2008 году Google начала постепенное внедрение IPv6 внутри компании. По итогам тестирования нового протокола 6 июня 2012 года был анонсирован Всемирный запуск IPv6. Крупнейшие провайдеры, такие как AT&T, Internode и XS4ALL гарантировали включение IPv6 как минимум для 1% своих абонентов. Обязательная поддержка IPv6 указана в спецификации LTE, а вендоры сетевого оборудования используют новый протокол в качестве протокола по умолчанию.

Немаловажный аспект IPv6 — это размер адресного пула. По некоторым подсчетам, он сможет обеспечить выдачу до 5*1028 уникальных IP-адресов на каждого жителя Земли. Кроме того, из протокола изъяты некоторые функции, необоснованно усложняющие маршрутизацию. Среди них:

  • Фрагментирование пакетов больше не требуется, но поддерживается как опция.
  • IP-заголовок не содержит контрольной суммы, так как протоколы TCP, UDP и Ethernet уже имеют собственные контрольные суммы.

К плюсам протокола можно отнести следующее:

  • Поддержка пакетов большого размера (до 4 гб).
  • Введены метки потоков и классификация трафика.
  • Многоадресное вещание.

Пожалуй, единственным недостатком для простого пользователя станет большая сложность запоминания IPv6-адреса в сравнении с его предшественником.

Как настроить 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),

Цели создания IPv6

Может возникнуть вопрос, зачем нужен еще один протокол сетевого уровня, если уже есть протокол IPv4, который работает хорошо. Проблема протокола IPv4 заключается в нехватке IP адресов. Длина IP адресов в протоколе IPv4 — 4 байта, то есть максимальное количество адресов IPv4 примерно 4,3 миллиарда. Когда протокол создавался это было большое количество IP адресов, но сейчас, когда интернет стал очень популярной сетью, стало понятно, что 4 миллиарда адресов это не так уж и много.

Для сравнения, население Земли сейчас составляет более, чем 7 миллиардов, при этом многие люди используют не одно устройство, а несколько, это может быть ноутбук, планшет, смартфон, умные часы и многое другое.

Также, необходимо учитывать сервер и сетевое оборудование в инфраструктуре интернет и сетевых сервисов, а такие технологии, как интернет вещей еще больше увеличивают требования к количеству IP адресов.

Количество доступных адресов IPv4 стремительно сокращается, последний крупный блок адресов IPv4 класса А, был выдан в 2011 году, и уже близко то время, когда какая-то компания или человек захотят подключиться к интернет, но не смогут этого сделать, из-за того что им не хватит адреса IPv4.

Было предложено несколько временных решений, проблемы нехватки IP адресов, которые оказались достаточно успешными. Самые популярные это технология трансляции сетевых адресов NAT, эта технология позволяет подключиться к сети интернет используя всего лишь один IP адрес, сеть, состоящую из большого количества устройств с использованием частных или приватных IP адресов.

Также справиться с проблемой нехватки IP адресов помогла технология бесклассовой междоменной маршрутизации (Classless Inter-Domain Routing, CIDR), которая обеспечила возможность использовать маски переменной длины, и распределять IP адреса блоками разной длины, а не классами A, B и C как было раньше.

Протокол IPv6 создан для долговременного решения проблемы нехватки IP адресов. Для этого длина IP адресов в протоколе IPv6 увеличена до 16 байт, количество IP адресов в протоколе IPv6 — 3,4*1038. Такого количества IP адресов хватит, для того чтобы подключить к интернету все устройства, как сейчас так и в достаточно далеком будущем.

Также при разработке IPv6 постарались упростить протокол, для того чтобы маршрутизаторы могли обрабатывать пакеты  IPv6 быстрее, и обеспечили возможность защиты данных с помощью шифрования.

IPv6 считается новым протоколом, однако работа над ним началась еще в 1990 году, когда впервые задумались о возможной проблеме исчерпания адресов IPv4. Первый вариант стандарта протокола IPv6 был принят в документе RFC 1883 в 1995 году, а действующий стандарт протокола IPv6 документ RFC 2460 был принят в 1998 году. Таким образом протоколу IPv6 уже больше 20 лет, и новым его можем называть только по сравнению с протоколом IPv4.

Протокол IPv4 в эталонной модели сетевого взаимодействия OSI 7

Модель OSI описывает общие принципы взаимодействия сетевых устройств по иерархическому признаку, состоящему из семи уровней: физического, канального, сетевого, транспортного, сеансового, представления, прикладного.

 

Как видим, протокол интернета TCP/IPv4 относится к третьему по счету уровню, сетевому. На этом уровне модели OSI происходит формирование оптимальных маршрутов и путей передачи данных между устройствами с учетом нагрузки на узлы сети. Здесь же происходит процесс трансляции – преобразования логических сетевых адресов в физические и наоборот. На программно-физическом уровне эту задачу выполняют роутеры, установленные у провайдеров и в конечной точке подключения интернета. Каждый уровень взаимодействует с верхним и нижним в обе стороны, выполняя определенную функцию обработки и передачи данных. Так третий уровень модели OSI, получив закодированную информацию от четвертого, делит ее на фрагменты, добавляя служебную информацию, и передает на второй уровень. Либо наоборот, при поступлении данных со второго сегмента на сетевом уровне происходит обработка и объединение пакетов, их передача на вышестоящий по иерархической цепочке модели OSI.

Данную модель не зря называют идеальной, так как она описывает общие принципы сетевого взаимодействия. На момент ее появления весь мир уже активно использовал стек протоколов IPv4. Причем модель TCP/IP более точно и правильно описывает существующие процессы передачи данных по сетям взаимодействия.  

Любопытно. Разделением и присвоением IP-адресов занимаются четыре некоммерческих организации, разделенные по региональному принципу: RIPE NCC отвечает за Европу, ARIN действует на территории Америки, APNIC – в Азии и Тихоокеанском регионе, LACNIC – в Латинской Америке и на Карибах. Причем Россию отнесли в данной классификации к европейской RIPE. На самом деле полномочия выдачи ip-адресов делегированы локальным интернет-регистраторам (LIR), коими являются наиболее крупные провайдеры. Именно они работают с конечными пользователями в этом вопросе, в том числе финансово содержат вышестоящего регистратора за счет роялти.

Часть первая: scope

Тут нас встречает первая особенность IPv6 — в нём определено понятие ‘scope’ (область видимости) для адреса. Есть следующие виды scope:

  • global — «обычный» адрес, видимый всему Интернету
  • local или link-local — адрес, видимый только в пределах сетевого сегмента. Ближайшим аналогом этого является configless IPv4 из диапазона 169.254.0.0/16, на который сваливается любая windows, которой сказали автоматически получить адрес, а DHCP-сервера вокруг нет. Эти адреса не могут быть маршрутизируемы (то есть тарфик с них не передаётся дальше своей сети). Подробнее про link-local address (wiki).
  • host, он же interface — видимость в пределах хоста. Примерный аналог — loopback адреса для IPv4 (127.0.0.0/8)
  • admin-local — в живую не видел, но какая-то промеждуточная стадия
  • site-local — видимость в пределах офиса. Аналог серых 192.168.0.0/16, то есть адреса, которые не должны выходить за пределы локальной сети
  • organization-local — адреса, которые не выходят за пределы организации.

В процессе проектирования IPv6 вопрос ‘scope’ много и тщательно обсуждался, потому что исходное деление IPv4, даже с последующими дополнениями, явно не соответствовало потребностям реальных конфигураций. Например, если у вас объединяются две организации, в каждой из которых используется сеть 10.0.0.0/8, то вас ждёт множество «приятных» сюрпризов. В IPv6 решили с самого начала сделать множество градаций видимости, что позволило бы более комфортно осуществлять дальнейшие манипуляции.

Из всего этого на практике я видел использование только host/interface, link/local и global. В свете /64 и пусть никто не уйдёт обиженным, специально возиться с site-local адресами будет только параноик.

Второй важной особенностью IPv6 является официальное (на всех уровнях спецификаций) признание того, что у интерфейса может быть несколько IP-адресов. Этот вопрос в IPv4 был крайне запутан и часто приводил к ужасным последствиям (например, запрос получали на один интерфейс, а отвечали на него через другой, но с адресом первого интерфейса)

Так как в отличие от IPv4 у IPv6 может быть несколько адресов на интефрейсе, то компьютеру не нужно выбирать «какой адрес взять». Он может брать несколько адресов. В случае IPv4 сваливание на link-local адрес происходило в режиме «последней надежды», то есть по большому таймауту.

А в IPv6 мы можем легко и просто с самого первого момента, как интерфейс поднялся, сделать ему link local (и уже после этого думать о том, какие там global адреса есть).

Более того, в IPv6 есть специальная технология автоматической генерации link-local адреса, которая гарантирует отсутствие дублей. Она использует MAC-адрес компьютера для генерации второй (младшей) половинки адреса. Поскольку MAC-адреса уникальны хотя бы в пределах сегмента (иначе L2 сломан и всё прочее автоматически не работает), то использование MAC-адреса даёт нам 100% уверенность в том, что наш IPv6 адрес уникален.

В нашем случае это

Обратите внимание на префикс — fe80 — это link-local адреса.. Как он делается?

Как он делается?

Принцип довольно простой:

MAC-адрес eth2 — это 00:18:e7:16:fb:97, а локальный адрес ipv6 — F80:000218:e7ff:fe16:fb97. Да-да, именно так, как выделено жирным. Зачем было в середину всобачивать ff:fe — не знаю. Сам алгоритм называется . Сам этот алгоритм очень мотивирован и полон деталей. С позиции системного администратора — пофигу. Адрес есть и есть. Интересным может быть, наверное, обратный алгоритм — из link-local узнать MAC и не более.

Итак, у нас на интерфейсе два адреса. Мы даже знаем, как появились они оба (один автоматически при подъёме интерфейса, второй прописали мы). Мы даже знаем, как система поняла, что адрес глобальный — он из «global» диапазона.

Но каким образом система узнала про то, кто его шлюз по умолчанию? И как вообще может жить /128?

Используется ли IPv6?

У меня обычный домашний компьютер. Чуть-чуть raid, LVM XFS, BTRFS, LUCKS, свой почтовый и веб-сервера, dns-сервер и т.д. Я подключен к обычному домашнему провайдеру с IPv6.

Вот статистика использования интернета за четыре дня. Собиралась она простым способом:iptables -t filter -A INPUT ip6tables -t filter -A INPUT (смотреть счётчики — iptables -L -v, и ip6tables -L -v)

И вот какая она получилась:

  • 4.5% (2.7 Гб) IPv6
  • 95.5% (59 Гб) — представители прочих, устаревающих, версий IP

Таким образом, IPv6 занимает второе место по распространённости в Интернете (если Майкрософту с виндофонами так желтить можно, почему мне нельзя?).

Если серьёзно, то столь значительные достижения IPv6 (только представьте себе — почти гигабайт трафика в день) большей частью объясняются ютубом и прочими сервисами гугла. Ещё небольшую долю IPv6 принёс пиринг, причём там львиная доля людей — это всякие туннели и teredo (то есть ненастоящие IPv6, использующиеся от безысходности).

С другой стороны, этот показатель почти в три раза больше моего прошлого замера (полтора года назад), когда доля IPv6 едва-едва переваливала за полтора процента.

Как работает IPv6

По умолчанию сетевой присваивается link-local адрес (fe80::/10), ну а затем хост используя этот адрес отправляет в сеть групповой ICMPv6-запрос — Router Solicitation — для поиска роутера.
Если роутер в сети есть, то он ответит хосту ICMPv6-сообщением — Router Advertisement. В ответе помимо IPv6-префикса сети могут так же присутствовать адрес шлюза, адреса DNS-серверов, MTU и пр. Затем, если на роутере запущен DHCPv6-сервер, то далее все пройдет как в случае обычного DHCP-сервера — интерфейсу присвоется адрес, маска, шлюз и DNS-серверы.
Если DHCP-сервера нет, то наш узел сам себе присвоит адрес с использованием этого префикса и своего физического MAC-адреса. Так же добавляется маршрут по умолчанию на найденный роутер.

Понравилась статья? Поделиться с друзьями:
ПоватТех
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: