Freebsd dhcp-сервер для локальної мережі на базі isc dhcp server

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

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

Початкові дані

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

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

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

Дані рядка забороняють висновок діагностичних повідомлень на консоль і відключають протокол 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:

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

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

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

Для вступу змін в силу необхідно створити порожній лог командою 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 рядок:

висновок

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

Те що курсивом виділив?

Це не страшно. Хоча кнопка Code присутній.

Ну а що не так?

Сам питання! Хіба я не написав про діагностику? Написав! Що заважає заглянути в логи і виправити допущені помилки?
P.S. Повторюю - я пишу статті для тих, хто хоче зробити самостійно, а всі інші, хто не хоче / не може зробити самостійно, але хоче мати у себе описане, платять мені (або моєму колезі, якому довіряють більше, ніж мені) відповідні гроші 😉

  • Вискакіевает така ось помилка ....

    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 все повинно працювати.

    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.e0 prefixlen 64 scopeid 0x1
    nd6 opt ions = 29
    media: Ethernet autoselect (l00baseTX)
    status: active

    Прошу вибачення. Це просто помилка - копіював через 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 на повну і дивіться, що в нього пишеться. Чудес не буває. По крайней мере, я в них не вірю.

  • Вітаю!
    Чи є у Вас досвід в налаштуванні систем з 2ма dhcp-серверами. Буду радий корисною порадою з налаштування 🙂

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

  • Freebsd 9 x64. При запуску видає таку помилку:

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

    Online-перекладачі вже скасували?

    Чи не скасували! однак вирішити проблему все одно не вдається, подібні рядки в 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; не дав результатів.

  • Добрий день! хто стикався з установкою цієї системи на centos 6 x86-64 плиз підкажіть як це зделать? або хоч силочку

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

  • Схожі статті