LINUX.ORG.RU
ФорумAdmin

Вопрос по dhcp

 , no free leases


0

3

Всем привет. Возник такой вопрос, должен ли что-то отправлять dhcp сервер в ответ на discover от клиента, если в пуле закончились адреса?

Кажется, в RFC 2131 написано:

When a server receives a DHCPDISCOVER message from a client, the
   server chooses a network address for the requesting client.  If no
   address is available, the server may choose to report the problem to
   the system administrator

Т.е в ответ не должен отправляться offer, как я понимаю?

★★

Оно вообще интересное, оказывается.

4.2 DHCP server administrative controls
DHCP servers are not required to respond to every DHCPDISCOVER and
DHCPREQUEST message they receive.
...
The DHCP specification describes only the interactions
between clients and servers when the clients and servers choose to
interact; it is beyond the scope of the DHCP specification to
describe all of the administrative controls that system
administrators might want to use.
...

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

Ммм, что в твоем понимании «корректно воспринял»? После DHCPNAK клиент должен либо дождаться DHCPACK/DHCPOFFER от другого DHCP сервера, либо, по истечении таймаута - повторить запрос на получение адреса с самого начала(DHCPDISCOVER и т.д.).

Не знаю определено ли это в RFC или нет, но некоторые системы увеличивают задержку между неудачными получениями IP по таймауту, то есть каждый следующий DHCPDISCOVER будет отправлен со всё более увеличивающимся таймаутом - так ведет себя, например, udhcpc в busybox. Делают ли они так, если им пришел хотя бы один DHCPNAK (а не просто «в эфире тишина, никто не ответил») - не проверял.

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

Можно отвечать NAK, можно не отвечать. Если запросов много и машинка не очень (роутер какой дохленький, например), то лучше не отвечать, а то есть клиенты которые на NAK тут же сразу снова долбятся и получается флуд, а без ответа они хотя бы подождут минутку прежде чем переспрашивать.

Stanson ★★★★★
()