Dhcp linux посмотреть выданные адреса

Обновлено: 01.07.2024

Как работает 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.

В состав дистрибутива ОС Astra Linux входит пакет DHCP-сервера isc-dhcp-server и графический инструмент для его быстрой настройки fly-admin-dhcp. Установка графического инструмента fly-admin-dhcp может быть выполнена из графического менеджера пакетов , или из командной строки:

При установке f ly-admin-dhcp автоматически будет установлен также и isc-dhcp-server .

После установки инструмент может быть запущен из системного меню ("Пуск" > "Панель управления" > "Сеть" > "DHCP сервер), или из командной строки.

Конфигурация сервиса DHCP хранится в файлах /etc/default/isc-dhcp-server и /etc/dhcp/dhcpd.conf.

В файле /etc/default/isc-dhcp-server в параметрах INTERFACES нужно указать протоколы и сетевые интерфейсы, с которыми будет работать сервис.
При необходимости указать несколько сетевых интефейсов, их можно перечислить через пробел.
Пример настроек (для протокола IPv4 используется интерфейс eth0, работа по протоколу IPv6 запрещена):

Список имеющихся интерфейсов можно проверить командой

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

Для того, чтобы сервис запустился, указанному в файле /etc/default/isc-dhcp-server сетевому интерфейсу должен быть присвоен IP-адрес.
С учетом того, что DHCP сервис мы только настраиваем, автоматически получить адрес не получится, то есть адрес нужно назначить вручную до запуска сервиса.
Неудачный запуск с ошибкой при запуске "Not configured to listen on any interfaces!" говорит о том, что у сетевого интерфейса нет IP-адреса.

Проверка работоспособности сервиса

Для проверки работоспособности сервиса можно установить и использовать команду nmap:

sudo apt install nmap
sudo nmap --script broadcast-dhcp-discover localhost

Также можно в процессе работы проверить список выданных сервером адресов:

Указание параметров домена

Особо следует отметить важные для обеспечения работы в составе домена возможности задания в параметрах выдаваемой информации имени домена и адреса DNS-сервера:

Указание параметров сетевой загрузки

Для указания какой файл и откуда загрузить при старте хоста используются параметры

  • filename - имя файла для загрузки
  • next-server - адрес сервера, с которого загрузить файл (в виде IP-адреса или в виде имени сервера)

subnet 10.0.2.0 netmask 255.255.255.0 range 10.0.2.10 10.0.2.100;
max-lease-time 86400;
option routers 10.0.2.1;
filename "pxelinux.0";
next-server 10.0.2.254;
>

Указание параметров резервирования IP по MAC-адресу

Быстрая настройка основных параметров DHCP для сети IPv4 может быть осуществлена через графический инструмент f ly-admin-dhcp .

Работа сервиса DHCP существенно влияет на работоспособность сети в целом,
и случайное появление в сети неправильно настроенного сервера, отвечающего на запросы клиентов,
может привести к существенным нарушения работы всей сети.
Для предотвращения случайных включений в настройках сервиса предусмотрена специальная защита:
в файле /etc/dhcp/dhcpd.conf имеется закомментированный параметр authoritative .
Для того, чтобы сервер действительно начал работать, этот параметр нужно раскомментировать.

После завершения всех настроек следует перезапустить сервис:

sudo systemctl restart isc-dhcp-server

Настройку DHCP для динамического обновления доменного DNS-сервиса FreeIPA см. в статье Динамическое обновление DNS клиентских машин FreeIPA

Если вы считаете, что её стоило бы доработать как можно быстрее, пожалуйста, скажите об этом.


DHCP (Dynamic Host Configuration Protocol/протокол динамической конфигурации узла) — это сетевой протокол, позволяющий компьютерам автоматически получать IP-адрес и другие параметры, необходимые для работы в сети TCP/IP.

Содержание

По умолчанию на маршрутизаторах Cisco включена функциональная возможность DHCP-сервера.

Если же она не активирована, то это возможно сделать командой:

Отключить данную функциональную возможность:

  1. Настройка соединения между коммутатором и маршрутизатором
  2. Настройка DHCP-сервера

Пример топологии (данная топология не является рекомендацией, а используется просто в качестве примера):

Dhcp dot1q.jpg

Необходимо настроить порт коммутатора fa0/11 для передачи трафика нескольких VLAN маршрутизатору.

На интерфейсе маршрутизатора fa0/0:

  1. Создать интерфейс для каждого VLAN'а (подсети)
  2. Настроить инкапсуляцию 802.1q и указать номер VLAN'а
  3. Задать на них адрес из соответствующей подсети

Подробное описание процедуры настройки VLAN'ов на коммутаторах и маршрутизаторах Cisco можно прочитать на странице VLAN.

Настройка DHCP-пула на маршрутизаторе (аналогичным образом настраиваются пулы для каждой подсети) и указание шлюза по умолчанию для клиентов:

Как дополнительные параметры в пуле можно описать:

  1. Имя домена для DHCP-клиента - domain-name
  2. DNS-сервер - dns-server
  3. Сервер WINS для сетей microsoft - netbios-name-server

Исключить из пула адрес интерфейса маршрутизатора и DNS-сервера:

Есть возможность вручную сопоставить определенный MAC-адрес с необходимым IP-адресом.

В данной конструкции необходимо указать:

  1. адрес, который будет сопоставлен с физическим адресом: host address [mask | prefix-length]
  2. физический адрес (идентификатор) сетевой карты: client-identifier unique-identifier
  3. имя клиента: client-name name

Для microsoft сетей идентификатором данной сети является 01 ПЕРЕД MAC-адресом. Для UNIX сетей необходимо проставлять 00

То есть, для компьютера с MAC-адресом 00.04.76.10.6c.bc, который работает в среде Windows строчка client-identifier будет выглядеть как:

Для компьютера с MAC-адресом 00.04.76.10.6c.bc который работает в среде UNIX строчка client-identifier будет выглядеть как:

Для каждого статического соответствия необходимо создавать отдельный пул.

База данных DHCP-агента может находится как на любом сетевом ресурсе (ftp, TFTP, или RCP сервере), так и на flash памяти. При этом база DHCP-сервера содержит всю его информацию. Имеется возможность настроить DHCP-сервер на использование нескольких агентов, для обновления и размещения баз DHCP-сервера несколькими агентами.

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

для отключения агента базы данных DHCP-сервера:

Время аренды IP-адреса от 0 до 365 дней(в эмуляторе PT - не поддерживается):

Возможно так же описывать dhcp-options - Параметры конфигурации DHCP. Это необходимо делать с помощью ключевого слова options название значение
Пример:

Для выдачи клиентам статических маршрутов необходимо использовать опцию 33

Опция 31 говорит клиенту периодически проверять информацию у сервера DHCP о маршрутах и шлюзе по умолчанию.

Что бы задать имя загрузочного образа загрузочного файла необходимо выполнить команду

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

По умолчанию DHCP-сервер ждет две секунды ответ, а затем повторяет ICMP запрос.

Эти параметры можно изменить.

Изменить количество отправляемых ICMP запросов (0 отключает ping):

Изменение таймаута между запросами:

Очистки таблицы соответствия физических адресов и адресов выданных с пула DHCP-сервером:

Очистить привязку для конкретного IP-адреса:

Просмотр информации об адресах, которые были выданы DHCP-сервером:

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

В выводимой информации показываются текущие данные о выделенных и назначенных адресах, соответствующий МАС-адрес DHCP-клиента и время истечения срока аренды адреса

В столбце Detection Method указывается метод, использованный DHCP-сервером для определения конфликтности адреса. Если указан метод обнаружения ping, то это говорит о том, что перед назначением адреса DHCP-сервер сделал попытку пропинговать этот адрес и получил успешный ответ. Метод обнаружения Gratuitious ARP (метод беспричинного разрешения адреса) означает, что до выделения адреса DHCP-сервер обнаружил в своей ARP-таблице текущую и достоверную ARP-запись для этого адреса. Наличие ссылки на любой из этих методов говорит о том, что адрес, вероятно,используется (может быть, это результат несанкционированного использования, а возможно,кто-то забыл внести адрес в список исключаемых адресов).


Что такое 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.

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