Привет, посетитель сайта ZametkiNaPolyah.ru! Продолжаем изучать основы работы компьютерных сетей. Продолжаем рассматривать и разбирать протокол DHCP, на этот раз мы рассмотрим срок аренды IP-адреса в DHCP, который передается при помощи опции 51 (Option 51 IP Address Lease Time). В общем, нам нужно понять зачем нужно время аренды и как правильно настроить этот параметр в своей компьютерной сети.
9.4.1 Введение
Содержание статьи:
- 9.4.1 Введение
- 9.3.2 Зачем нужен срок аренды в DHCP и как его правильно выбрать?
- 9.3.2.1 Зачем нужно время аренды IP-адреса в DHCP?
- 9.3.2.2 Рекомендации по выбору и настройки времени аренды в DHCP
- 9.3.3 Истечение срока аренды IP-адреса или как DHCP-клиент делает повторный запрос?
- 9.3.3.1 Ключевые особенности времени аренды
- 9.3.3.2 Option 51 IP Address Lease Time
- 9.3.3.3 Как клиент продлевает время аренды IP-адреса
- 9.3.4 Освобождение IP-адреса и получение нового адреса в ОС Windows
- 9.3.5 Выводы
Сразу скажу, что в DHCP-клиенты получают IP-адреса не насовсем, а на строго определенное время, которое задается на сервере, это время называется временем аренды IP-адреса или lease time. Такой механизм в DHCP необходим, поскольку было бы глупо заставлять сервер постоянно проверять: а пользуется ли клиент выданным IP-адресом? Во-первых, у сервера может быть несколько тысяч или десятков тысяч клиентов, а его ресурсы не бесконечны, во-вторых, представьте, как не экономно расходовалась бы полоса пропускания, если бы сервер проверял доступность клиентов.
В конце концов у клиента могли бы быть написаны правила безопасности, запрещающие отвечать на всевозможные проверки, например, на ping. И что тогда, сервер бы забирал ранее выданный IP-адрес и отдавал его другому клиенту? Тогда были бы конфликты IP-адресов, что не есть хорошо. Разработчики протокола DHCP решили по-другому, придумали более гибкий и в то же время надежный подход, они решили, что клиент должен получать IP-адрес на определенное время и при необходимости продлевать это время, сервер же в свою очередь, не должен выдавать IP-адрес никому другому, пока длится время аренды, как только оно закончится и не будет продлено, сервер будет вправе освободить адрес, а затем выдать его другому клиенту.
9.3.2 Зачем нужен срок аренды в DHCP и как его правильно выбрать?
Давайте начнем с того, что поговорим: зачем в протоколе DHCP нужно время аренды IP-адреса и как его правильно выбрать. А затем посмотрим на практике, как это всё работает.
9.3.2.1 Зачем нужно время аренды IP-адреса в DHCP?
Разберемся с первой частью вопроса. Все мы прекрасно понимаем, что количество IP-адресов в мире ограничено, особенно, если речь идет о протоколе IPv4. Если же говорить про локальную сеть, то здесь IP-адресов еще меньше, это будет не совсем точно, но можно сказать, что количество IP-адресов в локальной сети ограничено количеством частных IP-адресов. Кроме того, не стоит забывать и том, что мы должны выделить DHCP-серверу пул IP-адресов, чтобы сервер начал их раздавать клиентам, этот пул тоже не бесконечен.
Думаю, приведенных выше аргументов достаточно, чтобы понять важность опции время аренды в DHCP. Эта опция нужна, чтобы клиент не владел адресом до бесконечности. Ведь может возникнуть такая ситуация в сети, при которой клиента уже в ней нет, а DHCP-сервер держит ранее выданный IP-адрес за этим клиентом и никому другому его не отдает, хотя легко мог бы это сделать, и никакого конфликта бы не произошло. Как-то не экономнененько получается с учетом дефицита IP-адресов. Заставлять DHCP-сервер опрашивать своих клиентов – затея так себе, об этом я написал выше. Значит, надо сделать так, чтобы клиент не навсегда получал адрес, а на определенное время, как я уже говорил, это время называется lease time, но не подумайте, клиент ничего серверу не платит за то, чтобы получить IP-адрес, просто надо было как-то это дело назвать.
Когда время аренды будет истекать, клиент будет вправе продлить время пользования IP-адресом, а сервер может даже ему в этом отказать в некоторых случаях. Если время аренды истекло, то клиент будет обязан прекратить использование IP-адреса, дабы чего не произошло. Также клиент вправе в любой момент времени отказать от полученного IP-адреса, для этого есть специальное DHCP-сообщение DHCPREALEASE.
Бывают такие ситуации, при которых клиент отключается от сети, проходит какое-то время, за это время срок аренды истекает, а клиент вновь подключается к сети, в таком случае он попытается запросить у сервера тот IP-адрес, который был получен ранее и если этот IP-адрес будет свободен, то сервер его выдаст, если нет, то клиент получит другой IP-адрес.
В противовес бывают обратные ситуации. Клиент отключился от сети и подключился вновь, но время аренды еще не истекло, естественно, клиент сперва попытается достучаться до сервера, чтобы выполнить продление IP-адреса, если это сделать не удается, то клиент будет использовать старый IP-адрес до тех пор, пока время аренды не истечет.
В DHCP есть одно интересное сообщение, которое нигде не реализовано, его посылает сервер клиенту и называется оно DHCPFORCERENEW, этим сообщением сервер может заставить клиента отказаться от IP-адреса до истечения срока аренды, это сообщение очень сомнительно по своему функционалу, поэтому и не реализовано.
9.3.2.2 Рекомендации по выбору и настройки времени аренды в DHCP
Тут можно сказать, что рекомендаций нет и всё зависит от того, как долго клиент находится в сети, а можно сказать, что есть одна универсальная рекомендация: настраивайте время аренды IP-адреса в соответствие с потребностями пользователей вашей сети. Все станет понятно тогда, когда мы разберем с вами несколько примеров.
Для начала представим, что под нашим управлением находится ресторан быстрого питания с суточной пропускной способностью в тысячу человек человек, среднее время, которое посетитель находится в ресторане, составляет не больше 20 минут, да и не каждый посетитель хочет подключаться к нашей сети, чтобы воспользоваться халявным Интернетом. Тогда мы легко можем прийти к выводу, что для того, чтобы все были довольны, нам хватит сети с маской /25, а время аренды IP-адреса должно быть не более 20 минут, если посетитель будет пользоваться нашей сетью дольше 20 минут, то для него ничего страшного не произойдет, его устройство просто продлит время аренды.
Следующий пример. У нас есть офисная сеть с нормальным офисным планктоном, который работает пять дней в неделю по 8 часов. В нашей сети 50 сотрудников, которые раз в год уходят в отпуск на месяц и иногда болеют, все остальное время они работают. Вообще, тут напрашивается статика, но это очень лень, когда есть DHCP-сервер, поэтому смело выставляем время аренды несколько больше, чем 30 дней и берем сеть с маской /26. Все довольны.
И третий пример с выбором времени аренды. Представим себе, что мы администрируем сеть гостинцы, которая для поддержания статуса проводит в своих помещениях выставки и конференции. Первым делом нужно для себя определить следующее: посетители в гостинице есть всегда, а вот выставки – акция разовая. Поэтому будет логично иметь на DHCP-сервере, как минимум, два пула IP-адресов, один для посетителей (хотя тут вопрос спорный, можно создать по пулу на каждый этаж гостиницы), а другой пул для разовых акций, им будут пользоваться участники конференции. Размер первого пула должен быть чуть больше, чем среднее число постояльцев, это на тот случай, если будут гости, а время аренды выставлять дольше, чем на два часа не имеет смысла, поскольку посетитель в гостинице не живет постоянно. Размер второго пула зависит от числа участников, а время аренды ставить больше, чем на час, и не стоит.
Ну а что делать, если в гостинице есть важные клиенты, которые в любом случае должны иметь доступ к сети, в этом случае для таких гостей можно зарезервировать IP-адрес и не париться. Заметили, что я все время указывал сравнительно небольшие сетки, которые должен раздавать DHCP-сервер? Почему не стоит создавать большие пулы IP-адресов, даже скажу так: почему не стоит создавать пул больше, чем /24? Дело все в том, что и клиент, и сервер обычно находятся в одной канальной среде, что будет, если клиента заштормит или случится какая другая оказия, правильно, всем остальным клиентам тоже будет плохо, и они не смогут работать, а нас это не устраивает, ведь так? У нас все должны работать. А теперь представьте – каково это – искать заглючившую железку в огромной сети.
9.3.3 Истечение срока аренды IP-адреса или как DHCP-клиент делает повторный запрос?
К сожалению, тут я ничего продемонстрировать на практике не смогу, кроме опции, в которой сервер сообщает клиенту время аренды, поэтому поверьте на слово или попробуйте самостоятельно провести эксперимент на основе моего описания.
9.3.3.1 Ключевые особенности времени аренды
Ключевые особенности протокола DHCP, связанные с временем аренды мы уже перечислили ранее, но сделали это размыто, сейчас мы просто акцентируем внимание.
- любой клиент воспринимает IP-адрес, полученный по DHCP, как временный;
- срок аренды задается на DHCP-сервере администратором, не ждите, что я вам скажу какой срок используется по умолчанию, то всё зависит от желания разработчиков;
- как только срок аренды истек, клиент обязан прекратить использовать арендованный IP-адрес, ему нужно либо продлить аренду текущего, либо получить новый, но пока это происходит, старым адресом пользоваться нельзя;
- клиент вправе продлить время аренды, о том как он это может сделать, мы поговорим ниже;
- клиент может в любой момент прекратить пользоваться арендованным адресом, при этом он может сообщить об этом серверу при помощи специального сообщения (в этом случае сервер сразу же освободит IP-адрес), а может и не сообщать, тогда адрес будет освобожден сразу после окончания срока аренды;
- в DHCP есть механизм, который позволяет серверу заставить клиента освободить уже занимаемый IP-адрес, для этих целей используется сообщение DHCPFORCERENEW, но я не встречал таких реализаций;
- сервер вправе отклонить запрос клиента на продление IP-адреса, в этом случае он обязан будет послать сообщение DHCPNACK.
Эти особенности стоит помнить, при использовании протокола DHCP.
9.3.3.2 Option 51 IP Address Lease Time
Время аренды сообщает сервер клиенту, это тот процесс, за который отвечает сервер, администратор может изменить время аренды IP-адреса в любой момент. Для того, чтобы DHCP-сервер мог сообщить клиенту время аренды используется Option 51 (IP Address Lease Time). Если я всё правильно помню, то в качестве единиц измерения всегда используются секунды, ниже вы видите фрагмент дампа с сообщением DHCPOFFER, в котором сервер сообщает клиенту время, после которого IP-адрес должен быть освобожден.
9.4.1 Option 51. Сервер сообщает клиенту время аренды IP-адреса в сообщение DHCPOFFER
Тут стоит заметить, что клиент начинает отсчет времени сразу после того, как получит подтверждение от сервера, а сервер начинает отсчет после того, как зарезервирует IP-адрес за клиентом. При этом клиенту нужно заботиться только о себе любимом, а серверу приходится следить и помнить время каждого клиента.
9.3.3.3 Как клиент продлевает время аренды IP-адреса
Срок аренды IP-адреса обычно обозначается буквой Т, но мы для ясности будем считать, что клиент арендовал адрес на 100 секунд, как только он получил этот адрес, пошел отсчет: 100, 99, 98, 97… Но что если клиенту мало 100 секунд, может он хочет побыть в сети немного подольше, снова проходить весь процесс получения IP-адреса, это долго и это broadcast, то есть неудобно. Поэтому клиент сделает попытку продлить IP-адрес, у него есть на это право по истечению половины периода времени аренды, это у нас время равное T/2 или 50 секунд для нашего случая.
Клиент будет пытаться продлить IP-адрес при помощи сообщения DHCPREQUEST, но в отличие от получения, продление отправляется как unicast с использованием IP-адреса того сервера, у которого клиент получил IP-адрес. Если DHCPREQUEST таки дошел до сервера, то он отправит в ответ DHCPACK тоже юникастом, так он сообщает клиенту, что запрос получил и с ним согласен, можно снова начинать отсчет, начиная со 100 секунд.
А что если выдавший IP-адрес сервер вышел из строя, но есть резервный сервер, как поступит клиент? Клиент в этом случае отправит еще одно unicast сообщение на основной сервер на 75-ой секунде (это для нашего случая, а вообще, попытка будет сделана по истечению половины оставшегося времени) при этом, если половина оставшегося времени от времени аренды, это позже, чем 7/8Т, то есть 87.5% времени аренды или 87.5 секунд для нашей ситуации, то следующая попытка продления IP-адреса будет широковещательная.
Как только истекло 87.5 секунд, клиент начнет отправлять DHCPREQUEST в сеть, используя broadcast адрес, чтобы его слышали все, в том числе и резервный DHCP-сервер, если он, конечно, есть. Если резервный сервер есть, то он может продлить аренду клиенту, в этом случае клиент получит DHCPACK, а может отказать клиенту в продлении, например, если у резервного сервера нет пула IP-адресов, в который попадает IP-адрес клиента. Тогда сервер отправит клиенту DHCPNACK, а клиент поймет, что нужно просить другой адрес.
Как только срок аренды IP-адреса истек, клиент обязан перестать его использовать и пытаться получить новый IP-адрес, либо запустить механизм APIPA и придумать сам себе случайный IP в надежде, что он будет такой не один.
9.3.4 Освобождение IP-адреса и получение нового адреса в ОС Windows
В завершении разговора поговорим о том, как происходит освобождения IP-адреса до истечения времени аренды и получение нового IP на компьютерах под управлением Windows 10. Для этого нам потребуется Wireshark, командная строка или эмулятор терминала и стандартная сетевая утилита ipconfig. Запускаем командую строку и для начала выполним команду ipconfig.
|
Адаптер беспроводной локальной сети Беспроводная сеть: DNS—суффикс подключения . . . . . : Локальный IPv6—адрес канала . . . : fe80::d86b:69ce:ccc4:d47f%10 IPv4—адрес. . . . . . . . . . . . : 192.168.0.100 Маска подсети . . . . . . . . . . : 255.255.255.0 Основной шлюз. . . . . . . . . : fe80::ccfc:a4ff:fee9:44d%10 192.168.0.1 |
Вывод команды может быть большим, как простыня, все зависит от количества сетевых интерфейсов. Выше вы видите настройки интерфейса моего ПК, который получает IP-адрес от роутера по Wi-Fi. Обратите внимание на адрес и маску подсети.
Следующим шагом нужно будет запустить Wireshark и указать интерфейс, с которого будем снимать дамп трафика. В моем случае он называется «Беспроводная сеть». С него я и получил нужную информацию. Теперь в командной строке напишем ipconfig /release и посмотрим в Wireshark.
9.4.2 Сообщение DHCPREALEASE, которое отправил клиент, чтобы освободить IP-адрес
Само сообщение ничем особо не примечательно, лишь стоит выделить два момента:
- Это сообщение клиент отправляет серверу адресно, а не как он это делал с другими сообщениями – при помощи broadcast.
- О том, что это сообщение вынуждает сервер высвободить IP-адрес говорит нам опция 53, вернее ее содержимое.
Обратите внимание на вывод команды ipconfig ниже, после того, как я освободил IP-адрес, сработал механизм, называемый APIPA, и мой компьютер назначил сам себе IP-адрес, начинающийся на 169, сделал он это в надежде на то, что в этой подсети есть и другие устройства. То есть после ручного освобождения IP-адреса, компьютер не делает повторный запрос к DHCP-серверу.
|
Адаптер беспроводной локальной сети Беспроводная сеть: DNS—суффикс подключения . . . . . : Локальный IPv6—адрес канала . . . : fe80::d86b:69ce:ccc4:d47f%10 Автонастройка IPv4—адреса . . . . : 169.254.212.127 Маска подсети . . . . . . . . . . : 255.255.0.0 Основной шлюз. . . . . . . . . : fe80::ccfc:a4ff:fee9:44d%10 |
Теперь мы хотим, чтобы клиент вновь получил IP-адрес. Нас ведь не устраивает тот, что выдал нам APIPA. Для этого напишем команду ipconfig /renew. И сразу лезем в дамп Wireshark. Тут нам уже всё знакомо.
9.4.3 При повторном получение клиент запрашивает у сервера тот IP-адрес, который у него был ранее
Обратите внимание: никаких специальных сообщений для повторного получения IP-адреса нет, вся нужная информация находится в запросе DHCPDISCOVER, клиент с помощью 50 опции сообщает серверу о том, что он раньше брал IP-адрес 192.168.0.100 и хотел бы его взять снова, в данном случае сервер выдал клиенту этот адрес, так как он был свободен.
Вы должны были обратить внимание на то, что в дампе не было подтверждения от сервера о том, что он получил сообщение RELEASE, такого подтверждения просто нет в природе, так как оно и не нужно, даже если по каким-то причинам DHCPRELEASE не дойдет до сервера, клиент все равно освободит IP-адрес, ему на это разрешений не нужно, ведь такое действие не приведет к конфликту, и при этом ничего страшного не произойдет, если сервер не получит RELEASE от клиента, он просто освободит IP-адрес после того, как истечет срок аренды.
9.3.5 Выводы
Как видите, мы в принципе ничего не настраивали, не экспериментировали, но зато вскрыли целый пласт особенностей работы протокола DHCP, связанных со сроком аренды IP-адреса.
DHCP — протокол автоматизации назначения IP-адреса клиенту. Он широко используется в современных сетях. В статье рассмотрим принципы работы, процесс DORA, основные опции и другие аспекты протокола.
Для чего нужен протокол DHCP
DHCP — протокол прикладного уровня модели TCP/IP, служит для назначения IP-адреса клиенту. Это следует из его названия — Dynamic Host Configuration Protocol. IP-адрес можно назначать вручную каждому клиенту, то есть компьютеру в локальной сети. Но в больших сетях это очень трудозатратно, к тому же, чем больше локальная сеть, тем выше возрастает вероятность ошибки при настройке. Поэтому для автоматизации назначения IP был создан протокол DHCP.
Впервые протокол был описан в 1993 году в документе RFC 1531, но с тех пор в описание вносились правки. На сегодняшний день основным документом, регламентирующим протокол, является RFC 2131. Помимо автоматизации процесса настройки IP, DHCP позволяет упростить диагностику подключения и переход из одной подсети в другую, оставляя уведомления для системного администратора в логах.
Принцип работы DHCP
Из вступления ясно, какие функции предоставляет DHCP, но по какому принципу он работает? Получение адреса проходит в четыре шага. Этот процесс называют DORA по первым буквам каждого шага: Discovery, Offer, Request, Acknowledgement.
Давайте подробнее рассмотрим DORA — принцип работы DHCP.

