До этого вопроса я искал некоторую помощь в поиске способа вернуть другой ответ на запросы клиентов на основе их IP-адреса. На вопрос был дан ответ здесь: Как я могу выборочно переопределить некоторые записи A на сервере Bind DNS?
Я следил за принятым ответом и теперь столкнулся с проблемами.
Когда я бегу:
nslookup faq.test.com
Я ожидаю этого:
root@dev:/etc/bind# nslookup vaultofsatoshi.com
Server: 172.16.225.132
Address: 172.16.225.132#53
Non-authoritative answer:
Name: faq.test.com
Address: 192.168.1.1
Однако я получаю следующее:
root@dev:/etc/bind# nslookup faq.test.com
Server: 172.16.225.132
Address: 172.16.225.132#53
** server can't find faq.test.com: NXDOMAIN
Я должен упомянуть, что запрос google.com или любого другого веб-сайта работает и возвращает все нормально, это только те, которые я отменяю, которые не работают. Я включил свои файлы конфигурации ниже, любая помощь будет признательна.
/etc/bind/ named.conf
include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";
/etc/bind/ named.conf.options
options {
directory "/var/cache/bind";
forwarders {
8.8.8.8;
8.8.4.4;
};
response-policy {
zone "development-overrides";
};
auth-nxdomain no; # conform to RFC1035
listen-on-v6 { any; };
allow-query { trusted; };
allow-recursion { trusted; };
recursion yes;
dnssec-enable no;
dnssec-validation no;
};
/etc/bind/ named.conf.local
include "/etc/bind/rndc.key";
acl "trusted" {
172.16.225.132;
127.0.0.1;
};
include "/etc/bind/zones.override";
logging {
channel bind_log {
file "/var/log/named/named.log" versions 5 size 30m;
severity info;
print-time yes;
print-severity yes;
print-category yes;
};
category default { bind_log; };
category queries { bind_log; };
};
/etc/bind/ named.conf.default-zones
// prime the server with knowledge of the root servers
zone "." {
type hint;
file "/etc/bind/db.root";
};
// be authoritative for the localhost forward and reverse zones, and for
// broadcast zones as per RFC 1912
zone "localhost" {
type master;
file "/etc/bind/db.local";
};
zone "127.in-addr.arpa" {
type master;
file "/etc/bind/db.127";
};
zone "0.in-addr.arpa" {
type master;
file "/etc/bind/db.0";
};
zone "255.in-addr.arpa" {
type master;
file "/etc/bind/db.255";
};
/ и т.д. / привязка / разработка-переопределения
$TTL 1H
@ SOA LOCALHOST. test.com (1 1h 15m 30d 2h)
NS LOCALHOST.
support.test.com A 192.168.1.1
faq.test.com A 192.168.1.1
; do not rewrite (PASSTHRU) OK.DOMAIN.COM
* A rpz-passthru.
Последняя строка в зоне RPZ не выглядит синтаксически корректной.
Синтаксис зоны RPZ такой же, как и для обычных зон, только для RPZ он имеет особую семантику.
Имея это в виду, ясно, что A
запись не может иметь rpz-passthru.
как это ценность. An A
запись может иметь в качестве значения только IPv4-адрес.
Если вы посмотрите на Документация РПЗ вы обнаружите, что специальные директивы RPZ (например, rpz-passthru.
) использовать CNAME
тип записи.
named-checkconf -zj
и / или чтение журналов обычно полезно. Я бы предположил, что при использовании данных зоны из вопроса, зона RPZ не загрузится, и по этому поводу должны быть ошибки (я ожидал бы ошибку о «плохом пунктирном четырехугольнике» или что-то в этом роде).
В качестве отдельного примечания, я не считаю, что последняя строка действительно нужна, она просто (пытается) явно определить, каким было бы поведение по умолчанию.