Как остановить dhcp сервер linux

Обновлено: 07.07.2024

Вы можете настроить сервер DHCP, используя файл конфигурации /etc/dhcpd.conf .

DHCP также использует файл /var/lib/dhcp/dhcpd.leases в качестве базы данных, хранящей аренды клиентов. За дополнительной информацией обратитесь к разделу База данных аренды .

Настройка сервера DHCP начинается с создания файл конфигурации, содержащего сетевую информацию для клиентов. В файле могут быть описаны глобальные для всех клиентов параметры, или параметры каждой клиентской системы.

В файле конфигурации существует два типа предложений:

Параметры — определяют как выполнять задачу, выполнять ли задачу или какие сетевые параметры будут переданы клиенту.

Объявления — описывают топологию сети, клиентов, предоставляют адреса для клиентов, или сопоставляют группу параметров группе объявлений.

Некоторые параметры должны начинаться с ключевого слова option . Ключевое слово option используется для указания необязательных параметров DHCP; тогда как параметры определяют значения, которые являются обязательными или управляют поведением DHCP сервера.

Если вы измените файл конфигурации, изменения не вступят в силу до перезапуска демона DHCP с помощью команды: service dhcpd restart .

Параметры (включая необязательные) объявленные перед разделом, заключенным в фигурные скобки (< >), являются глобальными параметрами. Глобальные параметры действуют во всех разделах, следующих ниже.

В этом примере определяются глобальные параметры каждого DHCP клиента в подсети и диапазон ( range ). Клиенты получают IP адрес из указанного диапазона .

subnet 192.168.1.0 netmask 255.255.255.0

Рисунок 12-1. Пример объявления подсети

Рисунок 12-2. Пример описания общей сети

Рисунок 12-3. Пример объявления группы

Рисунок 12-4. Пример параметра range (диапазон)

Чтобы выдать клиенту IP адрес, исходя из MAC адреса его сетевой платы, используйте параметр hardware ethernet внутри объявления host . Как показано на Рисунке 12-5 , в объявлении host apex определяется, что сетевая карта с MAC адресом 00:A0:78:8E:9E:AA должна всегда получать в аренду IP адрес 192.168.1.4.

Обратите внимание, вы также можете использовать необязательный параметр host-name для назначения клиенту имени узла.

Рисунок 12-5. Пример назначения статического IP адреса с помощью DHCP

Вы можете использовать примерный файл конфигурации, включенный Red Hat Linux 7.2, в качестве отправной точки, а затем добавлять в него свои собственные настройки. Скопируйте его в подходящее место, выполнив команду:

cp /usr/share/doc/dhcp- <version-number> /dhcpd.conf.sample /etc/dhcpd.conf

(где <version-number> - номер используемой версии DHCP).

Полный список параметров, объявлений и их предназначение вы можете найти на странице man dhcp-options.

В файле /var/lib/dhcp/dhcpd.leases на DHCP сервере находится база данных аренды адресов DHCP-клиентами. Этот файл не следует изменять вручную. Информация о DHCP аренде для каждого только что выданного IP адреса автоматически заносится в эту базу. Эта информация включает в себя продолжительность аренды адреса арендующим узлом, даты начала и конца аренды, а также MAC адрес сетевой карты, который был использован для получения аренды.

В базе данных аренды указывается не местное время, а время по Гринвичу (GMT).

Если при первом запуске службы DHCP база данных аренды не существует, запуск закончится неудачей. Выполните команду touch /var/lib/dhcpd.leases , чтобы создать этот файл до первого запуска сервера. Не пытайтесь создать новый файл базы данных аренды, если он уже существует и сервер работает.

База данных аренды время от времени инициализируется, поэтому она не слишком велика. Сначала информация о всех известных арендах сохраняется во временной базе данных. Затем файл dhcpd.leases переименовывается в dhcpd.leases

и временная база переписывается в файл dhcpd.leases .

DHCP демон может быть убит или система может остановиться, после того как база данных аренды была переименована в резервный файл, но до того как записан новый файл. Если это произошло, файл dhcpd.leases , необходимый запуска службы, не будет существовать. Не создавайте новый файл аренды, если это произошло. Если вы сделаете это, вся информация об аренде будет утеряна, что может повлечь за собой множество проблем. Правильным решением будет переименовать резервный файл dhcpd.leases

