Локальный адрес канала связи

Pause

Лока́льный а́дрес кана́ла свя́зи (в профессиональной речи — link-local address) — адрес узла в IP-адресации, действующий только внутри одного канала связи и не передаваемый маршрутизаторами за его пределы[1][2]. Для IPv4 под такие адреса зарезервирован диапазон 169.254.0.0/16, для IPv6 — префикс fe80::/10[2]. Стандарт описывает назначение адреса словами «для одного канала»: автоматическая настройка, обнаружение соседей, совместная работа вовсе без маршрутизаторов[2]. Узел создаёт адрес себе сам, без сервера DHCP и ручной настройки, и проверяет его, сверяясь с соседями по каналу[3].

Единой даты и автора у понятия нет: оно сложилось из двух самостоятельных линий стандартов. В архитектуре IPv6 локальные адреса появились в декабре 1995 года как обязательная часть каждого сетевого интерфейса[4]. Для IPv4 механизм оформили отдельным стандартом в мае 2005 года, хотя операционные системы применяли его как запасную настройку по меньшей мере с 1998 года[1][5]. В готовой сети на локальных адресах держатся обнаружение соседей, автоматическая настройка и связь со шлюзом: даже получив глобальный адрес, узел отправляет пакеты наружу на локальный адрес шлюза[6].

Локальные адреса не следует путать с частными диапазонами: адреса 10.0.0.0/8, 172.16.0.0/12 и 192.168.0.0/16 в IPv4 и префикс fc00::/7 в IPv6 тоже не выходят в интернет. Однако частные диапазоны охватывают целые организации и назначаются по решению администратора, тогда как локальный адрес живёт ровно в границах одного канала и возникает без чьего-либо решения[7][8]. Ниже разбираются по порядку оба варианта — IPv4 и IPv6: история стандартизации, структура диапазонов, порядок присвоения, служебная роль в работе сети, уязвимости и средства защиты[9].

Общие сведения
Локальный адрес канала связи
Область использования обмен данными между узлами вычислительной сети в пределах одного канала без сервера адресов
Дата появления 1995
Место появления США (инженерный совет Интернета, RFC 1884)
Ключевые слова IP-адрес, IPv4, IPv6, DHCP, обнаружение соседей
Базовые понятия IP-адрес, IPv4, IPv6, MAC-адрес, канальный уровень, сетевой интерфейс

История

Стандарты IPv6

Первую архитектуру адресации IPv6 опубликовали в декабре 1995 года: в ней за префиксом fe80::/10 закрепили адреса «для использования по каналу», которые узел создаёт на каждом интерфейсе самостоятельно[4]. Вслед за ней в декабре 1998 года вышел стандарт автоконфигурации без сервера: узел объединяет префикс канала с идентификатором интерфейса и проверяет результат на дубликаты, не обращаясь к серверу[10]. Действующая архитектура адресации, утверждённая в феврале 2006 года, сохранила диапазон без изменений и прямо требует, чтобы каждый интерфейс имел хотя бы один локальный адрес[2].

В ту же эпоху сложились служебные механизмы. Протокол обнаружения соседей, работающий в IPv6 вместо ARP — прежнего механизма разрешения в Ethernet и других средах, — описан в сентябре 2007 года; все его сообщения отправляются с локальных адресов и адресуются на локальные же[6][11]. Утверждённый в 2007 году стандарт автоконфигурации заменил редакцию 1998 года. Тогда же стали стандартами уточнённая автоконфигурация и временные адреса, которые периодически сменяются, чтобы узел нельзя было отслеживать по одному и тому же идентификатору интерфейса[3][12].

Стандарты IPv4 и поздние уточнения

В IPv4 запасной механизм появился раньше стандарта: выпуск Windows 98 назначал интерфейсу адрес вида 169.254.x.y, когда сервер DHCP не отвечал, а организация IANA закрепила диапазон 169.254.0.0—169.254.255.255 за автоматическим частным адресованием; адрес показывали утилитой winipcfg, позднее — ipconfig[5]. В мае 2005 года Инженерный совет Интернета выпустил стандарт с правилами выбора адреса, проверкой дубликатов зондами ARP и запретом маршрутизации таких пакетов[1]. Отдельной темой стандарта стало соединение двух сетей, в которых одни и те же адреса уже используются[1]. В марте того же года архитектура разделила адрес и зону его действия: один и тот же локальный адрес разрешён на каждом канале узла, а приложения обязаны уточнять канал[13].

