Jump to content
Калькуляторы

вопросы по использованию isc-dhcpd

Наконец-то дошли руки до dhcpd

 

Имеем конфигурацию вида:

 

shared-network vlan101 
{
subnet 10.0.101.0 netmask 255.255.255.0 {
option routers 10.0.101.1;
option broadcast-address 10.0.101.255;
option subnet-mask 255.255.255.0;
host 0049_2117 {
  hardware ethernet 00:17:31:D2:52:B7;
  fixed-address 10.0.101.10;
        }

host  0201_3208 {
  hardware ethernet 00:14:2A:7B:AB:B3;
  fixed-address 10.0.101.15;
        }

}

shared-network vlan102 {
    subnet 10.0.102.0 netmask 255.255.255.0 {
....

 

Возникла пара вопросиков:

 

1) Failover (Backup) я так понимаю не настроить при такой конфигурации?

2) Опять же в случае с pool можно было по lease файлу посмотреть когда и кто получил IP, теперь lease пусой. Как мониторить данные события в случае с фиксировным IP на MAC?

Share this post


Link to post
Share on other sites

1. Настроить, создай пулы то на специально выделенных диапазонах, типа range 192.168.63.224 192.168.63.254;.

Наличие пулов никак не влияет на работу fixed-address.

Если честно не пробовал, но судя по мануалу, ничем не отличается при настройке Failover на subnet.

2. С фиксированным IP на MAC lease тоже должен работать, используя глобальные параметры.

 

Share this post


Link to post
Share on other sites

1) У меня не получилось запустить dhcp. Начал ругаться что failover не в pool секции

2) Нет при статических mac в lease файл ничего не пишется. Либо я что-то не так делаю?

Share this post


Link to post
Share on other sites

Все правильно. failover должен быть в pool секции. А закрепленные по макам адерса нет смысла файловерить, они как бы сами по себе при наличии двух DHCP с идентичными настроками, резервируются. А вот динамические диапазоны есть смысл.

 

А глобальные параметры выставлены типа lease time и.т.д?

Edited by SokolovS

Share this post


Link to post
Share on other sites

cat dhcpd.conf

default-lease-time 86400;
max-lease-time 86400;
authoritative;
ddns-update-style none;
log-facility local7;

option domain-name "homenet.local";
option domain-name-servers 192.168.177.3;
option classless-route1 code 247  = string;
option classless-route2 code 121  = string;
option classless-route3 code 249  = string;
shared-network system {
    subnet 192.168.253.0 netmask 255.255.255.0 { }
}
shared-network vlan23 {
....

 

Вообщем-то выставлены.

 

>они как бы сами по себе при наличии двух DHCP с идентичными настроками, резервируются

Т.е. в dhcp relay функции коммутатора достаточно будет указать 2й dhcp сервер?

 

Share this post


Link to post
Share on other sites

Т.е. в dhcp relay функции коммутатора достаточно будет указать 2й dhcp сервер?

Именно. У меня так и работает, failover только на динамику.

Edited by SokolovS

Share this post


Link to post
Share on other sites

Вообщем никак не приложу ума что делать с логированием лизов на статику :(

Share this post


Link to post
Share on other sites
Вообщем никак не приложу ума что делать с логированием лизов на статику :(

 

А что с ним не так ?

Mar 20 19:30:01 xxx dhcpd: DHCPREQUEST for xxx.xxx.xxx.xxx from 00:aa:3a:bb:09:a6 via em1
Mar 20 19:30:01 xxx dhcpd: DHCPACK on xxx.xxx.xxx.xxx to 00:aa:3a:bb:09:a6 via em1

 

Оно типа в сислог ругается по умолчанию.

Share this post


Link to post
Share on other sites

Да нет, dhcp хранит статистику по выданным адресам в lease файле, из него можно извлечь информацию, что вобще кому выдано.

В лог то пишитеся само собой. Самое интересное что у меня и по статике в lease пишется, а вот у shicoy нет.

Edited by SokolovS

Share this post


Link to post
Share on other sites

dhcp пишет в leases только динамически выданные адреса, для того, чтобы он смог опять выдать тот же самый адрес, а статику он не пишет, просто это не нужно, т.к. для этого есть dhcpd.conf

Share this post


Link to post
Share on other sites

2SokolovS: у вас какая версия?

Логи статики мне нужны, что бы саппорт мог видеть когда клиент обращался и получил IP от DHCP. не то что бы это принципиально, но часто в решении проблем помогает любая информация

Share this post


Link to post
Share on other sites

У меня 3.1.0, но похоже файлик сервера db.c патченный! Оригинальный на самом деле не пишет статически прописанные адреса.

Share this post


Link to post
Share on other sites

У меня 3.1.0, но похоже файлик сервера db.c патченный! Оригинальный на самом деле не пишет статически прописанные адреса.

не вспомните что именно патчилось?

Share this post


Link to post
Share on other sites

Постараюсь посмотреть завтра, солью оригинальный 3.1 и сделаю diff.

Share this post


Link to post
Share on other sites

+1 к вопросу :)

 

к слову - вообще можно пропатчить его на предмет вызова внешнего скрипта с выбранными параметрами (айпи, мак, имя хоста в конф-файле), который в свою очередь будет заносить все в БД, а при необходимости - еще и рулить ACLами на доступе (ну или в центре - у кого как).

 

но что-то мне подсказывает что я велосипед изобретаю, не подскажет ли кто есть ли уже готовая сопрягалка isc-DHCPd и бд (чтобы, например статика хранилась в БД, и оотуда бралась для роздачи адресов клиентам)? или хоть вызов чего-то внешнего...

Share this post


Link to post
Share on other sites
+1 к вопросу :)

 

к слову - вообще можно пропатчить его на предмет вызова внешнего скрипта с выбранными параметрами (айпи, мак, имя хоста в конф-файле), который в свою очередь будет заносить все в БД, а при необходимости - еще и рулить ACLами на доступе (ну или в центре - у кого как).

 

но что-то мне подсказывает что я велосипед изобретаю, не подскажет ли кто есть ли уже готовая сопрягалка isc-DHCPd и бд (чтобы, например статика хранилась в БД, и оотуда бралась для роздачи адресов клиентам)? или хоть вызов чего-то внешнего...

Посмотрите вот это http://hans.liss.pp.se/software/gluff

Share this post


Link to post
Share on other sites
+1 к вопросу :)

 