Протокол DHCP, получение адреса IP — DORA
Discovery, или поиск
Изначально клиент находится в состоянии инициализации (INIT) и не имеет своего IP-адреса. Поэтому он отправляет широковещательное (broadcast) сообщение DHCPDISCOVER на все устройства в локальной сети. В той же локальной сети находится DHCP-сервер. DHCP-сервер — это, например, маршрутизатор или коммутатор, существуют также выделенные DHCP-серверы.
Не всегда одну сеть обслуживает один DHCP-сервер, нередко организации устанавливают сразу несколько. Какие порты использует DHCP? Сервер всегда слушает 67 порт, ожидает широковещательное сообщение от клиента, а после его получения отправляет ответное предложение — DHCPOFFER. Клиент принимает сообщение на 68 порту.
Offer, или предложение
DHCP-сервер отвечает на поиск предложением, он сообщает IP, который может подойти клиенту. IP выделяются из области (SCOPE) доступных адресов, которая задается администратором.
Если имеются адреса, которые не должны быть назначены DHCP-сервером, область можно ограничить, указав только разрешенные адреса. Например, администратор может задать диапазон используемых IP-адресов от 192.0.0.10 до 192.0.0.254.
Бывает и так, что не все доступные адреса должны быть назначены клиентам. Например, администратор может исключить (exclude) диапазон 192.0.0.100 — 192.0.0.200 из используемой области. Такое ограничение называется исключением.
DHCP выделяет доступные IP-адреса из области только временно (об этом позже), поэтому нет гарантии, что при следующем подключении у данного клиента останется прежний IP. Но есть возможность назначить какому-либо клиенту определенный IP навсегда. К примеру, забронировать 192.0.0.10 за компьютером системного администратора. Такое сохранение IP для отдельных клиентов называют резервацией (reservation).
DHCPOFFER содержит IP из доступной области, который предлагается клиенту отправкой широковещательного (broadcast, «если вы тот, кто запрашивал IP-адрес, то доступен вот такой») или прямого (unicast, «вы запрашивали IP, предлагаю вот такой») сообщения. При этом, поскольку нужный клиент пока не имеет IP, для отправки прямого сообщения он идентифицируется по MAC-адресу.
Request, или запрос
Клиент получает DHCPOFFER, а затем отправляет на сервер сообщение DHCPREQUEST. Этим сообщением он принимает предлагаемый адрес и уведомляет DHCP-сервер об этом. Широковещательное сообщение почти полностью дублирует DHCPDISCOVER, но содержит в себе уникальный IP, выделенный сервером. Таким образом, клиент сообщает всем доступным DHCP-серверам «да, я беру этот адрес», а сервера помечают IP как занятый.
Acknowledgement, или подтверждение
Сервер получает от клиента DHCPREQUEST и окончательно подтверждает передачу IP-адреса клиенту сообщением DHCPACK. Это широковещательное или прямое сообщение утверждает не только владельца IP, но и срок, в течение которого клиент может использовать этот адрес.
Со схемой отправки сообщений разобрались, но, если в сети несколько DHCP-серверов, пославших предложение, какое из них выберет клиент? Хороший вопрос. В состоянии INIT, если клиент получает адрес впервые, он будет принимать только первое предложение IP. Однако, если клиент уже общался ранее с определенным DHCP-сервером, он отдаст предпочтение этому серверу и, наоборот, сервер выберет знакомого клиента.
Арендуйте выделенные серверы с запуском от двух минут.
Срок аренды
Когда DHCP-сервер выделяет IP из области, он оставляет запись о том, что этот адрес зарезервирован за клиентом с указанием срока действия IP. Этот срок действия называется срок аренды (lease time). Срок аренды по умолчанию выставлен на 24 часа, но может доходить до нескольких дней, недель или даже месяцев. Период задается в настройках самого сервера.
Предоставление адреса в аренду, а не на постоянной основе необходимо по нескольким причинам. Во-первых, это разумное использование IP-адресов — отключенные или вышедшие из строя клиенты не резервируют за собой адрес. Во-вторых, это гарантия того, что новые клиенты при необходимости смогут получить уникальный адрес.
После получения адреса из области, клиент берет его в аренду на время, называемое T. Клиент переходит в связанное (BOUND) состояние и продолжает нормальную работу, пока не наступит время половины срока аренды — T1.
По наступлении T1 клиент инициализирует процедуру получения нового IP или обновления адреса — состояние RENEWING. Процесс повторного получения происходит по упрощенной схеме: клиент прямым сообщением запрашивает (DHCPREQUEST), а сервер подтверждает (DHCPACK) запрос. Время аренды начинает отсчитываться заново.
Если подтверждение (DHCPACK) от сервера не поступает, клиент снова запрашивает адрес, но только когда истекает половина T1. Если запрос адреса остается без ответа второй раз, клиент отправляет еще одно сообщение, когда истекает половина от T1/2 (25% от полного срока аренды). Следующий запрос будет отправлен после истечения еще половины оставшегося времени, потом еще половины. И так далее, пока не наступит T2, которое равняется 87,5%, или 7/8 от всего времени аренды. После T2 все попытки продлить аренду IP будут широковещательными. Это значит, что, если первый сервер по какой-то причине недоступен, на запрос адреса сможет ответить любой другой, и работа не будет прервана.
Три подхода к распределению адресов
Сервер назначает IP одним из трех основных способов.
Статическое распределение (static allocation). Почти как ввод адреса на каждом компьютере вручную. Отличие в том, что системный администратор задает нужные соответствия IP для MAC-адресов клиентов на самом DHCP-сервере. IP останется за клиентом, даже если тот выйдет из сети, отключится, перейдет в новую сеть и т.п.
Автоматическое распределение (automatic allocation). Сервер закрепляет IP из области за каждым клиентом навсегда. Срок аренды не ограничен.
Динамическое распределение (dynamic allocation). DHCP-сервер назначает адрес из области на определенное время, называемое сроком аренды. Такой подход полезен, если число доступных IP ограничено. IP назначается каждому клиенту при подключении к сети и возвращается в область, как только клиент его освобождает. В таком случае IP может отличаться при каждом подключении, но обычно назначается прежний.
Особые DHCP сообщения
Кроме DORA — четырех сообщений для получения адреса — DHCP использует и другие. Давайте рассмотрим каждое.
DHCPNAK. Нередко в источниках можно встретить написание DHCPNACK, что является неправильным, так как RFC 2131 регламентирует именно NAK. DHCPNAK отправляется сервером вместо окончательного подтверждения. Такой отказ может быть отправлен клиенту, если аренда запрашиваемого IP истекла или клиент перешел в новую подсеть.
DHCPRELEASE. Клиент отправляет это сообщение, чтобы уведомить сервер об освобождении занимаемого IP. Иными словами, это досрочное окончание аренды.
DHCPINFORM. Этим сообщением клиент запрашивает у сервера локальные настройки. Отправляется, когда клиент уже получил IP, но для правильной работы ему требуется конфигурация сети. Сервер информирует клиента ответным сообщением с указанием всех запрошенных опций.
Опции DHCP
Для работы в сети клиенту требуется не только IP, но и другие параметры DHCP — например, маска подсети, шлюз по умолчанию и адрес сервера. Опции представляют собой пронумерованные пункты, строки данных, которые содержат необходимые клиенту сервера параметры конфигурации. Дадим описания некоторым опциям:
- Option 1 — маска подсети IP;
- Option 3 — основной шлюз;
- Option 6 — адрес сервера DNS (основной и резервный);
- Option 51 определяет, на какой срок IP-адрес предоставляется в аренду клиенту;
- Option 55 — список запрашиваемых опций. Клиент всегда запрашивает опции для правильной конфигурации. Отправляя сообщение с Option 55, клиент выставляет список запрашиваемых числовых кодов опций в порядке предпочтения. DHCP-сервер старается отправить ответ с опциями в том же порядке.

