В сегодняшней статье рассмотрим пример установки и настройки 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]