FreeBSD: DHCP-сервер для локальной сети на базе ISC DHCP Server

DHCP Рано или поздно любой системный администратор осознает необходимость перевода вверенных ему компьютеров и сетевых устройств на автоматическое получение параметров протокола TCP/IP с помощью DHCP (Dynamic Host Configuration Protocol). С учетом того, что большинство современных операционных систем имеет в своем составе включенные по умолчанию DHCP-клиенты, не нуждающиеся в дополнительной настройке, процедура внедрения DHCP сводится к установке и настройке DHCP-сервера.

Постановка задачи

Данная статья описывает простую, но достаточную для обслуживания небольших локальных сетей конфигурацию самого популярного DHCP-сервера для операционных систем семейства Linux / Unix от Internet Systems Consortium (далее — DHCP-сервера). Предложенная конфигурация обеспечивает динамическое распределение заданного диапазона IP-адресов, выделение фиксированных IP-адресов нескольким компьютерам (серверам), а также передачу клиентам всех параметров, необходимых для работы в сети TCP/IP. Для повышения безопасности DHCP-сервер запускается в chroot(8) от имени непривилегированных пользователя / группы, а для повышения удобства диагностики и мониторинга он интегрирован со штатными средствами управления логами syslogd(8) и newsyslog(8).

Исходные данные

Имеется сервер с FreeBSD, подключенный к локальной сети с IP-адресом 192.168.0.0/24 через интерфейс bge1 с IP-адресом 192.168.0.1. На него будет установлен DHCP-сервер. Имеется несколько десятков компьютеров и сетевых устройств, которым следует выдавать IP-адреса из диапазона 192.168.0.101192.168.0.200, а также два сервера, которым нужно выдавать фиксированные IP-адреса 192.168.0.2 и 192.168.0.3. Кроме того, всем DHCP-клиентам необходимо сообщать имя DNS-домена company.local, IP-адреса DNS-серверов 192.168.0.2 и 192.168.0.3, а также IP-адрес шлюза по умолчанию 192.168.0.1. DHCP-сервер будет устанавливаться из портов, поэтому я рекомендую обновить их.

Установка и настройка DHCP-сервера

Для обеспечения работоспособности DHCP-сервера требуется поддержка устройств bpf(4) ядром FreeBSD. Стандартное ядро GENERIC поддерживает устройства bpf, а при использовании самосборного ядра придется убедиться в наличии строки device bpf в файле его конфигурации, и, если таковая отсутствует, добавить ее, пересобрать ядро и перезагрузить систему.
Для установки DHCP-сервера из портов следует выполнить команды:

cd /usr/ports/net/isc-dhcp41-server
make config install clean

В окне конфигурации нужно отметить единственную опцию [X] DHCP_PARANOIA Enable support for chroot. Обратите внимание, что при установке DHCP-сервера будут созданы пользователь dhcpd, группа dhcpd и заготовка файла конфигурации /usr/local/etc/dhcpd.conf.sample.
По умолчанию конфигурация DHCP-сервера хранится в файле /usr/local/etc/dhcpd.conf. Я предпочитаю создавать этот файл без использования вышеупомянутой заготовки, содержащей слишком много лишнего. В рассматриваемом случае файл конфигурации должен иметь такой вид:

option domain-name "company.local";
option domain-name-servers 192.168.0.2, 192.168.0.3;
option routers 192.168.0.1;
authoritative;
log-facility local7;
subnet 192.168.0.0 netmask 255.255.255.0 {range 192.168.0.100 192.168.0.200;}
host server2 {hardware ethernet 00:1c:c4:a5:07:ca; fixed-address 192.168.0.2;}
host server3 {hardware ethernet d8:d3:85:dc:df:bc; fixed-address 192.168.0.3;}

