Многоадресная рассылка уменьшает трафик, позволяя узлу отправлять один пакет выбранной группе узлов, которые подписаны на группу многоадресной рассылки.
Для многоадресной рассылки в протоколе IPv4 зарезервированы адреса от 224.0.0.0 до 239.255.255.255.
Групповые IPv4-адреса от 224.0.0.0 до 224.0.0.255 зарезервированы для многоадресной рассылки в пределах локальной сети.
Эти адреса используются для групп многоадресной рассылки в локальной сети. Маршрутизатор, подключенный к локальной сети, распознает, что эти пакеты адресованы локальной группе многоадресной рассылки, и не пересылает их дальше. Обычно зарезервированные локальные адреса применяются в протоколах маршрутизации с помощью многоадресной передачи для обмена данными маршрутизации. Например, адрес 224.0.0.9 зарезервирован для протокола маршрутизации (Routing Information Protocol, RIP) версии 2 для обмена данными с другими маршрутизаторами RIPv2.
Узлы, которые получают конкретные многоадресные данные, называются клиентами многоадресной рассылки.
Клиенты многоадресной рассылки используют сервисы, запрошенные программой клиента для подписки на группу многоадресной рассылки.
Каждая группа многоадресной рассылки представлена одним групповым IPv4-адресом назначения. Когда IPv4-узел подписывается на группу многоадресной рассылки, он обрабатывает пакеты, адресованные на этот групповой адрес, а также пакеты, адресованные на его уникальный индивидуальный адрес.
IPv4-адреса специального назначения
Некоторые адреса (например, сетевые и широковещательные) нельзя назначать узлам. Также есть особые адреса, которые можно назначать узлам, но с ограничениями способов взаимодействия этих узлов в сети.
- Адреса loopback (127.0.0.0 /8 или от 127.0.0.1 до 127.255.255.254): чаще определяются как только один адрес 127.0.0.1 — это особые адреса, которые используют узлы, чтобы направлять трафик самим себе. Например, они могут использоваться узлом, чтобы проверить работоспособность конфигурации TCP/IP, как показано на рисунке. Посмотрите, как адрес loopback 127.0.0.1 отвечает на эхо-запрос. Также обратите внимание, как любой адрес в этом блоке адресов возвращает пакет на локальный узел (например, см. процесс отправки второй команды ping на рисунке).
- Локальные адреса канала (169.254.0.0 /16 или от 169.254.0.1 до 169.254.255.254) более известны как адреса, назначаемые посредством автоматического назначения частных IP-адресов (Automatic Private IP Addressing, APIPA). Они используются клиентом Windows DHCP для самостоятельной конфигурации в случае, если ни один DHCP-сервер не доступен. Подходят для небольшой одноранговой сети.
- Адреса TEST-NET (192.0.2.0/24 или от 192.0.2.0 до 192.0.2.255) используются исключительно в целях обучения и могут использоваться в качестве примера для документирования при создании сетей.
Примечание. В блоке адресов от 240.0.0.0 до 255.255.255.254 имеются экспериментальные адреса, которые в соответствии с документом RFC 3330, могут быть в будущем преобразованы в доступные адреса.
Устаревшая классовая адресация
В 1981 г. IPv4-адреса в сети Интернет назначались с помощью классовой адресации согласно RFC 790 (Назначенные адреса). Заказчикам был назначен сетевой адрес на основе одного из трех классов, A, B или C. Согласно стандарту RFC, диапазоны индивидуальных адресов делятся на следующие классы:
- Класс A (от 0.0.0.0/8 до 127.0.0.0/8) разработан для очень крупных сетей с более чем 16 млн адресов узлов. Для обозначения сетевого адреса IPv4-адреса класса А использовали фиксированный префикс /8 с первым октетом. Остальные три октета использовались для адресов узлов. Все адреса класса А требуют, чтобы самый старший разряд старшего октета был равен нулю. Это означает, что существовало только 128 возможных сетей класса А. Класс A показан на рис. 1.
- Класс B (128.0.0.0 /16 – 191.255.0.0 /16) разработан для поддержки потребностей небольших и крупных сетей, содержащих приблизительно 65 000 узлов. Адрес класса B использовал фиксированный префикс /16, два старших октета для обозначения сетевого адреса. Оставшиеся два октета определяли адреса узлов. Для адресов класса B два самых старших разряда старшего октета равны 10, что обеспечивает возможность создания более 16 000 сетей. Класс B показан на рис. 2.
- Класс C (192.0.0.0 /24 – 223.255.255.0 /24) предназначен для небольших сетей с количеством узлов не более 254. Блоки адресов класса С использовали префикс /24 для трех старших октетов для указания адреса сети и последний октет — для указания адресов узлов. Три старших бита старшего октета равны 110, что обеспечивает возможность создания более 2 млн сетей. Класс C показан на рис. 3.
Примечание. Также имеется блок одноадресной передачи класса D (от 224.0.0.0 до 239.0.0.0) и блок экспериментальных адресов класса E (от 240.0.0.0 до 255.0.0.0).
Существует три типа IPv6-адресов.
- Индивидуальный (или одноадресной рассылки, unicast): служит для однозначного определения интерфейса на устройстве под управлением протокола IPv6. Как показано на рисунке, IPv6-адрес источника должен быть индивидуальным.
- Групповой (или многоадресной рассылки, multicast): используется для отправки одного IPv6-пакета на несколько адресов назначения.
Произвольный (или произвольной рассылки, anycast): любой индивидуальный IPv6-адрес, который может быть назначен нескольким устройствам. Пакет, отправляемый на адрес произвольной рассылки, направляется к ближайшему устройству с этим адресом. Произвольные адреса в данном курсе не рассматриваются.
В отличие от IPv4, IPv6 не использует широковещательный адрес. Однако есть групповой IPv6-адрес для всех узлов, который дает аналогичный результат.
Диапазон длины префикса может составлять от 0 до 128.
Традиционная длина IPv6-префикса для локальных (LAN) и других типов сетей — /64. Это означает, что длина префикса, или сетевая часть адреса, составляет 64 бита, а оставшиеся 64 бита остаются для идентификатора интерфейса (узловой части) адреса.
Индивидуальные IPv6-адреса
Индивидуальный адрес служит для однозначного определения интерфейса устройства под управлением протокола IPv6. Пакет, который отправляется на такой адрес, будет получен интерфейсом, назначенным для этого адреса. Как и в случае с протоколом IPv4, IPv6-адрес должен быть индивидуальным. IPv6-адрес назначения может быть как индивидуальным, так и групповым.
Наиболее распространенными типами индивидуальных IPv6-адресов являются глобальные индивидуальные адреса (global unicast addresses, GUA) и локальные адреса канала.
Глобальный индивидуальный адрес
Глобальный индивидуальный адрес аналогичен публичному IPv4-адресу. Эти адреса, к которым можно проложить маршрут по Интернету, являются уникальными по всему миру. Глобальные индивидуальные адреса могут быть настроены статически или присвоены динамически.
Локальный адрес канала
Локальные адреса канала используются для обмена данными с другими устройствами по одному локальному каналу. В протоколе IPv6 термин «канал» означает подсеть. Локальные адреса каналов ограничены одним каналом. Они должны быть уникальны только в рамках этого канала, поскольку вне канала к ним нельзя проложить маршрут. Другими словами, маршрутизаторы не смогут пересылать пакеты, имея локальный адрес канала источника или назначения.
Уникальный локальный адрес
Другим типом индивидуального адреса является уникальный локальный индивидуальный адрес. Уникальные локальные IPv6-адреса имеют некоторые общие особенности с частными адресами RFC 1918 для IPv4, но при этом между ними имеются и значительные различия. Уникальные локальные адреса используются для локальной адресации в пределах узла или между ограниченным количеством узлов. Эти адреса не следует маршрутизировать в глобальном протоколе IPv6 и преобразовывать в глобальный IPv6-адрес.
Уникальные локальные адреса находятся в диапазоне от FC00::/7 до FDFF::7.
В случае с IPv4 частные адреса объединены с преобразованием сетевых портов и адресов (NAT/PAT) для обеспечения преобразования адресов из частных в публичные. Это связано с ограниченным адресным пространством IPv4. Многие сайты используют частные адреса RFC 1918, чтобы обеспечить безопасность или защитить сеть от потенциальных угроз. Однако обеспечение безопасности никогда не было целью технологий NAT/PAT, поэтому организация IETF всегда рекомендовала принимать соответствующие меры предосторожности при использовании маршрутизаторов в Интернете. Уникальные локальные адреса могут использоваться для устройств, которым никогда не понадобится использование других сетей или получение из них данных.
Локальные индивидуальные IPv6-адреса канала
Локальный IPv6-адрес канала позволяет устройству обмениваться данными с другими устройствами с включенным протоколом IPv6 в том же канале (подсети) и только в нем. Пакеты с локальным адресом канала источника или назначения не могут быть направлены за пределы канала, в котором создается пакет.
Глобальный индивидуальный адрес не обязателен. Тем не менее, каждый IPv6-совместимый сетевой интерфейс должен иметь локальный адрес канала.
Если локальный адрес канала не настроен вручную на интерфейсе, устройство автоматически создает его самостоятельно, не обращаясь к DHCP-серверу. Узлы под управлением IPv6 создают локальный IPv6-адрес канала даже в том случае, если устройству не был назначен глобальный индивидуальный IPv6-адрес. Это позволяет устройствам под управлением IPv6 обмениваться данными с другими устройствами под управлением IPv6 в одной подсети, в том числе со шлюзом по умолчанию (маршрутизатором).
Локальные IPv6-адреса канала находятся в диапазоне FE80::/10.
/10 указывает, что первые 10 битов — 1111 1110 10xx хххх.
Диапазон значений первого гекстета: от 1111 1110 1000 0000(FE80) до 1111 1110 1011 1111 (FEBF).
На рис. 1 показан пример обмена данными с помощью локальных IPv6-адресов.
На рис. 2 показаны некоторые варианты применения локальных IPv6-адресов канала.
Примечание. Как правило, в качестве шлюза по умолчанию для других устройств в канале используется локальный адрес маршрутизатора, а не глобальный индивидуальный адрес.
Динамическая конфигурация глобального индивидуального адреса с помощью SLAAC
SLAAC — это способ, который позволяет устройству получить свой префикс, длину префикса и адрес шлюза по умолчанию от IPv6-маршрутизатора без помощи DHCPv6-сервера.
При использовании SLAAC устройства получают всю необходимую информацию из сообщений Router Advertisement (RA) от ICMPv6-маршрутизатора.
IPv6-маршрутизаторы каждые 200 секунд отправляют сообщения RA ICMPv6 всем устройствам в сети под управлением IPv6. На узел, отправивший сообщение RS ICMPv6, также отправляется ответное сообщение RA.
IPv6-маршрутизация не включена по умолчанию. Чтобы маршрутизатор работал как IPv6-маршрутизатор, необходимо использовать команду глобального конфигурирования ipv6 unicast-routing.
Примечание. IPv6-адреса могут быть настроены на маршрутизаторе, не являющемся IPv6-маршрутизатором.
Сообщение RA ICMPv6 указывает IPv6-устройству, как ему получить информацию по адресации. Окончательное решение зависит от операционной системы устройства. Сообщение RA ICMPv6 включает следующую информацию.
- Префикс сети и длину префикса: сообщают устройству, к какой сети оно относится.
- Адрес шлюза по умолчанию: локальный IPv6-адрес канала, IPv6-адрес источника сообщения RA.
- DNS-адрес и имя домена: адреса DNS-серверов и имя домена.
Как показано на рис. 1, сообщение RA может выглядеть следующим образом.
- Вариант 1: только SLAAC.
- Вариант 2: SLAAC и DHCPv6 без сохранения состояний.
- Вариант 3: Динамический DHCPv6 с сохранением состояний (без SLAAC).
RA, вариант 1: SLAAC
По умолчанию сообщение RA предлагает принимающему устройству использовать данные в сообщении RA для создания собственного глобального индивидуального IPv6-адреса и получения иной информации. Участие DHCPv6-сервера не требуется.
SLAAC не предполагает сохранения состояния, что означает отсутствие центрального сервера (например, DHCPv6-сервера, запоминающего состояния адресов), выделяющего глобальные индивидуальные адреса и хранящего список устройств и их адресов. В случае применения SLAAC клиентское устройство использует информацию в сообщении RA для создания собственного глобального индивидуального адреса. Как показано на рис. 2, две части адреса создаются следующим образом:
- Префикс: указывается в сообщении RA
- Идентификатор интерфейса: создается либо с помощью расширенного уникального идентификатора EUI-64, либо путем создания случайного 64-битного числа.
Процесс EUI-64 и случайно сгенерированный идентификатор интерфейса
Если сообщение RA имеет тип SLAAC либо SLAAC + для DHCPv6-сервера без сохранения состояния адресов, клиент должен генерировать собственный идентификатор интерфейса. Клиент получает из сообщения RA префиксную часть адреса, но должен создать собственный идентификатор интерфейса. Идентификатор интерфейса может быть создан с помощью EUI-64 или представлять собой случайно сгенерированное 64-битное число, как показано на рис. 1.
Процесс EUI-64
Организация IEEE разработала расширенный уникальный идентификатор (Extended Unique Identifier, EUI) или измененный процесс EUI-64. Этот процесс использует 48-битный MAC-адрес Ethernet клиента и в середину этого адреса вставляет еще 16 бит для создания 64-битного идентификатора интерфейса.
MAC-адреса Ethernet обычно имеют шестнадцатеричный формат и состоят из двух частей.
- Уникальный идентификатор организации (Organizationally Unique Identifier, OUI) — это 24-битный (шесть шестнадцатеричных цифр) код поставщика, назначенный IEEE.
- Идентификатор устройства — это уникальное 24-битное (шесть шестнадцатеричных цифр) значение с общим уникальным идентификатором организации (OUI).
Идентификатор интерфейса EUI-64 имеет двоичный формат и состоит из трех частей.
- 24-битный OUI на основе MAC-адреса клиента, в котором седьмой бит (универсально/локальный (U/L) бит) является обратным, т.е. если седьмой бит имеет значение 0, то он становится 1, и наоборот.
- В середину вставляется 16-битное значение FFFE (в шестнадцатеричном формате).
- 24-битный идентификатор устройства на основе MAC-адреса клиента.
Процесс EUI-64 проиллюстрирован на рис. 2 с помощью MAC-адреса маршрутизатора R1 GigabitEthernet FC99:4775:CEE0.
Шаг 1.Разделите MAC-адрес между OUI и идентификатором устройства.
Шаг 2. Вставьте шестнадцатеричное значение FFFE в двоичном формате 1111 1111 1111 1110.
Шаг 3. Преобразуйте первые 2 шестнадцатеричных значения OUI в двоичный формат и отразите бит U/L (бит 7). В данном примере 0 в седьмом бите меняется на единицу.
В результате генерируется следующий EUI-64 идентификатор интерфейса FE99: 47FF:FE75:CEE0.
Примечание. Использование обратного бита (U/L) и причины зеркального отражения его значения описаны в документе RFC 5342.
На рис. 3 показан глобальный индивидуальный IPv6-адрес PCA, динамически созданный посредством SLAAC и процесса EUI-64. Самый простой способ определить, действительно ли адрес был создан с помощью EUI-64, — проверить, есть ли в середине идентификатора интерфейса значение FFFE, как показано на рис. 3.
Преимущество EUI-64 MAC-адреса Ethernet заключается в том, что его можно использовать для определения идентификатора интерфейса. Кроме того, сетевые администраторы могут легко отслеживать IPv6-адрес до оконечных устройств с помощью уникального МАС-адреса. Однако это беспокоит других пользователей в связи с угрозой их конфиденциальности. Они обеспокоены тем, что их пакеты можно отследить до физического компьютера. Во избежание таких опасений можно использовать случайно сгенерированный идентификатор интерфейса.
Случайно сгенерированные идентификаторы интерфейса
В зависимости от операционной системы устройство может использовать случайно сгенерированный идентификатор интерфейса вместо МАС-адресов и EUI-64. Например, начиная с Windows Vista в операционных системах Windows используется случайно сгенерированный идентификатор интерфейса вместо созданного через EUI-64. В ОС Windows XP и в предыдущих операционных системах Windows использовался EUI-64.
После создания идентификатора интерфейса либо с помощью EUI-64, либо через случайную генерацию его можно объединить с префиксом IPv6 из сообщения RA для создания глобального индивидуального адреса, как показано на рис. 4.
Примечание. Чтобы обеспечить уникальный индивидуальный IPv6-адрес клиент может использовать процесс обнаружения дублирующихся адресов (Duplicate Address Detection, DAD). Это аналогично ARP-запросу собственного адреса. Отсутствие ответного сообщения означает, что адрес уникален.
Присвоенные групповые IPv6-адреса
Групповые IPv6-адреса аналогичны групповым IPv4-адресам. Как вы помните, групповой адрес используется для отправки одного пакета по одному или нескольким адресам назначения (группе многоадресной рассылки). Групповые IPv6-адреса имеют префикс FF00::/8.
Примечание. Групповые адреса могут быть только адресами назначения, а не адресами источника.
Существует два типа групповых IPv6-адресов:
- Присвоенный групповой адрес.
- Групповой адрес запрошенного узла.
Присвоенный групповой адрес
Присвоенные групповые адреса зарезервированы для заданных групп устройств. Присвоенный групповой адрес — это один адрес, используемый для осуществления связи с группой устройств, работающих на одном протоколе или сервисе. Присвоенные групповые адреса используются вместе с конкретными протоколами, например с протоколом DHCPv6.
Рассмотрим две распространенные группы присвоенных групповых IPv6-адресов.
- Группа многоадресной рассылки для всех узлов FF02::1. Это группа многоадресной рассылки, к которой подключены все устройства под управлением протокола IPv6. Пакет, отправленный этой группе, принимается и обрабатывается всеми IPv6-интерфейсами в канале или сети. Эта группа адресов работает так же, как широковещательный адрес в протоколе IPv4. На рисунке приводится пример осуществления связи с помощью групповых адресов для всех узлов. IPv6-маршрутизатор отправляет сообщения RA ICMPv6 группе многоадресной рассылки для всех узлов. Сообщение RA передает всем устройствам IPv6, находящимся в сети, информацию об адресации: префикс, длину префикса и шлюз по умолчанию.
- Группа многоадресной рассылки для всех маршрутизаторов FF02::2. Это группа многоадресной рассылки, к которой подключены все IPv6-маршрутизаторы. Маршрутизатор становится частью этой группы, когда переходит под управление протоколом IPv6 с помощью команды глобального конфигурирования ipv6 unicast-routing. Пакет, отправленный этой группе, принимается и обрабатывается всеми IPv6-маршрутизаторами в канале или сети.
Устройства под управлением протокола IPv6 отправляют сообщения RS ICMPv6 на групповой адрес для всех маршрутизаторов. Сообщение RS запрашивает сообщение RA у IPv6-маршрутизатора, которое поможет устройству в процессе адресной конфигурации.
Сообщения ICMPv6 Router Solicitation (RS)
(Запрос к маршрутизатору) и
Router Advertisement (RA) (Ответ от маршрутизатора)
Информационные сообщения и сообщения об ошибках, возникающие в протоколе ICMPv6, очень похожи на сообщения о контроле и ошибках, используемые протоколом ICMPv4. Однако протокол ICMPv6 отличается расширенной функциональностью и новыми возможностями, которых нет в ICMPv4. Сообщения ICMPv6 инкапсулируются в IPv6-пакеты.
ICMPv6 включает четыре новых протокола в составе протокола обнаружения соседних узлов (Neighbor Discovery Protocol, ND или NDP).
Обмен сообщениями между IPv6-маршрутизатором и IPv6-устройством:
- Сообщение «Запрос к маршрутизатору» (Router Solicitation, RS).
- Сообщение «Ответ маршрутизатора» (Router Advertisement, RA).
Обмен сообщениями между IPv6-устройствами:
- Сообщение с запросом поиска соседей (NS).
- Сообщение об объявлении соседних узлов (NA).
Примечание. ND-протокол ICMPv6 также включает сообщение перенаправления, которое имеет аналогичную с сообщением перенаправления, используемым в ICMPv4, функцию.
На рисунке 1 показан пример обмена сообщениями RS и RA между PC и маршрутизатором. Для получения более подробной информации нажмите на каждое сообщение.
Сообщения NS и NA используются для разрешения адресов и для обнаружения дублирующихся адресов (Duplicate Address Detection, DAD).
Разрешение адресов
Протокол разрешения адресов используется в том случае, когда устройству в локальной сети (LAN) известен индивидуальный IPv6-адрес назначения, но неизвестен MAC-адрес Ethernet. Чтобы определить MAC-адрес назначения, устройство отправляет сообщение NS на адрес запрашиваемого узла. Сообщение включает известный (целевой) IPv6-адрес. Устройство с целевым IPv6-адресом отправляет в ответ сообщение NA, содержащее его MAC-адрес Ethernet. На рис. 2 показан обмен сообщениями NS и NA между двумя PC. Для получения более подробной информации нажмите на каждое сообщение.
Обнаружение дублирующихся адресов (DAD)
Когда устройству назначен глобальный индивидуальный адрес или локальный индивидуальный адрес канала, для этого адреса рекомендуется выполнить процедуру DAD, чтобы убедиться в его уникальности. Для проверки уникальности адреса устройство отправляет сообщение NS с собственным IPv6-адресом в качестве целевого, как показано на рис. 3. Если другому устройству в сети присвоен этот адрес, оно ответит сообщением NA. Это сообщение NA уведомляет устройство-отправителя о том, что данный адрес уже используется. Если соответствующее сообщение NA не возвращается в течение определенного периода времени, индивидуальный адрес признается уникальным и допустимым к использованию.
Примечание. Процесс обнаружения дублирующихся адресов не обязателен, однако документ RFC 4861 рекомендует выполняет его для индивидуальных адресов.