Поднять linux dhcp сервер

Установка DHCP-сервера на Ubuntu Server 18.04 LTS

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

Создаем виртуальные машины

Чтобы установить и настроить DHCP-сервер, нужно хотя бы два компютера, объединенные в сеть. Но в этом нам поможет VirtualBox. Создаем три виртуальные машины dhcp-server , pc-1 и pc-2 . У виртуальной машины dhcp-server будут два сетевых интерфейса. Один будет смотреть в домашнюю сеть и получать настройки от роутера Keenetic Air (сетевой мост). А второй нужен для связи с двумя другими виртуальными машинами (виртуальный адаптер хоста).

Тут надо сказать несколько слов о настройке сети в VirtualBox. Существует несколько способов, рассмотрим два из них:

  • Сетевой мост — при таком подключении виртуальная машина становится полноценным членом локальной сети, к которой подключена основная система. Виртуальная машина получает адрес у роутера и становится доступна для других устройств, как и основной компьютер, по своему ip-адресу.
  • Виртуальный адаптер хоста — создается виртуальный сетевой адаптер для хост-системы, к которому можно подключить несколько виртуальных машин, тем самым объединив их в локальную сеть. Виртуальный адаптер при этом работает как обычный сетевой коммутатор, соединяя между собой хост-систему и виртуальные машины. Доступа к интернету нет, но зато машины находятся в одной сети и каждая имеет свой ip-адрес.

Как нетрудно догадаться, у виртуальных машин pc-1 и pc-2 будет по одному интерфейсу (виртуальный адаптер хоста). А второй адаптер (сетевой мост) для виртуальной машины dhcp-server нужен для выхода в интернет — чтобы установить пакет isc-dhcp-server .

Настройки виртуального адаптера хоста: DHCP-сервер отключен (мы установим свой сервер), хост-система тоже есть в сети и доступна по ip-адресу 192.168.53.1 . Виртуальной машине dhcp-server мы назначим статический ip-адрес 192.168.53.2 , а виртуальные машины pc-1 и pc-2 получат адреса из диапазона 192.168.53.3 … 192.168.53.7 .

Читайте также:  Thread scheduling in linux

Настройка сети для dhcp-server

Сначала нужно посмотреть, как называются сетевые интерфейсы в системе:

$ ls /sys/class/net enp0s3 enp0s8 lo

Открываем на редактирование файл /etc/netplan/01-netcfg.yaml

$ sudo nano /etc/netplan/01-netcfg.yaml
network: version: 2 renderer: networkd ethernets: enp0s3: # этот интерфейс получает настройки от домашнего роутера optional: true dhcp4: yes enp0s8: # для этого интерфейса назначаем статический ip-адрес optional: true dhcp4: no addresses: [192.168.53.2/24] nameservers: addresses: [8.8.8.8, 8.8.4.4]

Применяем настройки и смотрим сетевые интерфейсы:

$ sudo netplan apply # применить настройки из YAML-файла к работающей системе $ sudo netplan generate # сохранить текущие настройки в файл конфигурации networkd
$ ip a 1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp0s3: mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 08:00:27:60:16:de brd ff:ff:ff:ff:ff:ff inet 192.168.110.5/24 brd 192.168.110.255 scope global dynamic enp0s3 valid_lft 25155sec preferred_lft 25155sec inet6 fe80::a00:27ff:fe60:16de/64 scope link valid_lft forever preferred_lft forever 3: enp0s8: mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 08:00:27:52:7c:bd brd ff:ff:ff:ff:ff:ff inet 192.168.53.2/24 brd 192.168.53.255 scope global enp0s8 valid_lft forever preferred_lft forever inet6 fe80::a00:27ff:fe52:7cbd/64 scope link valid_lft forever preferred_lft forever

Первый сетевой интерфейс enp0s3 получил ip-адрес 192.168.110.5 от роутера Keenetic Air. Второму сетевому интерфейсу enp0s8 мы назначили ip-адрес 192.168.53.2 .

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

Итак, устанавливаем сервер:

$ sudo apt install isc-dhcp-server

Файл первичной конфигурации находится по адресу /etc/default/isc-dhcp-server . В нём нужно указать лишь наш сетевой интерфейс enp0s8 :

$ sudo nano /etc/default/isc-dhcp-server
INTERFACESv4="enp0s8" INTERFACESv6=""

Теперь нам нужно отредактировать /etc/dhcp/dhcpd.conf :

$ sudo nano /etc/dhcp/dhcpd.conf
# адреса DNS-серверов option domain-name-servers 8.8.8.8, 8.8.4.4; # время аренды по умолчанию default-lease-time 3600; # максимальное время аренды max-lease-time 7200; # Локальная сеть: адрес и маска subnet 192.168.53.0 netmask 255.255.255.0 < # пул ip-адресов range 192.168.53.3 192.168.53.7; # маска подсети option subnet-mask 255.255.255.0; # ip-адрес шлюза option routers 192.168.53.2; >
$ sudo systemctl restart isc-dhcp-server.service

Настройка сети pc-1 и pc-2

Сначала для виртуальной машины pc-1 . Смотрим, как называются сетевые интерфейсы в системе:

Открываем на редактирование файл /etc/netplan/01-netcfg.yaml

$ sudo nano /etc/netplan/01-netcfg.yaml
network: version: 2 renderer: networkd ethernets: enp0s3: # этот интерфейс получает настройки от dhcp-сервера optional: true dhcp4: yes

Применяем настройки и смотрим сетевые интерфейсы:

