LINUX.ORG.RU
ФорумAdmin

А как настраивают автоматическое продление DHCP аренды?

 ,


0

1

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

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

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

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

★★★★★

Последнее исправление: saahriktu (всего исправлений: 1)

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

Harald ★★★★★
()
Ответ на: комментарий от Harald

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

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

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

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

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от saahriktu
И если не трогать и не менять дефолт роутера и GNU/Linux'а, то в итоге весь лог заполнен отчётами о том как DHCP-клиент каждые 10 минут получал новые IP'шники.

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

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

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

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

anonymous
()
Ответ на: комментарий от anonymous

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

anonymous
()
Ответ на: комментарий от anonymous

тот же самый IP адрес

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

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

saahriktu ★★★★★
() автор топика
Последнее исправление: saahriktu (всего исправлений: 1)
Ответ на: комментарий от anonymous

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

Khnazile ★★★★★
()
Ответ на: комментарий от Khnazile

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

/sbin/dhclient -4 -v -i -pf /run/dhclient.eth0.pid -lf /var/lib/dhcp/dhclient.eth0.leases -I -df /var/lib/dhcp/dhclient6.eth0.leases eth0

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

lease {
  interface "eth0";
  fixed-address 172.24.129.74;
  option subnet-mask 255.255.255.0;
  option routers 172.24.129.254;
  option dhcp-lease-time 600;
  option dhcp-message-type 5;
  option domain-name-servers 172.17.0.17,172.24.128.1,172.24.129.14;
  option dhcp-server-identifier 172.24.128.1;
  option domain-name "company.spb.su";
  renew 6 2020/10/31 08:24:50;
  rebind 6 2020/10/31 08:29:22;
  expire 6 2020/10/31 08:30:37;
}
lease {
  interface "eth0";
  fixed-address 172.24.129.74;
  option subnet-mask 255.255.255.0;
  option routers 172.24.129.254;
  option dhcp-lease-time 600;
  option dhcp-message-type 5;
  option domain-name-servers 172.17.0.17,172.24.128.1,172.24.129.14;
  option dhcp-server-identifier 172.24.128.1;
  option domain-name "company.spb.su";
  renew 6 2020/10/31 08:28:43;
  rebind 6 2020/10/31 08:33:35;
  expire 6 2020/10/31 08:34:50;
}

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

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

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

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

anonymous
()
Ответ на: комментарий от anonymous

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

Khnazile ★★★★★
()
Ответ на: комментарий от anonymous

Немного не так.

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

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

anonymous
()
Ответ на: комментарий от anonymous

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

Khnazile ★★★★★
()
Ответ на: комментарий от anonymous

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

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

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

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

  rebind 6 2020/10/31 08:33:35;
  expire 6 2020/10/31 08:34:50;
, а что-то наподобие этого:
  rebind 6 2020/10/31 08:29:35;
  expire 6 2020/10/31 08:34:50;

saahriktu ★★★★★
() автор топика
Последнее исправление: saahriktu (всего исправлений: 1)
Ответ на: комментарий от saahriktu

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

renew 6 2020/10/31 08:28:43;
rebind 6 2020/10/31 08:33:35;
expire 6 2020/10/31 08:34:50;

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

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

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

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

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

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

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

anonymous
()
Ответ на: комментарий от anonymous

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

  renew 6 2020/10/31 10:15:19;
  rebind 6 2020/10/31 10:19:32;
  expire 6 2020/10/31 10:20:47;
Значит, второй вариант оказался хуже первого (настройки DHCP-сервера).

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

saahriktu ★★★★★
() автор топика
Последнее исправление: saahriktu (всего исправлений: 1)
Ответ на: комментарий от saahriktu

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

Поставь сусю :)

gutaper ★★★★★
()

А просто привязать по маку не вариант?

WitcherGeralt ★★
()
Ответ на: комментарий от gutaper

Я как раз openSUSE и настраивал. Да, wicked так и работает. Спасибо.

saahriktu ★★★★★
() автор топика

В общем, в таких дистрибутивах как Магейя из коробки dhclient сразу работает как надо.

В таких дистрибутивах как openSUSE dhclient можно долго настраивать и так и не настроить, но всё решает переключение на wicked, да.

saahriktu ★★★★★
() автор топика

google://dhcp default lease time
google://dhcp max lease time

Затем читаешь RFC. Как поймешь основной принцип работы, можно будет начать обсуждать детали реализации в конкретных dhcp-клиентах. Из личного опыта: мне НИКОГДА не требовалось настраивать подобное поведение в линуксовых клиентах. Все возникающие глюки с продлением аренды в основном возникали в кривых реализациях проприетарных клиентов, в которых крутилок не завезли вообще.

Использовал как dhcpcd, так и dhclient, если что.

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.