IPv6

Материал из Xgu.ru

Перейти к: навигация, поиск
stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.

Если вы считаете, что её стоило бы доработать как можно быстрее, пожалуйста, скажите об этом.


IPv6 — протокол сетевого уровня, который постепенно приходит на смену IPv4, основному протоколу сетевого уровня в Интернете в настоящий момент.

Содержание

[править] Адресация в IPv6

[править] Типы адресов

  • Unicast:
    • Идентифицирует конкретный интерфейс в сети.
    • Пакет, отправленный на такой адрес, будет доставлен на этот интерфейс.
    • В IPv6 есть несколько типов unicast адресов:
      • Global unicast
      • Link-local (FE80::/10)
      • Unique local unicast (FC00::/7)
  • Anycast:
    • Присваиваются группе интерфейсов, которые обычно принадлежат различным устройствам.
    • Пакет, отправленный на anycast адрес, доставляется одному участнику группы интерфейсов, обычно ближайшему с точки зрения маршрутизатора (маршрутизатор использует метрику протоколов маршрутизации для того чтобы определить ближайший интерфейс).
    • Формат unicast и anycast адресов одинаковый.
    • Адреса anycast используют маршрутизаторы.
    • Anycast-адрес не должен использоваться в качестве адреса отправителя в IPv6-пакете.
  • Multicast:
    • Идентифицируют группу интерфейсов, которые обычно принадлежат различным устройствам.
    • Пакет, отправленный на такой адрес, будет доставлен всем интерфейсам в группе.
    • У multicast адресов префикс FF00::/8.

На интерфейсе IPv6:

  • Может быть назначено несколько адресов различных типов
  • На каждом интерфейсе должен быть хотя бы один loopback (::1/128) и один link-local адрес

[править] Unicast адреса

[править] Unspecified

  •  ::/128 — адрес состоящий из всех нулей называется unspecified адрес.
  • Используется, например, при инициализации хоста, перед тем как хост выучит свой адрес, в качестве адреса отправителя. Пакет в котором в адресе отправителя указан unspecified адрес не должен передаваться маршрутизатором.
  • Unspecified адрес не должен использоваться как адрес получателя.

[править] Link local

  • FE80::/10 — адрес, который используется только в пределах одного линка.
  • Link-local адреса используются для адресации линка для таких механизмов как автоматическая настройка адреса, обнаружение соседей, при отсутствии маршрутизатора.
  • Маршрутизаторы не должны передавать в другой сегмент пакеты в которых адрес отправителя или получателя link-local.

[править] Global Unicast

[править] Anycast адреса

IPv6 определяет новый тип адреса, называемых anycast. Anycast адрес определяет список узлов или устройств. Пакет, посланный к такому адресу, доставляется на ближайший интерфейс. Anycast адреса синтаксически неотличимы от адресов Global unicast, потому что Anycast адреса выделяются из адресного пространства Global unicast.

[править] Multicast адреса

Multicast адреса идентифицируют группу интерфейсов, которые обычно принадлежат различным устройствам. Пакет, отправленный на такой адрес, будет доставлен всем интерфейсам в группе. Интерфейс может принадлежать любому количеству multicast групп.

Multicast адреса не должны использоваться как адрес отправителя в пакетах IPv6.

Маршрутизаторы не должны передавать любой multicast пакет за границы, указанные в поле scop в multicast адресе получателя.

Хосты не должны отправлять пакеты с multicast адресом с полем scop равным 0. Если такой пакет получен, то он должен быть отброшен (без оповещений).

[править] Формат multicast адреса

У multicast адреса такой формат:

   |   8    |  4 |  4 |                  112 bits                   |
   +------ -+----+----+---------------------------------------------+
   |11111111|flgs|scop|                  group ID                   |
   +--------+----+----+---------------------------------------------+
  • Первые 8 бит единиц адреса указывают, что это multicast адрес. У multicast адресов префикс FF00::/8.
  • flgs — это 4 бита (0RPT), которые устанавливают флаги:
    • 0 — этот бит зарезервирован и должен быть выставлен в 0;
    • R — использование этого флага описано в RFC3306;
    • P — использование этого флага описано в RFC3956;
    • T:
      • T = 0 — указывает, что адрес присвоен IANA перманентно ("well-known"),
      • T = 1 — указывает, что адрес присвоен временно (присвоен "transient" или "dynamically")
  • scop — это 4 бита, которые указывают значение границ распространения (scope) multicast группы:
    • 0, 3, F — зарезервировано;
    • 6-7, 9-D — не присвоено — могут быть использованы для определения дополнительных multicast регионов;
    • 1 — Interface-Local scope — перекрывает только один интерфейс хоста и используется только для локальной (loopback) передачи multicast;
    • 2 — Link-Local scope — передается в тех же пределах, что и соответствующий диапазон unicast;
    • 4 — Admin-Local scope — адреса, которые должны административно настраиваться;
    • 5 — Site-Local scope — предназначены для передачи в пределах одного участка (site);
    • 8 — Organization-Local scope — предназначены для передачи через несколько участков одной организации;
    • E — Global scope.
  • group ID — идентифицирует multicast группу, перманентную или временную, в указанных границах. Дополнительная информация о структуре этого поля в RFC3306.