Поздние уточнения коснулись способа порождения второй половины IPv6-адреса. Схема EUI-64 выводила идентификатор интерфейса из MAC-адреса, из-за чего узел можно было узнавать в разных сетях по одному и тому же суффиксу[14]. В апреле 2014 года предложили строить идентификатор из хеша имени сети, а рекомендация февраля 2017 года закрепила отказ от значений, производных от MAC-адреса[15][16].

undefined

Диапазоны и структура адресов

IPv4: 169.254.0.0/16

Диапазон 169.254.0.0/16 занимает первые 16 бит, маска подсети равна 255.255.0.0[5]. Стандарт запрещает делить префикс 169.254/16 на более мелкие подсети: границы канала совпадают с границами диапазона[1]. Для узлов доступны 65024 адреса: два крайних блока по 256 значений (169.254.0.0—169.254.0.255 и 169.254.255.0—169.254.255.255) зарезервированы и узлам не назначаются[1], поэтому полезный объём составляет . Префикс одинаков для всех соседей, поэтому адрес целиком определяется номером узла, выбранным псевдослучайно[1]. Резервирование двух крайних блоков гарантирует, что локальный адрес не совпадёт с маршрутизируемым блоком той же сети[5]. Разработчики оценили механизм для сетей с небольшим числом узлов: пул в 65024 значений при объединении двух небольших сообществ даёт малую вероятность конфликта, а при более чем тысяче узлов она становится заметной[1]. Основой для выбора служит псевдослучайное число; если у узла есть постоянные данные, генератор учитывает их, чтобы повторные включения давали тот же адрес[1]. Правило запрета выпуска за канал действует и тогда, когда пакет адресован группе соседей: пакеты с локальным отправителем не пересылаются даже при многоадресной рассылке получателю[1]. Правило запрета выпуска упрощает и сами узлы: любое значение из блока 169.254/16 можно считать находящимся на канале и напрямую достижимым[1].

IPv6: fe80::/10

Префикс fe80::/10 задаёт первые десять бит, 1111 1110 10; за ними следуют 54 нулевых бита и 64-битный идентификатор интерфейса, который узел выбирает одним из способов, описанных ниже[2]. В пределах канала адрес записывается сокращённо: fe80::идентификатор с длиной префикса 64[2]. Объём адресного пространства протокола огромен: возможных значений, поэтому даже служебные диапазоны не ощущаются теснотой[17]. Интерфейсам, которые ничего не отправляют за пределы канала, значений большего охвата может не быть вовсе, и локальный адрес остаётся единственным[2]. Средние нулевые группы сокращают парой двоеточий: развёрнутая форма FE80:0:0:0:2AA:FF:FE9A:4CA2 равна краткой fe80::2AA:FF:FE9A:4CA2[18]. Локальный адрес обязателен: интерфейс, работающий с IPv6, создаёт его при включении независимо от того, есть ли у узла глобальные[18][2][3].

undefined

Присвоение адреса узлу

IPv4: запасной путь

Узел IPv4 начинает работу с обращения к серверу DHCP. Если ответа нет, включается режим автоматического частного адресования (APIPA): узел выбирает адрес из диапазона 169.254.0.0/16 псевдослучайно и проверяет его зондами ARP — по умолчанию тремя пробами с интервалом от одной до двух секунд[1]. Проба устроена так: выдержав случайную паузу, узел отправляет серию ARP-запросов с предлагаемым значением в поле искомого; любой попавшийся ответ — запрос это или объявление — означает занятость, и узел обязан выбрать другое значение и повторить проверку[1]. В Windows этот режим виден в выводе команды ipconfig как адрес 169.254.x.y с маской 255.255.0.0; о работе режима судят по строкам о включённой автоконфигурации и автоматическом назначении[5]. Маршрутизаторы пакеты с таким отправителем не пересылают, поэтому связь возможна только с соседями по каналу — с теми, кто настроился тем же способом или задал себе значение вручную в той же группе 169.254/16[1][5].

