Интеграция FreeIPA DNS и BIND DNS

Оцените статью

Сегодня расссмотрим настройку интеграции FreeIPA DNS сервера в качестве мастер-контроллера DNS и двух внешних Bind-серверов для обслуживания собственных доменных зон в сети интернет.

Регистрация собственных NS-серверов

Прежде всего нам понадобится зарегистрировать собственные NS-сервера на одном из доменов, для чего необходимо обратиться к хостинг-провайдеру в моем случае в техническую поддержку, а у рег.ру это можно сделать из панели управления.

Добрый день.

Мы с вами такое уже настраивали, давно правда. У меня есть два сервера настроенные как NS сервера для домена shiskitech.ru (приобретен у вас). А настроил описание зоны и настроил трансфер между серерами.

Конфигурация зоны:

$TTL 86400
@ IN SOA ns1.shiskitech.ru. admin.shiskitech.ru. (
2026190203 ; Serial (дата + номер ревизии)
3600 ; Refresh (1 час)
1800 ; Retry (30 минут)
1209600 ; Expire (14 дней)
86400 ; Minimum TTL (1 день)
)

; NS-записи (серверы имён домена)
@ IN NS ns1.shiskitech.ru.
@ IN NS ns2.shiskitech.ru.

; A-записи для NS-серверов
ns1.shiskitech.ru. IN A 185.135.81.157
ns2.shiskitech.ru. IN A 45.155.204.127

; A-запись для самого домена (опционально)
shiskitech.ru. IN A 185.135.81.157

; Дополнительные записи (по необходимости)
www.shiskitech.ru. IN A 185.135.81.157
test.shiskitech.ru. IN A 185.135.81.157

Мне надо, чтобы вы настроили на своей стороне разрешение зоны на мои DNS-сервера. В консоли управления зоной у вас такого функционала нет и в прошлый раз вы мне сами настраивали.

Заранее спасибо.

Настройка основного домена на базе DNS-сервера Bind

Файл конфигурации /etc/bind/named.conf.options.

options {
        directory "/var/cache/bind";

        //========================================================================
        // If BIND logs error messages about the root key being expired,
        // you will need to update your keys.  See https://www.isc.org/bind-keys
        //========================================================================

        dnssec-validation no;
        allow-query { localhost; any; };
        listen-on-v6 { any; };
};

logging {
    // Канал для общих запросов
    channel query_log {
        file "/var/log/bind/queries.log" versions 3 size 5m;
        severity info;
        print-time yes;
        print-category yes;
        print-severity yes;
    };

    // Канал для передачи зон (AXFR/IXFR)
    channel transfer_log {
        file "/var/log/bind/transfers.log" versions 3 size 5m;
        severity info;
        print-time yes;
        print-category yes;
        print-severity yes;
    };

    // Канал для ошибок и предупреждений
    channel error_log {
        file "/var/log/bind/errors.log" versions 5 size 10m;
        severity error;
        print-time yes;
    };

    // Назначение категорий каналам
    category queries { query_log; };
    #category transfers { transfer_log; };
    category xfer-in { transfer_log; };
    category xfer-out { transfer_log; };
    category config { error_log; };
    category security { error_log; };
    category general { error_log; };
};

Файл конфигурации /etc/bind/named.conf.local.

zone "shiskitech.ru" {
    type master;
    file "/var/lib/bind/db.shiskitech.ru";
    allow-transfer { 45.155.204.127; 127.0.0.1; };
    also-notify { 45.155.204.127; };
};

zone "rain.shiskitech.ru" {
    type slave;
    file "/var/lib/bind/db.rain.shiskitech.ru.slave";
    masters { 213.171.29.99; 10.101.5.14; 127.0.0.1;};
};

zone "rpz" {
    type master;
    allow-transfer { 45.155.204.127; 127.0.0.1;};
    also-notify { 45.155.204.127; };
    file "/var/lib/bind/db.rpz.local";
};

zone "anton-c.ru" {
    type slave;
    file "/var/lib/bind/db.anton-c.ru.slave";
    masters { 213.171.29.99; 10.101.5.14; 127.0.0.1;};
};

zone "bds.su" {
    type slave;
    file "/var/lib/bind/db.bds.su.slave";
    masters { 213.171.29.99; 10.101.5.14; 127.0.0.1;};
};

