LINUX.ORG.RU
ФорумAdmin

kea dhcp: статическая привязка адресов

 ,


1

2

Приветствую,

Необходимо сделать статическую привязку dhcp-клиентов к IP адресу:

  1. клиент подключается и получает IP адрес

  2. в какой-то момент клиент отключается

  3. клиент опять полнимается и dhcp сервер должен выдпть такой же адрес, что и на первом шаге

Можно завести статические записи в kea конфиге, но для этого нужно заранее знать MAC-адреса или client-id всех клиентов. Но можно ли добиться того, чтобы сервер при первом выделении IP клиенту автоматически заводил бы на него статическую запись? Можно ли это сделать стандартными средствами Kea или нужно создать свою hook-библиотеку?

Спасибо!

★★

Ответ на: комментарий от imul

Сделай время аренды 99 лет.

Ну то есть infinite время аренды лишает клиент необходимости делать периодический renew? А как это поможет серверу выделять клиенту тот же IP после ребута?

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

Ты попробуй. Ребутни сервер и посмотри какой выделится адрес после.

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

как это поможет серверу выделять клиенту тот же IP после ребута?

IP-адрес закреплен за MAC-адресом клиента, пока время аренды не истекло. Очевидно, что если тот же самый MAC запросит IP - ему выдадут тот, аренда на который не протухла. Также логично, что этот IP не выдадут другому клиенту(с другим MAC-ом), т.к. как уже говорилось выше - время аренды не истекло, поэтому IP считается закрепленным за конкретным MAC-ом.

Для IPv6(который stateful, SLAAC - это другое) всё примерно тоже самое, только s/MAC/DUID/ - и вот тут могут быть грабли(DUID может быть разным на разных ОС, хотя MAC-адрес не меняется)

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

IP-адрес закреплен за MAC-адресом клиента, пока время аренды не истекло.

Спасибо за пояснения, поизучал стандарт. Согласно https://datatracker.ietf.org/doc/html/rfc2131#section-3.1 :

The combination of ‘client identifier’ or ‘chaddr’ and assigned network address constitute a unique identifier for the client’s lease and are used by both the client and server to identify a lease referred to in any DHCP messages.

При этом там же выше https://datatracker.ietf.org/doc/html/rfc2131#section-2 пишут :

The ‘client identifier’ is an opaque key, not to be interpreted by the server; for example, the ‘client identifier’ may contain a hardware address, identical to the contents of the ‘chaddr’ field, or it may contain another type of identifier, such as a DNS name.

То есть получается, что выделенный IP адрес закрепляется за client ID, который может быть MAC адресом клиента.

Очевидно, что если тот же самый MAC запросит IP - ему выдадут тот, аренда на который не протухла. Также логично, что этот IP не выдадут другому клиенту(с другим MAC-ом), т.к. как уже говорилось выше - время аренды не истекло, поэтому IP считается закрепленным за конкретным MAC-ом.

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

выделенный IP адрес закрепляется за client ID, который может быть MAC адресом клиента.

Для IPv4 MAC-адрес клиента используется как client ID я думаю в 99% случаях. Остальные случае - это, я подозреваю, IP-сети без MAC-уровня(например L3-туннели - GRE, IPIP и т.д.) где пускают DHCP. Я так не делал, на туннелях у меня либо статика, либо адреса выдаются не через DHCP, поэтому сказать как оно там затрудняюсь.

Pinkbyte ★★★★★
()
15 ноября 2022 г.

Добрый день, удалось Вам сделать статическую привязку dhcp-клиентов к IP адресу? Cейчас есть hook от ISC который называется host_cmds. Но он платный. Есть ли у вас бесплатное решение данного вопроса?

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

Это всё правильно, но главное, чтобы это не было в сети с большой текучкой клиентов, а то получится в сети 3 ПК или wifi устройства и все, а получить адрес не могут, потому, что адрес закреплен за другим мак.

Срок аренды нужен ещё и для того что бы адреса не заканчивались.

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