Skip to content

Задание №9: Настройка DHCP-сервера для клиентов (HQ-CLI) ​

В данном задании настраивается автоматическая выдача сетевых настроек для клиентских рабочих станций главного офиса (HQ-CLI в сегменте VLAN 200) с помощью легковесного сервиса dnsmasq, развёрнутого на маршрутизаторе HQ-RTR.

Место выполнения

Все основные настройки выполняются на маршрутизаторе HQ-RTR (hq-rtr.au-team.irpo).


1. Теоретическая справка: особенности dnsmasq в ALT Linux ​

1. Почему port=0? ​

Пакет dnsmasq умеет работать одновременно и как DNS-кэш, и как DHCP-сервер. В нашем задании за корпоративный DNS будет отвечать полноценный сервер BIND на машине HQ-SRV. Директива port=0 полностью отключает модуль DNS, оставляя работать исключительно чистый DHCP-сервер.

2. Зачем нужен AUTO_LOCAL_RESOLVER=no? ​

В дистрибутивах ALT Linux служба dnsmasq по умолчанию пытается перехватить управление файлом /etc/resolv.conf, прописывая туда 127.0.0.1. Директива AUTO_LOCAL_RESOLVER=no в файле /etc/sysconfig/dnsmasq запрещает службе вмешиваться в системные настройки DNS.

3. Стандартные номера опций DHCP (RFC 2132): ​

  • Опция 3 (dhcp-option=3,...) — адрес маршрутизатора по умолчанию (Router / Default Gateway).
  • Опция 6 (dhcp-option=6,...) — адрес сервера доменных имён (Domain Name Server).

Шаг 1. Установка dnsmasq и переключение DNS на HQ-RTR ​

Маршрутизатор HQ-RTR переводится с внешнего DNS на внутренний корпоративный сервер главного офиса HQ-SRV (192.168.100.2):

bash
# 1. Устанавливаем пакет dnsmasq:
apt-get install dnsmasq -y

# 2. Удаляем старый внешний резолвер с внешнего порта enp7s1:
rm -f /etc/net/ifaces/enp7s1/resolv.conf

# 3. Назначаем корпоративный DNS (HQ-SRV) и суффикс au-team.irpo на внутренний интерфейс vlan100:
echo $'search au-team.irpo\nnameserver 192.168.100.2' > /etc/net/ifaces/vlan100/resolv.conf

Шаг 2. Настройка конфигурации DHCP-сервера ​

Отключаем авто-резолвер в системном конфигурационном файле:

bash
# 1. Отключаем подмену локального DNS:
sed -i 's/AUTO_LOCAL_RESOLVER=yes/AUTO_LOCAL_RESOLVER=no/' /etc/sysconfig/dnsmasq ; grep AUTO_LOCAL_RESOLVER /etc/sysconfig/dnsmasq

Открываем конфигурационный файл dnsmasq:

bash
# 2. Редактируем конфигурацию:
nano /etc/dnsmasq.conf

Вставляем следующие параметры:

text
port=0
interface=vlan200
listen-address=192.168.200.1
dhcp-authoritative
dhcp-range=interface:vlan200,192.168.200.2,192.168.200.2,255.255.255.240,6h
dhcp-option=3,192.168.200.1
dhcp-option=6,192.168.100.2
leasefile-ro

Быстрая запись через cat

bash
cat << 'EOF' > /etc/dnsmasq.conf
port=0
interface=vlan200
listen-address=192.168.200.1
dhcp-authoritative
dhcp-range=interface:vlan200,192.168.200.2,192.168.200.2,255.255.255.240,6h
dhcp-option=3,192.168.200.1
dhcp-option=6,192.168.100.2
leasefile-ro
EOF

Разбор параметров конфигурации: ​

  • port=0 — выключает встроенный DNS-сервер.
  • interface=vlan200 — принимать DHCP-запросы только из клиентской сети VLAN 200.
  • listen-address=192.168.200.1 — IP-адрес шлюза на интерфейсе vlan200.
  • dhcp-authoritative — указывает, что данный сервер является единственным и авторитетным в сегменте (ускоряет аренду).
  • dhcp-range=... — пул выдачи адресов (исключая адрес самого роутера .1), маска подсети и время аренды (6h = 6 часов).
  • dhcp-option=3,192.168.200.1 — выдавать клиентам адрес шлюза HQ-RTR.
  • dhcp-option=6,192.168.100.2 — выдавать клиентам корпоративный DNS-сервер HQ-SRV.
  • leasefile-ro — предотвращает ошибки записи базы аренды.

Шаг 3. Запуск службы и обновление сети ​

bash
# 1. Включаем автозапуск и стартуем dnsmasq с одновременной проверкой порта 67:
systemctl enable --now dnsmasq ; ss -lun | grep 67

# 2. Перезапускаем сетевую подсистему для применения нового DNS:
systemctl restart network

# 3. Проверяем обновленный резолвер:
cat /etc/resolv.conf

Шаг 4. Проверка работоспособности (Верификация) ​

1. Проверка прослушивания порта DHCP на HQ-RTR: ​

bash
ss -lun | grep 67

Что должны увидеть: порт 67/udp находится в состоянии прослушивания (UNCONN), привязанный к адресу 192.168.200.1:67.


2. Проверка системного DNS на HQ-RTR: ​

bash
cat /etc/resolv.conf

Ожидаемый вывод:

text
search au-team.irpo
nameserver 192.168.100.2

3. Проверка получения адреса клиентом HQ-CLI: ​

Перейдите в консоль клиентской машины HQ-CLI (в Proxmox сетевой адаптер должен иметь VLAN Tag: 200):

bash
# Перезапускаем сеть на клиенте для запроса аренды по DHCP:
systemctl restart network

# Проверяем полученный IP-адрес:
ip -c --br a

Клиент должен автоматически получить IP-адрес из диапазона 192.168.200.x и маршрут по умолчанию через 192.168.200.1.

Работает на VitePress • Быстрый и удобный движок для документации