В сегодняшней статье рассмотрим пример установки и настройки dhcp на сервере с операционной системой Ubuntu.
DHCP — сетевой протокол, позволяющий сетевым устройствам автоматически получать IP-адрес и другие параметры, необходимые для работы в сети TCP/IP. Если сказать ещё проще, то это программное обеспечения для автоматической регулировки вашей сети.
Все привыкли при подключении к домашней Wi-Fi сети, например телефона или ноутбука, кроме пароля для подключения, ничего больше не вводить и не настраивать. Так вот, всем остальным: раздачей IP адреса, установкой DNS сервера, установкой маски сети, как раз занимается DHCP сервер.
Если вы решили, как и я, вместо роутера использовать например малинку (Raspberry pi) или же у вас ПК с Ubuntu Server на борту, то эта статья для вас. И так поехали.
Начальная конфигурация:
- Raspberry pi 3 / Ubuntu Server 18.04
- Настроенный DNS сервер.
- Настроенный статический IP на интерфейсе смотрящий в локальную сеть.
Установка DHCP сервера
Для установки нашего dhcp сервера воспользуемся пакетом isc-dhcp-server входящий в официальный репозиторий. Подключаемся к нашему серверу по ssh или же просто на сервере набираем следующее:
sudo apt update && sudo apt dist-upgrade -y && sudo apt install isc-dhcp-serverНа этом установка закончена, приступаем к настройке.
Настройка DHCP сервера
После установке пакета isc-dhcp-server его необходимо сконфигурировать под наши нужды.
Открываем конфигурационный файл isc-dhcp-servera:
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У меня вывод следующий, у вас может быть другой, но суть от этого не меняется:
wlan0: flags=4163  mtu 1500          inet 10.5.5.1  netmask 255.255.255.0  broadcast 10.5.5.255          inet6 fe80::1278:d2ff:fe76:39b3 prefixlen 64  scope id 0x20          ether 10:78:d2:76:39:b3  txqueuelen 1000  (Ethernet)          RX packets 8251090  bytes 771204980 (771.2 MB)          RX errors 0  dropped 0  overruns 0  frame 0          TX packets 13683459  bytes 17583238822 (17.5 GB)          TX errors 0  dropped 0 overruns 0  carrier 0  collis ions 0  enp3s8: flags=4163  mtu 1500          inet6 fe80::16d6:4dff:fe56:b85a  prefixlen 64  scope id 0x20          ether 14:d6:4d:56:b8:5a  txqueuelen 1000  (Ethernet)          RX packets 11640080  bytes 14487627873 (14.4 GB)          RX errors 0  dropped 0  overruns 0  frame 0          TX packets 7080571  bytes 1003297288 (1.0 GB)          TX errors 0  dropped 0 overruns 0  carrier 0  collis ions 0 lo: flags=73  mtu 65536          inet 127.0.0.1  netmask 255.0.0.0          inet6 ::1  prefixlen 128  scopeid 0x10          loop  txqueuelen 1000  (Local Loopback)          RX packets 4994259  bytes 1443661762 (1.4 GB)          RX errors 0  dropped 0  overruns 0  frame 0          TX packets 4994259  bytes 1443661762 (1.4 GB)          TX errors 0  dropped 0 overruns 0  carrier 0  colli ions 0У меня интерфейс wlan0 смотрит в локальную сеть.
Давайте настроим сервер на прослушивания определенного интерфейса. Открываем следующий файл для редактирования.
sudo nano /etc/default/isc-dhcp-serverВ конце прописываем следующее:
INTERFACESv4="wlan0"wlan0 — имя нашего интерфейса
После данной манипуляции наш DHCP сервер будет принимать и отправлять запросы только от интерфейса wlan0.
Перезагружаем сервис:
sudo service isc-dhcp-server restartВсе на этом настройка закончена. Теперь при подключении к сети все девайсы получать настройки в автоматическом режиме.
Для раздачи интернета в локальную сеть смотрим данную статью.
[endtxt]