IPv6: автоконфигурация без сервера

Интерфейс IPv6 создаёт локальный адрес при каждом включении, до всякого контакта с маршрутизатором; в литературе режим носит название автоконфигурации без отслеживания состояния (SLAAC)[3][19]. Узел строит предварительный адрес из префикса fe80::/64 и идентификатора интерфейса, затем запускает обнаружение дубликатов: пробный адрес опрашивается сообщением запроса соседа, и ответ на него свидетельствует о занятости[3]. Пока проверка идёт, значение считается предварительным: адаптер не принимает пакеты, предназначенные ему, но принимает служебные сообщения обнаружения соседей о нём; если дубликат не найден, узел закрепляет адрес за собой[3]. Дождавшись объявления маршрутизатора, узел получает префиксы канала и строит из них глобальные, а локальный адрес остаётся служебной основой связи[6][3]. Обмен устроен по схеме «запрос — объявление»: узел рассылает запрос, маршрутизатор отвечает сообщением с сетевой частью префикса и своим значением как адресом основного шлюза[19]. Повторный конфликт стандарт разрешает только ручной настройкой[14].

undefined

Генерация идентификатора интерфейса

Классическая схема EUI-64 выводит 64-битный идентификатор из 48-битного MAC-адреса: в середину вставляются байты FF-FE, а седьмой бит первого байта инвертируется; при стандартном назначении производителя инверсия сводится к прибавлению 02 к первому байту[14]. Так, адаптер 00-AA-00-3F-2A-1C получает суффикс 2AA:FF:FE3F:2A1C и локальный адрес fe80::2AA:FF:FE3F:2A1C[14]. Удобство оборачивается риском для приватности: суффикс переезжает вместе с узлом из сети в сеть и позволяет связывать его активность в разных местах[12]. Первым ответом стали временные адреса: их суффиксы периодически порождаются заново и сменяются, что затрудняет привязку активности к узлу[12]. Затем появились стабильные случайные идентификаторы: они вычисляются хеш-функцией из сетевого префикса, имени интерфейса и секретного ключа узла, постоянны внутри одной сети, но не раскрывают производителя и серийный номер оборудования[15]. Рекомендация 2017 года предписывает производителям применять именно такие значения вместо производных от MAC[16].

undefined

Использование

Обнаружение соседей и шлюзы

Служебные протоколы IPv6 на канале целиком опираются на локальные адреса. Запросы и объявления обнаружения соседей отправляются и адресуются локально, внутри одного сегмента[6]. Выбор следующего перехода — отдельная задача протокола: им оказывается либо сам получатель, либо шлюз[6]. Шлюз в каждом объявлении передаёт свой локальный адрес, и узел записывает его как следующий переход к внешним сетям, а отправляя пакет наружу, вручает его именно этому шлюзу[6]. Протокол также следит за достижимостью соседей и замечает, когда кто-то из них, включая шлюз, перестаёт отвечать; в таком случае узел переключается на другой маршрутизатор канала[6]. Благодаря этому связь внутри канала и с шлюзом не зависит от серверов адресации и сохраняется даже тогда, когда других значений у узла нет[3].

Диагностика и идентификатор зоны

