Для продления аренды клиенты dhcp посылают сообщение

Обновлено: 05.07.2024

Прежде чем сервер DHCP может предоставить клиенту IP-адреса, надо определить область DHCP, т.е. пул действительных IP-адресов которые могут быть выделены клиентам DHCP. Создавая такую область следует помнить:

1. для каждого сервера DHCP надо определить не менее 1 области.

2. из области следует исключить статичные IP-адреса.

3. для централизации администрирования и выделения IP-адресов специфичных для конкретной сети на сервере DHCP можно определить несколько областей подсети можно присвоить лишь 1 область.

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

Служба WINS.

В смешанной сетевой среде клиенты низкого уровня например Win 98,95, устанавливают связь используя имена NetBIOS поэтому в сети Win2000 если в ней есть такие клиенты нужны средства для преобразования имен NetBIOS в IP-адреса. Т.о. WINS- это усовершенствованная версия сервера имен NetBIOS, регистрирующая NetBIOS-имена компьютеров и преобразующая их в IP-адреса. WINS т.ж. поддерживает динамическую БД обеспечивающую привязку имен компьютеров к IP-адресам. Процесс преобразования имен службой WINS позволяет клиентам регистрировать свои имена и IP-адреса на сервере WINS. Данный процесс преобразования включает следующие этапы:

1. при каждом запуске клиент WINS регистрирует привязку > на соответствующем сервере WINS. При изменении сведений об IP-адресе клиент WINS автоматически обновляет БД WINS. Такое обновление производится, например когда служба DHCP динамически присваивает новый адрес компьютеру перемещенному из 1 подсети в другую.

2. при формировании команды NetBIOS для установки связи с другим ресурсом клиент WINS отсылает запрос на определение имени прямо серверу WINS без широковещательной рассылки такого запроса в ЛВС.

3. сервер WINS находит в БД привязку > соответствующую требуемому ресурсу и возвращает клиенту WINS IP-адрес этого ресурса.

Продление аренды имени.

Сервер WINS регистрирует все NetBIOS-имена на временной основе чтобы и другие компьютеры могли использовать эти имена после освобождения их исходными владельцами. Поскольку сервер WINS регистрирует имя лишь на время, клиенту приходится продлять срок аренды имени чтобы тот не истек. Для использования старого NetBIOS-имени клиент должен продлять срок аренды до истечения последнего. Если клиент не обновил период аренды, сервер WINS делает NetBIOS-имя доступным другим клиентам. Первую попытку продлить срок аренды имени клиент WINS делает по истечении 1/8 интервала TTL, если клиент не получит ответа продляющего срок аренды, то он будет отсылать запросы на продление каждые 2 минуты до истечения половины периода TTL. По прошествии половины интервала TTL клиент WINS пытается продлить срок аренды запросив вторичный сервер WINS если он определен. При переключении на вторичный сервер считается то что клиент WINS пытается продлить срок аренды впервые, это значит то, что клиент будет отсылать запросы через 1/8 интервала TTL пока не получит ответ продляющий срок аренды или пока не истечет половина интервала TTL. Затем клиент WINS переключится на первичный сервер WINS. Получив запрос на продление аренды сервер WINS отсылает клиенту ответ с новым интервалом TTL. Если первая попытка продления аренды имени была успешной, то вторая будет сделана лишь по истечении половины интервала TTL.

Освобождении имени.

9.4 Время аренды IP-адреса в DHCP или lease time. Как происходит перезапрос и освобождение IP-адреса?

9.4.1 Введение

Сразу скажу, что в 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-адрес.

В противовес бывают обратные ситуации. Клиент отключился от сети и подключился вновь, но время аренды еще не истекло, естественно, клиент сперва попытается достучаться до сервера, чтобы выполнить продление IP-адреса, если это сделать не удается, то клиент будет использовать старый 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, связанные с временем аренды мы уже перечислили ранее, но сделали это размыто, сейчас мы просто акцентируем внимание.

Эти особенности стоит помнить, при использовании протокола DHCP.

9.3.3.2 Option 51 IP Address Lease Time

Тут стоит заметить, что клиент начинает отсчет времени сразу после того, как получит подтверждение от сервера, а сервер начинает отсчет после того, как зарезервирует IP-адрес за клиентом. При этом клиенту нужно заботиться только о себе любимом, а серверу приходится следить и помнить время каждого клиента.

