Кратко
- RFC 9844 требует, чтобы UI для неглобальных IPv6 addresses позволял указать link-local или scoped multicast address вместе с zone identifier, обычно именем интерфейса операционной системы.
- Читаемый текст преобразуется в числовой interface index конкретного host для socket call. Локально он необходим, на другом узле общего смысла не имеет и на wire попадать не должен.
- Надёжный receipt сохраняет ввод, проверку, mapping, lifecycle интерфейса и результат внутри узла, а отдельное наблюдение доказывает отсутствие локальной метки в отправленном пакете.
Адрес был правильным. Не было решения, по какому локальному линку его использовать.
У host с двумя интерфейсами один link-local literal может интерпретироваться в двух зонах. Форма, принимающая только адрес, теряет выбор пути. Добавление имени интерфейса восстанавливает действие. Но если затем сохранить всю строку как универсальный endpoint, возникает противоположная ошибка: на другой машине то же имя может вести в другую сеть.
Эту границу описывает RFC 9844. Карточка, текст и XML фиксируют Standards Track документ августа 2025 года. Он отменяет RFC 6874 и обновляет RFC 4007, 7622 и 8089. Статус подтверждает открытое требование, но не поддержку конкретного продукта и не правильность выбранного устройства.
Address определяет scope, а не локальный выход
RFC 4291 задаёт архитектуру IPv6, RFC 5952 рекомендует текстовую запись. Link-local специально ограничен. Если node подключён к нескольким зонам одного scope, address bits не сообщают, через какой интерфейс действовать.
RFC 4007 добавляет для внутреннего использования zone index. Человеку он обычно показан как zone identifier — имя interface или десятичный номер. Суффикс вроде %eth0 не расширяет IPv6 header. Это инструкция локальной таблице.
Выбор интерфейса — control decision. Ping, настройка, capture или management request могут уйти на неверный link при идеальном синтаксисе. А UI без zone делает недоступным для оператора устройство, имеющее только link-local. RFC 9844 приводит диагностику, настройку, мониторинг, виртуальную печать и морские сети. RFC 6991 даёт контекст YANG, RFC 8925 — IPv6-mostly среду, где IPv4 уже не гарантирует обход.
Copy-and-paste полного значения снижает ошибки ввода, но копирует текст без interface table. Полномочия строки не переживают переход на другой host.
Смысл UI проявляется в mapping
RFC 9844 требует совместного ввода неглобального address и zone. Предпочтителен полный формат RFC 4007; допустимы иной delimiter, два поля, список активных zones или отдельный CLI parameter. Во всех вариантах address и zone остаются различимыми inputs до преобразования в numeric index.
inet_pton() не принимает fe80::1%eth0 целиком. Приложение может использовать getaddrinfo() либо разделить части и вызвать inet_pton() и if_nametoindex(). RFC 3493 содержит sin6_scope_id в IPv6 socket structure, оставляя соответствие интерфейсам реализации.
Записи «форма принята» недостаточно. Receipt связывает exact input, версии parser и policy, проверки length и characters, resolved index, identity интерфейса в этот момент, scoped destination, результат socket construction и наблюдение. Если interface исчез между выбором и использованием, race должен быть виден и закрыт, а старая санкция не должна переходить к новому объекту.
Running code разделяет четыре утверждения: input принят, interface разрешён, packet отправлен, ожидаемое device ответило. Один зелёный статус не может служить доказательством всех четырёх.
Локальная метка не получает паспорта
Security rule RFC 9844 прямой: zone identifier имеет только local significance и не должен отправляться on wire. Software, получившее его из UI, не должно пересылать его дальше. RFC 4007 также предупреждает о textual non-global addresses, пришедших как data. Remote node не уполномочен определять local zone получателя.
Удаление метки не означает уничтожения audit evidence. Внутри host пара name-index объясняет path choice. На network boundary её authority заканчивается. Пакет несёт scoped address, а не локальное имя интерфейса. Если sniffer показывает zone как annotation, аудит различает annotation и transmitted bytes.
Так обнаруживается ложная reproducibility. Рассылка eth0 по fleet не копирует кабели или network namespaces. Name может быть reused, index — recycled после reboot. Historical receipt требует host, time и lifecycle context, а утверждение остаётся узким: этот host тогда выполнил такое mapping.
Открытый формат требует контекстной проверки
RFC 4007 не устанавливает universal maximum length и character set. RFC 9844 рекомендует подходящий limit, обычно лимит имени interface в OS, и проверки для среды. ASCII NUL следует отклонять, иначе этапы обработки могут по-разному определить конец строки.
Есть и другие угрозы: double decoding delimiter, normalization, shell metacharacters, различие log rendering, устаревший список интерфейсов. Одна глобальная regex не описывает разные invocation contracts. Безопасный путь сохраняет exact bytes, валидирует для целевой среды, разрешает рядом с use и пишет representation вместе с result.
URI-подход столкнулся с пределом слоя
RFC 6874 пытался включить zone в IPv6 literal внутри URI. Его запись теперь показывает obsoleted. RFC 9844 сообщает, что browser implementers сочли механизм impracticable, отменяет изменение RFC 3986 и заменяет его общим UI requirement. Ссылки также удалены из RFC 7622 и RFC 8089.
Так стандарт честно следует implementation reality. RFC 9844 явно не решает HTTP origin model из RFC 6454, а нормативные положения не относятся к URI, которые fetch делает browser. Этот материал не расширяет их обратно.
Тест должен увидеть и появление, и исчезновение
В lab нужны два активных interface с одним link-local text. Проверяются explicit selection, unknown-zone error и отсутствие arbitrary fallback. Затем interface переименовывают или удаляют между выбором и use, выполняют reboot для index recycling, вводят overlong string, NUL, разные delimiter, Unicode edge и shell/log special characters.
После этого сравнивают local и wire evidence. Receipt показывает использованный index; capture подтверждает отсутствие имени. Zone из remote data не получает доверия без local mapping и policy. Mapping failure должен закрывать операцию.
Наконец, operator видит четыре отдельных состояния: accepted, resolved, sent, answered. Minimum standard обеспечивает вход и границу, local operator владеет policy, retention и rollback, running code доказывает path.
Граница доказательств
Не тестировались OS, browser, router, printer, sniffer, YANG client или морская сеть. Не измерялись adoption, support, error rate и incidents. Примеры RFC объясняют механизм, но не сертифицируют текущие releases.
Устойчивый вывод структурен: контекст может быть обязателен для действия и недействителен как shared identity. Сохранить его внутри и остановить снаружи — единый контроль.
Источники
Обзор для участников
Подробный контекст профиля
Войдите с подходящим уровнем подписки, чтобы открыть полный обзор и примечания к источникам.
Только для Стратегического сообщества
Стратегическое сообщество
Открыто всем читателям. Вступите и войдите, чтобы открыть обзоры профилей.
Вступить в Стратегическое сообществоТолько для Альянса лидеров
Альянс лидеров
Для проверенных владельцев IP-активов и руководителей. Войдите, чтобы открыть обзоры Альянса.
Вступить в Альянс лидеров
