Зачем перенаправлять только локальное кэширование экземпляра bind9 на серверы "корневой" зоны?

Я настраиваю локальный DNS-сервер пересылки (bind9). Иметь следующую конфигурацию:

options {
    directory "/var/cache/bind";

    recursion yes; /* So that server could answer queries about domains its is not authoritative for. */
    allow-query { homeclients; };

    forwarders {
        8.8.8.8;
        8.8.4.4;
    };
    forward only;

    dnssec-enable yes;
    dnssec-validation yes;

    auth-nxdomain no;    # conform to RFC1035
    listen-on port 53 {
        127.0.0.1;
        192.168.1.33;
    };
    listen-on-v6 { any; };
};

Но, когда я делаю:

dig @127.0.0.1 ubuntu.com +trace

Я получил:

; (1 server found)
;; global options: +cmd
.           3600000 IN  NS  J.ROOT-SERVERS.NET.
...
.           3600000 IN  NS  K.ROOT-SERVERS.NET.
;; Received 811 bytes from 127.0.0.1#53(127.0.0.1) in 0 ms

ubuntu.com.     3600    IN  A   91.189.94.40
;; Received 55 bytes from 192.33.4.12#53(C.ROOT-SERVERS.NET) in 1 ms

dig получает информацию от локального экземпляра bind, который, согласно моей конфигурации, должен перенаправлять все запросы на DNS-серверы Google. Но это также просит корневые серверы...

Почему DNS-сервер только для пересылки запрашивает "корневые" серверы? Благодарю.

1 ответ

Решение

Я думаю, вы неправильно понимаете, как работает режим трассировки копания. Просматривая справочную страницу dig, вы получаете следующую информацию:

+[no]trace
  Toggle tracing of the delegation path from the root name servers
  for the name being looked up. Tracing is disabled by default. When
  tracing is enabled, dig makes iterative queries to resolve the name
  being looked up. It will follow referrals from the root servers,
  showing the answer from each server that was used to resolve the
  lookup.

  If @server is also specified, it affects only the initial query for
  the root zone name servers.

Особенно последняя часть дает понять, что dig +trace @server спросит сервер о корневых серверах имен, а затем возьмет на себя и выполнит итерацию самих серверов имен следующего уровня.

Однако я понимаю ваше удивление - мне пришлось самому искать это;)

Другие вопросы по тегам