9.3.3.3 Как клиент продлевает время аренды IP-адреса

Срок аренды IP-адреса обычно обозначается буквой Т, но мы для ясности будем считать, что клиент арендовал адрес на 100 секунд, как только он получил этот адрес, пошел отсчет: 100, 99, 98, 97… Но что если клиенту мало 100 секунд, может он хочет побыть в сети немного подольше, снова проходить весь процесс получения IP-адреса, это долго и это broadcast, то есть неудобно. Поэтому клиент сделает попытку продлить IP-адрес, у него есть на это право по истечению половины периода времени аренды, это у нас время равное T/2 или 50 секунд для нашего случая.

Как только истекло 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.


Что за время аренды DHCP?

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

Если ваша сеть использует DHCP (протокол динамической конфигурации хоста) для автоматического назначения IP-адресов, они не назначаются вашим устройствам навсегда. Вместо этого DHCP назначает IP-адреса только временно на фиксированные периоды времени, в зависимости от того, как он настроен.

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

Протокол динамической конфигурации хоста (DHCP) — это служба, которая работает на вашем маршрутизаторе, а не на компьютере с Windows 10, поэтому вы не можете изменить время аренды DHCP, если не получите доступ к интерфейсу конфигурации вашего маршрутизатора . Прочтите последний раздел этого руководства, чтобы узнать, как это сделать. Однако на вашем компьютере с Windows 10 вы можете видеть и обновлять время аренды DHCP , как описано в следующих двух разделах этой статьи.

Как узнать время аренды DHCP на ПК с Windows 10

Чтобы узнать время аренды DHCP на ПК с Windows 10, сначала откройте командную строку или запустите PowerShell. Затем выполните команду ipconfig /all .


Команда ipconfig / all показывает подробную информацию обо всех сетевых адаптерах, установленных на вашем ПК с Windows 10, включая адаптеры Wi-Fi и Ethernet. Найдите тот, который вы используете для подключения к локальной сети и / или к Интернету. Например, для этого мы используем сетевой адаптер Wi-Fi. Просмотрите детали вашего адаптера, и вы должны найти две текстовые строки, названные Lease Obtained и Lease Expires , за которыми следуют некоторые даты и время, как на скриншоте ниже.


Полученная аренда сообщает вам, когда началось время аренды DHCP . Другими словами, он сообщает вам, когда ваш компьютер или устройство с Windows 10 получили свой IP-адрес от маршрутизатора с использованием DHCP.


Lease Expires сообщает, когда ваш ПК или устройство под управлением Windows 10 должно освободить свой текущий IP-адрес и запросить у маршрутизатора новый.


Как продлить срок аренды DHCP на ПК с Windows 10

Затем, если вы хотите продлить срок аренды DHCP вашего ПК с Windows 10, введите в командной строке или PowerShell следующую команду: ipconfig /release | ipconfig /renew .


Дождитесь, пока команда выполнит свою работу, и после ее завершения она должна отобразить некоторую информацию о ваших сетевых адаптерах. Теперь выполните команду ipconfig /all еще раз. Проверьте текстовые строки Lease Getsed и Lease Expires вашего сетевого адаптера, и вы должны увидеть, что они оба были обновлены.


Теперь давайте посмотрим, как установить время аренды DHCP на что угодно:

ПРИМЕЧАНИЕ. Для иллюстрации следующих шагов мы используем ASUS ZenWiFi AX (XT8) . В зависимости от производителя и модели маршрутизатора визуальные параметры и названия настроек могут отличаться от наших. Тем не менее, они должны быть похожими, поэтому вы должны быть в состоянии найти свой путь.

Как изменить время аренды DHCP в Windows 10

Как вы, вероятно, заметили из предыдущих снимков экрана, наше время аренды DHCP установлено на 24 часа. Однако другие маршрутизаторы или сетевое оборудование могут использовать другие значения по умолчанию для времени аренды DHCP , например, 8 часов или 12 часов. Чтобы иметь возможность изменить время аренды DHCP , вам необходимо настроить параметры DHCP вашего маршрутизатора.

