4.5 KiB
Настройка DHCP-сервера и NAT-шлюза на базе isc-dhcp-server
Этот гайд поможет настроить раздачу IP-адресов в локальной сети и организовать доступ в интернет для клиентов через шлюз (Debian/Ubuntu).
1. Установка необходимых пакетов
Для работы нам понадобится сам DHCP-сервер и инструменты управления трафиком:
apt update
apt install isc-dhcp-server iptables
2. Настройка сетевых интерфейсов
Прежде всего, назначим статический IP-адрес интерфейсу, который смотрит в локальную сеть.
Отредактируйте файл /etc/network/interfaces:
nano /etc/network/interfaces
Добавьте конфигурацию для вашего локального интерфейса (например, enp4s0):
auto enp4s0
iface enp4s0 inet static
address 172.16.100.1
netmask 255.255.255.0
Примените настройки, перезагрузив сеть или подняв интерфейс вручную: ifup enp4s0.
3. Конфигурация DHCP-сервера
Сделаем резервную копию оригинального конфига и создадим чистый файл:
mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.ORIG
nano /etc/dhcp/dhcpd.conf
Вставьте следующую конфигурацию:
authoritative;
default-lease-time 600;
max-lease-time 10000;
log-facility local7;
# Параметры сети для клиентов
subnet 172.16.100.0 netmask 255.255.255.0 {
range 172.16.100.2 172.16.100.200;
option subnet-mask 255.255.255.0;
option routers 172.16.100.1; # IP этого сервера
option domain-name-servers 8.8.8.8, 8.8.4.4; # Внешние DNS (Google)
# Пример резервации IP по MAC-адресу
host special-device {
hardware ethernet 00:11:22:33:44:55;
fixed-address 172.16.100.250;
}
}
4. Выбор интерфейса для прослушивания
Укажите DHCP-серверу, на каком интерфейсе ожидать запросы.
Отредактируйте /etc/default/isc-dhcp-server:
nano /etc/default/isc-dhcp-server
Найдите строку и впишите ваш локальный интерфейс:
INTERFACESv4="enp4s0"
5. Настройка маршрутизации (NAT)
Чтобы клиенты могли выходить в интернет через этот сервер, нужно включить пересылку пакетов в ядре и настроить NAT в iptables.
Включаем IP Forwarding:
sysctl -w net.ipv4.ip_forward=1
# Чтобы настройка сохранилась после перезагрузки:
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
Настраиваем NAT (Маскарад):
Укажите ваш внешний интерфейс (который смотрит в интернет, например enp3s0):
iptables -t nat -A POSTROUTING -o enp3s0 -j MASQUERADE
6. Запуск и проверка
Перезапустите DHCP-сервер для применения всех настроек:
systemctl restart isc-dhcp-server
systemctl status isc-dhcp-server
Теперь клиенты в локальной сети будут получать IP-адреса и выходить в интернет через ваш шлюз.
Дополнение: Сохранение правил NAT (iptables-persistent)
По умолчанию правила iptables сбрасываются после перезагрузки. Чтобы NAT работал всегда, используйте утилиту iptables-persistent:
- Установите пакет:
apt install iptables-persistent
(Во время установки выберите Yes, чтобы сохранить текущие правила v4).
- Если вы изменили правила позже, обновите сохраненный конфиг вручную:
iptables-save > /etc/iptables/rules.v4