Локальный адрес сам по себе не определяет канал: один и тот же адрес fe80::15 разрешён на нескольких интерфейсах узла, например на проводном и беспроводном[13]. Поэтому архитектура вводит идентификатор зоны — уточняющую канал приписку; в записи его отделяет знак процента: ping fe80::15%eth0[13]. В Linux утилита ip address помечает локальные адреса меткой scope link[20]. В Windows его индекс показывает ipconfig и команда netsh interface ipv6 show interface[21]. Для проверки связи команде ping передают адрес соседа и номер канала после знака процента; вызов выглядит как ping fe80::15%4 — с номером вместо имени. При неудаче предписывается сверить адрес и индекс[21]. В той же группе запрошенного узла работает многоадресная рассылка: для адреса fe80::2AA:FF:FE28:9C5A узел слушает группу FF02::1:FF28:9C5A. Поэтому запрос соседа достаётся не всем участникам канала, а лишь узлам, чьи значения кончаются одинаково[18]. Служебная роль этих значений шире диагностики: в производственных сетях автоматическая настройка оконечного оборудования по объявлениям маршрутизатора идёт по ним, поэтому подмена на этом обмене выводит из строя связь с основным шлюзом предприятия[19].

undefined

Ограничения и злоупотребления

Атаки на локальную адресацию

Сообщения обнаружения соседей по умолчанию не аутентифицируются, поэтому узел верит каждому входящему объявлению[6]. Злоумышленник, подключённый к той же сети, отправляет от имени шлюза ложные сообщения и перехватывает трафик соседей с подменой адресов (атака «человек посередине») либо вынуждает оконечное оборудование считать его основным шлюзом[19]. Описана и разведка: атакующий запросом объявления, отправленным от имени оконечного оборудования, узнаёт шлюз и его приоритет, а затем объявляет себя с более высокой ступенью, и узлы обновляют свои таблицы в пользу подмены[19]. Ступени при этом задуманы для пользы дела: назначая соседним шлюзам уровни «низкий — средний — высокий», администратор строит отказоустойчивость, где при отказе главного шлюза его роль принимает резервный[19]. Ещё один приём — отключённая проверка дубликатов: умышленно создав в канале два устройства с одинаковым значением, но разными MAC-адресами, атакующий перетягивает на себя чужой трафик[19]. Атаки наводнения фальшивыми объявлениями выводят из строя выбор шлюза у всех узлов сегмента[22]. Другой приём бьёт по той же процедуре: злоумышленник отвечает на каждый чужой зонд, из-за чего сосед так и не может получить адрес. Конфликт значений и отказы процедуры остаются предметом новых работ: предложены средства, отличающие такой отказ в обслуживании от легитимной защиты[23]. Аналогичные приёмы действуют и в IPv4: подмена ответов ARP остаётся распространённым способом перехвата данных в локальных сегментах — цель таких действий состоит в том, чтобы перенаправить чужие пакеты через узел злоумышленника[24].

Средства защиты

Простейший рубеж задан самим протоколом обнаружения соседей: узлы принимают только сообщения с предельным числом переходов, равным 255, поэтому отправитель извне канала, прошедший хоть один маршрутизатор, отсекается[6]. Для сравнения: в IPv4 чужие узлы могли отправлять и перенаправления, и шлюзовые объявления, так что проверка переходов — приобретение нового протокола[6]. Надёжнее защищённое обнаружение соседей: сообщения снабжаются криптографическими подписями, а адреса узлов порождаются хеш-функцией из их открытых ключей; в обмене участвуют и шлюзы, и оконечное оборудование, что добавляет нагрузки обеим сторонам[25]. Широкому применению таких подписей мешает нагрузка на оборудование, поэтому на практике чаще ограничиваются средствами коммутаторов: доверенными портами, выделением VLAN, списками контроля доступа и фильтрацией шлюзовых объявлений (RA Guard)[19]. Сегментация уменьшает круг устройств, которым вообще доступен служебный обмен[19]. Динамические механизмы выявляют наводнение объявлениями по активности отправителей и отключают атакующий порт[22]. Для каналов с повышенными требованиями трафик локальной связи защищают IPsec; применимость показана именно для локальных адресов IPv6, хотя настройка сопряжена с организационными трудностями[26]. Средства обнаружения атак на автоконфигурацию распознают поддельные сообщения в локальной сети и повышают стоимость такой атаки[27].

Связь с другими механизмами