В данном файле заданы следующие значения параметров: option domain-name..., option domain-name-servers... и option routers... — имя DNS-домена, список IP-адресов и/или DNS-имен DNS-серверов и список IP-адресов и/или DNS-имен шлюзов (учтите, что перечисленные параметры относятся ко всем обслуживаемым подсетям, но их можно переопределить в секциях subnet для индивидуальной настройки отдельных подсетей); authoritative — признак авторитетности DHCP-сервера (авторитетный DHCP-сервер может инициировать прекращение существующих договоров аренды и запускать повторную процедуру получения IP-адресов); log-facility... — раздел системного журнала, в который будут перенаправляться сообщения DHCP-сервера; subnet... — обслуживаемая подсеть с диапазоном динамически выделяемых IP-адресов range...; host... — узлы с MAС-адресами сетевых карт hardware ethernet, которым необходимо выдавать предопределенные IP-адреса fixed-address (в случае корректно настроенного резольвинга в качестве fixed-address можно использовать не только IP-адреса узлов, но и их DNS-имена).
Более подробная информация о параметрах, которые можно задать в файле конфигурации DHCP-сервера, имеется в dhcpd.conf(5), а список всех опций DHCP (параметров TCP/IP-сети, которые можно сообщить клиентам) — в dhcp-options(5).
Для того, чтобы DHCP-сервер автоматически запускался при запуске операционной системы, следует добавить в файл /etc/rc.conf строки:

dhcpd_enable="YES"
dhcpd_flags="-q -4"
dhcpd_conf="/usr/local/etc/dhcpd.conf"
dhcpd_ifaces="bge1"
dhcpd_withumask="022"
dhcpd_chuser_enable="YES"
dhcpd_withuser="dhcpd"
dhcpd_withgroup="dhcpd"
dhcpd_chroot_enable="YES"
dhcpd_devfs_enable="YES"
dhcpd_rootdir="/var/db/dhcpd"

Данные строки запрещают вывод диагностических сообщений на консоль и отключают протокол IPv6, задают имя файла конфигурации, привязывают DHCP-сервер к интерфейсу bge1 (bge1 нужно заменить на имя используемого интерфейса, а при прослушивании нескольких интерфейсов придется перечислить их имена, используя пробел в качестве разделителя), устанавливают маску создаваемых файлов 022 (запрещают запись всем, кроме владельца), а также обеспечивают запуск в chroot-окружении с корневой папкой /var/db/dhcpd от имени пользователя dhcpd и группы dhcpd.
На этом настройка DHCP-сервера заканчивается. Можно запустить сервер командой /usr/local/etc/rc.d/isc-dhcpd start, а затем запросить его состояние командой /usr/local/etc/rc.d/isc-dhcpd status. Если последняя команда выдаст сообщение dhcpd is running as pid ..., все нормально, если же – dhcpd is not running, придется найти и устранить ошибки в файлах конфигурации.

Анализ состояния DHCP-сервера

Для включения вывода сообщений DHCP-сервера на консоль следует изменить определение переменной dhcpd_flags в файле /etc/rc.conf:

dhcpd_flags="-d"

и перезапустить DHCP-сервер командой /usr/local/etc/rc.d/isc-dhcpd restart.
Признаком корректного запуска DHCP-сервера может служить примерно такое сообщение:

Starting dhcpd.
Internet Systems Consortium DHCP Server 4.1.2
Copyright 2004-2010 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Wrote 0 deleted host decls to leases file.
Wrote 0 new dynamic host decls to leases file.
Wrote 0 leases to leases file.
Listening on BPF/bge1/00:1c:c4:fa:7c:73/192.168.0.0/24
Sending on   BPF/bge1/00:1c:c4:fa:7c:73/192.168.0.0/24
Sending on   Socket/fallback/fallback-net

Выделение динамических IP-адресов DHCP-клиентам сопровождается примерно такими сообщениями:

... dhcpd: DHCPDISCOVER from 90:21:55:bd:0b:36 via bge1
... dhcpd: DHCPOFFER on 192.168.0.101 to 90:21:55:bd:0b:36 (android_81b37c43c8cbaef2) via bge1
... dhcpd: DHCPREQUEST for 192.168.0.101 (192.168.0.1) from 90:21:55:bd:0b:36 (android_81b37c43c8cbaef2) via bge1
... dhcpd: DHCPACK on 192.168.0.101 to 90:21:55:bd:0b:36 (android_81b37c43c8cbaef2) via bge1