Option 82 — ретрансляция DHCP-сервера
Option 82 — информация об агенте ретрансляции (relay agent information). Благодаря ретранслятору клиент и сервер могут общаться, находясь в разных подсетях. По умолчанию широковещательные сообщения не могут выходить за пределы текущего широковещательного домена (подсети). Внимательный читатель скажет, что выше мы писали, как клиент отправляет широковещательное сообщение DHCPDISCOVER всем доступным DHCP-серверам. А что если в сети нет DHCP?
Предположим, широковещательные сообщения не выходят за пределы подсети компании, которая не установила DHCP-сервер. В таком случае сообщение DHCPDISCOVER должно будет пропасть, и ни один компьютер компании не сможет выйти в интернет. Однако в реальности отсутствие DHCP-сервера не мешает выходу в сеть.
Значит ли это, что широковещательные сообщения каким-то образом выходят за пределы подсети? Не совсем. За пределы подсети выходят только широковещательные DHCP-сообщения. Это становится возможным благодаря агенту ретрансляции. Обычно в его роли выступает маршрутизатор или сервер. Ретранслятор получает сообщения от клиента в своей подсети, направляют его на DHCP-сервер, который тем же образом — через ретранслятор — отправляет ответ. Так ретранслятор выступает в качестве посредника между подсетями.

