Я пытаюсь настроить собственный DNS-сервер как для обучения, так и для обеспечения конфиденциальности. Я установил Bind9 и попытался следовать нескольким онлайн-руководствам, а также руководству по администрированию Linux, но, похоже, он все еще не работает. Я установил named.conf для прослушивания на локальном хосте и сделал его рекурсивным. Затем я установил в resolv.conf только один сервер имен 127.0.0.1.
Затем я попытался использовать его со своего рабочего стола и попытался копать nyc.gov, поскольку на сайте, на котором я никогда раньше не был, я получил следующий резонанс
> dig nyc.gov
; <<>> DiG 9.7.0-P1 <<>> nyc.gov
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 54429
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; WARNING: recursion requested but not available
;; QUESTION SECTION:
;nyc.gov. IN A
;; Query time: 14 msec
;; SERVER: 97.107.138.191#53(97.107.138.191)
;; WHEN: Sun Aug 1 02:07:09 2010
;; MSG SIZE rcvd: 25
Кажется, он должен быть рекурсивным, хотя я установил Bind, и да, я перезапустил демон.
Будем признательны за любые советы или любые дополнительные руководства по этому вопросу. В основном мне нужен альтернативный DNS-сервер для меня и моих коллег. Спасибо.
У вас есть серверы для пересылки запросов?
Где-то в вашей конфигурации должны быть такие строки, которые позволяют вашему серверу передавать запросы, которые он не знает, серверам, которые могут знать ответы:
options {
// ... various config options ...
forwarders {
8.8.8.8;
8.8.4.4;
};
recursion yes;
// ... various config options ...
}
Замените 8.8.8.8 и 8.8.4.4 локальными DNS-серверами вашего интернет-провайдера (я использовал в качестве примера Google).
Я также обычно ограничиваю, какие хосты могут использовать рекурсию, что вы можете сделать с помощью allow-recursion
. Если вы просто хотите разрешить все хосты, вы можете использовать allow-recursion { "any"; };
Если ваша привязка слушает только localhost
вы не сможете использовать его с другой машины. Вот хорошая запись об изучении DNS / BIND: Quick HOWTO: Глава 18: Настройка DNS
Вам необходимо включить рекурсию для клиентов:
allow-recursion { address_match_list };
allow-recursion определяет список совпадений, определяющий IP-адреса, которым разрешено отправлять рекурсивные запросы к серверу. Если ответ на запрос уже существует в кеше, он будет возвращен независимо от этого утверждения. Если не указано, всем хостам разрешено делать рекурсивные запросы. Этот оператор может использоваться в представлении или в предложении глобальных параметров.
Если вы хотите проверить, что происходит, с помощью одного запроса, лучший способ сделать это:
dig +trace google.com
...
google.com. 172800 IN NS ns1.google.com.
google.com. 172800 IN NS ns2.google.com.
google.com. 172800 IN NS ns3.google.com.
google.com. 172800 IN NS ns4.google.com.
;; Received 164 bytes from 192.42.93.30#53(g.gtld-servers.net) in 181 ms
google.com. 300 IN A 74.125.87.147
google.com. 300 IN A 74.125.87.105
google.com. 300 IN A 74.125.87.106
google.com. 300 IN A 74.125.87.103
google.com. 300 IN A 74.125.87.104
google.com. 300 IN A 74.125.87.99
;; Received 124 bytes from 216.239.38.10#53(ns4.google.com) in 106 ms
Надеюсь, это поможет.