zone "interlan.xyz" {
    type slave;
    file "/var/lib/bind/db.interlan.xyz.slave";
    masters { 213.171.29.99; 10.101.5.14; };
};

Описание конфигурации основного домена /var/lib/bind/db.shiskitech.ru.

$TTL 86400
@   IN  SOA ns1.shiskitech.ru. admin.shiskitech.ru. (
        2026190203  ; Serial (дата + номер ревизии)
        3600        ; Refresh (1 час)
        1800        ; Retry (30 минут)
        1209600     ; Expire (14 дней)
        86400       ; Minimum TTL (1 день)
    )

; NS-записи (серверы имён домена)
@       IN  NS  ns1.shiskitech.ru.
@       IN  NS  ns2.shiskitech.ru.

; A-записи для NS-серверов
ns1.shiskitech.ru.   IN  A   185.135.81.157
ns2.shiskitech.ru.   IN  A   45.155.204.127

; A-запись для самого домена (опционально)
shiskitech.ru.       IN  A   185.135.81.157

; Дополнительные записи (по необходимости)
www.shiskitech.ru.   IN  A   185.135.81.157
test.shiskitech.ru.   IN  A   185.135.81.157

Перезапускаем DNS-сервер Bind.

# systemctl restart bind9

Проверяем передачу зоны основного домена.

# dig @127.0.0.1 shiskitech.ru AXFR

; <<>> DiG 9.18.39-0ubuntu0.22.04.3-Ubuntu <<>> @127.0.0.1 shiskitech.ru AXFR
; (1 server found)
;; global options: +cmd
shiskitech.ru.          86400   IN      SOA     ns1.shiskitech.ru. admin.shiskitech.ru. 2026190203 3600 1800 1209600 86400
shiskitech.ru.          86400   IN      NS      ns1.shiskitech.ru.
shiskitech.ru.          86400   IN      NS      ns2.shiskitech.ru.
shiskitech.ru.          86400   IN      A       185.135.81.157
ns1.shiskitech.ru.      86400   IN      A       185.135.81.157
ns2.shiskitech.ru.      86400   IN      A       45.155.204.127
test.shiskitech.ru.     86400   IN      A       185.135.81.157
www.shiskitech.ru.      86400   IN      A       185.135.81.157
shiskitech.ru.          86400   IN      SOA     ns1.shiskitech.ru. admin.shiskitech.ru. 2026190203 3600 1800 1209600 86400
;; Query time: 4 msec
;; SERVER: 127.0.0.1#53(127.0.0.1) (TCP)
;; WHEN: Wed May 13 11:35:07 +07 2026
;; XFR size: 9 records (messages 1, bytes 273)

Настраиваем резервный контроллер домена

Резервный контроллер домена создам аналогичным образом на базе DNS-сервера Bind.

Файл конфигурации /etc/bind/named.conf.options.

options {
        directory "/var/cache/bind";
        //========================================================================
        // If BIND logs error messages about the root key being expired,
        // you will need to update your keys.  See https://www.isc.org/bind-keys
        //========================================================================
        dnssec-validation no;
        allow-query { localhost; any; };
        listen-on-v6 { any; };

};

logging {
    // Канал для общих запросов
    channel query_log {
        file "/var/log/bind/queries.log" versions 3 size 5m;
        severity info;
        print-time yes;
        print-category yes;
        print-severity yes;
    };

    // Канал для передачи зон (AXFR/IXFR)
    channel transfer_log {
        file "/var/log/bind/transfers.log" versions 3 size 5m;
        severity info;
        print-time yes;
        print-category yes;
        print-severity yes;
    };

    // Канал для ошибок и предупреждений
    channel error_log {
        file "/var/log/bind/errors.log" versions 5 size 10m;
        severity error;
        print-time yes;
    };

    // Назначение категорий каналам
    category queries { query_log; };
    #category transfers { transfer_log; };
    category xfer-in { transfer_log; };
    category xfer-out { transfer_log; };
    category config { error_log; };
    category security { error_log; };
    category general { error_log; };
};

Файл конфигурации /etc/bind/named.conf.local.

