headermask image

Notice: Undefined variable: t in /var/www/user97185/data/www/system-administrators.info/yandex-ad.php on line 15

Notice: Undefined variable: r in /var/www/user97185/data/www/system-administrators.info/yandex-ad.php on line 15
Рекомендую: Фриланс-биржа | Кэшбэк-сервис | Интернет-бухгалтерия

IPv6, часть 3

Специальные адреса

Есть ряд адресов, которые имеют особое значение в IPv6:

Локальные адреса:

  • ::/128 – адрес со всеми нулями является неопределенным адресом, и будет использоваться только в программном обеспечении.
  • ::1/128 – адрес внутренней петли («loopback») localhost. Если узел посылает пакеты на этот адрес, IPv6 стек циклично возвращает эти пакеты обратно тому же узлу (соответствует 127.0.0.1 в IPv4).
  • fe80::/10 – локальный префикс, указывает, что адрес является действительным только внутри местной физической сети. Это аналог автоконфигурации IP адреса 169.254.0.0/16 в IPv4.

Местные адреса:

  • fc00::/7 – уникальные локальные адреса (unique local addresses, ULA) являются маршрутизируемыми только в рамках набора взаимодействующих сайтов. Они были определены в RFC 4193 в качестве замены для локальных адресов. Адреса включает 40-битное псевдослучайне число, что позволяет свести к минимуму риск конфликтов при объединении сайтов и потерь пакетов.

IPv4

  • ::ffff:0:0/96 – это префикс используется для подключаемых адресов IPv4.
  • 2001::/32 – используется для Teredo-туннелей.
  • 2002::/16 – это префикс используется для 6to4-адресации.

Групповые:

  • ff00::/8 – многоадресный префикс используется широковещания, как это определено в ” IP Version 6 Addressing Architecture” (RFC 4291).

Используемые в примерах, не рекомендуюмые или устаревшие:

  • ::/96 – нулевой префикс, используется для IPv4-совместимых адресов, но в настоящее время устарел.
  • 2001:db8::/32 – это префикс используется в документации (RFC 3849). Везде, где приводятся примеры IPv6-адресов, следует использовать адреса этого диапазона.
  • fec0::/10 – местный префикс, указывает, что адрес является действительным только внутри сети организации. Не используется с сентябре 2004 года (RFC 3879) и системы не должны поддерживать этот особый тип адреса.

ORCHID:

  • 2001:10::/28 – относится к ORCHID (Overlay Routable Cryptographic Hash Identifiers) согласно (RFC 4843). Это немаршрутизируемые IPv6-адреса, используемые для криптографических хэш-идентификаторов.

IPv6-пакеты и индексы зон

IPv6-пакет, состоит из двух основных частей: заголовка и “полезной нагрузки”.

Заголовок находится в первых 40 октетах (320 бит) в пакете и содержит поля:

  • Версия – версии IP (4 бита).
  • Класс трафика – приоритет пакета (8-бит). Существует два класса: где источник обеспечивает контроль и где источник не обеспечивает контроль трафика.
  • Метка потока – QoS-менеджмент (20 бит). Первоначально был создан для предоставления специальных сервисов в реальном времени, но в настоящее время не используется.
  • Длина полезной нагрузки – длина полезной нагрузки в байтах (16 бит). Если заполнена нулями, значит используется Jumbo payload.
  • Следующий заголовок – определяет следующий инкапсулированный протокол. Значения, совместимы с теми, что определенны для протокола IPv4 (8 бит).
  • Лимит скачков – заменяет поле time to live в IPv4 (8 бит).
  • Источник и адрес назначения – 128 бит каждый.

Полезная нагрузка может быть размером до 64 Kб в стандартном режиме, или большего размера в Jumbo payload режиме.

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

Поле “Протокол” из IPv4 заменяется на поле “Следующий заголовок”. Это поле, как правило, определяет уровень транспортного протокола, используемого в “полезной нагрузке”.

Так же это поле может задавать дополнительные заголовки, которые следуют за основными.

Индексы зоны

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

Например, хост имеет два интерфейса, которые автоматически получают локальные адреса: fe80::1/64 и fe80::2/64, только один из которых подключен к той же физической сети в качестве принимающей стороны, которая имеет адрес fe80::3/64. Если хост попытается связаться с fe80::3 как он узнает, какой интерфейс (fe80::1 или fe80: 2) следует использовать?

Решение определено в RFC 4007 и представляет собой добавление уникальных индексов зоны для местных интерфейсов. Текстуально оно может представлено в виде <address>%<zone_id>, например: http://[fe80::1122:33ff:fe11:2233%eth0]:80/. Однако это вызывает новые проблемы из-за похожести на %-кодировку URI.

  • Microsoft Windows IPv6-стек использует цифровые идентификаторы зоны: fe80::3%1
  • BSD-приложения, как правило, используют имя интерфейса в качестве зоны: fe80::3%pcn0
  • Linux-приложения, как правило, тоже используют имя интерфейса в качестве зоны ID: fe80:: 3%eth0, хотя GNU/Linux утилиты конфигурации сетевого интерфейса, такие как ifconfig и iproute2, не показывают индексы зоны.

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

Постовой

Недавно ездил на родину в Тверскую область. Соблазнили на экскурсию в город Бежецк. Очень понравилось, все же в этих старых небольших городах есть какой то свой неповторимый дух. Рекомендую всем…