$ sudo netplan apply # применить настройки из YAML-файла к работающей системе $ sudo netplan generate # сохранить текущие настройки в файл конфигурации networkd
$ ip a 1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp0s3: mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 08:00:27:24:12:8b brd ff:ff:ff:ff:ff:ff inet 192.168.53.3/24 brd 192.168.53.255 scope global dynamic enp0s3 valid_lft 2776sec preferred_lft 2776sec inet6 fe80::a00:27ff:fe24:128b/64 scope link valid_lft forever preferred_lft forever

Для pc-2 все будет аналогично, так что не буду описывать подробно:

$ ip a 1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp0s3: mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 08:00:27:28:cd:2a brd ff:ff:ff:ff:ff:ff inet 192.168.53.4/24 brd 192.168.53.255 scope global dynamic enp0s3 valid_lft 3246sec preferred_lft 3246sec inet6 fe80::a00:27ff:fe28:cd2a/64 scope link valid_lft forever preferred_lft forever

Какие адреса арендованы

Чтобы узнать, какие IP-адреса были выданы сервером, выполняем на виртуальной машине dhcp-server команду:

$ dhcp-lease-list Reading leases from /var/lib/dhcp/dhcpd.leases Processing: 50% complete Processing: 100% complete MAC IP hostname valid until manufacturer =================================================================================== 08:00:27:24:12:8b 192.168.53.3 pc-1 2020-01-18 10:51:07 -NA- 08:00:27:28:cd:2a 192.168.53.4 pc-2 2020-01-18 11:00:43 -NA-

Хотя в файле конфигурации DHCP-сервера указан ip-адрес шлюза 192.168.53.2 , интернета на виртуальных машинах pc-1 и pc-2 не будет. Для этого нужно виртуальную машину dhcp-server сделать маршрутизатором, чтобы она перенаправляла пакеты с одного интерфейса на другой.

Читайте также:  Aarch64 linux gnu toolchain

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

  • 1С:Предприятие (31)
  • API (29)
  • Bash (43)
  • CLI (99)
  • CMS (139)
  • CSS (50)
  • Frontend (75)
  • HTML (66)
  • JavaScript (150)
  • Laravel (72)
  • Linux (145)
  • MySQL (76)
  • PHP (125)
  • React.js (66)
  • SSH (27)
  • Ubuntu (68)
  • Web-разработка (509)
  • WordPress (73)
  • Yii2 (69)
  • БазаДанных (95)
  • Битрикс (66)
  • Блог (29)
  • Верстка (43)
  • ИнтернетМагаз… (84)
  • КаталогТоваров (87)
  • Класс (30)
  • Клиент (27)
  • Ключ (28)
  • Команда (68)
  • Компонент (60)
  • Конфигурация (61)
  • Корзина (32)
  • ЛокальнаяСеть (28)
  • Модуль (34)
  • Навигация (31)
  • Настройка (139)
  • ПанельУправле… (29)
  • Плагин (33)
  • Пользователь (26)
  • Практика (99)
  • Сервер (74)
  • Событие (27)
  • Теория (105)
  • Установка (66)
  • Файл (47)
  • Форма (58)
  • Фреймворк (192)
  • Функция (36)
  • ШаблонСайта (68)

Источник

Установка и базовая настройка DHCP сервера на Ubuntu

Обновлено и опубликовано

Опубликовано: 12.03.2023

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

Сервер DHCP в Ubuntu может быть реализован с помощью пакета isc-dhcp-server. Его можно установить из стандартных репозиториев системы. Выполняем обновления кэша пакетов и установку:

subnet 192.168.0.0 netmask 255.255.255.0 <
range 192.168.0.100 192.168.0.200;
option domain-name-servers 192.168.0.10, 192.168.0.11;
option domain-name «dmosk.local»;
option routers 192.168.0.1;
option broadcast-address 192.168.0.255;
default-lease-time 600;
max-lease-time 7200;
>

  • subnet — сеть, для которой будет работать данная группа настроек.
  • range — диапазон, из которого будут браться IP-адреса.
  • option domain-name-servers — через запятую перечисленные DNS-сервера.
  • option domain-name — суффикс доменного имени.
  • option routers — шлюз по умолчанию.
  • option broadcast-address — адрес сети для широковещательных запросов.
  • default-lease-time и max-lease-time — время и максимальное время в секундах, на которое клиент получит адрес, по его истечению будет выполнено продление срока.
Читайте также:  Рассылка email на linux

Проверить корректность конфигурационного файла можно командой:

dhcpd -t -cf /etc/dhcp/dhcpd.conf

Разрешаем автозапуск сервиса:

systemctl enable isc-dhcp-server

systemctl restart isc-dhcp-server

Добавляем правило в firewall:

iptables -I INPUT -p udp —dport 67 -j ACCEPT

Возможные проблемы

Not configured to listen on any interfaces!

Сервис dhcp не запускается, а в логе можно увидеть ошибки, на подобие:

No subnet declaration for ens18 (192.168.1.10).
.
** Ignoring requests on ens18. If this is not what
you want, please write a subnet declaration
in your dhcpd.conf file for the network segment
to which interface ens18 is attached. **
.
Not configured to listen on any interfaces

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

Решение: конфигурация subnet должна включать только те подсети, в которых настроен сам сервер DHCP. Посмотреть сетевые настройки можно командой:

После чего необходимо проверить настройки в конфигурационном файле сервера dhcp.

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

Другие инструкции, связанные с DHCP:

Источник

Оцените статью
Adblock
detector