Начните с открытия веб-браузера на компьютере или устройстве под управлением Windows 10. Затем введите адрес вашего роутера. На большинстве маршрутизаторов это 192.168.0.1 или 192.168.1.1, но они могут отличаться. Если вы не знаете IP-адрес своего маршрутизатора, проверьте это руководство: 5 способов найти локальный IP-адрес вашего беспроводного маршрутизатора . Введите учетные данные администратора вашего маршрутизатора и войдите в систему.


В веб-интерфейсе вашего маршрутизатора найдите категорию расширенных настроек под названием LAN и получите к ней доступ.


На странице конфигурации локальной сети маршрутизатора выберите вкладку DHCP-сервер (или раздел).


В настройках DHCP-сервера найдите параметр, который называется Lease time . Это время аренды маршрутизатора DHCP, которое вы искали. Обратите внимание, что время аренды DHCP обычно указывается в секундах, а не в минутах, часах или днях. Как вы можете видеть на следующем снимке экрана, время аренды DHCP нашего маршрутизатора установлено на 86400 секунд, что эквивалентно 24 часам или одному дню.


Если вы хотите изменить время аренды DHCP вашего маршрутизатора, введите желаемое время в секундах. Например, если вы хотите изменить время аренды DHCP на неделю вместо дня, установите для него значение 604800 (604800 секунд = 7 дней).


Почему вы хотели изменить время аренды DHCP?

Было ли это из-за того, что ваше время аренды DHCP было слишком коротким, и это нарушало ваши загрузки или игровые сессии? У тебя были другие причины? Мы хотели бы знать, почему вы хотите это сделать, поэтому не стесняйтесь комментировать ниже.

Вот, допустим, дефолтное поведение такое. Есть роутер, на нём DHCP-сервер. DHCP-сервер выделяет IP адрес на 10 минут. DHCP-клиент после общения с DHCP-сервером сразу же завершается. Через 10 минут аренда IP адреса заканчивается. Просыпается Network Manager и дёргает DHCP-клиент, который опять получает IP адрес на 10 минут. Через 10 минут аренда IP адреса опять заканчивается. И опять происходит переполучение IP'шника. Ну и т.д. Каждые 10 минут.

Можно, конечно, настраивать DHCP-сервер так, чтобы он арендовал IP'шники, например, на 23 часа.

Однако, говорят, что есть ещё и альтернативный вариант. Когда DHCP-клиент продолжает работу, а когда проходит половина времени аренды IP'шника, то он обращается к DHCP-серверу с запросом продлить аренду.

Как такое настраивается?


Мне кажется, на практике какой IP выдали, тот и будет на интерфейсе до следующей перезагрузки. А DHCP сервер всё равно к MAC-у привязывает и выдаёт тот же адрес в следующий раз. Ну это в норме. Не, можно конечно настроить, чтобы каждые 10 минут адрес обязательно менялся, твой отдавался другому, а тебе обязательно новый, но зачем так делать


Кажется, это ответ на несколько другой вопрос.

Network Manager просыпается после завершения аренды IP'шника и дёргает DHCP-клиент чтобы он переполучил IP'шник. Это без вариантов. И если не трогать и не менять дефолт роутера и GNU/Linux'а, то в итоге весь лог заполнен отчётами о том как DHCP-клиент каждые 10 минут получал новые IP'шники.

Чтобы лог был чистым и шелковистым, а браузер то и дело не спотыкался на середине загрузки страницы, варианта всего два. Либо настраивать DHCP-сервер чтобы он арендовал IP'шники на более длительное время, либо настраивать автопродление аренды IP'шников.

Вот я и спросил как настраивается последнее.

В моей практике, даже если срок аренды в настройках isc dhcp server выставлен в 2 минуты, то при запросе dhcp клиента на основе /var/lib/dhcp/dhcpd.leases dhcpd сервер выдаёт клиенту теже самые данные.

И такое поведение у меня, у клиентов Windows, Linux (dhclient), Linux (NetworkManager).

Клиенты всегда переполучают тот же IP адрес.

И такое поведение в независимости от того создана ли привязка mac адреса к IP адресу в настройках DHCP сервера или нет.

Т.е. при повторном запросе сервер выдаёт клиенту тот же самый IP адрес и продлевает срок аренды.


