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

Обновлено: 07.07.2024

По умолчанию в большинстве дистрибутивов Linux, ip адрес устанавливается автоматически, по протоколу DHCP, независимо от того какой тип соединения используется, будь то проводной интернет или беспроводное подключение к точке доступа Wifi или даже USB модем. Но если необходимо вы можете задать ip адрес Linux вручную. Это может понадобиться если вы хотите использовать статический ip адрес чтобы сеть запускалась быстрее при старте системы.

Есть несколько способов ручной настройки ip адреса в системе Linux, все можно сделать с помощью терминала или в графическом интерфейсе. Мы будем рассматривать только ipv4 адреса, и поговорим о том, как настроить статический ip, который будет присваиваться сетевому интерфейсу автоматически, а также как установить ip для сетевого интерфейса с помощью утилиты ip.

Как узнать IP, шлюз и маску?

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

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

  • 10.0.0.0 – 10.255.255.255
  • 172.16.0.0 – 172.31.255.255
  • 192.168.0.0 – 192.168.255.255

Они все зарезервированы для локальных сетей и их использование не должно вызвать конфликтов с общим интернетом, таким образом сначала надо узнать адрес шлюза. Но со шлюзом все немного сложнее. Это ваш маршрутизатор. Очень важно указать шлюз правильно, иначе компьютер не сможет получить доступ к сети. Посмотреть текущий адрес шлюза можно командой:

ip route show match 0/0


Здесь мы видим, что наш адрес шлюза - 192.168.0.1. Отсюда выплывает, что нам нужно выбирать наш ip именно из этого диапазона, можно менять только последнюю цифру и надо, чтобы в этой сети компьютеров с такими адресами больше не было, например, 192.168.0.64.

Маска подсети используется чтобы отделить локальную часть ip адреса, которая меняется, от статической. Сейчас в большинстве случаев применяется значение 255.255.255.0, которое означает изменение только последней цифры. Теперь, когда вы знаете откуда брать все значения, рассмотрим как установить ip адрес Linux.

Настройка ip адреса в Ubuntu

Настройкой сети в Ubuntu по умолчанию занимается специальная служба networking, конфигурация которой находятся в файле /etc/network/interfaces. Стандартные настройки с использованием динамического получения ip адреса по DHCP выглядят следующим образом:


В этом примере настраиваются два интерфейса, lo и eth0. Нас будет интересовать только строчка, касающаяся проводного соединения eth0, она тут одна:

iface eth0 inet dhcp

Отредактируйте конфигурацию как показано ниже, нужно закомментировать строчку получения ip по DHCP и добавить вместо нее настройку статического ip адреса, подсети, и шлюза:

sudo vi /etc/network/interfaces


Более подробно настройка сети Ubuntu через терминал описана в отдельной статье. Настройте параметры в соответствии с вашими параметрами сети. Затем перезапустите сетевые службы чтобы изменения вступили в силу без перезагрузки компьютера:

sudo systemctl restart networking

Чтобы убедиться что все установлено правильно используйте утилиту ip.

ip addr list | grep enp24s0


Настройка IP адреса в CentOS

В системах, основанных на дистрибутиве RedHat, файлы настройки сети немного отличаются. Тут за начальную настройку сети отвечает фреймворк Wiched. Настройки получения IP адреса хранятся отдельно для каждого сетевого интерфейса в файлах /etc/sysconfig/network-scripts/ifcfg-имя_интерфейса, например, enp2s0. Настройки статического ip для сетевого адаптера с адресом enp2s0 будут выглядеть следующим образом:

sudo vi /etc/sysconfig/network-scripts/ifcfg-enp2s0

DEVICE="enp2s0"
BOOTPROTO="static"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
IPADDR=192.168.0.65
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
DNS1="8.8.8.8"

Чтобы изменения вступили в силу перезапускаем сеть:

sudo systemctl restart networking

Готово, настройка ip адреса linux с помощью стандартных средств системы завершена и вы можете дальше использовать свой компьютер.

Настройка статического IP адреса в nmcli

Сетевой конфигуратор NetworkManager сейчас используется практически повсеместно. Если нужно настроить IP в терминале вы можете использовать утилиту nmcli. Сначала смотрим доступные подключения. Для этого выполните:

Допустим, что необходимое вам подключение называется Проводное соединение 2. Тогда осталось установить IP адрес, шлюз и DNS сервер:

nmcli con mod "Проводное соединение 2" ipv4.addresses 192.168.1.64/24
nmcli con mod "Проводное соединение 2" ipv4.gateway 192.168.1.1
nmcli con mod "Проводное соединение 2" ipv4.dns "8.8.8.8"

Затем надо сообщить утилите, что IP адрес будет настраиваться вручную:

nmcli con mod "Проводное соединение 2" ipv4.method manual

В этом примере IP адрес задается немного по другому. Сначала идёт выбранный ip адрес, а затем маска в формате /24. Это аналог записи 255.255.255.0, только короче.

Настройка IP в графическом интерфейсе

Разберемся ещё как изменить IP адрес через графический интерфейс. Для этого кликните по значку сети в правом верхнем углу экрана, затем выберите любое сетевое подключение и кликните по пункту Параметры соединения:


В открывшемся окне параметров нажмите значок шестеренки напротив нужного соединения, например, Проводное:


Перейдите на вкладку IPv4 и напротив пункта Метод IPv4 выберите Вручную. Появится несколько полей, которые надо заполнить. Заполните IP адрес, маску и шлюз:

Затем чуть ниже пропишите DNS. Когда всё будет готово нажмите кнопку Применить.

Настройка IP адреса с помощью утилиты ip

Если вам не нужно настраивать статический ip при загрузке, а необходимо только один раз задать ip адрес linux через терминал, то можно использовать утилиту ip. Включите интерфейс, если он выключен:

sudo ip link set eth0 up

Сначала нужно изменить IP и маску сети:

sudo ip addr add 192.168.0.65/255.255.255.0 dev eth0

Затем добавить шлюз:

sudo ip route add default via 192.168.0.1

Готово, теперь ваша сеть должна работать. Только эти настройки будут работать до первой перезагрузки.

Выводы

Вот и все. В этой статье мы рассмотрели как выполняется настройка ip адреса linux. Все это может показаться сложным, но если хорошо разобраться, то смена ip linux уже не будет вызывать таких проблем. Если у вас остались вопросы, спрашивайте в комментариях!

На завершение, видео о том что значат цифры ip адреса и зачем они нужны:

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

Если у вас всего 2-3 компьютера обычно предпочтение отдается ручной настройке сети. Но в настоящее время появилось множество сетевых устройств для каждого из которых настройка сетевых параметров может оказаться очень сложной, а иногда и невозможной вовсе. Это является основным фактором, который мы должны учитывать в пользу установки и настройки DHCP-сервера в нашей сети. DHCP-сервер может существенно упростить настройку сетевых устройств.
Однако ручное назначение IP-адресов всегда необходимо, если вы развертываете в своей сети серверы . Серверы всегда должны иметь статическимй IP-адрес.

Internet Software Consortium является основным автором и разработчиком самого распостраненного DHCP-сервера в Linux, который обычно называют сервером ISC DHCP. В Ubuntu / Debian соответствующий двоичный пакет называется isc-dhcp-server . Рассмотрим как установить и настроить DHCP-сервер.

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

На всякий случай сделаем резервную копию конфигурационного файла

Настройка DHCP

Некоторые общие параметры сервера DHCP:

subnet— Параметр объявляет подсеть (в нашем случае 192.168.38.0 с маской 255.255.255.0)

После того как вы отредактировали основной файл конфигурации и объявили диапазоны IP, откройте файл /etc/default/isc-dhcp-server и замените параметр INTERFACESv4 на имя сетевого интерфейса, который смотрит внутрь сети. Чтобы узнать его имя воспользуйтесь командами ipconfig или ip.


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


Настройка DHCP-сервера с резервированием IP-адреса.

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

Пример резервирования IP-адреса 192.168.38.5 за компьютером SERVER:

После того, как вы внесли изменения в конфигурационный файл, перезапустите сервер DHCP следующей командой:

Управлять DNS сервером Bind9 и доменом в целом, мы можем с помощью родных оснасток RSAT. Но с ISC-DHCP сервером дела обстоят иначе. ISC-DHCP сервер изначально не заточен под управление стандартными средствами Windows. Поэтому тут нам придётся чуть-чуть погрызть кактус. Ведь мы всё же хотим иметь в локальной сети фиксированные IP адреса. Устройства, которые не меняют свой IP адрес. При этом чтобы эти устройства продолжали управляться DHCP сервером. Помним что получение IP от DHCP сервера, проинтегрированного с DNS сервером контроллера домена, инициирует обновление локальной DNS зоны. Это позволяет нам обращаться к устройству через его DNS имя.

Открываем на редактирование файл конфигурации dhcpd. Позже, чтобы сохраниться нужно будет нажать Ctrl+o. Чтобы закрыть файл Ctrl+x.

Добавляем статическую запись

Фиксированные IP адреса в ISC-DHCP сервере

Фиксированные IP адреса в ISC-DHCP сервере

Радуемся

Теперь у DHCP сервера есть список фиксированных IP адресов. Получив запрос он посмотрит dhcpd.conf. Найдя там запись host с MAC адресом обратившегося устройства, выдаст ему fixed-address.

emoji AdminGuide - Очень приятно

Мммммм. Фиксированные лизы в ISC-DHCP

Немного о dhcpd.conf

Узнать список всех фиксированных IP адресов ISC-DHCP сервера

Необходимо заменить путь /etc/dhcp/dhcpd.conf на свой, в случае если он у вас отличается.

Выводим фиксированные IP адреса ISC-DHCP сервера на экран терминала

Данная команда выведет на экран терминала все записи host имеющие fixed-address

Выводим фиксированные IP адреса ISC-DHCP сервера в файл

Если вам нужно вывести этот же список куда-то в файл, откуда потом его заберёт дальше в работу какая-то другая ваша софтина, то вам нужно просто к приведённой выше команде добавить > /путь до файла/имя файла

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

Так же для всех читателей, в моём блоге в дзене до 07.10.2020 проходит розыгрыш одной бессрочной лицензии Exiland Backup Professional для физ.лиц! Принимайте участие и делитесь своими историями! Ссылка на статью с розыгрышем


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

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