Локальные адреса часто путают с частными диапазонами. Частные блоки IPv4 из диапазонов 10.0.0.0/8, 172.16.0.0/12 и 192.168.0.0/16 выделяет администратор, и внутри организации они маршрутизируются между сегментами[7]. Локальный адрес не назначает никто: узел создаёт его сам, и за пределы канала он не проходит даже внутри организации[1]. Уникальные локальные адреса IPv6 из префикса fc00::/7 занимают промежуточное положение: их префикс выбирается случайно и с высокой вероятностью уникален, что позволяет объединять частные сети без конфликтов и перенастройки[8]. Маршрутизируются они внутри организации, но не в интернете[8]. Эту роль они приняли у префиксов масштаба сайта, объявленных устаревшими архитектурой 2006 года[2]. Автоконфигурация IPv6, построенная на них, упрощает развёртывание сети по сравнению с IPv4, где адресацию организуют вручную или силами сервера DHCP[17]. Обзор различий протоколов ставит её в один ряд с другими областями отличий: адресацией, безопасностью, преобразованием адресов, административной нагрузкой и поддержкой мобильных устройств[17].

Со серверной конфигурацией локальные адреса соседствуют, а не конкурируют. Сервер DHCP раздаёт узлам IPv4 рабочие значения и параметры, но при его отказе связь внутри канала не прерывается[5]. В IPv6 сервер DHCPv6 выдаёт значения дополнительно к обязательному локальному, а проверку дубликатов проходит каждая настройка интерфейса, как бы она ни была получена: автоконфигурацией, от него или вручную[3]. Архитектура IPv6 различает охват значений — глобальный, уникальный локальный, канальный, — и в этом ряду он единственный, который узел получает без всякой внешней помощи[2]. Отдельную осторожность требуют прикладные программы: стандарт запрещает передавать его протоколом приложения узлу за пределами канала, например в реквизитах соединения. Старое программное обеспечение с такой пересылкой от этого отказывается, как показывает классический пример с FTP в активном режиме[1]. Разница поколений протоколов видна и здесь: в IPv4 он остался запасным планом на случай отказа сервера, в IPv6 стал фундаментом связи. Тем самым этот механизм остаётся малозаметной, но важной частью сетевого стека: на нём держатся обнаружение соседей, автоматическая настройка и первый шаг каждого пакета за пределы канала[28].