в dhcpd.leases , а затем запустить службу.

Если вы запускаете DHCP сервер в первый раз, запуск не удастся, если файл dhcpd.leases не существует. Выполните команду touch /var/lib/dhcp/dhcpd.leases , чтобы создать нужный файл перед первым запуском (и только перед первым) службы. Если файл будет существовать, вам не нужно выполнять это действие снова.

Чтобы запустить службу DHCP, выполните команду: /sbin/service dhcpd start . Чтобы остановить службу DHCP, выполните команду /sbin/service dhcpd stop . Если вы хотите, чтобы демон автоматически запускался при загрузке системы, обратитесь к Главе 8 за информацией об управлении службами.

Если в вашем компьютере несколько сетевых интерфейсов, но вы хотите чтобы DHCP сервер работал только на одном из них, вы можете изменить сценарий запуска так, чтобы служба работала только с этим устройством. В сценарии /etc/rc.d/init.d/dhcpd есть раздел, описывающий что происходит, при попытке запуска службы:

Измените строку, которая запускает демон, вписав ethernet устройство, с которым будет работать DHCP сервер.

daemon /usr/sbin/dhcpd eth0

Это особенно полезно, если на вашем компьютере с двумя сетевыми платами работает брандмауэр. Одна из сетевых карт может быть настроена как DHCP клиент для получения IP адреса Интернета. Другая плата может быть использована DHCP сервером для внутренней сети за брандмауэром.

Агент ретрансляции DHCP( dhcrelay ) позволяет вам ретранслировать DHCP и BOOTP запросы из подсети, в которой нет DHCP сервера в другую, или в несколько других подсетей, имеющих DHCP сервера.

Когда DHCP клиент запрашивает информацию, агент ретрансляции DHCP пересылает запрос списку DHCP серверов, указанных при запуске агента. Когда DHCP сервер возвращает ответ, он отправляется либо широковещательно либо направленно в сеть, из которой был получен первоначальный запрос.

Чтобы запустить агент ретрансляции DHCP, выполните команду: dhcrelay . Он также может быть запущен со следующими параметрами:

Как работает DHCP?

  • После загрузки подключенный к сети клиент (на котором настроено использование DHCP) отправляет DHCP-серверу пакет DHCPDISCOVER.
  • Получив пакет запроса DHCPDISCOVER, DHCP-сервер отвечает пакетом DHCPOFFER.
  • Клиент принимает пакет DHCPOFFER и отправляет серверу пакет DHCPREQUEST, подтверждая готовность принять сетевую конфигурацию, предоставленную в пакете.
  • Получив от клиента пакет DHCPREQUEST, сервер отправляет пакет DHCPACK, который разрешает клиенту использование выделенного IP-адреса.

В данном руководстве мы рассмотрим настройку DHCP-сервера в Ubuntu/Debian Linux, но большенство настроек будет работать и в других дистрибутивах. Для получения административных привилегий все команды будут выполняться через sudo.

Шаг 1: Установка DHCP-сервера

1. Для установки пакета DCHP-сервера, ранее известного как dhcp3-server, нужно выполнить следующую команду:

2. После завершения установки отредактируйте файл /etc/default/isc-dhcp-server для определения интерфейсов, которые будет использовать DHCPD для обработки DHCP-запросов, при помощи опции INTERFACES.

Например, если вам нужно, чтобы демон DHCPD прослушивал eth0, задайте следующее значение:

Для этого сетевого интерфейса нужно настроить статический IP-адрес.

Шаг 2: Настройка DHCP-сервера

  • параметры – указывают, как выполнять задание (например, на какое время выделять адрес), выполнять ли его вообще (например, выделять ли адреса неизвестным клиентам) или какие параметры сетевой конфигурации отправлять DHCP-клиенту.
  • декларации – определяют топологию сети, описывают клиентов и предоставляемые им адреса, или применяют группу параметров к группе деклараций.

