Files
Personal/linux/bind9.md
2026-05-05 23:26:21 +00:00

4.5 KiB
Raw Blame History

Настройка 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:

  1. Установите пакет:
apt install iptables-persistent

(Во время установки выберите Yes, чтобы сохранить текущие правила v4).

  1. Если вы изменили правила позже, обновите сохраненный конфиг вручную:
iptables-save > /etc/iptables/rules.v4