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

Советы по запуску собственного распознавателя Bind9?

Я пытаюсь настроить собственный 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

Надеюсь, это поможет.