4. Для определения настроек DHCP-сервера откроем и отредактируем файл конфигурации:

5. Теперь нужно указать подсеть, в нашем примере мы будем использовать DHCP в локальной сети 192.168.10.0/24.

Здесь мы использовали следующие параметры:

Шаг 3: Настройка статических IP-адресов для машин клиентов

6. Для выделения конкретным клиентам фиксированного (статического) IP-адреса нужно добавить в файл конфигурации секции следующего вида, где явно указаны MAC-адрес и статически выделяемый IP-адрес:

7. Запустим службу DHCP и установим ее автоматический запуск при загрузке:

8. Далее нужно создать правило для службы DHCP в брандмауэре (Демон DHCPD прослушивает UDP-порт 67):

Шаг 4: Настройка машин клиентов

9. Теперь можно настроить клиентские компьютеры в сети для автоматического получения IP-адресов от DHCP-сервера.

Отредактируйте файл конфигурации интерфейса Ethernet на клиентской машине (обратите внимание на имя/номер интерфейса):

Укажите следующие опции:

Сохраните и закройте файл, а затем перезапустите сетевые службы или перезагрузите систему:

Если все настроено правильно, клиентская машина должна автоматически получать IP-адреса от DHCP-сервера.

Настройка DHCP-сервера завершена. Более подробную информацию о dhcpd и dhcpd.conf с описанием всех возможных опций можно получить в соответствующих man-страницах:

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

DHCP ( D ynamic H ost C ontrol P rotocol), как вы все знаете, это сетевой протокол, который автоматически назначает IP-адреса клиентским компьютерам в сети. Это устраняет утомительную работу по ручному назначению IP-адреса для каждой машины в большой сети. Кроме того, он устраняет конфликт, возникающий из-за ошибочного назначения одного и того же IP-адреса нескольким машинам. Мы можем определить диапазоны IP-адресов в конфигурации DHCP-сервера. Наряду с IP-адресом мы также можем определить другую информацию, такую ​​как маска подсети, шлюз по умолчанию, информация о DNS-сервере и т. Д., И затем эта информация будет распространяться на клиентские машины по сети.

В этой статье мы увидим, как установить DHCP-сервер в Ubuntu и настроить одного клиента для автоматического получения IP-адреса с этого DHCP-сервера. Мы будем использовать Ubuntu 18.04 LTS, описывающую процедуру, упомянутую в этой статье. Вы можете выполнить ту же процедуру в предыдущих выпусках Ubuntu.

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

Прежде чем приступить к установке DHCP-сервера, сначала обновите пакеты, выполнив в терминале следующую команду:

Затем введите в терминале следующую команду для установки сервера DCHP:


Подождите некоторое время, пока установка не будет завершена.

Настройка DHCP-сервера

После установки DHCP-сервер завершен, мы перейдем к его настройке. IP-адрес нашего DHCP-сервера - 192.168.110.1. Чтобы узнать IP-адрес вашего DHCP-сервера, введите в Терминале следующую команду:


Файл конфигурации DHCP находится по адресу / etc / dhcp / dhcpd.conf. Мы можем откройте этот файл, выполнив следующую команду в терминале

Определение подсети

Добавьте следующие строки в файл конфигурации, чтобы определить подсеть, диапазон IP-адресов, серверы доменов и доменных имен, как показано ниже:

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

При определении информации о подсети (диапазон, шлюз по умолчанию, сервер доменных имен) обязательно заканчивайте строки точкой с запятой (; ) и заключите их в фигурные скобки <> .

Чтобы указать диапазон выделенных адресов, добавьте следующую строку. range определяет набор пулов IP-адресов, из которых IP-адреса выделяются клиентам DHCP.

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

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

Внесите изменения в соответствии со значениями вашей сети.


Глобальная конфигурация DHCP

Вот основные шаги, которые нам нужны в Чтобы настроить глобальные параметры для настройки DHCP-сервера.

1. Чтобы указать максимальное и максимальное время аренды, найдите в файле конфигурации параметры default-lease-time и max-lease-time и измените их значения.

2. Если у вас несколько интерфейсов, вам необходимо определить, какой интерфейс должен использовать сервер DHCP для обслуживания запросов DHCP.В файле конфигурации найдите и измените значение INTERFACESv4 и измените его в соответствии с интерфейсом, который мы хотим обрабатывать.


Это базовая конфигурация, которая нам нужно для того, чтобы запустить сервер DHCP. После этого сохраните и закройте файл конфигурации.

Управление службами DHCP

После завершения настройки вы можете использовать следующие команды для управления сервером DHCP:

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

Ниже приведен снимок экрана, показывающий состояние сервера DHCP. Вы можете видеть, что active (выполняется) выделен зеленым цветом, подтверждая, что DHCP-сервер работает нормально:


Есть еще несколько команд, которые мы можем использовать для запуска, остановки и перезапуска службы DHCP. .

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

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

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

Настройка DHCP-клиента

Нам потребуется настроить сетевые параметры на клиентском компьютере, чтобы получить IP-адрес от DHCP-сервера. Здесь мы будем использовать другую Ubuntu 18.04 LTS в качестве клиентского компьютера.

На клиентском компьютере откройте приложение Settings из меню Dash Ubuntu.


Затем выберите Network вкладка на левой панели приложения Настройки. Затем откройте настройки адаптера, нажав на значок шестеренки перед ним. Убедитесь, что он включен.


Откроется окно настроек адаптера. Выберите вкладку IPv4 в верхнем меню. Затем выберите параметр Автоматически (DHCP) . Затем нажмите Apply , чтобы сохранить изменения.


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

Теперь запустите терминал и введите следующую команду, чтобы найдите IP-адрес системы.


Вы увидите IP-адрес, который будет из диапазона, который мы определили в конфигурации DHCP-сервера. Если клиент по-прежнему не получает IP-адрес от сервера DHCP, перезапустите систему.

Список арендованных адресов

Чтобы узнать, какие адреса были назначены клиентам сервером DHCP, откройте машину, которая у вас есть. настроенный как сервер DHCP, и введите следующую команду в Терминале:

Срок аренды - это период времени, в течение которого IP-адрес назначается компьютеру.


С этого момента список, вы можете проверить наш DHCP-клиент с MAC: 00: 0c: 29: d4: cf: 69 предоставил IP-адрес 192.168.110.5 с DHCP-сервера.

Теперь настройка завершена, и у нас есть DHCP сервер запущен и работает. Теперь мы можем использовать этот DHCP-сервер для назначения IP-адресов.


Что такое DHCP? Любой, кто имеет базовые знания о компьютерных сетях, знает, что для того, чтобы два хоста могли общаться в одной сети с использованием модели TCP/IP, оба хоста должны иметь уникальный IP-адрес. Существует два способа получения IP-адреса любым хостом в вашей сети.

Каждый сетевой хост, настроенный для получения IP-адреса динамически через DHCP, при загрузке отправит запрос DHCP по сети (по определению это широковещательная передача), чтобы узнать, есть ли где-то в сети DHCP-сервер и, следовательно, запросить конфигурацию сети. Затем DHCP-клиент обязан поддерживать связь с DHCP-сервером и регулярно обновлять свой IP-адрес в соответствии с истечением срока аренды IP-адреса. В случае, если DHCP-клиент не может обновить свой IP-адрес (отключение, хост выключен и т. д. ) его IP-адрес истекает, и DHCP-сервер может свободно выдать этот IP-адрес другому DHCP-клиенту.

DHCP-сервер ведет запись всех арендованных IP-адресов и сохраняет их в файле под названием dhcpd.leases в каталоге /var/lib/dhcp (расположение этого файла может отличаться в зависимости от используемого дистрибутива Linux ). Наличие такого файла позволяет DHCP-серверу отслеживать все арендованные IP-адреса даже после перезагрузки или сбоя питания.

Вот некоторые преимущества использования DHCP-сервера в сети:

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

Стандартный DHCP-сервер доступен для Linux дистрибутивов от ISC (Internet System Consortium).

Используйте следующую команду для установки DHCP-сервера, в зависимости от вашего дистрибутива Linux.

Debian и Ubuntu

Redhat и Fedora