Опции DHCP для загрузки PXE
Протокол DHCP позволяет загрузку компьютера без использования носителя данных. Такая загрузка происходит с сетевой карты и называется PXE (Preboot eXecution Environment). Для конфигурации сетевой загрузки LEGACY BIOS PXE используются DHCP-опции 43, 60, 66 и 67.
- Option 43 зарезервирована для обмена информацией производителей;
- Option 60 — классовый идентификатор; здесь указывается, например, PXE клиент;
- Option 66 и 67 необходимы для указания имени сервера PXE и имени файла загрузки соответственно.
Взаимодействие DHCP и DNS
Как мы упоминали выше, Option 6 — это сервер DNS. Давайте рассмотрим подробнее взаимодействие двух протоколов.
DNS (система доменных имен) отвечает за соответствие доменных имен и IP-адресов. Доменное имя — это не только адрес в интернете, например, selectel.ru, но также имя компьютера в локальной сети, например, Director PC. DNS проводит соединительную линию между IP и буквенно-числовым доменным именем компьютера или веб-сайта. DHCP занимается выделением и назначением IP из области. Очевидно, что два протокола должны тесно взаимодействовать между собой.
В статье мы уже говорили, что DHCP-сервер имеет область IP-адресов, которые допускается распределять между клиентами в сети. DNS-сервер занимается тем, что сопоставляет IP-адреса и доменные имена. Это не только имена сайтов, но и имена компьютеров в сети, (например, NetworkServer PC).
Если вы хотите создать свою локальную сеть на базе Linux, потому что это бесплатно и вы не хотите связываться Windows, то вы можете столкнуться с проблемой взаимодействия DNS и DHCP. Linux не имеет Active Directory, как в Windows, позволяющей тесно связать DHCP и DNS, избегая необходимости обращаться к клиенту каждый раз по IP. Однако способы организовать такую связь существуют и для свободной системы.
Первый вариант — настроить DHCP-сервер так, чтобы фиксировал адрес за клиентом. Второй вариант — настроить взаимодействие DHCP- и DNS- серверов. Первый вариант подходит, если область IP-адресов широкая и вы можете позволить себе фиксировать IP за каждым клиентом. Если же для вас такой метод будет расточительным, то необходимо дать двум серверам работать вместе.
Взаимодействие DHCP и DNS необходимо для того, чтобы DNS-сервер вовремя получал информацию о новом IP клиента и мог сопоставить его с именем клиента в сети. Если сервера не будет взаимодействовать, это чревато ошибками и недоступностью клиентов.
Настроить данное взаимодействие можно в четыре шага при помощи пакета dnsmasq, доступного в стандартных репозиториях Ubuntu и Debian. Мы не будем давать детальную инструкцию по осуществлению, а лишь кратко опишем каждый шаг.
Шаг 1 — конфигурация сети
В первую очередь необходимо определиться с компьютером, который будет выполнять роль сервера. Важно выбрать тот компьютер (Ubuntu Server или Ubuntu Desktop), который вы не планируете выключать слишком часто. Если после полной настройки вы решите выключить компьютер, то вся сеть тоже выключится.
Выбранному компьютеру необходимо назначить статический IP. Делается это редактированием конфигурационного файла в директории /etc/network/interfaces.
Шаг 2 — установка dnsmasq
Установите пакет dnsmasq командой из терминала:
sudo apt-get install dnsmasq -y
А затем откройте файл конфигурации /etc/dnsmasq.conf. Файл конфигурации dnsmasq очень большой, но он содержит комментарии с объяснениями того, за что отвечает каждая настройка. Чтобы добавить требуемые настройки, откройте файл и удалите решетку (#), означающую комментарий, в начале нужных строк.
Шаг 3 — настройка фаервола
Для изменения настроек фаервола можно использовать Ubuntu Uncomplicated Firewall. Используйте следующие команды:
sudo ufw allow bootps
sudo ufw allow 53/udp
sudo ufw allow 53/tcp
Шаг 4 — изменение настроек роутера
Зайдите в настройки вашего роутера из браузера, отключите DHCP для локальной сети, измените все настройки DNS так, чтобы они указывали на ваш только что настроенный сервер. Последнее действие — перезапуск сети на сервере. Для этого вы можете просто перезагрузить компьютер или использовать команды:
sudo service dnsmasq restart
sudo service network-manager restart
Недостатки протокола DHCP
DHCP имеет свои уязвимости. Основная заключается в четырех шагах, необходимых для получения IP. Процесс DORA подразумевает рассылку сообщений широковещательного типа, когда первый откликнувшийся DHCP-сервер получает возможность предложить IP из своей области. Если злоумышленник сможет использовать свой сервер, который даст самый быстрый ответ клиенту, то у него откроется возможность получить контроль над действиями пользователя в сети и нанести существенный ущерб.
Следующий недостаток — ненадежность UDP. UDP не обеспечивает гарантию доставки информации. Этот протокол допускает потери и ошибки, которые могут сказаться и на работе DHCP, в частности при PXE-загрузке.
Заключение
Мы рассмотрели основные принципы работы DHCP-серверов. Несмотря на недостатки и частые доработки, протокол DHCP широко используется в современных сетях. Также изучили процесс DORA, основные опции и другие аспекты протокола. Надеемся, эта статья оказалась вам полезна.
При настройке роутера часто возникает вопрос о времени аренды IP-адреса. Некоторые пользователи предпочитают оставить его по умолчанию, другие же хотят настроить его под свои потребности. В данной статье мы рассмотрим рекомендации по выбору времени аренды IP-адреса в роутере.
IP-адрес – это уникальный идентификатор каждого устройства в сети. Для того чтобы устройства могли быть соединены друг с другом, им нужно присваивать IP-адреса. Роутер является важным компонентом сети, он отвечает за передачу данных между устройствами и управление IP-адресами.
Выбор времени аренды IP-адреса в роутере зависит от конкретных потребностей и характеристик сети. Есть несколько вариантов, которые следует рассмотреть перед принятием решения.
Во-первых, стоит обратить внимание на диапазон адресов, доступных для аренды в вашей сети. Если у вас большое количество устройств, то необходимо установить более длительное время аренды IP-адреса, чтобы избежать конфликтов в сети. В таком случае можно выбрать время аренды от нескольких часов до нескольких дней.
Во-вторых, если в вашей сети много временных устройств, таких как смартфоны или планшеты, то имеет смысл установить более короткое время аренды IP-адреса. Это позволит освободить адреса для других устройств и обеспечит более эффективное использование ресурсов сети.
И, наконец, стоит учесть особенности вашей сети и потребности пользователей. Если вам не требуется менять IP-адреса слишком часто, то можно выбрать время аренды в несколько дней или даже недель. Это позволит сохранить стабильность сети и избежать дополнительных настроек.
Содержание
- Длительность аренды ip адреса
- Рекомендации по установке времени аренды IP адреса в роутере
- Важность выбора правильного времени аренды
- Краткосрочная аренда IP-адреса
- Особенности и преимущества краткосрочной аренды
Длительность аренды ip адреса
В роутерах, обеспечивающих раздачу ip адресов, можно настроить время аренды каждого адреса. Это параметр, который определяет, насколько долго одному устройству будет выделен определенный ip адрес.
Выбор длительности аренды ip адреса зависит от нескольких факторов:
| Фактор | Рекомендация |
|---|---|
| Количество устройств в сети | Чем больше устройств подключено к роутеру, тем меньшую длительность аренды ip адреса следует установить. Если устройств много, то каждому устройству нужно предоставить возможность получить свой адрес в короткий период времени. |
| Стабильность подключения | Если подключение к интернету стабильное и не прерывается, можно устанавливать более длительную аренду ip адреса. Это поможет избежать переподключения устройств и улучшит общую производительность сети. |
| Динамическое или статическое выделение адресов | Если роутер использует динамическое выделение ip адресов, то рекомендуется установить короткую длительность аренды адреса для того, чтобы адреса быстрее освобождались и могли быть выделены другим устройствам в сети. В случае статического выделения адресов, длительность аренды можно увеличить, так как адреса выделены постоянно подключенным устройствам. |
Обычно рекомендуется установить длительность аренды ip адреса в диапазоне от 1 до 24 часов. Это позволяет достичь баланса между быстрым обновлением адресов и стабильностью работы сети. Однако, нужно учитывать особенности вашей сети и нагрузку на роутер для определения наиболее подходящего значения.
Рекомендации по установке времени аренды IP адреса в роутере
Типичные значения времени аренды IP адреса в роутере составляют от нескольких часов до нескольких дней. Однако, оптимальное значение может зависеть от различных факторов, таких как размер сети, количество устройств и профиль использования интернета.
Если у вас большая сеть с множеством устройств, длительное время аренды IP адреса может привести к недостатку доступных адресов и возможным проблемам с соединением. В такой ситуации рекомендуется установить короткое время аренды, например, несколько часов. Это позволит более эффективно управлять доступными IP адресами и предотвратить перегрузку сети.
Если же у вас маленькая сеть с небольшим количеством устройств, длительное время аренды IP адреса может быть безопасным и удобным выбором. В таком случае, вы можете установить время аренды на несколько дней или даже недель, чтобы избежать частой переарендации адресов.
Также стоит учитывать профиль использования интернета в вашей сети. Если у вас активные пользователи, которые часто подключаются к сети и используют большой объем интернет-трафика, рекомендуется установить более короткое время аренды. Это поможет избежать забивания сети и обеспечит более стабильное соединение.
Напротив, если у вас малоактивные пользователи, которые редко подключаются к сети и потребляют малый объем интернет-трафика, вы можете выбрать более длительное время аренды. Это позволит сохранить стабильное соединение и избежать частой переарендации адресов.
| Размер сети | Количество устройств | Профиль использования интернета | Рекомендуемое время аренды IP адреса |
|---|---|---|---|
| Большая | Много | Активный | Несколько часов |
| Маленькая | Мало | Активный | Несколько дней |
| Маленькая | Мало | Малоактивный | Несколько недель |
Выбор правильного времени аренды IP адреса в роутере имеет решающее значение для эффективного управления вашей сетью. Учитывайте размер сети, количество устройств и профиль использования интернета, чтобы определить оптимальное значение времени аренды. Если необходимо, вы всегда можете изменить это значение в настройках роутера в будущем.
Важность выбора правильного времени аренды
Выбор правильного времени аренды IP-адреса в роутере имеет большое значение для эффективного функционирования сети. Неправильное время аренды может привести к проблемам с подключением, снижению скорости передачи данных и повышению нагрузки на сеть.
Слишком короткий срок аренды IP-адреса может привести к частым переподключениям и прерываниям в работе сети. Каждый раз, когда устройство переподключается к сети, оно тратит время на получение нового IP-адреса и установку соединения, что может замедлить работу сети.
С другой стороны, слишком длительный срок аренды также может быть непрактичным. Если IP-адрес заблокирован или отключен, длительная аренда может вызвать задержку в обновлении соединения, а также перекрыть возможности других устройств для подключения к сети.
Оптимальным вариантом является выбор среднего срока аренды IP-адреса. В большинстве случаев рекомендуется установить срок аренды в пределах 24-48 часов. Такой срок обеспечивает своевременное обновление соединения, минимизирует прерывания в работе сети и предотвращает блокировку или отключение IP-адреса.
Важно отметить, что оптимальный срок аренды IP-адреса может варьироваться в зависимости от конкретной сетевой среды. Поэтому рекомендуется обратиться к руководству пользователя вашего роутера или провайдера интернет-услуг для получения конкретных рекомендаций по выборе времени аренды IP-адреса.
Краткосрочная аренда IP-адреса
Краткосрочная аренда IP-адреса представляет собой временное предоставление адреса для использования в сети. Эта опция полезна в различных случаях, например, когда необходимо временно подключить устройство к сети или провести тестирование.
Время аренды IP-адреса зависит от конкретных потребностей и требований сети. В большинстве случаев, можно установить время аренды на несколько часов или дней. Однако, стоит учитывать, что слишком короткое время аренды может вызывать частые переподключения и проблемы с доступом к сети.
При установке времени аренды IP-адреса, необходимо также учесть количество доступных адресов и свободное пространство в сети. Если адресов недостаточно, следует ограничить время аренды или увеличить адресное пространство.
| Преимущества | Недостатки |
|---|---|
| Временное подключение устройств | Возможное переподключение |
| Тестирование без постоянного наличия адреса | Ограниченное адресное пространство |
Краткосрочная аренда IP-адреса является гибким решением, которое позволяет эффективно использовать доступные ресурсы сети. При правильной настройке времени аренды и учете требований сети, можно обеспечить надежность и стабильность сетевого подключения.
Особенности и преимущества краткосрочной аренды
Краткосрочная аренда IP-адреса в роутере предлагает ряд особенностей и преимуществ, которые могут быть полезны при установке времени аренды. Вот некоторые из них:
- Гибкость: Краткосрочная аренда позволяет быстро изменять и настраивать параметры сети в зависимости от текущих потребностей. Это особенно полезно в случае временных сетевых требований или когда требуется быстро адаптироваться к изменяющимся условиям.
- Экономия ресурсов: Краткосрочная аренда позволяет использовать только те ресурсы, которые действительно необходимы в данный момент. Это может существенно снизить расходы на аренду и оптимизировать использование доступных IP-адресов.
- Безопасность: При краткосрочной аренде IP-адресов снижается риск возможных угроз безопасности. Удаленные атакующие могут иметь меньше времени для обнаружения и использования соединения сети, что повышает уровень безопасности для ваших данных и систем.
- Быстрое развертывание: Краткосрочная аренда позволяет быстро добавлять новые устройства в сеть без необходимости приобретения и настройки дополнительных постоянных IP-адресов.
- Легкая масштабируемость: Если вашим требованиям в будущем понадобится больше IP-адресов, вы сможете легко адаптироваться и увеличить их количество с помощью краткосрочной аренды.
Учитывая эти особенности и преимущества, определение правильного времени аренды IP-адреса в роутере зависит от ваших конкретных потребностей и требований сети. Рекомендуется оценить ожидаемую загруженность сети, потенциальные изменения требований в будущем и уровень безопасности, чтобы выбрать наиболее подходящее время аренды для вашей сети.
Время на прочтение
8 мин
Количество просмотров 41K
В качестве предисловия. При общении с коллегами, отвечая на их вопросы о совместной настройке DNS и DHCP, часто отсылаю их к замечательной статье Шона Айви на Technet. К сожалению, аналогичного материала на русском языке я не находил. В очередной раз, устно переведя её знакомому, я решил оформить письменный перевод, чтобы иметь возможность отсылать к нему.
Привет всем, меня зовут Шон Айви и я US PFE (Premier Field Engineer). Моя специализация — операционная система Windows и службы Active Directory. Проще говоря, я специализируюсь на Active Directory и связанных с ней сетевых службах. Недавно, у трёх разных клиентов, я помогал SCCM-администраторам, у которых была проблема с установкой SCCM агента. В логе ccm.log значилась ошибка Failed to get token for current process (5). Мы обнаружили, что проблема была не в SCCM, а во взаимодействии DNS и DHCP. Как оказалось, другие службы тоже испытывали связанные с этим проблемы, просто либо демонстрировали иные симптомы, либо не демонстрировали их совсем. Давайте поговорим о том почему так получалось и как это можно предотвратить!
Рассмотрим следующий сценарий:
DHCP
- В DHCP настроена область IP адресов, со сроком аренды 8 дней
- В области DHCP осталось мало свободных IP адресов
- Клиент А не обновлял аренду своего адреса 8 дней и она истекла
- Клиент Б запрашивает новый IP адрес
- DHCP сервер отдаёт Клиенту Б адрес, которым раньше пользовался Клиент А
Пока всё хорошо. Это довольно типовой сценарий работы DHCP сервера и всё происходит именно так, как мы ожидаем. Давайте теперь добавим сюда DNS сервер.
DNS
- Интегрированная с Active Directory зона DNS с настроенной очисткой зоны
- Настройки очитски по умолчанию: “Интервал блокирования = 7 дней” и “Интервал обновления = 7 дней”
- Настройки сервера также по умолчанию: “Период очистки = 7 дней”
- Клиент А обновил DNS запись 8 дней назад (в тот самый день, когда получил свой адрес)
- Клиент А является владельцем своей DNS записи и она не может быть удалена DHCP сервером (при настройках по умолчанию)
- Клиент Б пытается зарегистрировать DNS запись с новым адресом, который он получил от DHCP сервера
- Это тот же самый IP адрес, который использовал Клиент А!
- DNS сервер не сможет вычистить старую запись Клиента А еще 6 дней!
(Если, вдруг, вы не знаете, что такое “очистка зоны”, “интервал блокирования/обновления”, то рекомендую вам почитать блог моего коллеги. Он шикарен! Примечание: раз вы читаете перевод оригинальной статьи, то, возможно, вам проще будет ознакомиться с русскоязычным материалом)
Вот теперь всё уже не так хорошо. Такое случается гораздо чаще, чем вы можете подумать. Теперь у Клиентов А и Б DNS записи ссылаются на одинаковый IP адрес.
Рисунок 1
Итак, у нас в DNS есть два разных имени, ссылающихся на одинаковый IP адрес. И, скорее всего, всё именно так и останется еще минимум 6 дней, пока не истекут описанные выше интервалы. Какие проблемы это может вызвать? Давайте посмотрим.
Проблема
Я уже упомянул, что симптомом этой ситуации была проблема с установкой SCCM клиента, но, на самом деле, мы можем использовать для демонстрации более простой пример — доступ к общей папке. Принцип один и тот же.
Давайте представим, что мне нужно получить доступ к общей папке на Клиенте А. Для примера, возьмём одну из административных папок общего доступа.
Рисунок 2
А вот это уже интересно. Во первых, клиент А даже не включен… но мы получаем ответ от его имени. И это ошибка аутентификации! Некоторые из вас уже догадались, что это происходит, когда вы посылаете сеансовый ключ Kerberos предназначенный для одного компьютера другому, но давайте по порядку.
Мы видим, что наш компьютер (Infra-App1) посылает в DNS запрос на имя client-a.corp.contoso.com. В ответ он получает IP адрес 10.0.0.100.
Рисунок 3
Насколько знает DNS, так оно и есть. Клиент А действительно имеет адрес 10.0.0.100, но точно такой же адрес имеет Клиент Б.
Отлично, теперь мы получаем сеансовый ключ Kerberos. Вот только DNS запрос был на имя Клиента А, так что ответ от службы Kerberos также будет на имя клиента А.
Рисунок 4
Рисунок 5
Мы видим запрос на Рисунке 4 и ответ контроллера домена на Рисунке 5.
Теперь, получив ключ, мы можем попытаться подключиться, к тому, что мы считаем Клиентом А.
Рисунок 6
Здесь мы видим сеансовый ключ Kerberos.
И, наконец, мы видим сообщение об ошибке от Клиента А. Почему? Потому, что клиент А это не Клиент А, а Клиент Б.
Рисунок 7
Всё это только подтверждает то, что вы, вероятно, и так знали. Для того чтобы Kerberos отработал нормально, вы должны обратиться с правильным сеансовым ключом к правильному адресату (Если вы хотите узнать больше о Kerberos, почитайте блог Роба Грина «Kerberos для занятых админов» Примечание: аналогичного материала на русском я не нашёл, но с общими сведениями можно ознакомиться вот здесь).
Конечно, всё отлично сработает, если вместо FQDN имени мы обратимся по IP адресу. Почему? Потому, что в этому случае вместо Kerberos будет использована аутентификация NTLM. Используя IP адрес, мы не делаем никаких предположений о том, к какому клиенту мы подключаемся. Мы просто подключаемся по определённому IP адресу. Некоторые из вас могут подумать, что и для FQDN должно сработать. В конце концов, получив ошибку при использовании Kerberos, мы должны переключиться на NTLM, верно? Не совсем. Я не буду углубляться в детали, но мы переключимся на NTLM, только если мы не смогли договориться об использовании Kerberos. Вы можете прочитать об этом подробнее здесь. В любом случае, Kerberos не возвращал нам ошибки, он штатно ответил нам сеансовым ключом.
Как предотвратить
Теперь, когда мы выяснили, что проблема вызвана устаревшими записями в DNS давайте обсудим, как мы можем предотвратить такую ситуацию. Есть несколько разных способов как это сделать. Давайте обсудим каждый из них.
Примечание: я рекомендую уменьшить интервал очистки для каждого из этих способов до 1-3 дней. Интервал в 7 дней, используемый по умолчанию, позволяет проблемным записям оставаться в DNS чересчур долго.
- Увеличить длительность аренды DHCP, чтобы она соответствовала сумме интервалов обновления и блокирования. В нашем примере, мы увеличим его до 14 дней.
Преимущества:
- К тому времени, как DHCP сможет выдать адрес новому клиенту, DNS запись старого уже может быть удалена
- Простота реализации
Недостатки:
- Если у вас уже осталось мало свободных IP адресов в DHCP, то они могут просто закончится
- Момент очистки зоны не обязательно совпадёт с моментом истечение интервалов обновления и блокирования (а значит и времени аренды DHCP) и мы на небольшой промежуток времени можем получить ситуацию описанную выше. Чтобы уменьшить число таких проблем мы можем уменьшить интервал очистки до 1 дня.
- Уменьшить интервалы обновления и блокирования, чтобы их сумма совпадала с длительностью аренды DHCP. В нашем примере, мы сократим оба интервала до 4 дней.
Преимущества:
- Существующая DNS запись будет очищена раньше. По сути, результат будет аналогичен предыдущему варианту
- Простота реализации
Недостатки:
- Несколько увеличиться нагрузка на Active Directory репликацию (если, конечно, это Active Directory интегрированная зона). Это вызвано тем, что клиенты будут чаще обновлять свои DNS записи (в нашем случае, каждые 4 дня вместо 7)
- Момент очистки зоны не обязательно совпадёт с моментом истечение интервалов обновления и блокирования (а значит и времени аренды DHCP) и мы на небольшой промежуток времени можем получить ситуацию описанную выше. Чтобы уменьшить число таких проблем мы можем уменьшить интервал очистки до 1 дня.
- Настроить DHCP сервер, чтобы он регистрировал DNS записи от имени клиентов (почитать как это настроить можно здесь Примечание: а на русском, здесь)
Преимущества:
- DHCP сервер будет удалять записи в DNS сразу по истечении аренды IP адреса
- При правильной настройке у вас никогда не появится таких проблемных записей
Недостатки:
- Более сложная настройка требует вовлечения более квалифицированного персонала
- Настройка дополнительно усложняется тем, что потребуется сервисная учётная запись, от имени которой будут работать DHCP сервера или все DHCP сервера нужно будет добавить в группу DNSUpdateProxy (менее безопасный вариант)
Попробуйте поэкспериментировать с интервалами обновления и блокирования и длительностью аренды DHCP. Вы можете обнаружить, что изменение интервалов по умолчанию благотворно сказывается на работе ваших сетевых служб. Короткий срок аренды DHCP часто используются для беспроводных сетей. В то же время, не забывайте о дополнительной нагрузке, которую вы возлагаете на сервер, особенно если вы настраиваете частую (раз в несколько часов) очистку для очень большой DNS зоны.
Поиск DNS записей с одинаковыми IP адресами
Почти всё! Теперь мы понимаем, почему происходит такая ситуация, когда возникает проблема и как её предотвратить. Но как нам легко и быстро найти такие записи, если беда уже случилась? Вы можете легко найти такие парные записи в DNS используя несложный PowerShell скрипт (это, конечно же, не единственный способ).
#Import the Active Directory Module
import-module activedirectory
#Define an empty array to store computers with duplicate IP address registrations in DNS
$duplicate_comp = @()
#Get all computers in the current Active Directory domain along with the IPv4 address
#The IPv4 address is not a property on the computer account so a DNS lookup is performed
#The list of computers is sorted based on IPv4 address and assigned to the variable $comp
$comp = get-adcomputer -filter * -properties ipv4address | sort-object -property ipv4address
#For each computer object returned, assign just a sorted list of all
#of the IPv4 addresses for each computer to $sorted_ipv4
$sorted_ipv4 = $comp | foreach {$_.ipv4address} | sort-object
#For each computer object returned, assign just a sorted, unique list
#of all of the IPv4 addresses for each computer to $unique_ipv4
$unique_ipv4 = $comp | foreach {$_.ipv4address} | sort-object | get-unique
#compare $unique_ipv4 to $sorted_ipv4 and assign just the additional
#IPv4 addresses in $sorted_ipv4 to $duplicate_ipv4
$duplicate_ipv4 = Compare-object -referenceobject $unique_ipv4 -differenceobject $sorted_ipv4 | foreach {$_.inputobject}
#For each instance in $duplicate_ipv4 and for each instance
#in $comp, compare $duplicate_ipv4 to $comp If they are equal, assign
#the computer object to array $duplicate_comp
foreach ($duplicate_inst in $duplicate_ipv4)
{
foreach ($comp_inst in $comp)
{
if (!($duplicate_inst.compareto($comp_inst.ipv4address)))
{
$duplicate_comp = $duplicate_comp + $comp_inst
}
}
}
#Pipe all of the duplicate computers to a formatted table
$duplicate_comp | ft name,ipv4address -a
Ниже приведён образец вывода этого скрипта:
Рисунок 8
Скрипт очень простой. Рассматривайте его только как пример. Он вернёт дублированные IP адреса зарегистрированные для компьютерных учётных записей в Active Directory. Помните, что он запросит все компьютерные объекты из Active Directory домена и проверит в DNS IP адрес каждого из них. Если у вас много компьютеров, то используйте ключ -searchbase вместе с командой get-adcomputer, чтобы ограничить количество опрашиваемых каждый раз объектов. Если ваш компьютер не включен в Active Directory домен, то вы не сможете найти его командой get-adcomputer. Мой скрипт специально заточен на то, чтобы получить дублированные записи DNS для сценария, который я описал выше.
Заключение
Есть очень много статей о настройке интеграции DHCP и DNS. Цель этой — обобщить сведения о том, как эти две службы работает вместе, чтобы вам было проще это понять. Подведём итог:
- Сценарий
- Длительность аренды адреса в DHCP и интервалы обновления и блокирования по умолчанию = устаревшие DNS записи
- Симптомы
- SCCM: “Failed to get token for current process (5)”
- Общие папки: “Logon Failure: The target account name is incorrect”
- Любые другие службы использующие Kerberos также могут выдавать различные ошибки
- Проблема
- Корректная работа Kerberos требует, чтобы сеансовый ключ был выдан именно для того компьютера, с которым мы пытаемся установить соединение. Устаревшие DNS записи могут приводить к ситуациям, когда мы будем обращаться к одному компьютеру с ключом для другого
- Решение
- Изменение интервалов обновления и блокирования и/или длительности аренды DHCP
- Настройка DHCP, чтобы сервер регистрировал DNS записи от имени клиентов
- Поиск и удаление дублированных записей
Надеюсь, что статья была вам полезна! Правильная настройка интеграции DNS и DHCP избавит вас от такого рода проблем в вашей сети!
When you connect to a local network, either by WiFi or ethernet, a DHCP (Dynamic Host Configuration Protocol) server on your network router will issue your device with an IP address. This gives your device an ID that allows other devices to locate and connect to it. Usually, this IP address lasts for around 24 hours before it expires.
This is due to the DHCP lease time. This allows a local network to reallocate IP addresses from devices that have been disconnected for a while to other devices, freeing up IP addresses for other devices that may connect (unless you give them a static IP).

What Is DHCP Lease Time & Should It Be Changed?
Unless otherwise specified, a typical network router will assume that any connection made to it is temporary. Your device is assigned an IP by the DHCP server with a lease time attached. If your device isn’t seen after that period expires, the lease expires, and the IP address is freed for other devices to use.
The DHCP lease time is the time given for a lease to remain active before it expires. As we’ve mentioned, 24 hours is the usual lease time issued by networks for connected devices, but this is a standard value that might not be appropriate for your network.

You can change this value, however. If you’re running an open or public network for others to connect to, you might expect a large number of short-term connections. This is where a smaller lease time would make sense, keeping the pool of free IP addresses replenished and allowing new devices to connect.
The lease time you use depends on your own needs. You could use an hour for a restaurant WiFi network to 12 hours for a guest office network, for instance.
You’ll need administrative access to your network router to be able to change these settings. While you can view the current DHCP lease time on your PC or Mac, changing it will require access to your router.
How To View DHCP Lease Time On Windows 10
You can view the DHCP lease time for a Windows PC by using the Windows PowerShell, the replacement for the command line on Windows 10.
- To open a PowerShell window, right-click the Windows Start menu and press Windows PowerShell (Admin). This will launch a PowerShell terminal with administrative privileges.

- In the PowerShell window, type ipconfig /all. This will list all relevant information about your current network connections, including your DHCP lease issue and expiry times. For your network adapter, look for the Lease Obtained and Lease Expires values.

From this information, you can determine the lease time. In the example above, the lease expiry time is exactly 24 hours after the lease was first issued. This period may be shorter or longer for your connection, depending on your own network configuration.
How To View DHCP Lease Time On macOS
On a Mac, you can view DHCP lease time using the built-in Terminal app.
- You can launch the Terminal app by clicking Launchpad > Other > Terminal from the Dock at the bottom of your screen.

- You’ll need to know the device name for your network device on macOS. To do this, type networksetup -listallhardwareports in the Terminal window and hit enter. This will list the name and MAC address for all network devices.

- Once you have your device name, you can find the current DHCP lease time by typing ipconfig getpacket en0, replacing en0 with your own device name. This will list various information about your connection. The DHCP lease time will be listed next to the lease_time (uint32) option.

The DHCP lease time will be shown here as a base-16 hexadecimal value. You’ll need to convert these values to a standard decimal number. For instance, the connection above has a hexadecimal DHCP lease value of 0x15180. This converts to 86400, the length of the lease in seconds, which is equivalent to 24 hours.
Changing DHCP Lease Times On A Local Network
It isn’t possible to change the DHCP lease time in your device’s network settings as this is controlled by the DHCP server that allocates IP addresses, which is usually your network router. You’ll need to have administrative access to your router to change this.
You can usually connect to your network router by typing http://192.168.1.1 or http://192.168.0.1 in a web browser while connected to the network. You may need to check the manual for your router to determine if this is the correct way to connect, as well as determine the admin username and password to log in.
Once you’ve signed in, you’ll need to look for the appropriate Network/ LAN Settings or DHCP Settings area in your router’s settings menu. If you can’t find this, consult your user manual for further advice.

The DHCP lease value is named in various ways. For instance, on a TP-Link router, this value is called the address lease time. You can set this in minutes for this type of router, up to a maximum of 2880 (the equivalent of 48 hours). Other routers will have longer or shorter maximum lease periods.
Change the value accordingly, then save your settings. Once the DHCP lease value has been changed, the new lease time will be issued to your devices accordingly.
How To Renew a DHCP Lease
If you’ve changed your DHCP lease time, you can force any connected devices to release the existing IP lease and renew it. This will allow any changes to your DHCP lease information to be applied immediately.
- To do this on a Windows 10 PC, open a Windows PowerShell window by right-clicking the Start menu and pressing Windows PowerShell (Admin).

- In the open PowerShell window, type ipconfig /release. This will release the existing IP lease and disconnect.

- Type ipconfig /renew to reestablish the connection. The network DHCP server will issue a new lease at this point.

- On macOS, you can do this from the System Preferences menu. Press the Apple icon on the menu bar, then click System Preferences.

- In the System Preferences menu, press Network. Select your network connection in the left-hand menu, then press Advanced.

- In the Advanced Network menu, press the TCP/IP tab. Click the Renew DHCP Lease button to release and renew your IP lease automatically.

This will take a few seconds to complete. Once completed, your IP address will update to confirm your IP address, but you’ll need to run ipconfig getpacket en0 (replacing en0 with your own connection) from the Terminal app to check the current lease time.
Correct Network Management In Windows 10
The DHCP lease time allocated to devices on a network is an essential component in how your network works. If you’re struggling with IP address conflicts, however, you may find that it’s better to assign a static IP to devices that you use regularly.
Many of these settings need to be configured on your network router, but Windows will allow you to change network settings yourself—just be prepared for conflicts if your settings don’t match your router. This might prevent you from seeing other computers on your network, so be sure to double-check any settings you modify first.