Вопрос о настройке автоматического продлении аренды IP'шника ещё до завершения времени аренды. Например, когда прошла только половина времени аренды. А не тогда, когда время аренды совсем закончилось.

Что-то надо подкрутить в настройках DHCP-клиента чтобы он не завершался, а продолжал работу и выполнял сабжевое действие? Что?

saahriktu ★★★★★ ( 31.10.20 11:11:09 )
Последнее исправление: saahriktu 31.10.20 11:12:06 (всего исправлений: 1)


Как я понимаю, по умолчанию, dhcp старается сохранить ip-адрес хоста. Т.е. если у хоста уже есть ip-адрес, и он не арендован другим хостом, то dhcp сервер выдаст ему тот же адрес. Плюс, сами клиенты сохраняют у себя данные прошлых lease, чтобы запросить старый адрес снова, если им попадется тот же сервер.

Да, вот есть сервер, dhclient запущен вот так:

Вот содержимое файла /var/lib/dhcp/dhclient.eth0.leases:

Обратите внимание на два последник параметра, rebind и expire.

Первый указывает когда нужно перзапросить, второй когда истечёт аренда.

Это штатное поведение из коробки. У меня Debian 10.

ТС, используй Debian, в нём всё работает правильно.


Как я понимаю, что делать по истечении срока аренды, всегда решает сам клиент. Он может сделать renew до того, как аренда истечет, а может и release сделать, а может ничего не делать, и продолжать использовать тот же адрес, и dhcp сервер все равно не сможет его никому другому выдать, пока адрес используется в сети.

Renew - когда Клинт будет презапрашивать параметры у сервера выдавшего ИП адрес.

Rebind - когда клиент будет передзаправшивать параметры у нового сервера, если выдавший не ответил.


Ну я сталкивался с тем, что renew обновляет адрес, но не обновляет данные в биллинге провайдера, из-за чего трафик переставал ходить :)


ТС, используй Debian, в нём всё работает правильно.

Спасибо, не надо. Любой дистрибутив GNU/Linux'а можно допилить.

Тем более, что, во-первых, на данный момент меня не то чтобы не устраивает вариант с настройкой DHCP-сервера. Просто решил узнать про второй вариант. Вдруг он окажется лучше. А, во-вторых, Ваше дефолтное поведение Debian'а примерно такое же как и у меня по дефолту. Вопрос-то в том, чтобы запрашивать продление аренды не уже в самом конце, а когда пройдёт только половина времени аренды.

Т.е. при тех настройках, о которых я спрашиваю в этой теме, если IP'шник арендуется на 10 минут, то в том файле должно быть не

saahriktu ★★★★★ ( 31.10.20 12:48:39 )
Последнее исправление: saahriktu 31.10.20 12:48:59 (всего исправлений: 1)

Я немного неправильно ответил в этом коментарии, а следующий ты не прочитал.

В параметре renew указан срок, когда dhcp клиент будет запрашивать продление у того же DHCP сервера, что выдал аренду, как видишь в моём примере до истечения срока аренды ещё 6 минут.

В параметре rebind указан срок, когда dhcp клиент будет отсылать широковещательный запрос, т.е. запрашивать вновь у всех доступных dhcp серверов.

В параметре expire время истечения.

И как видишь в Debian запрос на продления происходит за 6 минут до истечения срока аренды, точнее не просто запрос а начало серии запросов продления аренды.

И только если за 5 минут не будет продление от выдавшего dhcp сервера, то за минуту до конца аренды будет отослан широковещательный запрос.

И как ты понимаешь, что т.к. запросы начинаютсяза 6 минут до истечения срока аренды, то dhcp сервер по своему leases выдаст тот же IP адрес и просто продлит аренду.

Смотри настройки dhcp сервера, нет ли проблем с сохранением информации об аренде в файлах leases.


OK. Значит, если правильно читать логи, по дефолту у меня тоже так и есть.

Хотя, возможно, да, можно ещё перепроверить корректность настроек.

saahriktu ★★★★★ ( 31.10.20 13:13:35 )
Последнее исправление: saahriktu 31.10.20 13:15:20 (всего исправлений: 1)


В openSUSE вроде так wicked делает искаропки. В логе записи вида blabla (lease time 600 sec, renew in 300 sec, rebind in 525 sec)

Читайте также: