Ubuntu настройка dhcp клиента

Обновлено: 02.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.

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

  • Адрес ip;
  • Маску подсети;
  • IP адрес шлюза;
  • IP адрес DNS сервера;
  • Имя хоста;
  • Имя домена;
  • Адрес серверов времени(NTP);

Установка и настройка DHCP сервера

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

Минимальная настройка DHCP сервера включает в себя редактирование только 2х файлов.

Первый файл который мы с вами отредактируем, это nano /etc/default/isc-dhcp-server и добавляем/редактируем всего одну строку: где «eth3» интерфейс к которому подключаются клиенты с внутренней сети и который будет слушать DHCP;

Теперь собственно и сама настройка DHCP сервера. Открываем файл nano /etc/dhcp/dhcpd.conf и удаляем все содержимое.
Сейчас мы с вами настроим сервер только для раздачи адресов всем устройствам, которые будут запрашивать у сервера адрес. Добавляем в файл строки:

  • default-lease-time — время аренды(в секундах) адреса у сервера, если клиент не запросил другое;
  • max-lease-time — максимальное время аренды адреса;
  • subnet — описывает сеть ip и её маску;
  • range — диапазон адресов с которых по запросу клиента будут предоставляться адреса;
  • optionrouters — адрес роутера. Это должен быть адрес интерфейса через который пользователи попадают в интернет.
  • optiondomain-name-servers — адрес DNS сервера. Указывает на то, что сервер расположен на этом же компьютере и слушает интерфейс с адресом 192.168.0.1
  • /etc/ init . d / isc - dhcp - server start — запуск сервера;
  • /etc/ init . d / isc - dhcp - server stop — остановка сервера;
  • /etc/ init . d / isc - dhcp - server restart — перезапуск сервера;

Если у вас возникнут вопросы по настройке или установке оставляйте ваши комментарии.


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

Иногда может потребоваться настроить статический IP-адрес вместо протокола DHCP. Прекрасным примером является настройка сервера Ubuntu в качестве файлового или веб-сервера для вашей организации. Статический IP-адрес, как следует из названия, гарантирует, что IP-адрес вашей системы останется неизменным. При использовании DHCP IP-адрес изменяется после истечения срока аренды адреса, а это нежелательно для серверов.

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

Начиная с Ubuntu 17.10 и более поздних версий, сетевое взаимодействие контролируется функцией Netplan. Файлы конфигурации для Netplan находятся в каталоге /etc/netplan и написаны на языке YAML. В этом каталоге вы найдете файлы конфигурации YAML с пометкой либо 50-cloud-init.yaml , либо 00-installer-config.yaml .

Однако, если вы используете облачный экземпляр Ubuntu, то есть вероятность того, что он управляется cloud-init. Который автоматически присваивает ему IP адрес с помощью протокола DHCP. Прежде чем мы продолжим, вам необходимо отключить облачную инициализацию. Для этого откройте файл конфигурации subiquity-disable-cloudinit-networking.cfg в каталоге /etc/cloud/cloud.cfg.d/

$ sudo vim /etc/cloud/cloud.cfg.d/subiquity-disable-cloudinit-networking.cfg

Сохраните изменения и завершите работу. Затем перейдите к файлу конфигурации Netplan. В моем случае у меня есть файл 00-installer-config.yaml .

Как настроить статический IP адрес в Ubuntu

Как настроить статический IP адрес в Ubuntu

$ sudo vim /etc/netplan/00-installer-config.yaml

Чтобы назначить статический IP-адрес интерфейсу ens3 , измените файл следующим образом:

network:
ethernets:
enp0s3:
dhcp4: no
addresses: [192.168.2.150/24]
gateway4: 192.168.2.1
nameservers:
addresses: [8.8.8.8, 192.168.2.1]

Настройка статического IP Ubuntu Linux

Настройка статического IP Ubuntu Linux

Сохраните файл YAML и выйдите. Чтобы применить внесенные изменения, выполните команду:

Вы можете использовать команду ifconfig или ip, чтобы убедиться, что ваш сетевой интерфейс настроен на использование статического IP-адреса, настроенного несколько минут назад.

Проверка сетевого интерфейса командой ifconfig

Проверка сетевого интерфейса командой ifconfig

Кроме того, вы можете использовать команду Показать IP-маршрут для отображения новых маршрутов в вашей системе.

Команда ip route show

Команда ip route show

Отлично! Мы успешно настроили статический IP-адрес на сервере Ubuntu в терминале. Давайте теперь посмотрим как вы можете сделать то же самое на рабочем столе Ubuntu 20.04

Настройка статического IP адреса на рабочем столе Ubuntu 20.04

Настройка статического IP адреса на рабочем столе Ubuntu

Настройка статического IP адреса на рабочем столе Ubuntu

На этом экране отобразится описание вашей текущей конфигурации IP адреса. По умолчанию система получает конфигурацию IP-адреса по протоколу DHCP. Мы перейдем от использования DHCP к Статическому IP адресу.

Описание вашей текущей конфигурации IP адреса

Описание вашей текущей конфигурации IP адреса

Настройка статического IP адреса на рабочем столе Ubuntu 20.04

Настройка статического IP адреса на рабочем столе Ubuntu 20.04

Установка IP адреса, маски, шлюза и DNS

Установка IP адреса, маски, шлюза и DNS

Перезапуск сети в Ubuntu

Перезапуск сети в Ubuntu

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

Проверка установленного статического адреса в Ubuntu

Проверка установленного статического адреса в Ubuntu

Вот и все. Мы успешно настроили статический IP адрес на рабочем столе Ubuntu.

Заключение

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

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