zone "shiskitech.ru" {
    type slave;
    file "/var/lib/bind/db.shiskitech.ru.slave";
    masters { 213.171.29.99; 10.101.5.14; };
};

zone "rain.shiskitech.ru" {
    type slave;
    file "/var/lib/bind/db.rain.shiskitech.ru.slave";
    masters { 213.171.29.99; 10.101.5.14; };
};

zone "anton-c.ru" {
    type slave;
    file "/var/lib/bind/db.anton-c.ru.slave";
    masters { 213.171.29.99; 10.101.5.14; };
};

zone "bds.su" {
    type slave;
    file "/var/lib/bind/db.bds.su.slave";
    masters { 213.171.29.99; 10.101.5.14; };
};

zone "interlan.xyz" {
    type slave;
    file "/var/lib/bind/db.interlan.xyz.slave";
    masters { 213.171.29.99; 10.101.5.14; };
};


zone "rpz" {
    type slave;
    file "/var/lib/bind/db.rpz.slave";
    masters { 185.135.81.157; };
};

Настройка DNS-сервера на базе FreeIPA

Переходим в web-интерфейсе управления в раздел Сетевые службы -> DNS -> зоны DNS и создаем дополнительный домен.

Настройка домена в WEB-интерфейсе Free IPA

Можно не использовать web-интерфейс а проделать эти операции из консоли сервера.

Создаем домен.

# kinit admin
# ipa dnszone-add anton-c.ru --force --skip-overlap-check --admin-email=chernousov@anton-c.ru
  Zone name: anton-c.ru.
  Active zone: True
  Authoritative nameserver: srv-prod-rain-05.rain.shiskitech.ru.
  Administrator e-mail address: chernousov.anton-c.ru
  SOA serial: 1778651044
  SOA refresh: 3600
  SOA retry: 900
  SOA expire: 1209600
  SOA minimum: 3600
  BIND update policy: grant RAIN.SHISKITECH.RU krb5-self * A; grant RAIN.SHISKITECH.RU krb5-self * AAAA; grant RAIN.SHISKITECH.RU krb5-self * SSHFP;
  Dynamic update: False
  Allow query: any;
  Allow transfer: none;

Инструментов импорта существующих данных увы не предусмотрено, поэтому придется создавать записи вручную или написать скрипт конвертации. В моем случае было проще забить данные руками.

Разрешаем трансфер зоны.

# ipa dnszone-mod interlan.xyz --allow-transfer="10.101.5.9;10.101.5.7;45.155.204.127;185.135.81.157;"
  Zone name: interlan.xyz.
  Active zone: True
  Authoritative nameserver: srv-prod-rain-05.rain.shiskitech.ru.
  Administrator e-mail address: hostmaster
  SOA serial: 1778652125
  SOA refresh: 3600
  SOA retry: 900
  SOA expire: 1209600
  SOA minimum: 3600
  BIND update policy: grant RAIN.SHISKITECH.RU krb5-self * A; grant RAIN.SHISKITECH.RU krb5-self * AAAA; grant RAIN.SHISKITECH.RU krb5-self * SSHFP;
  Dynamic update: False
  Allow query: any;
  Allow transfer: 10.101.5.9;10.101.5.7;45.155.204.127;185.135.81.157;

Инициализируем трансфер зоны на резервных DNS-серверах.

# rndc reload interlan.xyz

Проверяем логи передачи зоны.

# cat /var/log/bind/transfers.log | tail -n 100

Проверяем, что передача зоны прошла успешно.

13-May-2026 09:04:10.851 xfer-in: info: transfer of 'interlan.xyz/IN' from 213.171.29.99#53: connected using 213.171.29.99#53
13-May-2026 09:04:10.859 xfer-in: info: zone interlan.xyz/IN: transferred serial 1778652125
13-May-2026 09:04:10.859 xfer-in: info: transfer of 'interlan.xyz/IN' from 213.171.29.99#53: Transfer status: success
13-May-2026 09:04:10.859 xfer-in: info: transfer of 'interlan.xyz/IN' from 213.171.29.99#53: Transfer completed: 1 messages, 12 records, 693 bytes, 0.004 secs (173250 bytes/sec) (serial 1778652125)

Запрашиваем данные.

# dig @127.0.0.1 interlan.xyz AXFR