Простая конфигурация DHCP

По-умолчанию конфигурация в файле dhcpd.conf не содержит никаких объявленных сетей, а так же в файле /etc/default/isc-dhcp-server нет указанных интерфейсов, по которым будет происходит слушание и раздача параметров. Поэтому при запуске службы вы получите ошибку.

Starting ISC DHCP server: dhcpdcheck syslog for diagnostics. . failed!
Examining log files such as /var/log/syslog reveals more details:
No subnet declaration for eth0 (some IP address).
Your server may be connected to multiple network subnets. To start DHCP server, at least one subnet must be defined within the DHCP configuration file /etc/dhcp/dhcpd.conf.
NOTE: if your server has access to more than one subnet, DHCP requires all subnets to be defined even though there isn't immediate intention to enable DHCP service on that subnet.

Поэтому для запуска нам потребуется записать в конфигурационный файл простейшее описание сети(ей):

А так же в файле /etc/default/isc-dhcp-server укажем наш интерфейс (или несколько):

Этот файл конфигурации указывает DHCP-серверу прослушивать запросы DHCP-клиента в подсети 10.1.1.0 с маской сети 255.255.255.0 на интерфейсе eth0. Кроме того, он назначит IP адреса в диапазоне 10.1.1.3-10.1.1.254. Он также определяет пустое описание для подсети 192.168.0.0.

Измените приведенный выше код с вашей подсетью и вставьте его в файл /etc/dhcp/dhcpd.conf. После перезагрузите DHCP-сервер с помощью команды:

Время аренды по-умолчанию и максимальное время аренды в DHCP

На этом этапе мы можем добавить несколько дополнительных настроек к нашей конфигурации DHCP, а именно срок действия аренды по-умолчанию и максимальное время аренды.

Определение DNS-сервера

Другим параметром конфигурации, который может быть задан DHCP-сервером своему клиенту, является определение DNS-сервера. Если вы хотите, чтобы ваши клиенты использовали DNS-сервер с IP-адресом 8.8.8.8 и 10.1.1.1, вы можете сделать это, включив опцию domain-name-servers в конфигурационный файл DHCP.

Назначим шлюз по-умолчанию

DHCP-сервер также позволяет использовать шлюз по-умолчанию для клиента. Например установим шлюз по-умолчанию 10.1.1.1 для клиентов сети 10.1.1.0, добавим строку option routers 10.1.1.1 в dhcpd.conf в соотвествующие секции:

Описание конфигурации для отдельных хостов на DHCP-сервере

Возможно, потребуется установить статический IP-адрес для конкретного хоста в сети, такого как принтер, веб-сервер и т. д. В этом случае возможно изменить конфигурацию DHCP-сервера для аренды выбранного IP-адреса конкретному хосту, определенному его MAC-адресом.

Приведенный выше файл конфигурации DHCP будет постоянно присваивать IP-адрес 10.1.1.100 хосту printer с MAC-адресом 00:16:d3:b7:8f:86 и IP-адрес 10.1.1.200 хосту web-server с MAC-адресом 00:17:a4:c2:44:22.

Как быстро настроить DHCP-клиент на Ubuntu

Чтобы настроить ваш клиент на использование DHCP через сетевой интерфейс eth0 на Ubuntu или Debian подобных, пропишите следующие строки в файле /etc/network/interfaces:

auto eth0
iface eth0 inet dhcp

Конфигурация DHCP-relay (передача полномочий другому DHCP-серверу)

Если ваш DHCP-сервер не имеет доступа к какой-то конкретной подсети, это не значит, что он не может предоставлять там свои услуги. Для выполнения этой работы агент DHCP-relay должен быть настроен в удаленной подсети, которая пересылает все запросы на указанный DHCP-сервер и удаленную подсеть. Сначала установите DHCP-relay:

Затем создайте конфигурационный файл /etc/default/isc-dhcp-relay с такими двумя строками:

Приведенный выше конфигурационный файл даст указание агенту DHCP-relay agent прослушивать на интерфейсе eth0 запросы DHCP-клиента и пересылать их на DHCP-сервер по IP-адресу 192.168.5.5.

Читайте также: