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

isc-dhcp-server: несколько dhcpd.leases - возможно ли?

 ,


1

1

$subj.

Причина такого решения в следующем: есть огромный NAT - рабочие машинки эндюзеров и FreeWiFi (за 2-е суток в dhcpd.leases 4201 запись). Из-за последних - стоит чистка по крону оного файлика. Хотелось бы разнести юзеров отдельно, а вафлю отдельно. Это реально? Ткните в мануал, если оно есть:-)

Решение, пусть и не совсем такое, как хотелось бы - но вполне рабочее.

★★★★★

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

Судя по тому, что гуглится - он умеет только один файл, а хотите копии - делайте в чруте. Не верю, что такая простая вещь как dhcp не может писать в 2 разных файла.

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

Судя по сорцам, он действительно умеет только один файл. В db.c он читается функцией read_conf_file из confpars.c, которая тупо делает

if ((file = open (filename, O_RDONLY)) < 0) ... 

В db.c есть еще туда аппенд

db_file = fopen (path_dhcpd_db, "a");
но там тоже нет следов работы с несколькими файлами.

Грустно, но ты прав, Логоваз.

alex_the_v ★★★
()

Причина такого решения в следующем: есть огромный NAT - рабочие машинки эндюзеров и FreeWiFi (за 2-е суток в dhcpd.leases 4201 запись). Из-за последних - стоит чистка по крону оного файлика. Хотелось бы разнести юзеров отдельно, а вафлю отдельно. Это реально? Ткните в мануал, если оно есть:-)

Так а причина то всё-таки в чём?

Deleted
()

Так проблема в отсутвии свободных IP, что ли? Если так - то сделай меньше время выдачи адреса.

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

Да, я тоже поглядел сорцы, и там все жестко привязано к этому файлу. Может накатаем патч?

Хотя для своего случая я кажется нашел решение, когда сделаю - кину сюда.

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

max_leases_time? Стоит 8 часов для вафли.

Да просто банально неудобно смотреть, кто что получил - сейчас собственно идет миграция на dhcp, потому что файл забит выдачей айпишников вафле.

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

А для чего тогда у dhcpd параметр -lf ?

Запускай несколько dhcpd на разных интерфейсах с разными параметрами.

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

У меня для пользовательских ПК куча вланов, на вафле один. Не совсем удобно.

Итак, мое решение: используем 2 dhcp сервера, на разных машинах. Я поднял на второй машине tag`ом сеть, присвоил ей 192.168.32.2/19 (на NAT`е 192.168.32.1/19), ессно прописал на свиче. На NAT`е в конфиге dhcp убрал раздачу адресов в эту подсеть. Получаем:

На NAT`е идет раздача IP только юзерским ПК. Через него и проходит вафля, но он просто роутит 192.168.32.0/19 в мир.

На втором серваке висит 192.168.32.2/19 с раздачей DHCP. Сам сервак даже не знает про роуты, там просто прописан айпишник, маска и сеть (шлюз намеренно не указан). В dhcpd.conf указано все - и шлюз, и DNS`ы и срок выдачи.

Вроде работает)

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

Я подумал о таком варианте. Можно будет изваять, там все тривиально должно быть. Я если что с тобой свяжусь.

Рад что у тебя там все без этого заверте...

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

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

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

единственная проблема с isc-dhcpd при множестве интерфейсов в том, что их всех приходится перечислять. Хорошо бы иметь патчик позволяющий исключать интерфейсы.

У меня примерно такая же фигня, только 2 подсети должны обслуживаться отдельным dhcpd.

root@ls-gw-ls:~# ps ax | grep dhc
  219 ?        Ss     0:01 /usr/sbin/dhcrelay -4 -c 3 -i vlan0016 -i vlan0017 -i vlan0022 10.200.2.5
 2190 ?        Ss     0:18 /usr/sbin/dhcpd vlan0001 vlan0022 vlan0124 vlan0128 vlan0129 vlan0130 vlan0131 vlan0132 vlan0133 vlan0135 vlan0136 vlan0137 vlan0138 vlan0139 vlan0140 vlan0189 vlan0190 vlan0191 vlan0194 

А сервак может быть и виртуальный, а еще можно просто иметь дополнительный ip-стек ( через lxc ). При наличии доп. сетевушки можно даже мост не поднимать, а отдать в контейнер сразу vlan.

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

Спасибо, возьму на вооружение. Тем не менее - это все костыли. Гораздо логичнее реализовать файлы leases в { ... }.

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