Чтобы настроить DHCP-сервер, необходимо создать файл конфигурации /etc/dhcpd.conf . Пример конфигурации можно найти в файле /usr/share/doc/dhcp- version >/dhcpd.conf.sample .
DHCP также использует файл /var/lib/dhcp/dhcpd.leases для хранения базы данных с информацией об аренде клиентов. За дополнительной информацией обратитесь к разделу 24.2.2 База данных аренды .
Настройка DHCP-сервера начинается с создания файл конфигурации, содержащего сетевую информацию для клиентов. В файле могут быть описаны глобальные для всех клиентов параметры, а также параметры отдельных клиентских компьютеров.
Файл конфигурации может содержать дополнительные символы табуляции и пустые строки, облегчающие форматирование. Ключевые слова не чувствительны к регистру, а строки, начинающиеся с символа решетки (#), являются комментариями.
В настоящее время реализованы две схемы обновления DNS — режим непосредственного обновления DNS (ad-hoc) и не утверждённый пока предварительный режим взаимодействия DHCP-DNS (interim). Если/когда комитет по техническому развитию Интернета (Internet Engineering Task Force, IETF) включит эти механизмы в процесс стандартизации, появится третий режим — стандартный способ обновления DNS. DHCP-сервер должен быть настроен на использование одной из двух существующей схем. Версия 3.0b2pl11 и предыдущие версии используют непосредственный режим; однако, он является устаревшим. Чтобы сохранить прежнее поведение, добавьте в начало файла конфигурации следующую строку:
Чтобы использовать рекомендуемый режим, добавьте в начало файла конфигурации следующую строку:
За подробными сведениями о различных режимах обратитесь к странице man dhcpd.conf .
В файле конфигурации существуют два типа операторов:
Параметры — Определяют, как выполнять задачу, выполнять ли её вообще, или какие сетевые параметры передаются клиенту.
Объявления — Описывают топологию сети, клиентов, предоставляют адреса для клиентов, или сопоставляют группу параметров группе объявлений.
Некоторые параметры должны начинаться с ключевого слова option , которое показывает, что они необязательны. Такие параметры определяют необязательные переменные DHCP; тогда как другие параметры определяют значения, являющиеся обязательными или управляющие поведением DHCP сервера.
Параметры (включая необязательные), объявленные перед разделом, заключенным в фигурные скобки (< >), считаются глобальными. Глобальные параметры действуют во всех разделах, следующих ниже.
| Важно |
|---|
Если файл конфигурации изменён, изменения не вступают в силу до перезапуска демона DHCP с помощью команды: service dhcpd restart .
| Подсказка |
|---|
Вместо того, чтобы менять файл конфигурации DHCP и каждый раз перезапустить службу, можно воспользоваться командой omshell , предоставляющий способ интерактивного подключения, запроса и изменения конфигурации DHCP-сервера. Благодаря omshell , можно вносить все изменения при работающем сервере. За дополнительными сведениями об omshell обратитесь к странице man omshell .
Кроме этого, можно объявить параметр subnet (подсеть);объявление subnet должно включаться в описание каждой подсети. В противном случае DHCP-сервер не запустится.
В этом примере определяются глобальные параметры каждого DHCP-клиента в подсети и диапазон ( range ). Клиенты получают IP-адреса из указанного диапазона .
subnet 192.168.1.0 netmask 255.255.255.0
Пример 24-1. Объявление подсети
Пример 24-2. Объявление общей сети
Пример 24-3. Объявление группы
default-lease-time 600; max-lease-time 7200; option subnet-mask 255.255.255.0; option broadcast-address 192.168.1.255; option routers 192.168.1.254; option domain-name-servers 192.168.1.1, 192.168.1.2; option domain-name "example.com"; subnet 192.168.1.0 netmask 255.255.255.0
Пример 24-4. Параметер range
Чтобы выдать клиенту IP-адрес, исходя из MAC-адреса его сетевой платы, используйте параметр hardware ethernet внутри объявления host . Показанное на примере 24-5 объявление host apex определяет, что сетевая карта с MAC адресом 00:A0:78:8E:9E:AA всегда получает в аренду IP-адрес 192.168.1.4.
Обратите внимание, также можно использовать необязательный параметр host-name для назначения клиенту имени узла.
Пример 24-5. Назначение постоянного IP-адреса с помощью DHCP
| Подсказка |
|---|
Представленный здесь пример файла конфигурации можно использовать как отправную точку, и добавлять в него дополнительные параметрыt. Чтобы скопировать его в подходящее размещение, воспользуйтесь следующей командой:
cp /usr/share/doc/dhcp- /dhcpd.conf.sample /etc/dhcpd.conf
(где — номер версии DHCP).
Полный список параметров, объявлений и их предназначение вы можете найти на странице man dhcp-options .
В файле /var/lib/dhcp/dhcpd.leases на DHCP-сервере находится база данных аренды адресов DHCP-клиентами. Этот файл не следует изменять вручную. В эту базу автоматически вносится информация о DHCP-аренде для каждого только что выданного IP-адреса. Эта информация включает в себя продолжительность аренды адреса арендующим узлом, даты начала и конца аренды, а также MAC-адрес сетевой карты, который был использован для получения аренды.
В базе данных аренды указывается не местное время, а время по Гринвичу (GMT).
База данных аренды время от времени инициализируется, поэтому она не слишком велика. Сначала информация о всех известных арендах сохраняется во временной базе данных. Затем файл dhcpd.leases переименовывается в dhcpd.leases
и временная база переписывается в файл dhcpd.leases .
Работа DHCP-демона может быть прервана или в системе может произойти сбой, после того как база данных аренды была переименована в резервный файл, но до того, как записался новый файл. В этом случае файл dhcpd.leases , необходимый для запуска службы, будет отсутствовать. Не создавайте новый файл аренды. Если вы сделаете это, все сведения о старых арендах будут потеряны, что приведёт к многочисленным проблемам. Правильным решением будет переименовать резервный файл dhcpd.leases
в dhcpd.leases , а затем запустить службу.
| Важно |
|---|
Если DHCP-сервер запускается впервые и файл dhcpd.leases не существует, сервер не сможет запуститься. Воспользуйтесь командой touch /var/lib/dhcp/dhcpd.leases , чтобы создать файл, если он не существует.
Если на том же компьютере работает BIND в качестве DNS-сервере, этот шаг не является обязательным, так как при запуске службы named файл dhcpd.leases проверяется автоматически.
Чтобы запустить службу DHCP, выполните команду: /sbin/service dhcpd start . Чтобы остановить службу DHCP, выполните команду /sbin/service dhcpd stop .
По умолчанию служба DHCP не запускается при загрузке. Чтобы настроить автоматический запуск демона при загрузке системы, обратитесь к главе 20 Управление доступом к службам за информацией об управлении службами.
Если к компьютеру подключено несколько сетевых интерфейсов, но DHCP-сервер должен работать только с одним из них, настройте DHCP-сервер так, чтобы он запускался только на этом устройстве. Отредактируйте файл /etc/sysconfig/dhcpd и добавьте имя интерфейса в список DHCPDARGS :
# Command line options here DHCPDARGS=eth0
Это полезно, если на вашем компьютере с двумя сетевыми платами работает брандмауэр. Одна сетевая плата может быть настроена как DHCP-клиент для получения IP-адреса Интернета. Другая плата может быть использована DHCP-сервером для внутренней сети за брандмауэром. Указав, что только одна сетевая плата подключена к внутренней сети, вы сделаете систему более защищённой, так как пользователи не смогут подключаться к демону через Интернет.
Кроме этого в файле /etc/sysconfig/dhcpd можно указать и другие параметры командной строки:
— Укажите номер UDP-порта, на котором должен работать демон dhcpd . По умолчанию используется порт 67. DHCP-сервер передаёт ответы DHCP-клиентам в порт с номером, большим чем указанный UDP-порт. Например, если используется порт 67, сервер принимает запросы клиентов в порту 67 и отвечает клиентам в порт 68. Если используется агент ретрансляции DHCP, здесь следует указывать порт, в котором принимает запросы агент ретрансляции DHCP. За подробностями обратитесь к разделу 24.2.4 Агент ретрансляции DHCP .
-f — Запустить демон как процесс переднего плана. Он используется в основном для отладки.
-d — Выводить сообщения демона DHCP-сервера в стандартное устройство ошибок. Он используется в основном для отладки. Если этот флаг не указан, сообщения записываются в файл /var/log/messages .
-cf — Определяет размещение файла конфигурации. По умолчанию он размещён в /etc/dhcpd.conf .
-lf — Определяет размещение файла базы данных аренды. Если файл базы данных уже существует, очень важно, чтобы при каждом запуске DHCP-сервера использовался один и тот же файл. Настоятельно рекомендуется использовать этот параметр только для отладки в не производственной среде. По умолчанию база данных размещается в /var/lib/dhcp/dhcpd.leases .
-q — Не выводить сообщение о правах копирования при запуске демона.
Агент ретрансляции DHCP( dhcrelay ) позволяет вам ретранслировать DHCP и BOOTP-запросы из подсети, в которой нет DHCP-сервера в другую, или в несколько других подсетей с DHCP-серверами.
Когда DHCP клиент запрашивает информацию, агент ретрансляции DHCP пересылает запрос списку DHCP серверов, указанных при запуске агента. Когда DHCP сервер возвращает ответ, он отправляется либо широковещательно, либо направленно в сеть, из которой был получен первоначальный запрос.
Агент ретрансляции DHCP принимает DHCP-запросы на всех интерфейсах, если интерфейсы не определены явно в файле /etc/sysconfig/dhcrelay в указании INTERFACES .
Чтобы запустить агент ретрансляции DHCP, выполните команду service dhcrelay start .
DHCP (англ. Dynamic Host Configuration Protocol — протокол динамической конфигурации узла) — это сетевой протокол, позволяющий компьютерам автоматически получать IP-адрес и другие параметры, необходимые для работы в сети TCP/IP. Данный протокол работает по модели «клиент-сервер». Для автоматической конфигурации компьютер-клиент на этапе конфигурации сетевого устройства обращается к так называемому серверу DHCP, и получает от него нужные параметры. Сетевой администратор может задать диапазон адресов, распределяемых сервером среди компьютеров. Это позволяет избежать ручной настройки компьютеров сети и уменьшает количество ошибок. Протокол DHCP используется в большинстве сетей TCP/IP.
Содержание
Настройка DHCP сервера под управлением Ubuntu server
Необходима установленная ОС по этой статье
Начнёмззз….
Получаем root права
Ставим DHCP сервер со всеми необходимыми зависимостями:
Открываем конфиг для редактинга
Адреса в сети будут у нас 10.0.0.0-254 (10.0.0.0/24) 192.168.10.0/24
Тогда необходимо указать на каком интерфейсе будет висеть DHCP
Находим строку interfaces и указываем интерфейс (eth1):
Так как у нас планируется один DHCP сервер в сети (если есть Wi-Fi роутер с DHCP то не делаем этот пункт) тогда необходимо снять комментарий со следующей строки:
Комментируем следующие строки:.
Создаём подсеть, диапазон выдаваемых IP , 10.0.0.5 — 10.0.0.254, маска 255.255.255.0 ( или 24), DNS сервер у нас находится на данном сервере так что указываем свой IP, интерфейс eth1-10.0.0.1
Указываем желаемое вам время выдачи IP адреса в секундах.
Сохраняемся.
перезапустим DHCP следующей командой!
Если хотите чтоб определённый IP адрес выдавался какому та конкретному клиенту или нескольким, то можно закреплять их за MAC адресом сетевой карты которая стоит на том самом клиенте. Другими словами например. IP адрес 10.0.0.10 необходимо всегда чтобы закреплялся за «Васей» у «Васи» есть комп на котором стоит сетевая карта с MAC адресом XX:XX:XX:XX:XX, то при правильной настройке IP адрес 10.0.0.10 всегда будет выдаваться «Васе»… Для этого необходимо сделать следующее….. Заходим в конфиг…..
В dhcpd.conf добавляем следующее…..
Где:
hardware ethernet — MAC адрес сетевой карты за которой закрепляем IP
fixed-address Сам IP который закрепляем за «Васей»
Для того чтобы просматривать логи необходимо сделать следующие шаги…..
В таком случае в лог будет лететь все события происходящие в DHCP. Это необходимо для того чтобы в случае какой та проблеме знать что приключилось!. Логи хранятся по следующему адресу:
Для просмотра кому выдавали IP адрес смотрим тут:
В принципе тут всё легко и просто как два пальца обо ………
Всего доброго, до встречи.
С уважением AKA Explosivebit……
Введение
Здравствуйте, господа.
Занимаюсь самообразованием по администрированию Linux и недавно заинтересовался установкой и настройкой ddns-сервера (Dynamic DNS) под данной платформой, используя связку Bind + dhcpd. Чтение форумов, man и документации с сайтов дали вполне положительный результат и мне хотелось бы поделиться опытом с людьми. Надеюсь статья будет полезной.
Изначально мы имеем чистую ОС GNU/Linux Debian 6.0.1, без графического окружения. После установки было произведено обновление и установлен минимальный набор программного обеспечения, такого как mc и sudo. Так же я заранее привел имя хоста к виду hostname.domainname. И так как я использую виртуальную машину VirtualBox и работаю не в «боевых» условиях, все действия производятся из-под root аккаунта. Всё необходимое программное обеспечение устанавливается из репозиториев с помощью пакетного менеджера apt-get.
Суммарная информация:
ОС — GNU/Linux Debian 6.0.1;
Имя сервера — ddnsagc01.agency.com;
Параметры сети — static 192.168.1.2/24;
Установка isc-dhcp-server
Итак, начнем мы с установки сервера dhcp.
# apt-get install dhcp3-server
После установки, останавливаем демон сервера командой:
# /etc/init.d/isc-dhcp-server stop
И идем править основной конфигурационный файл, который находится по адресу /etc/dhcp/dhcpd.conf. Для редактирования я буду использовать идущий в составе дистрибутива редактор nano:
# nano /etc/dhcp/dhcpd.conf
# При начальной настройке я отключаю опцию динамического обновления и подключу её позже.
ddns-update-style none;
# Базовая конфигурация для моего домена agency.com.
subnet 192.168.1.0 netmask 255.255.255.0 <
default-lease-time 21600; # Время на которое выдается адрес, сек.
max-lease-time 28800; # Принудительно забрать адрес через, сек.
option domain-name «agency.com»; # Имя домена.
option domain-name-servers 192.168.1.2; # Адрес dns сервера.
option subnet-mask 255.255.255.0; # Маска подсети.
option routers 192.168.1.1; # Шлюз.
range 192.168.1.1 192.168.1.100; # Диапазон выдаваемых адресов.
>
# Фиксированные адреса выдаваемые для машин по MAC-адресу.
Host adagc01 < # Контроллер домена.
hardware ethernet 08:00:27:19:c8:48;
fixed-address 192.168.1.3;
>
Host ddnsagc01 < # ddns сервер.
hardware ethernet 08:00:27:05:99:1a;
fixed-address 192.168.1.2;
>
Host squid01 < # Шлюз.
hardware ethernet 08:00:27:4f:78:1b;
fixed-address 192.168.1.1;
>
Следующий конфигурационный файл который нам предстоит поправить находится в директории /etc/default/ и называется isc-dhcp-server. Там нам нужно изменить всего одну строчку, указывающую DHCP серверу на каком интерфейсе ему работать:
INTERFACES = «eth0» # Сюда подставляем имя своего интерфейса.
После внесения всех изменений стартуем демон командой:
# /etc/init.d/isc-dhcp-server start
Проверяем работу, пытаясь получить адрес машиной из нашей сети и если всё в порядке сервер выдаст адрес из указанного диапазона и остальные указанные нами настройки.
Установка DNS-сервера Bind
Вместе с Bind полезно будет поставить еще и утилиты для работы с сетью (такие как nslookup и dig, входящие в пакет dnsutils):
# apt-get install bind9 bind9utils dnsutils
После установки останавливаем сервер:
# /etc/init.d/bind9 stop
Конфиги Bind хранит в /etc/bind. Там же лежат файлы корневых зон и зон прописанных по умолчанию — db.0, db.127, db.root и т.д. rndc.key — файл ключ сгенерированный при установке, он нам понадобится для обновления наших файлов-зон с помощью dhcp-сервера. Новый ключ генерируется с помощью утилиты rndc-confgen. Разработчики предлагают вам не вносить изменения в основной конфигурационный файл сервера named.conf, а подключать к нему свои конфигурационные файлы с помощью директивы include. Так, если открыть named.conf после установки там будет всего лишь пояснение, что это за файл и три строчки определяющих подключаемые конфиги:
# less /etc/bind/named.conf | grep include
include «/etc/bind/named.conf.options»;
include «/etc/bind/named.conf.local»;
include «/etc/bind/named.default-zones»;
Сперва я внес информацию из rndc.key в основной конфигурационный файл, добавив его опять же с помощью include:
# nano /etc/bind/named.conf
include «/etc/bind/rndc.key»;
Теперь нам необходимо прописать собственные прямую и обратные зоны. Разработчики предлагают использовать для этого файл named.conf.local, что мы и сделаем:
# nano /etc/bind/named.conf.local
zone «agency.com» < # Название прямой зоны.
type master;
file «db-agency.com»; # Имя файла зоны.
allow-update < key rndc-key; >; # Разрешаем обновление зоны с ключом.
>;
zone «1.168.192.in-addr.arpa» < # Название обратной зоны.
type master;
file «db-1.168.192»; # Имя файла зоны.
allow-update < key rndc-key; >; # Разрешаем обновление зоны с ключом.
>;
Далее нам необходимо создать указанные файлы. По умолчанию Bind предполагает их хранение в /var/cache/bind:
# touch /var/cache/bind/db-agency.com
# touch /var/cache/bind/db-1.168.192
Нам необходимо прописать некоторые параметры в только что созданные зоны.
Файл прямой зоны:
# nano /var/cache/bind/db-agency.com
$TTL 10800
agency.com. IN SOA ddnsagc01.agency.com. admin.agency.com. (
11 ; Порядковый номер.
10800 ; Обновление.
3600 ; Повторная попытка.
604800 ; Устаревание.
3600 ) ; Отрицательное TTL в 1 час.
;
; Укажем серверы имен.
;
agency.com. IN NS ddnsagc01.agency.com.
;
; Так же пропишем А запись для указанного сервера имен.
ddnsagc01 A 192.168.1.2
Файл обратной зоны:
$TTL 10800
1.168.192.in-addr.arpa. IN SOA ddnsagc01.agency.com. admin.agency.com. (
11 ; Порядковый номер
10800 ; Обновление
3600 ; Повторная попытка
604800 ; Устаревание
3600 ) ; Отрицательное TTL в 1 час
;
; Укажем серверы имен.
;
1.168.192.in-addr.arpa. IN NS ddnsagc01.agency.com.
;
; Так же пропишем PTR запись для указанного сервера имен.
2.1.168.192.in-addr.arpa. IN PTR ddnsagc01.agency.com.
Установим владельцем только что созданных файлов пользователя bind:
# chown bind:bind /var/cache/bind/db-agency.com
# chown bind:bind /var/cache/bind/db-1.168.192
Настройка динамического обновления зон
Bind настроен и теперь нам необходимо настроить dhcp сервер на обновление файлов зон bind. Для этого открываем для редактирования и меняем параметр ddns-update-style с none на interim в /etc/dhcp/dhcpd.conf:
ddns-update-style interim;
Прописываем rndc-key (который можно подключить и через include, но я предпочел прописать вручную):
key rndc-key <
algorithm hmac-md5;
secret «XXXXXXXXXXX»;
>
И наконец указываем какие зоны должен обновлять сервер:
zone agency.com <
primary 127.0.0.1; # Адрес DNS сервера.
key rndc-key;
>
zone 1.168.192.in-addr.arpa <
primary 127.0.0.1; # Адрес DNS сервера.
key rndc-key;
>
Перезапускаем демоны Bind и isc-dhcp-server и проверяем работу установленной связки:
# /etc/init.d/bind9 restart
# /etc/init.d/isc-dhcp-server restart
После перезапуска демонов и в том случае, если всё прописано верно — в каталоге /var/cache/bind появятся .jnl файлы (журналы) наших зон, указывающие на то, что зоны корректно обновляются. В моём случае Bind так же чуть изменил файлы зон, подкорректировав их таким образом, чтобы стали использоваться сокращения в виде символа «@» для подмены имени домена, заменил значения указанные в часах и неделях на секунды (как в приведенных мною конфигах) и некоторые другие.
Bind и isc-dhcp-server записывают информацию о своей работе в syslog, так что если что-то не заработало, идем в /var/log/syslog и ищем в чем загвоздка. Следует обращать внимание на знаки препинания при описании доменных зон. Так моя ошибка заключалась в том, что я пропустил точку при указании домена и никак не мог добиться обновления обратной зоны.
Спасибо за внимание, надеюсь статья окажется полезной.
При написании статьи использовалась книга "DNS и BIND" Крикета Ли и Пола Альбитца, man страницы и многочисленные форумы в сети Интернет.
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.