а выделение предопределенных IP-адресов по заданным MAC-адресам сетевых карт — примерно такими:

... dhcpd: DHCPDISCOVER from 00:1c:c4:a5:07:ca via bge1
... dhcpd: DHCPOFFER on 192.168.0.2 to 00:1c:c4:a5:07:ca via bge1
... dhcpd: Dynamic and static leases present for 192.168.0.2.
... dhcpd: Remove host declaration server2 or remove 192.168.0.2
... dhcpd: from the dynamic address pool for 192.168.0.0/24
... dhcpd: DHCPREQUEST for 192.168.0.2 (192.168.0.1) from 00:1c:c4:a5:07:ca via bge1
... dhcpd: DHCPACK on 192.168.0.2 to 00:1c:c4:a5:07:ca via bge1

Рассмотренный способ наблюдения за состоянием DHCP-сервера прост и понятен (особенно при наличии под рукой документа RFC-2131), но очень неудобен в связи с необходимостью смотреть на консоль, на которую выдается огромное количество «лишней» информации.
Гораздо удобнее обеспечить запись сообщений DHCP-сервера в отдельный лог с помощью штатного демона syslogd. При этом нужно учесть, что из-за работы в chroot-окружении DHCP-сервер не может взаимодействовать с syslogd, сконфигурированным по умолчанию, т.к. сокет последнего находится за пределами chroot-окружения первого. Для исправления данного обстоятельства необходимо заставить syslogd слушать еще один сокет, имеющий имя /var/run/log относительно корневой папки chroot-окружения DHCP-сервера. Для автоматического создания такого сокета в процессе запуска syslogd, следует добавить соответствующий ключ -l к определению переменной syslogd_flags в файле /etc/rc.conf:

syslogd_flags="... -l /var/db/dhcpd/var/run/log"

Для того, чтобы syslogd записывал сообщения DHCP-сервера в лог /var/log/dhcpd.log, нужно добавить в файл /etc/syslog.conf строку:

local7.* /var/log/dhcpd.log

Для вступления изменений в силу необходимо создать пустой лог командой touch /var/log/dhcpd.log, а затем перезапустить syslogd командой /etc/rc.d/syslogd restart. Начиная с этого момента, все сообщения DHCP-сервера будут записываться в лог /var/log/dhcpd.log.
Для того, чтобы с течением времени лог DHCP-сервер не разрастался до бесконечности, следует включить его ротацию с помощью штатной утилиты newsyslog. Например, для ежесуточного усечения лога /var/log/dhcpd.log с сохранением семи предыдущих копий, сжатых архиватором bzip2(1), нужно добавить в файл /etc/newsyslog.conf строку:

/var/log/dhcpd.log 644 7 * @T00 JC

Заключение

Я надеюсь, что не забыл ничего важного, и приведенной информации хватит для корректной настройки и последующей отладки DHCP-сервера от ISC на компьютере с операционной системой FreeBSD.

Понравилась статья?

 Подпишитесь на RSS или почтовую рассылку

 Присоединиться в Twitter, Facebook или Google+

 Поделитесь ссылкой в социальной сети или блоге

65 комментариев к «FreeBSD: DHCP-сервер для локальной сети на базе ISC DHCP Server»

  1. Привет. Сделал все, как у тебя написано в статье. Все работает, только при запуске сервера выводит предупреждения:

    /usr/local/etc/rc.d/isc-dhcpd: WARNING: dhcpd_chuser_enable disabled -- not compiled in
    /usr/local/etc/rc.d/isc-dhcpd: WARNING: dhcpd_chroot_enable disabled -- not compiled in
    Starting dhcpd.

    Закомментировал в rc.conf соответствующие строчки:

    dhcpd_chuser_enable="YES"
    dhcpd_chroot_enable="YES"

    предупреждения пропали, все работает, но только хотелось бы все таки понять что это за предупреждения, и как изменяется работа сервера без вышеуказанных строчек в rc.conf ?

    • Привет! Вот это:

      /usr/local/etc/rc.d/isc-dhcpd: WARNING: dhcpd_chuser_enable disabled -- not compiled in
      /usr/local/etc/rc.d/isc-dhcpd: WARNING: dhcpd_chroot_enable disabled -- not compiled in

      происходит из-за того, что при сборке DHCP-сервера не была установлена галочка [X] DHCP_PARANOIA Enable support for chroot.

      и как изменяется работа сервера без вышеуказанных строчек в rc.conf

      DHCP-сервер будет работать под root‘ом и иметь доступ ко всей файловой системе. Теоретически, это небезопасно.

      • В окне конфигурации нужно отменить единственную опцию [X] DHCP_PARANOIA Enable support for chroot

        Тогда думаю в этой строчке статьи необходимо заменить «отменить» на «отметить»? 🙂

  2. Всё очень хорошо написано. Только серверам IP адреса, лучше всё таки давать статические, проблем будет меньше.

  3. Для запуска сервера достаточно одной строки в rc.conf
    dhcpd_enable="YES"

    DHCP все таки сложная штука. Неплохо бы описание механизмов аренды, опции82, как это все дело хранить в БД, как перенумеровывать сеть с в которой уже внедрен DHCP, как интегрировать все это с DNS, AD, как передать например прокси сервер. Короче много вопросов не освященных в рунете.

    А так заметка очень для новичков.

    • Для запуска сервера достаточно одной строки в rc.conf dhcpd_enable="YES"

      Достаточно, не спорю. Особенно, если Вас не беспокоит безопасность системы и «прочаяя фигня» 😉

      DHCP все таки сложная штука. Неплохо бы описание механизмов аренды, опции82, как это все дело хранить в БД, как перенумеровывать сеть с в которой уже внедрен DHCP, как интегрировать все это с DNS, AD, как передать, например, прокси-сервер. Короче много вопросов не освященных в рунете.

      Статья начинается со слов: «Данная статья описывает простую, но достаточную для обслуживания небольших локальных сетей конфигурацию самого популярного DHCP-сервера…» Какая БД? Каких механизмов аренды? Что перенумеровывать? В чем по вашему заключается интеграция с DNS+AD (штатных возможностей DDNS Windows Server 200x недостаточно)? Параметры прокси-сервера можно передать с помощью DHCP?

      А так заметка очень для новичков.

      А Вы, я смотрю, Гуру, привыкший настраивать сети из тысяч компьютеров? Или обычный флудераст? 😉

  4. Привет!
    Вот эта строчка смутила — syslogd_flags="... -l /var/db/dhcpd/var/run/log".
    Правильно писать с точками "... -l"?

    • Добрый день! Естественно, нет. Внимально читайте статью и изучайте syslogd(8), если есть какие-то сомнения 😉

  5. Есть ли стандартные средства просмотра текущего состояния базы выделенных адресов?
    Писать скрипт для обработки логов с учётом ротации как то не хочется: слишком очевидная задача, чтобы её уже не решили… (извините, если просмотрел, но как-то не увидел…)

    • Текущий список динамически выделенных адресов хранится в обычном текстовом файле /var/db/dhcpd/var/db/dhcpd/dhcpd.leases, формат которого описан в dhcpd.leases(5).

      • Извиняюсь за задержку с откликом…
        Я этот файл и имел ввиду, когда говорил насчёт «не хочется парсить логи». Ведь в этом файле хранится не текущая база данных выданных IP, а сведения о всех выдачах. То есть, если 10 раз подряд воткнуть и выдернуть сетевой кабель одной и той же машинки, то в этом файле отобразятся все выдачи одного и того же IP адреса одной и той же машинки (с разницей в несколько секунд).
        То есть, чтобы получить список выданных IP адресов с привязкой по именам, надо писать парсер этого «лога».
        Если это единственный файл, в котором dhcp-сервер хранит все данные, то для поиска свободного IP он вынужден каждый раз перелопачивать этот «dhcpd.leases»? Учитывая его возможно немалые размеры, можно представить степень неоправданной нагрузки на сервер в большой сети (даже с учётом ротации этого файла).
        По двум этим причинам я не могу воспользоваться этим демоном. Надеюсь, что я просто чего-то недопонимаю.

        • То есть, если 10 раз подряд воткнуть и выдернуть сетевой кабель одной и той же машинки, то в этом файле отобразятся все выдачи одного и того же IP адреса одной и той же машинки (с разницей в несколько секунд).

          Я думаю, что в dhcpd.leases добавится единственная запись, т.к. MAC-адрес не изменился, и договор аренды еще не истек.

          Если это единственный файл, в котором dhcp-сервер хранит все данные, то для поиска свободного IP он вынужден каждый раз перелопачивать этот dhcpd.leases? Учитывая его возможно немалые размеры, можно представить степень неоправданной нагрузки на сервер в большой сети (даже с учётом ротации этого файла).

          Смотрите в сторону интеграции isc-dhcpd с LDAP.

          • Я думаю, что в dhcpd.leases добавится единственная запись, т.к. MAC-адрес не изменился, и договор аренды еще не истек.

            Вчера нарочно поставил ещё раз чистую систему и накатил порты, прежде чем это написать — пишется именно лог. (один раз задал срок аренды 10 минут, второй раз убрал, чтобы было по умолчанию, как в статье — толку никакого: в этом файле регистрируются все перетыкивания сети). Извините за просьбу, но не могли бы Вы у себя посмотреть — просто передёрнуть кабель несколько раз и посмотреть в лог. Ведь займёт минут пять, не больше. Насчёт LDAP — спасибо, посмотрю. Но, хотелось бы прежде закрыть вопрос о том, о чём я спросил…

            • Извините за просьбу, но не могли бы Вы у себя посмотреть – просто передёрнуть кабель несколько раз и посмотреть в лог

              dhcpd.leases не лог, а база данных выданных адресов. В моем случае дергание кабеля не имеет смысла, т.к. я предпочитаю настраивать DHCP-сервер на выдачу фиксированных IP-адресов по MAC-адресам (выдача таких адресов не фиксируется в dhcpd.leases). Могу точно сказать, что dhcpd.leases периодически очищается от устаревших записей. Внимательно изучайте dhcpd.conf(5) и dhcpd.leases(5). Скорее всего, параметры процедуры очистки dhcpd.leases можно корректировать. Если не сложно, расскажите о том, что получилось и не получилось.

  6. Не запускается скриптом /usr/local/etc/rc.d/isc-dhcpd start, выдает /usr/local/etc/rc.d/isc-dhcpd: WARNING: failed to start dhcpd. В логах абсолютно ничего конкретного. По команде dhcpd -cf /usr/local/etc/dhcpd.conf все поднимается.

  7. Все запустилось, после того, как выставил dhcpd_flags="-q" в /etc/rc.conf. dhcpd_flags="-q -4", равно как и dhcpd_flags="-4" не работают, по крайней мере у меня.

  8. Получается так, что при сборке из портов с отключенным IPv6 опция -4 является избыточной, и ее явное указание вызывает сбой.

  9. С логами полая фигня… Перерыл везде… Описанным методом ничего не выйдет. Зато работает так. В syslogd.conf:

    !dhcpd
    *.* /var/log/dhcpd.log

    в dhcpd.conf:

    log-facility local7;

    Всё. Ничего болше делать не нужно.

    • С логами полая фигня… Перерыл везде… Описанным методом ничего не выйдет.

      Полная фигня у Вас. У меня работает на 4х серверах c FreeBSD 7.0 — 8.2.
      При добавлении в syslog.conf следующих строк:

      !dhcpd
      *.* /var/log/dhcpd.log

      не нужно трогать dhcpd.conf. Такой способ журналирования сообщений рекомендуется только тогда, когда не хватает local0-local7, или наблюдаемое приложение не поддерживает syslogd 😉

  10. Собирал все поп мануалу но dhcp не стартует!!!
    Вот лог при запуске:

    Starting dhcpd.
    Internet Systems Consortium DHCP Server 4.1.2-P1
    Copyright 2004-2011 Internet Systems Consortium.
    All rights reserved.
    For info, please visit _https://www.isc.org/software/dhcp/
    /usr/local/etc/dhcpd.conf line 1: semicolon expected.
    option domain-name company.
    ...
    exiting.
    /usr/local/etc/rc.d/isc-dhcpd: WARNING: failed to start dhcpd

  11. Спасибо!!! Заработало. Теперь вопросик а как сделать теперь раздачу интернета???

  12. Вобщем есть сервак на FreeBSD 8.2 2 сетевые карты интерфейсы настроены DHCP соответствено поднят для подсети… На внешнем интерфейсе нэт есть… Вот теперь хочу его раздать в подсеть в корой и работает DHCP.

  13. Да я понимаю… сделал все как написано, результат таков — клиент в подсети видит подключение к интернету ping 8.8.8.8 проходит, но в браузере страницы не открываются… Подскажите как исправить… Зарание спасибо!!!

    • Я не вникал в статью, на которую Вы сослались, но если автор предлагает задать firewall_type="OPEN", а затем начинает писать правила брандмауэра, он не совсем в теме. Дам один совет — начинайте поиск ответа на вопросы по FreeBSD с изучения соответствующих разделов handbook’а, и только потом идите на блоги и форумы 😉 Уверяю Вас, там есть все, что нужно и про natd, и про ipfw, и даже про isc-dhcpd 🙂

  14. А у меня вот такая вот ошибка:

    Starting dhcpd.
    /usr/local/etc/rc.d/isc-dhcpd: WARNING: failed to start dhcpd.

    И больше ничего. 🙁

  15. Ну а что не так? То что курсивом выделил?
    Ну а насчет вопроса: все так и есть как написал, стартую dhcpd и просто выдает то что я написал выше 🙁

    • То что курсивом выделил?

      Это не страшно. Хотя кнопка Code присутствует.

      Ну а что не так?

      Сам вопрос! Разве я не написал про диагностику? Написал! Что мешает заглянуть в логи и исправить допущенные ошибки?
      P.S.: Повторяю — я пишу статьи для тех, кто хочет сделать самостоятельно, а все остальные, кто не хочет/не может сделать самостоятельно, но хочет иметь у себя описанное, платят мне (или моему коллеге, которому доверяют больше, чем мне) соответствующие деньги 😉

  16. Выскакиевает такая вот ошибка….

    # dhcpd
    Internet Systems Consortium DHCP Server V3.0.7
    Copyright 2004-2008 Internet Systems Consortium.
    All rights reserved.
    For info, please visit _http://www.isc.org/sw/dhcp/
    Wrote 0 leases to leases file.
    No subnet declaration for fxp0 (10.0.67.238).
    You must write a subnet declaration for this
    subnet. You cannot prevent the DHCP server
    from listening on this subnet because your
    operating system does not support this capability.

    Что сделать чтобы запустилось???
    В rc.conf указан интерфейс который смотрит внуть сети rl0, а ругается он на внешний интерфейс…

    • Internet Systems Consortium DHCP Server V3.0.7

      Сейчас я использую ISC DHCP сервер версии 4.1-ESV-R4. Не помню версию isc-dhcpd на момент написания статьи, но уверен, что она была не ниже 4.1.

      В rc.conf указан интерфейс который смотрит внуть сети rl0, а ругается он на внешний интерфейс…

      В случае использования описываемой версии ISC DHCP сервера и отсутствия ошибок в файле rc.conf все должно работать.

  17. Уважаемый автор, благодарю за подробную инструкцию, но в ней допущена следущая ошибка:
    Первая строчка файла dhcpd.conf должна иметь вид:
    option domain-name «company.local»;
    а вы в тексте не указали кавычки, и в данном варианте dhcpd не стартует 🙂

  18. Автор, спасибо Вам за даную статью. Единственное, что у меня не вышло так это разобраться с syslogd_flags="... -l /var/db/dhcpd/var/run/log" — что-то мне дошло, что писать вместо точек? Думаю, это вопрос времени… А так всё работает!! 🙂 СПАСИБО!

    • Автор, спасибо Вам за даную статью.

      На здоровье. Спасибо, что читаете 🙂

      что писать вместо точек

      Ключи, которые уже были прописаны. Обычно я указываю -ss, чтобы syslogd не открывал TCP/IP-сокет.

  19. Добрый день, Спасибо за статью!!!
    Подскажите не могу понять, вроде всё просто, но не работает. Сделал ещё проще, чем у вас /etc/rc.conf:

    dhcpd_enable="YES"
    dhcpd_ifaces="de0"

    /usr/local/etc/dhcpd.conf:

    subnet 192.160.0.0 netmask 255.255.255.0 {
    range 192.160.0.10 192.160.0.20;
    option routers 192.160.0.1;
    authoritative;
    default—lease—time 600;
    max—lease—time 7200;
    log—facility local?;
    interface de0; # пока не добавил эту строчку выдавал ошибку - не настроена subnet ни на одно интерфейсе...
    }

    После добавления последней строчки, выдает ошибку, что ip используется…
    Версия 4.1е_5,2
    FreeBSD 9.0

  20. temp# ifconfig de0:

    de0: flags=8843 metric 0 mtu 1500
    ether 00:l5:5d:0e:77:0e
    inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255
    inet6 fe80::215:5dff:fe0e:770e%de0 prefixlen 64 scopeid 0x1
    nd6 opt ions=29
    media: Ethernet autoselect (l00baseTX)
    status: active

    • Уважаемый, Вы пытаетесь, что DHCP-сервер отдавал адреса подсети 192.160.0.0/24 через интерфейс из подсети 192.168.0.0/24. Нужно читать то, что пишут и хоть немного обдумывать то, что Вы хотите сделать по этой писанине 😉

      • Прошу прощения. Это просто опечатка — копировал через OneNote, сеть совпадает. /usr/local/etc/dhcpd.conf:

        subnet 192.168.0.0 netmask 255.255.255.0 {
        range 192.168.0.10 192.168.0.20;
        option routers 192.168.0.1;
        authoritative;
        default—lease—time 600;
        max—lease—time 7200;
        log—facility local?;
        interface de0;

        • Во-первых, уберите interface de0 из dhcpd.conf. Шаманство — очень плохая практика при настройке компьютеров.
          А дальше включайте детальность лога dhcpd на полную и смотрите, что в него пишется. Чудес не бывает. По крайней мере, я в них не верю.

  21. Приветствую!
    Есть ли у Вас опыт в настройке систем с 2мя dhcp-серверами ? Буду рад полезным советом по настройке 🙂

    • Доброй ночи! В каждой подсети свой DHCP-сервер. Смысла делать два не вижу. На случай атомной войны можно иметь резервный, но пока тьфу-тьфу таких случаев не было 🙂

  22. Freebsd 9 x64. При запуске выдает такую ошибку:

    ddns-update-style ad_hoc no longer supported
    ./isc-dhcpd: WARNING: failed to start dhcpd

      • Не отменили! однако решить проблему все равно не удается, подобные строки в dhcpd.conf перепробовал:

        ddns-update-style none;
        ddns-updates off;

        Если знаешь как реально помочь, так лучше подскажи! Конфиг рабочий был слит с машины Freebsd 9 x86.

        • Если знаешь как реально помочь, так лучше подскажи!

          Манера общения такая мне совсем не нравится. С проблемой я не сталкивался. Вбил ddns-update-style ad_hoc no longer supported в Google и по самой первой ссылке прочитал:

          Replace the line
          ddns-update-style ad-hoc;
          with
          ddns-update-style interim;

          • В итоге 5 ссылок в dhcpd.conf на дополнительные конфиги, была в одном из них строчка которая почему то стала не нравиться демону:

            # ddns-update-style ad-hoc;

            Помогло только удаление строки! ddns-update-style interim; не дал результатов.

  23. Добры день! кто сталкивался с установкой этой системы на centos 6 x86-64 плиз подскажите как это зделать? или хоть сылочку

    • Добрый! Поставьте isc-dhcpd с помощью yum, файл конфигурации, скорее всего, будет лежать в /etc, настройка будет примерно такой же. Посмотрите официальное руководство по RHEL. Уверен, что там рассмотрен этот вопрос.

Оставить комментарий