LINUX.ORG.RU
решено ФорумAdmin

dhcp temp unavalible


0

1

Добрый день други.

Ситуация такая: есть провайдер который выдаёт белый ip ардес по dhcp (у него происходит авторизация по порту), т.е. статику прописать невозможно. Иногда (я предполагаю на последней миле), случаются видимо фейлы, и dhclient не может продлить аренду, через какое-то время dhclient забивает на попытки получения адреса, и обнуляет интерфейс. - Приходится просить удалённо человека, чтоб сказал dhclient ethXXX

Что в таких случаях делать? В крон команду такую кидать не очень кошерно... Оно конечно тоже можно написать скрипт, который будет пинговать что-то, и выполнять dhclient для интерфейса, если это что-то не отвечает... Но потом получается куча процессов dhclient остаются висеть, что тоже не очень кошерно, можно допилить, чтоб убивало процессы старые за одно.

Но пахнет костылём.

Пните в нужную сторону.

Система: абанту без графики и всяких networkmanager

★★★★★

Ну что б не кастыльно, можно в dhclient.conf написать timeout over 100500. В debian-based

By default, this timeout is sixty seconds.

Туда же

retry time;
там тоже

By default, this is five minutes.

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

Не плохо в целом, костыльненько правда. :) Пасибо! В край попробую прям так и запилить!

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

Огромное спасибо! Только вот не совсем ясно, мне выходит должно хватить и дефолтных настроек... Разве нет?

Оно вроде как говорит, что оно постучится минутку, если сервер недоступен, и нет годных аренд, оно обнулиться, но через пять минут будет пробовать снова. Верно? - Не написано сколько раз оно будет пробовать. Вот тут странность скрывается. Если понимать как написано, моей проблемы не должно в принципе существовать ведь... А получается она появилась. Что скажете? На вирт. машине протестирую чтоль...

timeout time;

The timeout statement determines the amount of time that must pass between the time that the client begins to try to determine its address and the time that it decides that it is not going to be able to contact a server. By default, this timeout is sixty seconds. After the timeout has passed, if there are any static leases defined in the configuration file, or any leases remaining in the lease database that have not yet expired, the client will loop through these leases attempting to validate them, and if it finds one that appears to be valid, it will use that lease’s address. If there are no valid static leases or unexpired leases in the lease database, the client will restart the protocol after the defined retry interval.

retry time;

The retry statement determines the time that must pass after the client has determined that there is no DHCP server present before it tries again to contact a DHCP server. By default, this is five minutes.

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

Спасибо! В своём логичном предположении что оно должно работать и так, я был прав. В своём ответе - Вы были правы. В общем расковырял, я почему оно не так как написано в документации, в debian-based, если в interfaces написано inet dhcp, оно пускает dhcpclient3 с параметром -1, который говорит, если за timeout не получено ответа, выходить с кодом 2. Соот-но, чтоб не лезть в кишки (а оно так сделано, чтоб не флудить широковещательными пакетами в случае фейла), выставление параметра timeout в over 100500, полностью решает проблему!

Огромное спасибо за правильный пинок!

DALDON ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.