Примечания

  1. ↑ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Dynamic Configuration of IPv4 Link-Local Addresses (англ.). rfc-editor.org. RFC Editor (май 2005). Дата обращения: 3 октября 2026.
  2. ↑ 1 2 3 4 5 6 7 8 9 10 IP Version 6 Addressing Architecture (англ.). rfc-editor.org. RFC Editor (февраль 2006). Дата обращения: 3 октября 2026.
  3. ↑ 1 2 3 4 5 6 7 8 9 IPv6 Stateless Address Autoconfiguration (англ.). rfc-editor.org. RFC Editor (сентябрь 2007). Дата обращения: 3 октября 2026.
  4. ↑ 1 2 IP Version 6 Addressing Architecture (англ.). rfc-editor.org. RFC Editor (декабрь 1995). Дата обращения: 3 октября 2026.
  5. ↑ 1 2 3 4 5 6 7 How to use automatic TCP/IP addressing without a DHCP server (англ.). learn.microsoft.com. Microsoft. Дата обращения: 3 октября 2026.
  6. ↑ 1 2 3 4 5 6 7 8 9 10 Neighbor Discovery for IP version 6 (IPv6) (англ.). rfc-editor.org. RFC Editor (сентябрь 2007). Дата обращения: 3 октября 2026.
  7. ↑ 1 2 Address Allocation for Private Internets (англ.). rfc-editor.org. RFC Editor (февраль 1996). Дата обращения: 3 октября 2026.
  8. ↑ 1 2 3 Unique Local IPv6 Unicast Addresses (англ.). rfc-editor.org. RFC Editor (октябрь 2005). Дата обращения: 3 октября 2026.
  9. ↑ Tanenbaum A. S., Wetherall D. J. Computer Networks. — 5th ed.. — Pearson Prentice Hall, 2011. — 933 с. — ISBN 9780132126953.
  10. ↑ IPv6 Stateless Address Autoconfiguration (англ.). rfc-editor.org. RFC Editor (декабрь 1998). Дата обращения: 3 октября 2026.
  11. ↑ Fall K. R., Stevens W. R. TCP/IP Illustrated, Volume 1: The Protocols. — 2nd ed.. — Addison-Wesley, 2012. — 1056 с. — ISBN 9780321336316.
  12. ↑ 1 2 3 Privacy Extensions for Stateless Address Autoconfiguration in IPv6 (англ.). rfc-editor.org. RFC Editor (сентябрь 2007). Дата обращения: 3 октября 2026.
  13. ↑ 1 2 3 IPv6 Scoped Address Architecture (англ.). rfc-editor.org. RFC Editor (март 2005). Дата обращения: 3 октября 2026.
  14. ↑ 1 2 3 4 IPv6 Addressing (TechRef) (англ.). learn.microsoft.com. Microsoft. Дата обращения: 3 октября 2026.
  15. ↑ 1 2 A Method for Generating Semantically Opaque Interface Identifiers (англ.). rfc-editor.org. RFC Editor (апрель 2014). Дата обращения: 3 октября 2026.
  16. ↑ 1 2 Recommendation on Stable IPv6 Interface Identifiers (англ.). rfc-editor.org. RFC Editor (февраль 2017). Дата обращения: 3 октября 2026.
  17. ↑ 1 2 3 Каредин И. С. СРАВНЕНИЕ ПРОТОКОЛОВ IPV4 И IPV6 // Интерэкспо Гео-Сибирь. — 2022. — Т. 7, № 1.
  18. ↑ 1 2 3 IPv6 Addressing (англ.). learn.microsoft.com. Microsoft. Дата обращения: 3 октября 2026.
  19. ↑ 1 2 3 4 5 6 7 8 9 Шабалин А. М., Калиберда Е. А. Организация комплекса мер по обеспечению безопасной работы IPv6-сети предприятия средствами современного коммутационного оборудования (на примере сетевой атаки на основной шлюз) // Динамика систем, механизмов и машин. — 2017. — Т. 5, № 4.
  20. ↑ ip-address(8) — Linux manual page (англ.). man7.org. Дата обращения: 3 октября 2026.
  21. ↑ 1 2 Install and configure IP version 6 in Windows Server (англ.). learn.microsoft.com. Microsoft. Дата обращения: 3 октября 2026.
  22. ↑ 1 2 Goel J. N., Mehtre B. M. Advanced dynamic IPv6 activation-based defence for IPv6 router advertisement flooding (DoS) attack // International Journal of Network Science. — 2016. — Т. 1, № 2. — doi:10.1504/ijns.2016.077219.
  23. ↑ Yadav A. K., Sadam R. Enhancing Duplicate Address Detection to Prevent Address Conflicts in IPv6 Link-Local Networks // Journal of Network and Systems Management. — 2025. — Т. 34, № 1. — doi:10.1007/s10922-025-09993-2.
  24. ↑ Hijazi S., Obaidat M. S. Address resolution protocol spoofing attacks and security approaches: A survey // Security and Privacy. — 2018. — Т. 2, № 1. — doi:10.1002/spy2.49.
  25. ↑ SEcure Neighbor Discovery (SEND) (англ.). rfc-editor.org. RFC Editor (март 2005). Дата обращения: 3 октября 2026.
  26. ↑ Ahmed A. S., Hassan R., Othman N. E. Securing IPv6 Link Local Communication Using IPSec: Obstacles and Challenges // Advanced Science Letters. — 2017. — Т. 23, № 11. — С. 11124—11128. — doi:10.1166/asl.2017.10234.
  27. ↑ Al-Shareeda M. A., Manickam S., Saare M. A., Omar N. B. SADetection: Security Mechanisms to Detect SLAAC Attack in IPv6 Link-Local Network // Informatica. — 2023. — Т. 46, № 9. — doi:10.31449/inf.v46i9.4441.
  28. ↑ Kurose J. F., Ross K. W. Computer Networking: A Top-Down Approach. — 8th ed.. — Pearson, 2016. — 864 с. — ISBN 9780133594140.

Литература

Pause