DHCP-сервер (Dynamic Host Configuration Protocol) - это протокол, который позволяет компьютерам и другим устройствам автоматически получать IP-адреса и иные параметры сетевой конфигурации при подключении к сети.
Порядок выполнения настройки
1) Войти в систему с правами суперпользователя (root)
2) Найти актуальную версию пакета dhcp
Для поиска версии пакета необходимо ввести команду (рисунок 1):
pkg search “isc-dhcp.*-server”
В данном примере пакет имеет версию 44. Для его установки вводится команда:
pkg install isc-dhcp44-server
3) Настройка конфигурационного файла DHCP-сервера
Прежде, чем выполнять настройку рекомендуется сохранить копию оригинального файла с помощью команды:
cp /usr/local/etc/dhcpd.conf /usr/local/etc/dhcpd.conf.back
Выполняем очищение конфигурационного файла от базовых и шаблонных настроек, введя следующую команду:
echo '' > /usr/local/etc/dhcpd.conf
открытие конфигурационного файла для выполнения настроек с помощью текстового редактора nano:
nano /usr/local/etc/dhcpd.conf
Пример настроек DHCP-сервера представлен на рисунке 2
Пояснения по некоторым параметрам:
option domain-name-servers - адреса DNS-серверов. В данном примере используется адрес внутренней сети сервера (em1) - 192.168.1.254, но можно указывать и другие DNS-сервера, например, общедоступные или провайдера;
default-lease-time — время аренды (в секундах) адреса у сервера, если клиент не запросил другое;
max-lease-time — максимальное время аренды адреса (в секундах);
subnet - адрес сети (в примере 192.168.1.0);
netmask - маска сети (в примере 255.255.255.0);
range - диапазон адресов, из которого будут выдаваться клиентам (рабочим станциям) по запросу. В данном примере со 2 по 21 адрес, то есть 19 станций могут получить адреса. Двадцатая станция адрес уже не получит и не сможет работать в сети. Ей придется ждать, пока какой-либо адрес не освободиться;
option routers - адреса шлюза, который будет записан в настройках сетевой карты клиента. Данный адрес необходим для выхода рабочей станции за пределы локальной сети, в том числе и в сеть Интернет. В примере это также адрес внутреннего сетевого адаптера сервера, как и адрес DNS-сервера.
4) Настройка ведения логов DHCP-сервера
Для того, чтобы DHCP-сервер не писал свои логи в консоль необходимо отредактировать конфигурационный файл syslog.conf. Нужно открыть файл в текстовом редакторе:
nano /etc/syslog.conf
В открывшемся файле необходимо найти строки (почти в начале файла):
*.err;kern.warning;auth.notice;mail.crit; /dev/console
*.notice;authpriv.none;kern.debug;lpr.info;mail.crit;news.err; /var/log/messages
и добавить следующий параметр в каждую строку local7.none (рисунок 3)
Параметр local7.none прописывали предварительно в конфигурационном файле dhcpd.conf (рисунок 2).
Также в конце файла syslog.conf необходимо добавить строки, которые указаны на рисунке 4.
После этого можно сохранять файл и выйти из него.
Далее вводятся три следующие команды (рисунок 5). Команды дают необходимые права к файлу для DHCP-сервера.
Теперь DHCP-сервер может записывать все логи в файл по пути /var/log/dhcpd.log.
5) Завершение настройки DHCP-сервера
Открыть конфигурационный файл rc.conf для редактирования:
nano /etc/rc.conf
Необходимо добавить в файле определённые строки, которые указаны на рисунке 6 (подчёркнуты справа красной чертой). Данные строки запускают isc-dhcp-server и указывают, на каком сетевом интерфейсе будет обслуживание сервера.
Для завершения настройки требуется перезагрузить операционную систему:
shutdown -r now
6) Проверка работоспособности DHCP-сервера
Для того чтобы проверить работу сервера DHCP, необходимо ввести следующую команду:
service isc-dhcpd status
Если DHCP служба отключена, то можно попытаться включить ее командой (рисунок 7):
service isc-dhcpd start
Если служба не включается, то необходимо проверить файл конфигурации dhcpd.conf. Также можно проверить логи файла. Делается это при помощи команды:
nano /var/log/dhcpd.log
В данном файле, к примеру, могут писать: какие ошибки были написаны в файле и в строках, а также на какой именно позиции были совершены они.
7) Проверка работоспособности DHCP-сервера на рабочей станции с операционной системой Windows 10
Сетевой адаптер рабочей станции должен быть подключен к локальной сети и он должен получать IP-адрес автоматически. Зайти в командную строку (или PowerShell) и ввести команду:
ipconfig /all
DHCP-сервер работает корректно, если DNS-суффикс соответствует имени домена DHCP, IPv4-адрес выдаётся в пределах 192.168.1.2 - 192.169.1.21, основной шлюз и DHCP-сервер - 192.168.1.254 (рисунок 8)
8) Проверка работоспособности DHCP-сервера на машине с операционной системой xUbuntu
На включенной рабочей станции открыть информацию "Сведения о соединении" и убедиться, что параметры IP-адреса соответствуют параметрам, установленным в DHCP (рисунок 9).
9) Закрепление фиксированного адреса за определенным сетевым адаптером
Для того, чтобы рабочая станция получала всегда один и тот же адрес от DHCP-сервера, необходимо определить МАК-адрес сетевого адаптера. На рисунке 8 этот параметр называется "Физический адрес", на рисунке 9 - "Аппаратный адрес".
После того, как узнали физический адрес виртуальной машины, необходимо на сервере FreeBSD зайти в конфигурационный файл DHCP-сервера:
nano /usr/local/etc/dhcpd.conf
Добавить блок выдачи фиксированного IP-адреса (рисунок 10 - выделено красным прямоугольником). В данном случае выдан для машины с ОС Windows10 с физическим адресом 08:00:27:BD:4F:6A IP-адрес 192.168.1.200 (рисунок 10).
Можно записать выдачу и других адресов, для этого каждый новый адрес должен быть заключен в фигурные скобки. Имя узла можно указывать произвольное, какое удобнее для понимания. На рисунке 11 показано получение сетевым адаптером на компьютере с операционной системой Windows 10 адреса 192.168.1.200.
10) Просмотр информации о выданных IP-адресах
Для того, чтобы узнать какие DHCP-сервером были выданы динамически IP-адреса сетевым адаптерам, необходимо ввести команду:
nano /var/db/dhcpd/dhcpd.leases
В данном файле (рисунок 12) показываются такие параметры, как используемый IP-адрес (lease), физический адрес сетевого адаптера (hardware ethernet), время начала (starts) и завершённости (ends), время окончания аренды адреса для сервера (tstp) и время последней связи с машиной по аренде IP-адреса (cltt).