; <<>> DiG 9.18.39-0ubuntu0.22.04.3-Ubuntu <<>> @127.0.0.1 interlan.xyz AXFR
; (1 server found)
;; global options: +cmd
interlan.xyz.           86400   IN      SOA     srv-prod-rain-05.rain.shiskitech.ru. hostmaster.interlan.xyz. 1778652125 3600 900 1209600 3600
interlan.xyz.           86400   IN      NS      ns1.shiskitech.ru.
interlan.xyz.           86400   IN      NS      ns2.shiskitech.ru.
interlan.xyz.           86400   IN      NS      srv-prod-rain-05.rain.shiskitech.ru.
interlan.xyz.           86400   IN      MX      10 mx.yandex.net.
interlan.xyz.           86400   IN      A       45.155.204.127
094bdd5a762914a2b517921943f9e1fa.interlan.xyz. 86400 IN CNAME verify.bing.com.
mail._domainkey.interlan.xyz. 86400 IN  TXT     "v=DKIM1;" "k=rsa;" "t=s;" "p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDgvZbsH4Aqi9hypaSakTw1S8fy3Wf2+RmUTHQnck0oQswbbopuG7yXHTZYzvN04w7/YOX5Su7w+HOBbdAvFUjWbNkoSuihngGNXDIp0A/HVSbBzxOMw/rBMykT+4IWQ6JNBl0/3pleSkmToa8uLNoZGQT0dOagu3bXlkOTSe09EQIDAQAB," "v=spf1" "redirect=_spf.yandex.net"
cloud.interlan.xyz.     86400   IN      A       213.171.29.99
git.interlan.xyz.       86400   IN      A       45.155.204.127
www.interlan.xyz.       86400   IN      A       45.155.204.127
interlan.xyz.           86400   IN      SOA     srv-prod-rain-05.rain.shiskitech.ru. hostmaster.interlan.xyz. 1778652125 3600 900 1209600 3600
;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1) (TCP)
;; WHEN: Wed May 13 09:10:39 MSK 2026
;; XFR size: 12 records (messages 1, bytes 732)

Сверяемся с WEB-интерфейсом.

Все работает.

Все отработало и можем мигрировать оставшиеся домены.

Похожие записи

Настройка кластера Kubernetes в Ubuntu Linux 24.04: три узла (один мастер с возможностью запуска пользовательских подов, PVC в каталоге на хосте, сеть на Calico)

В этой статье мы рассмотрим пошаговую настройку кластера Kubernetes на Ubuntu 24.04 с тремя узлами: один мастер (который также может запускать пользовательские поды) и два рабочих узла. Мы настроим PersistentVolume…

Инструкция по установке и настройке ProxySQL в Ubuntu 24.04

В рамках создания собственного кластера Kubernetes я поднаял кластер Mysql который работает в режиме Master-Slave и Slave-узлы соответственно работают в режиме read-only, а мастер в read-write. Соответственно мне нужен балансировщик…

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Читать еще статьи

Настройка кластера Kubernetes в Ubuntu Linux 24.04: три узла (один мастер с возможностью запуска пользовательских подов, PVC в каталоге на хосте, сеть на Calico)

Настройка кластера Kubernetes в Ubuntu Linux 24.04: три узла (один мастер с возможностью запуска пользовательских подов, PVC в каталоге на хосте, сеть на Calico)

Инструкция по установке и настройке ProxySQL в Ubuntu 24.04

Инструкция по установке и настройке ProxySQL в Ubuntu 24.04

Полное руководство по настройке UFW в Ubuntu: от основ до продвинутых правил

Полное руководство по настройке UFW в Ubuntu: от основ до продвинутых правил

Полное руководство по развертыванию GlusterFS в Ubuntu Linux: от подготовки до тестирования производительности

Полное руководство по развертыванию GlusterFS в Ubuntu Linux: от подготовки до тестирования производительности

Подробная инструкция по настройке кластера из трёх серверов MySQL на Ubuntu 24.04

Подробная инструкция по настройке кластера из трёх серверов MySQL на Ubuntu 24.04

Полное руководство по настройке NFS-клиента в Ubuntu Linux: от установки до автоматического монтирования

Полное руководство по настройке NFS-клиента в Ubuntu Linux: от установки до автоматического монтирования