Skip to main content

Установка DNS сервера Bind на UbuntuServer 24.04 в Proxmox

Развёртывание DNS-сервера BIND9 для OT-сети Самара

Статус документа: рабочая инструкция, формируется по мере выполнения проекта.

Цель: развернуть выделенный авторитетный и рекурсивный DNS-сервер BIND9 для производственных OT-сетей с поддержкой прямого и обратного разрешения имён, а также динамической регистрации DNS-записей.


1. Принятая архитектура

DNS-сервер разворачивается на отдельной виртуальной машине в Proxmox VE.

Параметр Значение
Имя виртуальной машины SMR-SRV-OT-DNS
Hostname Ubuntu smr-srv-ot-dns
Операционная система Ubuntu Server 24.04 LTS
DNS-сервер BIND9, нативная установка из репозитория Ubuntu
Контейнеризация Не используется
Назначение ВМ Только DNS, диагностика и системное администрирование

1.1. Почему BIND9 устанавливается без Docker

Виртуальная машина уже обеспечивает отдельную границу изоляции. Нативная установка BIND9 упрощает:

  • привязку DNS-службы к нескольким IP-адресам;
  • работу динамически изменяемых зон;
  • управление службой через systemd;
  • диагностику через journalctl, ss, dig и rndc;
  • обновление безопасности через штатный механизм apt;
  • резервное копирование конфигурации и файлов зон.

2. План DNS-зон

2.1. Прямая зона

Рекомендуемое имя прямой зоны:

ot-samara.baltika.ru

Символ подчёркивания в имени обычной DNS-зоны не используется. Вместо ot_samara.baltika.ru применяется вариант с дефисом.

Примеры будущих имён:

plc-brew-001.ot-samara.baltika.ru
hmi-brew-001.ot-samara.baltika.ru
plc-fill-001.ot-samara.baltika.ru
hmi-util-001.ot-samara.baltika.ru

2.2. Обратные зоны

IP-сеть Назначение Обратная DNS-зона
10.255.0.0/16 Legacy OT 255.10.in-addr.arpa
172.16.66.0/24 Пивопроизводство, первая половина /23 66.16.172.in-addr.arpa
172.16.67.0/24 Пивопроизводство, вторая половина /23 67.16.172.in-addr.arpa
172.16.68.0/24 Розлив, первая половина /23 68.16.172.in-addr.arpa
172.16.69.0/24 Розлив, вторая половина /23 69.16.172.in-addr.arpa
172.16.70.0/24 Утилиты, первая половина /23 70.16.172.in-addr.arpa
172.16.71.0/24 Утилиты, вторая половина /23 71.16.172.in-addr.arpa

В домене in-addr.arpa октеты сетевого префикса записываются в обратном порядке. Поэтому для сети 10.255.0.0/16 используется зона 255.10.in-addr.arpa.


3. Сетевая схема

3.1. Текущее состояние OT-сети

Сеть VLAN Состояние
10.255.0.0/16 VLAN 1 Действующая legacy-сеть
172.16.66.0/23 VLAN 1 Действующая производственная сеть

Обе IP-подсети в настоящий момент находятся в одном L2-домене.

3.2. Состояние после модернизации

Сеть VLAN Назначение Локальный DNS-адрес
172.16.66.0/23 2030 Пивопроизводство 172.16.66.53
172.16.68.0/23 2002 Розлив 172.16.68.53
172.16.70.0/23 2040 Утилиты 172.16.70.53
10.255.0.0/16 1 Legacy OT на переходный период 10.255.0.53

3.3. Адреса управления

Этап Адрес Шлюз Назначение
Развёртывание 192.168.1.53/24 192.168.1.1 Временное управление, обновления и доступ в Интернет
Production 10.44.100.228/24 10.44.100.1 Постоянное управление сервером

На сервере должен быть только один маршрут по умолчанию. На OT-интерфейсах шлюзы не назначаются.


4. Интерфейсы виртуальной машины

В Proxmox для каждой сети создан отдельный bridge. VLAN-тег обрабатывается на стороне Proxmox, поэтому внутри Ubuntu используются обычные нетегированные Ethernet-интерфейсы.

Ubuntu MAC Proxmox Назначение План адресации
ens18 BC:24:11:AE:75:CD net0 / vmbr0 Временное управление 192.168.1.53/24
ens19 BC:24:11:7A:B5:1E net1 / vmbr2 VLAN 1 10.255.0.53/16 и временно 172.16.66.53/23
ens20 BC:24:11:6B:32:0E net2 / vmbr3 VLAN 2002, розлив 172.16.68.53/23
ens21 BC:24:11:E4:E6:A9 net3 / vmbr4 VLAN 2030, пивопроизводство Пока без IPv4; позднее 172.16.66.53/23
ens22 BC:24:11:32:D6:01 net4 / vmbr5 VLAN 2040, утилиты 172.16.70.53/23
ens23 BC:24:11:D1:4C:AE Production management bridge Будущее постоянное управление 10.44.100.228/24

Адрес 172.16.66.53/23 нельзя одновременно назначать интерфейсу VLAN 1 и интерфейсу VLAN 2030. Во время миграции адрес должен быть удалён с одного интерфейса и затем назначен другому.


