Содержание
Протокол динамической конфигурации узлов (Dynamic Host Configuration Protocol, DHCP) — это сетевой протокол, используемый для автоматического получения узлами IP-адресов и сетевой конфигурации с сервера.
IP-адрес, выделенный DHCP-клиенту DHCP-сервером, находится в «аренде», время аренды может отличаться в зависимости от того, сколько времени клиенту требуется соединение или конфигурация DHCP.
Содержание
Как работает DHCP?
- После загрузки подключенный к сети клиент (на котором настроено использование DHCP) отправляет DHCP-серверу пакет DHCPDISCOVER.
- Получив пакет запроса DHCPDISCOVER, DHCP-сервер отвечает пакетом DHCPOFFER.
- Клиент принимает пакет DHCPOFFER и отправляет серверу пакет DHCPREQUEST, подтверждая готовность принять сетевую конфигурацию, предоставленную в пакете.
- Получив от клиента пакет DHCPREQUEST, сервер отправляет пакет DHCPACK, который разрешает клиенту использование выделенного IP-адреса.
В данном руководстве мы рассмотрим настройку DHCP-сервера в Ubuntu/Debian Linux, но большенство настроек будет работать и в других дистрибутивах. Для получения административных привилегий все команды будут выполняться через sudo.
Шаг 1: Установка DHCP-сервера
1. Для установки пакета DCHP-сервера, ранее известного как dhcp3-server, нужно выполнить следующую команду:
$ sudo apt install isc-dhcp-server
2. После завершения установки отредактируйте файл /etc/default/isc-dhcp-server для определения интерфейсов, которые будет использовать DHCPD для обработки DHCP-запросов, при помощи опции INTERFACES.
Например, если вам нужно, чтобы демон DHCPD прослушивал eth0, задайте следующее значение:
INTERFACES="eth0"
Для этого сетевого интерфейса нужно настроить статический IP-адрес.
Шаг 2: Настройка DHCP-сервера
- параметры – указывают, как выполнять задание (например, на какое время выделять адрес), выполнять ли его вообще (например, выделять ли адреса неизвестным клиентам) или какие параметры сетевой конфигурации отправлять DHCP-клиенту.
- декларации – определяют топологию сети, описывают клиентов и предоставляемые им адреса, или применяют группу параметров к группе деклараций.
4. Для определения настроек DHCP-сервера откроем и отредактируем файл конфигурации:
$ sudo vi /etc/dhcp/dhcpd.conf
Установите в начале файла следующие глобальные параметры, они будут действовать для всех указанных ниже деклараций (измените их в соответствии с вашими задачами). Это имя домена domain-name, имена DNS-серверов domain-name-servers, время аренды по умолчанию в секундах default-lease-time (если клиент не запросил его сам), максимальное время аренды в секундах max-lease-time и параметр authoritative, означающий «авторитетность» сервера в сегменте сети. Данный параметр нужен на тот случай, если клиент запросит неправильный IP-адрес — в этом случае сервер ответит ему отказом и предложит получить новый адрес.
option domain-name "itproffi.lan"; option domain-name-servers ns1.itproffi.lan, ns2.itproffi.lan; default-lease-time 3600; max-lease-time 7200; authoritative;
Обратите внимание, что перед некоторыми параметрами указано слово option, а перед некоторыми — нет. Это слово задает параметры, которые передаются клиенту в сетевой конфигурации.
5. Теперь нужно указать подсеть, в нашем примере мы будем использовать DHCP в локальной сети 192.168.10.0/24.
subnet 192.168.10.0 netmask 255.255.255.0 { option routers 192.168.10.1; option subnet-mask 255.255.255.0; option domain-search "itproffi.lan"; option domain-name-servers 192.168.10.1; range 192.168.10.10 192.168.10.100; range 192.168.10.110 192.168.10.200; }
Здесь мы использовали следующие параметры:
routers — IP-адрес маршрутизатора по умолчаниюsubnet-mask — маска подсетиdomain-search — имя доменаdomain-name-servers — имена DNS-серверовrange — диапазон IP-адресов, выделяемый клиентам (можно указывать несколько диапазонов, но обязательно указать хотя бы один)
Шаг 3: Настройка статических IP-адресов для машин клиентов
6. Для выделения конкретным клиентам фиксированного (статического) IP-адреса нужно добавить в файл конфигурации секции следующего вида, где явно указаны MAC-адрес и статически выделяемый IP-адрес:
host centos-node { hardware ethernet 00:f0:m4:6y:89:0g; fixed-address 192.168.10.105; } host fedora-node { hardware ethernet 00:4g:8h:13:8h:3a; fixed-address 192.168.10.106; }
7. Запустим службу DHCP и установим ее автоматический запуск при загрузке:
———— SystemD ————
$ sudo systemctl start isc-dhcp-server.service $ sudo systemctl enable isc-dhcp-server.service
———— SysVinit ————
$ sudo service isc-dhcp-server.service start $ sudo service isc-dhcp-server.service enable
8. Далее нужно создать правило для службы DHCP в брандмауэре (Демон DHCPD прослушивает UDP-порт 67):
$ sudo ufw allow 67/udp $ sudo ufw reload $ sudo ufw show
Шаг 4: Настройка машин клиентов
9. Теперь можно настроить клиентские компьютеры в сети для автоматического получения IP-адресов от DHCP-сервера.
Отредактируйте файл конфигурации интерфейса Ethernet на клиентской машине (обратите внимание на имя/номер интерфейса):
$ sudo vi /etc/network/interfaces
Укажите следующие опции:
auto eth0 iface eth0 inet dhcp
Сохраните и закройте файл, а затем перезапустите сетевые службы или перезагрузите систему:
———— SystemD ————
$ sudo systemctl restart networking
———— SysVinit ————
$ sudo service networking restart
Если все настроено правильно, клиентская машина должна автоматически получать IP-адреса от DHCP-сервера.
Настройка DHCP-сервера завершена. Более подробную информацию о dhcpd и dhcpd.conf с описанием всех возможных опций можно получить в соответствующих man-страницах:
$ man dhcpd $ man dhcpd.conf
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
DHCP реализован в Debian в виде двух частей: серверной (dhcp3-server) и клиентской (dhcp3-client). Серверная часть отвечает за назначение и отзыв IP-адресов клиентам, при входе и выходе из сети. Клиентская часть запускается на стороне клиента и отвечает за получение IP-адреса по этому протоколу.
Проверить какие пакеты DHCP установлены можно с помощью команды dpkg:
$ dpkg –l ‘*dhcp*’ или dpkg –l | grepdhcp
Как видим из примера, у нас установлены два пакета dhcp3-client и dhcp3-common. Устанавливаем пакет dhcp3-server:
# aptitudeinstalldhcp3-server
Во время установки появится предупреждение о том, что сервер не является официальным и нужно сделать его таковым, изменив параметр authoritative. Настраивается сервер с помощью конфигурационного файла /etc/dhcp3/dhcpd.conf. При запуске DHCP – сервера происходит выделение IP – адресов согласно содержащемся установкам в данном файле. Выделенные адреса регистрируются в /var/lib/dhcp3/dhcpd.leases. После внесения изменений в файл конфигурации, требуется перезапустить dhcp3-server. Делается это следующим образом:
# /etc/init.d/dhcp3-server restart. Можно дать две команды: сначала
# /etc/init.d/dhcp3-server stop, а затем
# /etc/init.d/dhcp3-server start.
В файле dhcpd.confможет присутствовать несколько конструкций subnet. Если сервер обслуживает несколько сетей и содержит несколько сетевых карт, для каждой из карт должна быть указана подобная конструкция. То же самое необходимо сделать, если на компьютере установлена всего одна сетевая карта, которая связана с несколькими логическими подсетями. Длительность аренды по умолчанию default—lease—timeсоставляет 259200 секунд, или трое суток. Если клиент запросит более длительную аренду, сервер будет исходить из параметра max—lease—time. В данном случае оно равно 518400 секунд, или шести суткам. Можно увеличивать или уменьшать приведённые здесь значения в зависимости от собственных потребностей. Малая длительность аренды снижает работоспособность сети при выходе сервера DHCP из строя и увеличивает нагрузку на сеть за счёт различных DHCP запросов. Слишком большая длительность аренды опасна тем, что имеющиеся в наличии IP – адреса будут исчерпаны. Такая ситуация возможна, если компьютеры будут включаться на короткое время при этом DHCP – сервер будет хранить информацию об аренде адресов, которые на самом деле на используются. Чтобы связать MAC – адрес с IP – адресом, используется следующая конструкция:
host knop {
hardware ethernet 00:00:86:5E:D0:73;
fixed-address 192.168.123.22;
}
Эта конструкция начинается с ключевого слова host, затем следует дополнительная опция knop – имя компьютера (клиента), для которого создаётся резервирование. Многострочные директивы в файле dhcpd.conf заключаются в фигурные скобки. В фигурных скобках указаны два параметра. Первый из них (hardware) задаёт тип сетевого интерфейса и MAC – адрес. В нашем примере содержится запись для Ethernet – карты, а при работе в сети другого типа, задаётся другой тип сетевого устройства. Например, для сети Token Ring следует указать ключевое слово token-ring. Второй параметр (fixed—address) определяет IP – адрес, выделяемый клиенту. Этот адрес должен принадлежать сети, которую обслуживает DHCP сервер, и должен лежать за пределами диапазона, определённого с помощью параметра range. Эти строки вставляются в ту конструкцию подсети subnet, которой принадлежит назначаемый IP – адрес. Для корректной работы с клиентами под управлением Windows следует включить поддержку WINS. Следует добавить к глобальным опциям следующие строки:
option netbios-name-servers 192.168.123.2;
option netbios-dd-server 192.168.123.2;
optionnetbios—node—type 8;
Параметр netbios—node—type сообщает клиенту, должен ли тот реализовывать широковещательный принцип преобразования адресов или обращаться к серверу WINS. Число 8 означает, что клиент в первую очередь должен обратиться к серверу WINS, а лишь затем (в случае неудачи) использовать широковещательное преобразование. В большинстве сетей содержащих сервер WINS указывается значение 8, поскольку при этом снижается трафик сети и обеспечивается достаточная надёжность. Некоторые дополнительные параметры:
Параметр optionip—forwarding включает IP – форвардинг. Можно добавить глобальный параметр server identifier, который идентифицирует наш сервер. Следующая строка сообщает об отключении поддержки DDNS. В нашем случае она не нужна: ddns-update-style none;.
Параметр журнала сообщений: log-facility local7;. По умолчанию, сообщения DHCP – сервера находятся в системном журнале /var/log/syslog. Эти сообщения можно перенаправить в отдельный журнал. Делается это следующим образом: создаём отдельный файл журнала
# touch /var/log/dhcpd.log, а затем в файл /etc/syslog.conf добавляем строку local7.* /var/log/dhcpd.conf и сохраняем его.
Ниже приведён листинг нашего конфигурационного файла dhcpd.conf
# Глобальные опции, применяемые для всех подсетей
#
# Указывает, что сервер является официальным. Он сможет отправлять сообщение # DHCPNACK. Например, если компьютер перемещён из другой подсети.
authoritative;
# Установка домена по умолчанию, если таковой используется
option domain-name «aitishnik.local»;
# Адреса DNS серверов (через запятую)
option domain-name-servers 213.177.97.1, 213.177.97.201;
# Время аренды IP – адреса по умолчанию (в секундах)
default-lease-time 259200;
# Максимальное время аренды IP – адреса по умолчанию (в секундах)
max-lease-time 518400;
# Адрес NetBIOS сервера
option netbios-name-servers 192.168.123.2;
# Адрес сервера NBDD
option netbios-dd-server 192.168.123.2;
# Тип преобразования адресов
option netbios-node-type 8;
# Включение IP — форвардинга
option ip-forwarding on;
# Идентификатор сервера
Server-identifier debian.aitishnik.local;
# Поддержка DDNS
ddns-update-style none;
# Журнал сообщений
log-facility local7;
#
# Настройки для нашей сети
#
# Указываем сетевой адрес и маску подсети.
subnet 192.168.123.0 netmask 255.255.255.0 {
# Шлюз по умолчанию
option routers 192.168.123.1;
# Широковещательный адрес
option broadcast-address 192.168.123.255;
# Резервирование для компьютера knop
host knop {
hardware ethernet 00:00:86:5E:D0:73;
fixed-address 192.168.123.22;
}
# Диапазон из которого будут назначаться IP – адреса клиентов
range 192.168.123.10 192.168.123.20;
# Если DHCP сервер обслуживает несколько подсетей и для каждой требуется свои
# настройки как то: время аренды, имя домена, сервер DNS, то их можно указать
# в секции для своей подсети.
# option domain-name-servers 213.177.96.1,213.177.97.1;
# option domain-name «aitishnik.local»;
# default-lease-time 600;
# max-lease-time 7200;
Помните, что у нас вы можете не только купить готовый сайт или заказать его разработку, но и подобрать подходящий тариф поддержки сайта, заказать продвижение сайта в поисковых системах, а так же зарегистрировать домен в одной из двухсот доменных зон и выбрать недорогой тариф хостинга! Айтишник РУ
Об авторе:
Меня зовут Андрей Золкин. Из более, чем пятнадцати лет работы в сфере информационных технологий, десять лет работаю с системами, базирующимися на открытом исходном коде. На страницах сайта Aitishnik.Ru веду блоги по CMC Joomla и Debian GNU/Linux.
Ещё статьи о Debian
-
-
Настройка FTP сервера. Более сложная конфигурация…
Рассмотрим более сложную конфигурацию ftp сервера: анонимные пользователи всё так же имеют доступ только на чтение. Локальные пользователи не используются. Вместо них используются виртуальные пользователи, учётные записи которых хранятся…
-
Интерактивный режим aptitude
В первой части статьи рассказывалось об управлении пакетами с помощью aptitude в режиме командной строки. Теперь рассмотрим интерактивный режим этой программы. Управление программой производится с клавиатуры. Для входа в интерактивный…
-
Как обновить Debian 6 Squeeze до Debian 7 Wheezy
Прошло более двух месяцев с момента выхода новой стабильной версии операционной системы Debian GNU/Linux – Debian 7 (Wheezy). За это время были исправлены ошибки и даже вышла новая версия – 7.1. А это значит, что теперь можно и…
-
Настройка DHCP в Debian 5 (Lenny)
DHCP реализован в Debian в виде двух частей: серверной (dhcp3-server) и клиентской (dhcp3-client). Серверная часть отвечает за назначение и отзыв IP-адресов клиентам, при входе и выходе из сети. Клиентская часть запускается на стороне…
-
SSH Подключение с использованием открытого ключа…
Для подключения с авторизацией по открытому ключу сначала нужно сгенерировать секретный ключ на стороне клиента. Делаем это с правами обычного пользователя: $ ssh-keygen –t rsa В процессе генерации пары ключей сначала будет предложено ввести желаемое название…
-
Настройка обновлений в Debian
После установки Debian Linux и настройки сети я рекомендую приступить к настройке обновлений. Для обновления и установки пакетов в Debian используются утилиты apt и aptitude. Независимо от того, какой из этих утилит Вы будете…
-
Зачастую в больших сетях для упрощения работы с добавлением новых компьютеров и других устройств в сеть используют протокол динамического выделения адресов — DHCP. Это значительно упрощает настройку оборудования и экономит огромное количество времени. Используя DHCP нам не нужно производить настройку сети на каждом отдельном устройстве, нужно лишь подключить устройство к сети и DHCP сервер сделает все настройки автоматически. Каждый домашний WiFi роутер имеет в себе встроенный DHCP сервер, поэтому вам не нужно каждый раз при подключении к разным роутерам прописывать все настройки вручную, роутер делает это за вас.
DHCP сервер может автоматически присвоить клиенту:
- Адрес ip;
- Маску подсети;
- IP адрес шлюза;
- IP адрес DNS сервера;
В отдельных случаях:
- Имя хоста;
- Имя домена;
- Адрес серверов времени(NTP);
Преимущество использования DHCP сервера заключается в том, что при огромных размерах сети в несколько тысяч устройств, её будет очень удобно и почти безболезненно настраивать. Представьте себе, если в сети нужно поменять ip адреса на персональных компьютерах сотрудников, принтерам выдать иные адреса, управляемому сетевому оборудованию еще назначить и свои. При размерах сети в несколько тысяч устройств, ручная настройка отняла бы у вас огромное количество времени. Другое дело когда в сети есть настроенный DHCP сервер, который выполнить настройку за вас и на это потребуется всего несколько минут. В дополнение к этому, сервер поддерживает возможность резервирования адресов, таким образом если клиенту(компьютеру,принтеру,коммутатору) нужно назначить фиксированный адрес, мы можем это указать в настройках DHCP сервера и при следующем запросе, клиент получит нужный ему адрес.
Установка и настройка DHCP сервера
В Ubuntu установка и настройка DHCP сервера выполняется всего в несколько шагов, быстро и продуктивно. Для того, чтобы начать использовать сервер нужно установить программное обеспечение на компьютер, делается это при помощи команды:
sudo apt-get install isc-dhcp-server
Минимальная настройка DHCP сервера включает в себя редактирование только 2х файлов.
Первый файл который мы с вами отредактируем, это nano /etc/default/isc-dhcp-server
и добавляем/редактируем всего одну строку:
INTERFACES="eth3"
где «eth3» интерфейс к которому подключаются клиенты с внутренней сети и который будет слушать DHCP;
Теперь собственно и сама настройка DHCP сервера. Открываем файл nano /etc/dhcp/dhcpd.conf
и удаляем все содержимое. Сейчас мы с вами настроим сервер только для раздачи адресов всем устройствам, которые будут запрашивать у сервера адрес. Добавляем в файл строки:
default-lease-time 7200; max-lease-time 43200; subnet 192.168.0.0 netmask 255.255.255.0 { range 192.168.0.100 192.168.0.200; option routers 192.168.0.1; option domain-name-servers 192.168.0.1; }
Разберем по-порядку строки которые мы внесли в этот файл:
- default-lease-time — время аренды(в секундах) адреса у сервера, если клиент не запросил другое;
- max-lease-time — максимальное время аренды адреса;
- subnet — описывает сеть ip и её маску;
- range — диапазон адресов с которых по запросу клиента будут предоставляться адреса;
- optionrouters — адрес роутера. Это должен быть адрес интерфейса через который пользователи попадают в интернет.
- optiondomain-name-servers — адрес DNS сервера. Указывает на то, что сервер расположен на этом же компьютере и слушает интерфейс с адресом 192.168.0.1
Роутером у нас должен выступать интерфейс который мы описали в файле INTERFACES="eth3"
и там должен быть назначен адрес который мы описали в настройках DHCP сервера. Если у вас не установлен DNS сервер, можете использовать сервер от вашего ISP провайдера или публичные от google или yandex.
Для управления DHCP сервером используются команды:
/etc/init.d/isc-dhcp-server start
— запуск сервера;/etc/init.d/isc-dhcp-server stop
— остановка сервера;/etc/init.d/isc-dhcp-server restart
— перезапуск сервера;
Можно использовать команду service isc-dhcp-server {start|stop|restart}
.
Если у вас возникнут вопросы по настройке или установке оставляйте ваши комментарии.
Так же можете почитать, как настроить локальную сеть в Ubuntu
Используемые источники:
- https://itproffi.ru/nastrojka-dhcp-servera-v-linux/
- https://www.aitishnik.ru/linux/debian-dhcp.html
- https://sysadmin-note.ru/ustanovka-i-nastrojka-dhcp-servera-v-ubuntu/