Это скорее эксперимент по изучению и пониманию BIND / NAMED, но вот что у меня есть.
Я установил DNS своих компьютеров на IP-адрес моего Linux-сервера. У меня BIND9 работает со следующей записью:
$TTL 1 @ IN SOA 1.2.3.4. google.com. (
2013041602 ; Serial
1 ; Refresh
1 ; Retry
10000 ; Expire
1 ) ; Negative Cac
home 14400 IN A 1.2.3.4
* 14400 IN A 2.2.2.2
space 14400 IN A 1.2.3.4
1.2.3.4 = My Server IP
Если я пингую home.google.com, я ничего не получаю от своего домашнего компьютера. Если мой DNS указывает на сервер BIND9, разве он не должен принимать эти записи DNS?
Это на сервере (есть ли в винде копать?)
Я отредактировал /etc/resolv.conf, чтобы использовать мой сервер Linux в качестве DNS.
dig home.google.com
; <<>> DiG 9.8.1-P1 <<>> home.google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 2032
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;home.google.com. IN A
;; Query time: 0 msec
;; SERVER: 1.2.3.4#53(1.2.3.4)
;; WHEN: Wed Apr 17 10:00:59 2013
;; MSG SIZE rcvd: 43
NSLOOKUP:
Server: UnKnown
Address: 1.2.3.4
*** UnKnown can't find home.google.com: Server failed
named.conf
include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";
named.conf.options:
options {
directory "/var/cache/bind";
// If there is a firewall between you and nameservers you want
// to talk to, you may need to fix the firewall to allow multiple
// ports to talk. See http://www.kb.cert.org/vuls/id/800113
// If your ISP provided one or more IP addresses for stable
// nameservers, you probably want to use them as forwarders.
// Uncomment the following block, and insert the addresses replacing
// the all-0's placeholder.
forwarders {
75.75.75.75;
75.75.76.76;
};
//========================================================================
// 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 auto;
auth-nxdomain no; # conform to RFC1035
listen-on-v6 { any; };
};
named.conf.local
zone "google.com" {
type master;
file "/etc/bind/db.google.com";
};
zone "2.3.4.in-addr.arpa" {
type master;
notify no;
file "/etc/bind/db.192";
};
/etc/bind/ named.conf.default-zones
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";
};
Вы смешиваете два очень разные вещи: DNS-сервер может быть решатель (получение имен из всех возможных доменов и разрешение их путем запроса авторитетных серверов имен мира) или авторитетный сервер (передача данных о ваших собственных зонах резольверам). Я настоятельно рекомендую держать их отдельно (на разных машинах). В противном случае отладка будет действительно болезненной.
Ваша конфигурация кажется подходящей для авторитетного сервера для домена google.com, за исключением того, что вывод dig показывает, что рекурсия доступна. Вы должны отключить его (recursion no;
).
Следующим шагом является проверка того, действительно ли зона была загружена сервером имен. Помните, что администратор системы Unix постоянно просматривает файлы журнала. Проверьте файл журнала на наличие именованных сообщений при запуске, вы, вероятно, найдете сообщение об ошибке, объясняющее, почему зона не была загружена (в качестве альтернативы, проверьте зону с помощью named-checkzone).