Сегодня в статье рассмотрим пример по установки и настройки dhcp сервера на операционной системой Ubuntu Server 20.04.

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

Все привыкли при подключении к домашней сети, например ноутбука по WiFi или телефона, вводить только пароль от сети, а при подключении по витой паре вообще никаких настроек не производить. Вот тут, как раз нам и понадобиться наш DHCP сервер. Он займется раздачей: IP адреса, DNS сервера, установкой маски сети, и другими необходимыми параметрами входящими в его компетенцию.

Начальная конфигурация:

  • Ubuntu Server 20.04
  • Настроенный DNS сервер.
  • Одна сетевая карта только для локального построения сети без доступа к интернету.
  • Две сетевых карты для локальной сети и доступа в интернет.

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

Для установки нашего dhcp сервера воспользуемся пакетом isc-dhcp-server входящий в официальный репозиторий Ubuntu. Подключаемся к нашему серверу по ssh или же просто на сервере набираем следующие команды:

sudo apt update && sudo apt dist-upgrade -y && sudo apt install isc-dhcp-server
  • Данными командами мы обновили наш сервер и установили пакет DHCP сервера.

На этом установка закончена, приступаем к настройке.

Настройка DHCP сервера

После установке пакета isc-dhcp-server его необходимо сконфигурировать под наши нужды.

Открываем конфигурационный файл:

sudo nano /etc/dhcp/dhcpd.conf

Отредактируем его:

ddns-update-style none; 
authoritative; 
log-facility local7; 
subnet 10.5.5.0 netmask 255.255.255.0 {
  range 10.5.5.10 10.5.5.100;
  option domain-name-servers 10.5.5.1;
  option domain-name "lan";
  option subnet-mask 255.255.255.0;
  option routers 10.5.5.1;
  option broadcast-address 10.5.5.255;
  default-lease-time 600;
  max-lease-time 3600;  
} 
#host ваше_название { 
  #hardware ethernet ab:22:0b:4d:11:1d; 
  #fixed-address 10.5.5.2; #         }
  • subnet — блок в котором описывается наша сеть (пул IP адресов и маска сети).
  • range — диапазон IP адресов клиентов.
  • option domain-name-servers — тут прописываем ip адрес сервера dns.
  • option domain-name — название домена. В моем случае «lan».
  • option subnet-mask — маска сети. Что такое маска и как её выбрать можно посмотреть в Википедии.
  • option routers — ip адрес роутера. У нас это наша же машина.
  • option broadcast-address — широковещательный адрес в сети, обычно это последний адрес сети «255».
  • default-lease-time — время аренды адреса у сервера.
  • max-lease-time — максимальное время аренды адреса у сервера.
  • host — в данном блоке описывается настройки для выделенных IP адресов сетевого оборудования в сети. ( данные IP не должны попадать в диапазон range). Сетевым оборудованием могут выступать как принтеры, сканеры, ip-телефоны так и различные девайсы — телевизоры планшеты, умные интернет вещи и т.д., для которых необходимо зафиксировать определенный IP адрес.
  • hardware ethernet — MAC адрес сетевой карты для которой фиксируется IP адрес.
  • fixed-address — фиксированный IP адрес.

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

ifconfig

У меня вывод следующий, у вас может быть другой, но суть от этого не меняется:

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.5.5.1  netmask 255.255.255.0  broadcast 10.5.5.255
        inet6 fe80::3445:5dff:fec7:c68c  prefixlen 64  scopeid 0x20<link>
        ether 36:45:5d:c7:c6:8c  txqueuelen 1000  (Ethernet)
        RX packets 1944624  bytes 1235126530 (1.2 GB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1900221  bytes 1221337743 (1.2 GB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Локальная петля (Loopback))
        RX packets 112  bytes 15791 (15.7 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 112  bytes 15791 (15.7 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

У меня интерфейс eth0 смотрит в локальную сеть.

Давайте настроим сервер на прослушивания определенного интерфейса. Открываем следующий файл для редактирования.

sudo nano /etc/default/isc-dhcp-server

В конце прописываем следующее:

INTERFACESv4="eth0"
  • eth0 — имя нашего интерфейса

После данной манипуляции наш DHCP сервер будет принимать и отправлять запросы только от интерфейса eth0.

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

sudo service isc-dhcp-server restart

Все на этом настройка закончена. Теперь при подключении к сети все девайсы получать настройки в автоматическом режиме.

[endtxt]

. . . .

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

4.5 4 голоса
Рейтинг статьи

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Продолжая пользование настоящим сайтом Вы выражаете своё согласие на обработку Ваших персональных данных (файлов cookie) с использованием трекеров "Google Analytics" и "Yandex.Metrics". Порядок обработки Ваших персональных данных, а также реализуемые требования к их защите, содержатся в Политике конфиденциальности.
Принять