Итак, я пытаюсь настроить 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";
внутри каждого вида.