Назад | Перейти на главную страницу

Как настроить BIND для пересылки DNS-запроса на определенный IP-адрес по IP-адресу сайта, запрашивающего

Итак, я пытаюсь настроить BIND для изменения IP-адреса ответа на основе настроенного IP-адреса запрошенного домена. Таким образом, запрос попадает в привязку для domain.local, а его IP-адрес - 10.0.0.10. Что я пытаюсь сделать, так это если bind видит любой домен с IP-адресом 10.0.0.10, он ответит с IP-адресом, скажем, 10.0.0.20, без необходимости создавать запись в привязке для domain.local.

Это становится очень запутанным, если у вас есть много разных ответов / сетей, которые вам нужно обработать, но предоставление нескольких ответов на основе источников может быть выполнено с помощью представлений. Я использовал это раньше, чтобы дать LAN-клиентам локальный адрес в ответе, а всем остальным - публичный.

acl "someclients" {
    1.2.3.4/24;
    5.6.7.8/24;
};

view "view1" {
    // directly specifying address(es) or ranges
    match-clients { 10.0.0.0/8; }; 

    zone "domain.com" {
        type master;
        file "view1/domain.com.zone";
    };
};

view "view2" {
    // example using a predefined group of addresses/ranges
    match-clients { someclients; }; 

    zone "domain.com" {
        type master;
        file "view2/domain.com.zone";
    };
};

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

    zone "domain.com" {
        type master;
        file "view3/domain.com.zone";
    };
};

Также есть localnets acl по умолчанию, который соответствует любым сетям, локальным для сервера привязки.

Обратите внимание, что при использовании представлений все зоны должны находиться внутри представления. Если у вас есть несколько определений зон, которые должны присутствовать во всех представлениях, мне будет проще переместить их все в отдельный файл, а затем добавить include "myzones.conf"; внутри каждого вида.