Перенос зон между мастером и слугой с представлениями не удался

Вопрос или проблема

У меня есть 2 серверы имен: мастер и слейв. Есть 2 домена: sgnetwork.net и sg-net.eu

Я использую 2 представления: “public” и “trusted”. Public должен быть доступен для всех для публичных запросов. Trusted предназначен только для одного хоста с рекурсией. Я хочу, чтобы мастер-сервер отправлял обе зоны, из public и trusted, своим аналогам на слейв.

Мастер (51.20.16.211):

view "public" {
    match-clients {"any"; };

    zone "sg-net.eu" IN {
        type master;
        file "/var/named/masters/sg-net.eu";
        allow-transfer {  159.89.238.135; };
        notify yes;
    };
};


view "trusted" {
        match-clients { 83.142.140.100; };
        recursion yes;
        allow-recursion { 83.142.140.100; };

        zone "sgnetwork.net" {
                type master;
                file "/var/named/masters/sgnetwork.net";
                allow-transfer { 159.89.238.135; };
                notify yes;
        };
};

Слейв (159.89.238.135):

view "public" {
        match-clients { any; };

        zone "sg-net.eu" {
                type slave;
                file "/var/cache/bind/slaves/sg-net.eu";
                masters { 51.20.16.211; };
        };

        include "/etc/bind/named.conf.default-zones";
};

view "trusted" {
      match-clients { 83.142.140.100;  51.20.16.211; };
      recursion yes;
      allow-recursion { 83.142.140.100; };

        zone "sgnetwork.net" {
                type slave;
                file "/var/cache/bind/slaves/sgnetwork.net";
                masters { 51.20.16.211; };
        };
 };

Зона sg-net.eu передается правильно, но sgnetwork.net – нет. Я получаю такое сообщение на слейве:

Sep 24 15:33:54 vps named[910157]: client @0x7f4454230278 51.20.16.211#49368: view public: received notify for zone 'sgnetwork.net': not authoritative

Вопрос: Почему это считается представлением public? Почему это не авторитетно?

Ответ или решение

Проблема, с которой вы сталкиваетесь, связана с тем, как настроены ваши представления (views) в DNS-сервере (BIND). Сообщение об ошибке, которое вы видите на слейв-сервере, указывает на то, что мастер-сервер не считает себя авторитетным для зоны sgnetwork.net при передаче обновлений в представление public.

Ваша конфигурация на мастере настроена так, что зона sgnetwork.net находится в представлении trusted. Это означает, что при уведомлениях (notify) и передаче зон (transfer) все необходимые сообщения должны отправляться в контексте этого представления. Однако, при попытке уведомления для зоны sgnetwork.net, мастер проверяет, какой клиент отправил запрос. Поскольку запрос приходит от слейв-сервера, который обрабатывает представление public, именно это представление и используется для проверки авторитетности.

Решение проблемы

  1. Изменение настройки передачи: Убедитесь, что настройки передачи зон в представлении public и передача зон в локальную область (зона trusted) совпадают:

    На мастере, в представлении trusted, добавьте allow-transfer для обоих представлений, чтобы разрешить передачу. Ваши настройки могут выглядеть следующим образом:

    view "public" {
       match-clients { "any"; };
    
       zone "sg-net.eu" IN {
           type master;
           file "/var/named/masters/sg-net.eu";
           allow-transfer { 159.89.238.135; };
           notify yes;
       };
    };
    
    view "trusted" {
       match-clients { 83.142.140.100; };
       recursion yes;
       allow-recursion { 83.142.140.100; };
    
       zone "sgnetwork.net" {
           type master;
           file "/var/named/masters/sgnetwork.net";
           allow-transfer { 159.89.238.135; };
           notify yes;
       };
    };
  2. Убедитесь, что слейв-сервер правильно настроен для обработки представлений: На слейв-сервере нужно убедиться, что он может обращаться к мастеру для передачи зоны sgnetwork.net в контексте представления trusted. Ваша настройка, похоже, уже правильная:

    view "trusted" {
       match-clients { 83.142.140.100; 51.20.16.211; };
       recursion yes;
       allow-recursion { 83.142.140.100; };
    
       zone "sgnetwork.net" {
           type slave;
           file "/var/cache/bind/slaves/sgnetwork.net";
           masters { 51.20.16.211; };
       };
    };
  3. Перезапустите оба сервера: После внесения изменений обязательно перезапустите BIND на обоих серверах, чтобы настройки вступили в силу.

Дополнительные рекомендации

  • Проверьте журналы ошибок на мастере и слейве для дополнительной информации о проблемах с передачей.
  • Убедитесь, что у вас нет проблем с сетью между мастером и слейвом, которые могут препятствовать передаче данных.
  • Если у вас есть межсетевые экраны или другие системы безопасности, убедитесь, что они не блокируют порты, используемые для передачи зон (обычно это UDP/TCP 53).

Следуя этим рекомендациям, вы должны решить проблему с передачей зон между вашими DNS-серверами.

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

Капча загружается...