Назад | Перейти на главную страницу

Почему получение IP-адреса через DHCP занимает секунды?

Из любопытства, почему часто требуется секунды получить конфигурацию сети через DHCP, когда ЦП может обрабатывать миллионы операций в секунду, а проверка связи с маршрутизатором занимает пару миллисекунд?

В моей домашней среде с одним WiFi-роутером и примерно 5 устройствами нередко можно увидеть время, равное 5-10 секундам.

В дополнение к фактическому получению аренды DHCP от DHCP-сервера (что обычно не занимает много времени), некоторые серверы сначала пингуют IP-адрес, который он собирается передать, прежде чем он действительно выдаст его, чтобы убедиться, что он еще не используется в сети - время ожидания истекает через несколько секунд. Иногда клиент делает то же самое (опять же, для предотвращения конфликтов IP-адресов), что увеличивает время. Затем, помимо этого, некоторые клиенты также регистрируют свои записи DNS и т. Д.

DHCP может занять немного больше времени, поскольку он включает серию транзакций не с одним сервером, а со всеми устройствами в сети во время первоначального запроса, поскольку он отправляет широковещательное сообщение.

Если вы проверите RFC для DHCP,

http://www.faqs.org/rfcs/rfc2131.html

вы можете ясно видеть, какой цикл переговоров включает. Вначале клиент отправляет DHCPDISCOVER всем устройствам в локальной сети, затем серверы, на которых запущена служба DHCP, возвращают сообщение DHCPOFFER. Клиент также может дождаться ответа от всех доступных DHCP-серверов, прежде чем он выберет один. Затем он отправляет DHCPREQUEST с идентификатором, который указывает, какой сервер он выбрал в качестве своего IP-провайдера. Наконец, он получает DHCPACK со всеми параметрами конфигурации. Это просто краткое изложение «3.1 Взаимодействие клиент-сервер - выделение сетевого адреса» из RFC.

По моему опыту, dhcp занимает много времени, в основном в большой локальной сети с большим количеством подключенных узлов. В домашней сети всего с одним DHCP-сервером (например, WIFI-маршрутизатором) и одним или двумя ПК, это довольно быстро.

Я нашел две причины (и решения), когда хотел получить быстрые ответы от моего DHCP-сервера.

1) Мой DHCP выполнил эхо-запрос адреса, который он хотел выделить. Это добавило задержки в 3 секунды. Я удалил это, изменив конфигурацию DHCP, чтобы MAC-адрес соответствовал IP-адресу. Это в основном использование DHCP для выделения статического адреса. Это устранило для меня 3-секундную задержку.

2) У меня изолированная сеть, но иногда такое бывает. Выполнялся поиск DNS, что для меня привело к задержке в несколько секунд с получением IP-адреса от DHCP. В конфиге DHCP-сервера были опции для нашего домена и DNS-серверов. После удаления параметров DNS и вышеуказанного изменения я получил мгновенные ответы от DHCP-сервера. (**)

Именно эти проблемы я обнаружил в своей настройке. Ваш пробег может отличаться.

ура

ФУНТ

(**) Если бы у меня была копейка за каждый раз, когда неудачный поиск DNS вызывал задержку, которая приводила к странному эффекту стука, в результате которого я чесал голову, у меня было бы много-много копеек.

Я не знаю, какой у вас сценарий, но в реальном мире вы получаете IP-адрес ... и т. Д. Со старого сервера (dhcp-сервер всегда имеет самое старое оборудование :)) с большим количеством запросов, за брандмауэром , один или несколько маршрутизаторов / коммутаторов ... Задержка, мощность процессора ... а в мире Windows реализация DHCP не так эффективна, как хотелось бы !.

Если вы испытываете проблемы с производительностью с dhcp;

  1. Проверить задержку сети
  2. Посмотрите на согласование dhcp ограничения пакетов. Вы должны увидеть, какое действие занимает много времени. (проблема может быть не в dhcp сервере, кто кого ждет?)
  3. Изучите нагрузку на DHCP-сервер и журналы.