к слову - вообще можно пропатчить его на предмет вызова внешнего скрипта с выбранными параметрами (айпи, мак, имя хоста в конф-файле), который в свою очередь будет заносить все в БД, а при необходимости - еще и рулить ACLами на доступе (ну или в центре - у кого как).

 

но что-то мне подсказывает что я велосипед изобретаю, не подскажет ли кто есть ли уже готовая сопрягалка isc-DHCPd и бд (чтобы, например статика хранилась в БД, и оотуда бралась для роздачи адресов клиентам)? или хоть вызов чего-то внешнего...

А что сложного?

простой скрипт хоть на php - лезет в базу и пишет dhcpd.conf

 

Share this post


Link to post
Share on other sites
У меня 3.1.0, но похоже файлик сервера db.c патченный! Оригинальный на самом деле не пишет статически прописанные адреса.
не вспомните что именно патчилось?

файл server/mdb.c

найти строку:

#if !defined (DEBUG_DUMP_ALL_LEASES)

и закоментировать условие до следующего #enfid

 

Еще более правильный вариант, определить макрос в dhcpd.h

#define DEBUG_DUMP_ALL_LEASES 1

 

Возможно есть еще более правильный способ, но не изучал данный вопрос.

Edited by SokolovS

Share this post


Link to post
Share on other sites

Спасибо. Я думаю именно оно!

 

Share this post


Link to post
Share on other sites

gluff - немного не то что мне нужно :) дойдут руки - ковырну сырцы (благо уже понятно где именно) просто на предмет вызова внешнего скрипта. а в нем уже буду творить что захочу.

Share this post


Link to post
Share on other sites

Ну если ковырнешь, вызов внешнего скрипта по событию это очень полезно, так что дай знать! Многим интересно будет.

Share this post


Link to post
Share on other sites

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

 

блин время бы :(

Share this post


Link to post
Share on other sites

Подскажите плиз. возможно ли получение разных fixed-address при одинаковых mac, но в зависимости от интерфейса с которого пришел запрос ?

Т.е. к примеру имеем:

 

subnet 10.0.101.0 netmask 255.255.255.0 {

 

host notebook { hardware ethernet 00:17:31:D2:52:B7; fixed-address 10.0.101.10; }

}

subnet 10.0.102.0 netmask 255.255.255.0 {

 

host notebook-vlan2 { hardware ethernet 00:17:31:D2:52:B7; fixed-address 10.0.102.10; }

}

 

Share this post


Link to post
Share on other sites

Имхо надо так:

 

host notebook { hardware ethernet 00:17:31:D2:52:B7; fixed-address 10.0.101.10; fixed-address 10.0.102.10; }

 

По идее dhcpd должен сам выбрать подходящий fixed-address, в зависимости от subnet, на котором грузится клиент.

Share this post


Link to post
Share on other sites

можно и по интерфейсу, пардон - под рукой примера нет. маны, или на конференциях. но одинаковые адреса не есть гуд.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this