Почему мой DAD медленный?

Последние несколько ботинок моего Arch Linux я заметил, что у меня нет доступа к сети. Я использую профиль netctl чтобы дать моему адаптеру статический адрес IPv4, который сам по себе отлично работает.

Поэтому я просмотрел журналы, и ошибка была:

  • iptables будет соответствовать следующему пакету запроса ICMP в качестве состояния ESTABLISHED после отправки первого пакета ответа
  • Как поместить значение команд netcat echo pipe в переменную
  • постфиксный виртуальный домен по определенному IP-адресу
  • Как измерить время поступления пакета?
  • Автоматизация ввода текста из сценария bash без использования EOF
  • Реализуются ли потоки как процессы в Linux?
  • Duplicate Address Detection занимает слишком много времени на интерфейсе 'enp0s25'

    netctl затем завершает работу с кодом 1 , оставляя сеть в неустановленном состоянии.

    netctl обнаружение адресов – это функция IPv6, и netctl использует ее, когда профиль содержит эту строку:

     IPv6=stateless 

    Который должен настроить IPv6 автоматически. Кто-то открыл проблему для этого в проекте Github, где автор netctl утверждает:

    […] Если DAD занимает более 3 секунд (по умолчанию), у вас либо очень сложная, либо медленная сеть, либо неправильная конфигурация.

    А также:

    Похоже, что что-то в вашей сети неправильно настроено. […]

    Но что может быть неправильно с моей сетью? Это очень простая инфраструктура, есть только модем / маршрутизатор моего провайдера с двумя ПК на нем, небольшое количество беспроводных устройств и несколько цифровых телевизионных приставки. Качество сети в моем доме прекрасно в целом, и проблема началась всего несколько недель назад.

    Текущее обходное решение – либо отключить DAD, либо увеличить тайм-аут, ни один из которых мне не очень нравится.

  • Если настройки, отсутствующие в конфигурации ядра, интерпретируются как `<setting> = n` или используются` defaults`?
  • Как сортировать в первом столбце каждые 4 строки в файле с ключом во втором столбце
  • Проверка присоединения Rsync не отражает каталоги
  • Отключить буферизацию в конфигурации виртуальной машины
  • Ошибка RPM build-rpaths error 0x0001
  • Застрял в цикле в приглашении входа в систему после изменения оболочки на zsh
  • One Solution collect form web for “Почему мой DAD медленный?”

    DAD по своей сути медленный, потому что он должен работать без обратной связи.

    Способ DAD заключается в том, что до того, как адрес активирован на интерфейсе, отправляется запрос обнаружения соседа, запрашивающий MAC-адрес хоста, который имеет этот IP-адрес.

    Если адрес дублируется, узел, у которого уже есть адрес, будет отвечать, и DAD быстро завершится.

    Но когда адреса правильно настроены, дублирования не будет, и, следовательно, ответа на запрос не будет.

    Поскольку отправитель не может знать, как быстро ответ вернется, он должен ждать. Как быстро DAD заканчивается, зависит от того, сколько времени отправитель настроен для ожидания ответа.

    Важно заметить, что это зависит только от конфигурации отправителя запроса, а не от того, как настроена остальная часть сети. Любой, кто предположил, что сложная сеть может замедлить DAD, вероятно, не поняла, как это работает.

    Можно настроить машину на отправку нескольких запросов с задержкой между ними и назначить адрес только через определенное количество секунд без ответа. Такая конфигурация, очевидно, замедлит DAD.

    Системный вызов для назначения IP-адреса интерфейсу не блокирует ожидание завершения DAD. Но если вы попытаетесь связать сокет с адресом до того, как DAD завершится, произойдет сбой. Это может привести к состоянию гонки, в результате чего службы не появятся во время загрузки. Сообщение об ошибке, которое вы видите, возможно, было создано куском кода, предназначенным для ожидания завершения DAD, чтобы избежать такого состояния гонки. Одна ошибка, которую легко вводить в таком коде, заключается в том, чтобы она продолжала ждать завершения DAD, когда DAD на самом деле уже не удалось из-за дублированного адреса.

    В некоторых ситуациях оптимальным способом решения проблем, вызванных DAD, является просто отключить DAD. Однако сначала вам следует убедиться, что на самом деле у вас нет дублированного адреса. Если у вас есть дублированный адрес, то включение, отключение или переконфигурация DAD не решит ваши проблемы.

    Если ваша система должна быть единственным законным пользователем IP-адреса, а какой-либо другой узел отвечает на запросы ND для этого IP-адреса, то проблема, с которой вы сталкиваетесь, – это обманывание ND, и это первая проблема, которую вам нужно решить.

    Если, однако, у вас есть сценарий, в котором IP-адреса настроены динамически и IP-адрес может быть законно заявлен любым из нескольких узлов, то использование DAD может помочь избежать конфликтов и не должно быть отключено.

    Linux и Unix - лучшая ОС в мире.