[править] Предопределенные multicast адреса

Multicast адреса описанные в этом разделе предопределены (RFC4291). Идентификаторы группы (group ID) этих адресов определены для конкретных границ распространения адресов.

Использование перечисленных идентификаторов групп с другими значениями границ распространения, с флагом T=0, не разрешено.

[править] Зарезервированные

Зарезервированные multicast адреса — перечисленные адреса зарезервированы и не должны использоваться в качестве адреса какой-либо multicast группы

FF00:0:0:0:0:0:0:0
FF01:0:0:0:0:0:0:0
FF02:0:0:0:0:0:0:0
FF03:0:0:0:0:0:0:0
FF04:0:0:0:0:0:0:0
FF05:0:0:0:0:0:0:0
FF06:0:0:0:0:0:0:0
FF07:0:0:0:0:0:0:0
FF08:0:0:0:0:0:0:0
FF09:0:0:0:0:0:0:0
FF0A:0:0:0:0:0:0:0
FF0B:0:0:0:0:0:0:0
FF0C:0:0:0:0:0:0:0
FF0D:0:0:0:0:0:0:0
FF0E:0:0:0:0:0:0:0
FF0F:0:0:0:0:0:0:0
[править] All Nodes

All Nodes адреса — идентифицируют группу всех IPv6 хостов, с границей 1 (interface-local) или 2 (link-local):

FF01:0:0:0:0:0:0:1
FF02:0:0:0:0:0:0:1
[править] All Routers

All Routers адреса — идентифицируют группу всех IPv6 маршрутизаторов, с границей 1 (interface-local), 2 (link-local) или 5 (site-local):

FF01:0:0:0:0:0:0:2
FF02:0:0:0:0:0:0:2
FF05:0:0:0:0:0:0:2
[править] Solicited-node multicast

Solicited-node multicast адрес вычисляется из unicast и anycast адресов хоста. У всех адресов одинаковый префикс FF02::1:FF00:0/104. К указанному префиксу добавляются 24 low-order бита адреса (unicast или anycast), в результате solicited-node multicast адрес может быть в диапазоне от FF02:0:0:0:0:1:FF00:0000 до FF02:0:0:0:0:1:FFFF:FFFF.

Хост должен вычислить и присоединиться (на соответствующем интерфейсе) ко всем solicited-node multicast адресам, полученных из всех unicast и anycast адресов, которые настроены на интерфейсах хоста (вручную или автоматически).

Solicited-node multicast адреса используются протоколом обнаружения соседей — Neighbor Discovery (ND или NDP).

[править] Обязательные адреса

[править] Обязательные адреса для хоста

Хост должен распознавать следующие адреса, как адреса которые его идентифицируют:

  • Link-local адрес для каждого интерфейса;
  • Любой дополнительный unicast или anycast адрес, который был настроен на интерфейсе хоста (вручную или автоматически);
  • loopback адрес;
  • All-Nodes multicast адрес;
  • Solicited-Node multicast адрес для каждого из настроенных unicast или anycast адресов;
  • Multicast адреса для любых других групп к которым принадлежит хост.

[править] Обязательные адреса для маршрутизатора

Маршрутизатор должен распознавать все адреса, которые должен распознавать хост, плюс следующие, как адреса которые его идентифицируют:

  • Subnet-Router Anycast адрес для всех интерфейсов, для которых он настроен для работы в качестве маршрутизатора;
  • Любые другие Anycast адреса, которые настроены на маршрутизаторе;
  • All-Routers multicast адрес.

[править] Специальные адреса

Некоторые адреса (например, перечисленные в rfc5156 и списке IANA) имеют специальное назначение и их применение должно быть обосновано.

  • 2001:7f8::/32 - для раздачи блоков точкам обмена интернет-трафиком (ripe-510);
  • 2001:678::/29 - для раздачи /48 корневым службам (ripe-510);
  • 2001:0::/32 - для клиентов Teredo (rfc4380);
  • 2001:db8::/32 - документирование и примеры (rfc3849);
  • 2002::/16 - реализация 6to4 (rfc3056);
  • 64:ff9b::/96 - реализация NAT64 (rfc6052);
  •  ::FFFF:0:0/96 - отображение для IPv4-адресов (rfc5156);

[править] Протокол обнаружения соседей (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

[править] DNS и IPv6

С 6 февраля 2008 года некоторые (6 из 13) корневые серверы DNS стали доступны по IPv6.

Подробнее:

[править] IPv6 в Cisco

Основная страница: IPv6 в Cisco
Источник — «http://xgu.ru/wiki/IPv6»