%3F.png)
Когда автоконфигурация адреса без сохранения состояния (SLAAC)RFC4862используется для создания локального адреса на основе идентификатора интерфейса (модифицированный EUI-64), перед тем как адрес будет назначен интерфейсу. Обрабатывается обнаружение дубликатов адресов (DAD). Что же происходит, когда DAD выходит из строя?
В разделе 4 просто описывается, что автоконфигурации должны быть остановлены:
Если узел определяет, что его предварительный локальный адрес канала не является уникальным, автоматическая настройка останавливается и требуется ручная настройка интерфейса.
Не уточняется, что означает «ручная настройка» в этом контексте. Для DAD есть два расширения (RFC4429,RFC7527), которые также не описывают, что происходит при отказе DAD.
Я предполагаю, что создается случайный идентификатор интерфейса, который используется для создания локального адреса, например, как описано вRFC 4941 — Расширения конфиденциальности для автоматической настройки адресов без сохранения состояния в IPv6но я не смог найти ни одного источника или ссылки, описывающих такое поведение...
1. Как создается локальный адрес ссылки, если обнаружение дублирующегося адреса не удается?
2. Используется ли рандомизированный идентификатор интерфейса для создания локального адреса? Если да, то описано ли это где-то в RFC или задокументировано для ОС?
решение1
- Как создается локальный адрес, если обнаружение дублирующегося адреса не удается?
В обычном RFC 4862 SLAAC этого просто нет.
«Остановка автоконфигурации» означает именно то, что написано: стек IP не пытается использовать какие-либо альтернативные алгоритмы, он буквально останавливает процесс и локальный адрес каналане создано.Аналогично, «ручная настройка» означает, что системному администратору вместо этого придется добавить рабочий адрес.
(В конце концов, при использовании аппаратных IID сбой IPv6 DAD означает, что сам аппаратный адрес является дубликатом, а вы, вероятно, нехотеть(Чтобы продолжать в этой ситуации.)
Случайная генерация RFC 4941 «Расширения конфиденциальности» никогда не предназначалась для замены основного «публичного» адреса или изменения обычного процесса SLAAC, как прямо указано в собственных RFC.
Однако если ОС использует «семантически непрозрачные» IID RFC 7217 вместо стандартных аппаратных IID, она продолжает повторять попытки с другим значением «DAD_Counter» (что создает другой IID) до тех пор, пока хотя бы один адрес не будет успешно обработан.
- Используется ли рандомизированный идентификатор интерфейса для создания локального адреса? Если да, то описано ли это где-то в RFC или задокументировано для ОС?
Да, RFC 7217 (если реализован ОС) применяется как к локальным, так и к глобальным адресам. Обратите внимание, что использование RFC 7217 совершенно необязательно; иеслиПосле внедрения он призван полностью заменить аппаратный алгоритм генерации IID, а не выступать в качестве запасного варианта.
Кроме того, RFC 7721 ссылается на другой алгоритм, используемый Microsoft Windows (который, как я полагаю, появился немного раньше RFC 7217).