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

18.01.2020

Теги: CLILinuxUbuntuВиртуализацияКонфигурацияЛокальнаяСетьНастройкаСерверУстановка

В больших сетях для упрощения работы с добавлением новых компьютеров и других устройств в сеть используют протокол динамического выделения адресов — 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.

Настройка сети для 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: <LOOPBACK,UP,LOWER_UP> 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: <BROADCAST,MULTICAST,UP,LOWER_UP> 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: <BROADCAST,MULTICAST,UP,LOWER_UP> 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;
}

Перезагружаем dhcp-сервер:

$ sudo systemctl restart isc-dhcp-server.service

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

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

$ ls /sys/class/net
enp0s3  lo

Открываем на редактирование файл /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: <LOOPBACK,UP,LOWER_UP> 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: <BROADCAST,MULTICAST,UP,LOWER_UP> 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: <LOOPBACK,UP,LOWER_UP> 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: <BROADCAST,MULTICAST,UP,LOWER_UP> 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 сделать маршрутизатором, чтобы она перенаправляла пакеты с одного интерфейса на другой.

Поиск: CLI • Linux • Ubuntu • Виртуальная машина • Конфигурация • Локальная сеть • Настройка • Сервер • DHCP • VirtualBox • Интерфейс • Установка

Каталог оборудования
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.