5. Установка Ubuntu Server

5.1. Параметры ВМ

Ресурс Значение
CPU 2–4 vCPU
RAM 4 ГБ
Диск 32 ГБ
Дисковый контроллер VirtIO SCSI
Сетевые карты VirtIO
QEMU Guest Agent Включён в настройках ВМ

5.2. Параметры установщика

  • Hostname: smr-srv-ot-dns.
  • Установить OpenSSH Server.
  • Не устанавливать Docker.
  • Не устанавливать дополнительные snaps.
  • Во время установки активировать только management-интерфейс.
  • На остальных интерфейсах отключить DHCP.

6. Базовая подготовка Ubuntu

6.1. Обновление системы

sudo apt update
sudo apt full-upgrade -y

apt update обновляет локальный индекс пакетов. apt full-upgrade устанавливает доступные обновления и при необходимости корректно обрабатывает изменение зависимостей.

6.2. Установка базовых пакетов

sudo apt install -y \
  ca-certificates \
  curl \
  nano \
  openssl \
  iputils-ping \
  tcpdump \
  arping \
  bash-completion \
  lsof \
  qemu-guest-agent \
  systemd-timesyncd \
  ufw
Пакет Назначение
ca-certificates Проверка TLS-сертификатов
curl Проверка HTTP/HTTPS и получение файлов
nano Редактирование конфигурационных файлов
openssl Криптографические операции и диагностика TLS
iputils-ping Проверка IP-доступности
tcpdump Анализ DNS, ARP, ICMP и NTP-трафика
arping Проверка адресных конфликтов и L2-доступности
bash-completion Автодополнение команд
lsof Поиск процессов, использующих файлы и порты
qemu-guest-agent Интеграция Ubuntu с Proxmox
systemd-timesyncd Синхронизация системного времени
ufw Host firewall

7. QEMU Guest Agent

7.1. Проверка

systemctl status qemu-guest-agent --no-pager
ls -l /dev/virtio-ports/

Ожидается:

Active: active (running)

/dev/virtio-ports/org.qemu.guest_agent.0

7.2. Примечание о типе службы

Служба qemu-guest-agent.service является статической. Состояние static в выводе systemctl is-enabled является нормальным. Она запускается при наличии virtio-канала, созданного Proxmox.

7.3. Если возникает ошибка dependency

  1. включить QEMU Guest Agent в настройках виртуальной машины Proxmox;
  2. полностью перезагрузить гостевую ОС;
  3. убедиться, что появилось устройство org.qemu.guest_agent.0.

8. Часовой пояс и NTP

8.1. Настройка часового пояса

sudo timedatectl set-timezone Europe/Samara
sudo timedatectl set-local-rtc 0
sudo timedatectl set-ntp true

Аппаратные часы остаются в UTC, а локальное представление времени используется для часового пояса Самары.

8.2. Временный NTP на этапе развёртывания

Сервер 192.168.1.1 не ответил на NTP-запросы. На этапе развёртывания используется публичный пул Ubuntu:

sudo install -d -m 0755 /etc/systemd/timesyncd.conf.d

sudo tee /etc/systemd/timesyncd.conf.d/10-internal-ntp.conf >/dev/null <<'EOF'
[Time]
NTP=ntp.ubuntu.com
FallbackNTP=
EOF

sudo systemctl restart systemd-timesyncd

8.3. Проверка синхронизации

timedatectl status
timedatectl timesync-status
systemctl status systemd-timesyncd --no-pager
journalctl -u systemd-timesyncd --since "5 minutes ago" --no-pager

Ожидается:

System clock synchronized: yes
NTP service: active
Packet count: 1 или больше

8.4. Production NTP

После переноса management-интерфейса в сеть 10.44.100.0/24 будут использоваться:

10.44.14.34
10.44.14.33

Будущая конфигурация:

[Time]
NTP=10.44.14.34 10.44.14.33
FallbackNTP=

Необходимо обеспечить доступ от 10.44.100.228 к обоим NTP-серверам по UDP/123.


9. Текущее фактическое состояние

Проверка Состояние
Ubuntu Server Установлена Ubuntu 24.04.4 LTS
Hostname smr-srv-ot-dns
QEMU Guest Agent Работает
Часовой пояс Europe/Samara
Временный IP 192.168.1.9/24, получен по DHCP
Плановый временный management IP 192.168.1.53/24
Default gateway 192.168.1.1
Текущий DNS Ubuntu 192.168.1.1
BIND9 Ещё не установлен
UFW Установлен, правила ещё не применены

10. Следующий этап

  1. создать постоянную конфигурацию Netplan;
  2. заменить DHCP-адрес 192.168.1.9 на статический 192.168.1.53/24;
  3. настроить OT-интерфейсы без шлюзов;
  4. проверить L2-доступность всех VLAN;
  5. запретить IP forwarding;
  6. настроить UFW;
  7. установить BIND9 и создать прямую и обратные зоны.

Важно: конфигурация Netplan должна применяться через netplan try, чтобы при ошибке не потерять удалённый доступ к серверу.