IPv6
Материал из Xgu.ru
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.
Подробнее:
- One Step Closer to IPv6 (англ.)
- Корневые DNS серверы доступны по IPv6 — новость на OpenNet
[править] IPv6 в Cisco
- Основная страница: IPv6 в Cisco
|
---|