34 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

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

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

Рано или поздно любой системный администратор осознает необходимость перевода вверенных ему компьютеров и сетевых устройств на автоматическое получение параметров протокола 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.101 — 192.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-сервера из портов следует выполнить команды:

В окне конфигурации нужно отметить единственную опцию [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. , 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 строки:

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

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

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

Рассмотренный способ наблюдения за состоянием 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.

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

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

Сетевая Docker подсистема подключается используя драйверы. По умолчанию существует несколько драйверов которые обеспечивают основные сетевые функции:

  • bridge: Мост, — это сетевой драйвер по умолчанию. Бридж сеть используется, когда ваши приложения запускаются в автономных контейнерах, которые должны взаимодействовать между собой (Наглядный пример Nginx + MySQL).
  • host: Хост, — это сетевой драйвер для автономных контейнеров (удаленная сетевая изоляция между контейнером и Docker хостом). Данный драйвер доступен только для docker-swarm с поддержкой Docker 17.06 и выше.
  • overlay/overlay2: Оверлей (Наложенная сеть), — это сетевой драйвер для соединения несколько демонов Docker между собой и которые позволяют docker-swarm службам взаимодействовать друг с другом. Вы также можете использовать оверлейные сети для облегчения связи между docker-swarm и автономным контейнером или между двумя отдельными контейнерами на разных Docker демонах. Эта стратегия устраняет необходимость выполнения маршрутизации на уровне ОС между этими контейнерами.
  • macvlan: Маквлан,- это сетевой драйвер, который позволяют назначать MAC-адрес контейнеру, делая его отображаемым как физическое устройство в вашей сети. Docker демон направляет трафик на контейнеры по их MAC-адресам. Использование macvlan драйвера иногда является лучшим выбором при работе с устаревшими приложениями, которые ожидают, что они будут напрямую подключены к физической сети.
  • none: Нон,- это сетевой драйвер, который умеет отключать всю сеть для контейнеров. Обычно используется в сочетании с пользовательским сетевым драйвером.
  • Network plugins: Вы можете установить и использовать сторонние сетевые плагины с Docker контейнерами. Эти плагины доступны в Docker Store или у сторонних поставщиков услуг.
Читать еще:  Медленная загрузка Windows 7

Где и что лучше использовать?

  • Мост (bridge) лучше всего использовать для связи нескольких контейнеров на одном и том же Docker хосте. Можно юзать docker-compose и выберать даную сеть для такой связки.
  • Хост (host) сети лучше всего юзать, когда сетевой стек не должен быть изолирован от хоста Docker, но вы хотите, чтобы другие аспекты контейнера были изолированы.
  • Овердейная сеть (overlay/overlay2) или наложение сетей лучше всего заюзать, когда вам нужны контейнеры, работающие на разных Docker хостах для связи, или, когда несколько приложений работают вместе, используя docker-swarm.
  • Маквлан (macvlan) сети лучше всего использовать, когда вы переходите с VM/дедикейта на контейнеры или хотите, чтобы ваши контейнеры выглядели как физические хосты в вашей сети, каждый с уникальным MAC-адресом.
  • Сторонние сетевые плагины позволяют интегрировать Docker со специализированными сетевыми стеками.

Просмотреть Network в Docker

Чтобы проверить какие сети имеются, выполните следующую команду:

  • NETWORK ID — При создании сети, ей присваивается ID. Так это собственно индификатор сети.
  • NAME — Имя сети. Можно задать произвольное имя.
  • DRIVER — Используемый драйвер для созданной сети.
  • SCOPE — Где используется.

Если посмотреть на поле «DRIVER», то можно понять что я использую стандартную сеть, которую предоставляет сам докер.

Создать Network в Docker

Давайте создадим сеть, самый простой способ это:

Вы можете создавать bridge, overlay, host, none или кастомный network-инг. По дефолту, — создается мост. Проверяем что вышло:

Как я и говорил, создался бридж с указанным названием сети. Давайте рассмотрим пример создания оверлей-сети:

Можно создать macvlan сеть, например:

Еще один пример создания сети:

Проверим созданную сеть на примере, какого-то контейнера:

PS: Если нужно, то контейнеру можно выделить статик ИП:

При создании сети, можно задавать дополнительные параметры, с ними можно ознакомится:

Подключить/Отключить контейнер(ы) к/от сети в Docker

Чтобы законектить контейнер к сети, нужно выполнить следующую команду:

  • YOUR_NETWORK — Сеть.
  • YOUR_CONTAINER — Контейнер.

Для отключения служит обратная команда:

  • YOUR_NETWORK — Сеть.
  • YOUR_CONTAINER — Контейнер.

Инспектор Network в Docker

Можно получить подробную информацию о той или иной сети, например:

Довольно много полезной информации можно получить из данной команды.

Так же, можно получить инфу со следующей команды:

Или если есть необходимость в форматировании и выводе нужных полей, то можно заюзать следующий формат:

Удаление Network в Docker

Для удаления сети, используйте:

Или если нужно удалить все созданные сети которые не используются вами:

Если появится хороший материал, обязательно добавлю в данную статью. Вот и все, тема «Работа с сетью (Networking) в Docker» подошла к завершению.

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

Установим PHP с необходимыми модулями. Процесс сборки из исходников может оказаться слишком утомительным, поэтому я ставлю из готовых пакетов c помощью package manager’а, который, если вы еще не установили, собирается из port’ов:

Далее ставим php:

И на всякий случай выставляем права:

Приступаем к конфигурированию. Далее нужно найти и раскоментировать две строчки в конфиге apache:

Теперь дополним строчку в том же httpd.conf:

Находим секцию LoadModule и добавляем в конце блока:

сразу после строки “ AddType application/x-gzip .gz .tgz” добавим:

и в конце файла допишем:

Создаем конфигурацию php из шаблона и открываем ее на редактирование:

где:
magic_quotes_gpc — отключает “экранирование” кавычек;
upload_max_filesize — выставляет лимит для одного загружаемого на сервер файла;
post_max_size — лимит для всех загружаемых на сервер файлов;
max_execution_time — лимит времени в секундах на выполнение скрипта (при его превышении сервер вернет ошибку, тогда как при значении параметра 0 время не ограничивается).

Переходим в директорию расположения веб-скриптов, переименовываем файл и добавляем в него код для отображения версии и других параметров интерпретатора PHP:

Перезапустив Apache введя в браузере IP-адрес веб сервера увидим информацию о PHP, что говорит о его работоспособности:

Здесь следует обратить внимание на включенную поддержку MySQL — если все настроено правильно, то статус обоих строчек будет “Enabled”:

Настройка DNS.

IP адреса DNS серверов хранятся в файле /etc/resolv.conf(Рис.9)

Открываем resolv.conf в редакторе vi.

Вписываем IP адрес DNS сервера. (Можно указать сколько угодно адресов.)

Если у вас нет файла resolv.conf то создайте его в каталоге /etc

Рис.9 – Содержимое файла resolv.conf.

Сетевая Docker подсистема подключается используя драйверы. По умолчанию существует несколько драйверов которые обеспечивают основные сетевые функции:

  • bridge: Мост, — это сетевой драйвер по умолчанию. Бридж сеть используется, когда ваши приложения запускаются в автономных контейнерах, которые должны взаимодействовать между собой (Наглядный пример Nginx + MySQL).
  • host: Хост, — это сетевой драйвер для автономных контейнеров (удаленная сетевая изоляция между контейнером и Docker хостом). Данный драйвер доступен только для docker-swarm с поддержкой Docker 17.06 и выше.
  • overlay/overlay2: Оверлей (Наложенная сеть), — это сетевой драйвер для соединения несколько демонов Docker между собой и которые позволяют docker-swarm службам взаимодействовать друг с другом. Вы также можете использовать оверлейные сети для облегчения связи между docker-swarm и автономным контейнером или между двумя отдельными контейнерами на разных Docker демонах. Эта стратегия устраняет необходимость выполнения маршрутизации на уровне ОС между этими контейнерами.
  • macvlan: Маквлан,- это сетевой драйвер, который позволяют назначать MAC-адрес контейнеру, делая его отображаемым как физическое устройство в вашей сети. Docker демон направляет трафик на контейнеры по их MAC-адресам. Использование macvlan драйвера иногда является лучшим выбором при работе с устаревшими приложениями, которые ожидают, что они будут напрямую подключены к физической сети.
  • none: Нон,- это сетевой драйвер, который умеет отключать всю сеть для контейнеров. Обычно используется в сочетании с пользовательским сетевым драйвером.
  • Network plugins: Вы можете установить и использовать сторонние сетевые плагины с Docker контейнерами. Эти плагины доступны в Docker Store или у сторонних поставщиков услуг.

Где и что лучше использовать?

  • Мост (bridge) лучше всего использовать для связи нескольких контейнеров на одном и том же Docker хосте. Можно юзать docker-compose и выберать даную сеть для такой связки.
  • Хост (host) сети лучше всего юзать, когда сетевой стек не должен быть изолирован от хоста Docker, но вы хотите, чтобы другие аспекты контейнера были изолированы.
  • Овердейная сеть (overlay/overlay2) или наложение сетей лучше всего заюзать, когда вам нужны контейнеры, работающие на разных Docker хостах для связи, или, когда несколько приложений работают вместе, используя docker-swarm.
  • Маквлан (macvlan) сети лучше всего использовать, когда вы переходите с VM/дедикейта на контейнеры или хотите, чтобы ваши контейнеры выглядели как физические хосты в вашей сети, каждый с уникальным MAC-адресом.
  • Сторонние сетевые плагины позволяют интегрировать Docker со специализированными сетевыми стеками.

Просмотреть Network в Docker

Чтобы проверить какие сети имеются, выполните следующую команду:

  • NETWORK ID — При создании сети, ей присваивается ID. Так это собственно индификатор сети.
  • NAME — Имя сети. Можно задать произвольное имя.
  • DRIVER — Используемый драйвер для созданной сети.
  • SCOPE — Где используется.

Если посмотреть на поле «DRIVER», то можно понять что я использую стандартную сеть, которую предоставляет сам докер.

Создать Network в Docker

Давайте создадим сеть, самый простой способ это:

Вы можете создавать bridge, overlay, host, none или кастомный network-инг. По дефолту, — создается мост. Проверяем что вышло:

Как я и говорил, создался бридж с указанным названием сети. Давайте рассмотрим пример создания оверлей-сети:

Можно создать macvlan сеть, например:

Еще один пример создания сети:

Проверим созданную сеть на примере, какого-то контейнера:

PS: Если нужно, то контейнеру можно выделить статик ИП:

При создании сети, можно задавать дополнительные параметры, с ними можно ознакомится:

Подключить/Отключить контейнер(ы) к/от сети в Docker

Чтобы законектить контейнер к сети, нужно выполнить следующую команду:

  • YOUR_NETWORK — Сеть.
  • YOUR_CONTAINER — Контейнер.
Читать еще:  Управление другим компьютером через локальную сеть

Для отключения служит обратная команда:

  • YOUR_NETWORK — Сеть.
  • YOUR_CONTAINER — Контейнер.

Инспектор Network в Docker

Можно получить подробную информацию о той или иной сети, например:

Довольно много полезной информации можно получить из данной команды.

Так же, можно получить инфу со следующей команды:

Или если есть необходимость в форматировании и выводе нужных полей, то можно заюзать следующий формат:

Удаление Network в Docker

Для удаления сети, используйте:

Или если нужно удалить все созданные сети которые не используются вами:

Если появится хороший материал, обязательно добавлю в данную статью. Вот и все, тема «Работа с сетью (Networking) в Docker» подошла к завершению.

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

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

Рано или поздно любой системный администратор осознает необходимость перевода вверенных ему компьютеров и сетевых устройств на автоматическое получение параметров протокола 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.101 — 192.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-сервера из портов следует выполнить команды:

В окне конфигурации нужно отметить единственную опцию [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. , 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 строки:

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

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

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

Рассмотренный способ наблюдения за состоянием 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.

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

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

2. Установка Zabbix-агента.

Zabbix-агенты устанавливаются на наблюдаемых операционных системах с целью сбора информации: загрузка процессоров, памяти, дисков и тд.

FreeBSD:
Как минимум, мы будем мониторить систему, на которой установлен Zabbix сервер. Для FreeBSD установка будет выглядеть следующим образом:

Копируем шаблон конфига zabbix-агента и редактируем его (или сверяем настройки):

Запускаем агент и добавляем его в автозагрузку:

Проверяем, запустился ли:

Заходим в веб-интерфейс, выбираем “Настройка ->Узлы сети”, выбираем подгруппу “Zabbix server” и активируем дефолтный уже созданный узел Zabbix-сервера. Если все настроено правильно, через некоторое время пикограмма “ZBX” станет зеленого цвета, как на скриншоте:

Zabbix-сервер устанавливался на FreeBSD, поэтому зайдем в свойства узла Zabbix server и поменяем Template OS Linux на Template OS FreeBSD.

Debian:
Если говорить о других linux-дистрибутивах, то на примере Debian 8.x:

Читать еще:  Почему в БИОСе не видно загрузочную флешку?

Далее все по аналогии — открываем конфиг, где указываем:

Все остальное можно оставить поумолчанию. Перезапускаем службу и добавляем правило для iptables:

Далее сохраняем правила iptables, в зависимости, где у вас расположен конфиг: по умолчанию для Debian 8.x:

Перезагружаем службу и проверяем правила:

Windows:
Для операционных систем Windows в первую очередь необходимо скачать с сайта архив с pre-compiled agent соответствующей версии. Внутри архива в папке bin располагаются две версии для разной разрядности операционных систем, а в папке conf — дефолтный конфиг агента. Содержимое папки bin, в соответствии с разрядностью вашей операционной системы и конфиг-файл необходимо скопировать в одну папку, например, в С:Zabbix. Теперь открываем комнадную строку с правами администратора, устанавливаем zabbix-агент, как службу:

и запускаем службу Zabbix-агента:

В случае, если какие-то параметры Zabbix-агента были изменены для перезапуска службы Zabbix-агента из командной строки с правами администратора нужно выполнить:

Необходимо так же разрешить соединения для порта 10050 и после добавления Windows-узла через веб-интерефейс Zabbix-сервера добавить Template OS Windows.

По желанию можно так же установить несколько инстанций zabbix-агента с различными конфиг-файлами — подробности здесь.

Настройка DNS.

IP адреса DNS серверов хранятся в файле /etc/resolv.conf(Рис.9)

Открываем resolv.conf в редакторе vi.

Вписываем IP адрес DNS сервера. (Можно указать сколько угодно адресов.)

Если у вас нет файла resolv.conf то создайте его в каталоге /etc

Рис.9 – Содержимое файла resolv.conf.

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

Рано или поздно любой системный администратор осознает необходимость перевода вверенных ему компьютеров и сетевых устройств на автоматическое получение параметров протокола 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.101 — 192.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-сервера из портов следует выполнить команды:

В окне конфигурации нужно отметить единственную опцию [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. , 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 строки:

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

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

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

Рассмотренный способ наблюдения за состоянием 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.

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

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

голоса
Рейтинг статьи
Ссылка на основную публикацию
Статьи c упоминанием слов: