DHCP-сервер (Dynamic Host Configuration Protocol) в Linux - это сетевая служба, которая автоматически назначает IP-адреса, маски подсети, шлюзы по умолчанию и другие сетевые параметры устройствам в сети. Это упрощает управление сетью, так как нет необходимости настраивать IP-адреса вручную на каждом устройстве.
Основные шаги для настройки DHCP-сервера в Linux (на примере Ubuntu/Debian):
1. Установка DHCP-сервера:
sudo apt update
sudo apt install isc-dhcp-server
или, для CentOS/RHEL:
sudo yum install dhcp
2. Настройка статического IP-адреса для сервера (рекомендуется):
DHCP-серверу рекомендуется иметь статический IP-адрес, чтобы устройства могли всегда найти его. Отредактируйте конфигурационный файл сетевого интерфейса.
- Для Ubuntu/Debian (используя Netplan):
- Определите имя вашего сетевого интерфейса (например, eth0, ens33). Используйте команду ip addr или ifconfig (если установлен) для определения интерфейса, подключенного к вашей сети.
- Отредактируйте файл конфигурации Netplan (обычно находится в /etc/netplan/ и имеет имя вроде 01-network-manager-all.yaml или 50-cloud-init.yaml). Внимание! Синтаксис YAML чувствителен к отступам. Используйте пробелы, а не табуляции.
o network:
o version: 2
o renderer: networkd
o ethernets:
o ens33: # Замените на имя вашего интерфейса
o dhcp4: no
o addresses: [192.168.1.10/24] # Замените на желаемый IP-адрес и маску подсети
o gateway4: 192.168.1.1 # Замените на IP-адрес вашего шлюза по умолчанию
o nameservers:
o addresses: [8.8.8.8, 8.8.4.4] # Замените на желаемые DNS-серверы
- Примените изменения:
o sudo netplan apply
- Для CentOS/RHEL:
- Отредактируйте файл конфигурации сетевого интерфейса (например, /etc/sysconfig/network-scripts/ifcfg-ens33). Замените ens33 на имя вашего интерфейса.
o TYPE=Ethernet
o PROXY_METHOD=none
o BROWSER_ONLY=no
o BOOTPROTO=static
o DEFROUTE=yes
o IPV4_FAILURE_FATAL=no
o IPV6INIT=yes
o IPV6_AUTOCONF=yes
o IPV6_DEFROUTE=yes
o IPV6_FAILURE_FATAL=no
o IPV6_ADDR_GEN_MODE=stable-privacy
o NAME=ens33
o UUID=...
o DEVICE=ens33
o ONBOOT=yes
o IPADDR=192.168.1.10 # Замените на желаемый IP-адрес
o NETMASK=255.255.255.0 # Замените на маску подсети
o GATEWAY=192.168.1.1 # Замените на IP-адрес вашего шлюза по умолчанию
o DNS1=8.8.8.8 # Замените на желаемый DNS-сервер
o DNS2=8.8.4.4 # Замените на желаемый DNS-сервер
- Перезапустите сетевую службу:
o sudo systemctl restart network
3. Настройка DHCP-сервера (ISC DHCP Server):
- Отредактируйте файл конфигурации DHCP-сервера (/etc/dhcp/dhcpd.conf или /etc/dhcpd.conf).
- Пример конфигурации (замените значения на свои):
· option domain-name "example.com"; # Доменное имя (по желанию)
· option domain-name-servers 8.8.8.8, 8.8.4.4; # DNS-серверы
·
· default-lease-time 600; # Время аренды по умолчанию (в секундах)
· max-lease-time 7200; # Максимальное время аренды (в секундах)
·
· authoritative; # Укажите, что это единственный DHCP-сервер в сети (обычно)
·
· subnet 192.168.1.0 netmask 255.255.255.0 { # Диапазон сети
· range 192.168.1.100 192.168.1.200; # Диапазон IP-адресов для выдачи
· option routers 192.168.1.1; # Шлюз по умолчанию
· }
·
· # Фиксированный IP-адрес для конкретного устройства (по MAC-адресу)
· host mydevice {
· hardware ethernet 00:11:22:33:44:55; # Замените на MAC-адрес устройства
· fixed-address 192.168.1.50; # Замените на желаемый IP-адрес
· }
- Разъяснения:
- option domain-name: Определяет доменное имя, которое будет назначаться клиентам.
- option domain-name-servers: Определяет DNS-серверы, которые будут назначаться клиентам.
- default-lease-time: Определяет время аренды IP-адреса по умолчанию (в секундах).
- max-lease-time: Определяет максимальное время аренды IP-адреса (в секундах).
- authoritative: Указывает, что этот DHCP-сервер является основным и единственным в сети.
- subnet: Определяет параметры для определенной подсети.
- range: Определяет диапазон IP-адресов, которые будут выдаваться клиентам.
- option routers: Определяет шлюз по умолчанию, который будет назначаться клиентам.
- host: Определяет фиксированный IP-адрес для конкретного устройства на основе его MAC-адреса.
- hardware ethernet: MAC-адрес сетевого интерфейса устройства.
- fixed-address: IP-адрес, который будет всегда назначаться этому устройству.
4. Укажите интерфейс, на котором DHCP-сервер будет слушать (ISC DHCP Server):
- Отредактируйте файл /etc/default/isc-dhcp-server (или /etc/sysconfig/dhcpd для CentOS/RHEL).
- Найдите строку INTERFACESv4="" (или DHCPDARGS="" для CentOS/RHEL) и замените её на:
· INTERFACESv4="ens33" # Замените на имя вашего интерфейса
или, для CentOS/RHEL:
DHCPDARGS=ens33 # Замените на имя вашего интерфейса
5. Запустите и включите DHCP-сервер:
- Для Ubuntu/Debian:
· sudo systemctl start isc-dhcp-server
· sudo systemctl enable isc-dhcp-server
- Для CentOS/RHEL:
· sudo systemctl start dhcpd
· sudo systemctl enable dhcpd
6. Настройте брандмауэр (firewall):
Разрешите DHCP-трафик (порты 67 и 68) через брандмауэр.
- Для Ubuntu/Debian (используя UFW):
· sudo ufw allow 67/udp
· sudo ufw allow 68/udp
· sudo ufw enable
- Для CentOS/RHEL (используя firewalld):
· sudo firewall-cmd --permanent --add-service=dhcp
· sudo firewall-cmd --reload
7. Проверка работы DHCP-сервера:
- Подключите клиентское устройство к сети.
- Убедитесь, что устройство получает IP-адрес, маску подсети, шлюз по умолчанию и DNS-серверы автоматически.
- Проверьте IP-адрес, назначенный устройству, с помощью команды ip addr (или ifconfig) на устройстве Linux или с помощью графического интерфейса в других операционных системах.
- Проверьте файл /var/log/syslog (или /var/log/messages для CentOS/RHEL) на сервере, чтобы увидеть записи о DHCP-запросах и назначениях IP-адресов.
Важные моменты:
- Имена интерфейсов: Обязательно замените ens33 на имя вашего сетевого интерфейса.
- IP-адреса и диапазоны: Убедитесь, что IP-адреса, диапазоны и шлюзы соответствуют вашей сети.
- Конфликты IP-адресов: Убедитесь, что IP-адреса, которые вы назначаете статически, не находятся в диапазоне, который выдается DHCP-сервером.
- Безопасность: Рассмотрите возможность использования дополнительных мер безопасности для защиты DHCP-сервера, таких как фильтрация MAC-адресов.
- Логирование: Регулярно проверяйте логи DHCP-сервера, чтобы выявлять и устранять проблемы.
Это базовая настройка DHCP-сервера. Существуют дополнительные параметры конфигурации, которые позволяют более гибко управлять назначениями IP-адресов, настраивать опции DHCP и интегрировать DHCP-сервер с другими сетевыми службами. Обратитесь к документации ISC DHCP Server для получения более подробной информации.