Мы используем частный рекурсивный DNS (привязка 9.10.3) для небольшой группы людей за пределами нашей сети, чтобы ускорить их просмотр. Недавно я заметил, что наш сервер отвечает на запросы с помощью ".local" или ".home", прикрепленных к некоторым входящим запросам, а также на некоторые запросы, поступающие для "local" или даже "home" без каких-либо других данных, здесь это пример из наших логов (1.2.3.4 это наш DNS)
Oct 20 09:36:28 dns1 named[3080]: client X.X.X.X#50315 (somethingrandom.local): view someview: query: somethingrandom.local IN A + (1.2.3.4)
Oct 20 09:36:38 dns1 named[3080]: client X.X.X.X#50315 (somethingrandom.local): view someview: query: somethingrandom.home IN A + (1.2.3.4)
Oct 20 09:36:55 dns1 named[3080]: client X.X.X.X#57750 (local): view someview: query: local IN SOA + (1.2.3.4)
Oct 20 09:36:59 dns1 named[3080]: client X.X.X.X#49441 (local): view someview: query: local IN SOA + (1.2.3.4)
Oct 20 09:37:01 dns1 named[3080]: client X.X.X.X#53231 (local): view someview: query: local IN SOA + (1.2.3.4)
Я покопался на сервере, чтобы увидеть, какой ответ возвращается, и почти уверен, что приведенный ниже ответ в точности правильный, однако я не уверен на 100%. Раскрытие приведено ниже, просто нужно, чтобы кто-то подтвердил, что он выглядит так, как должен - мы не хотим ничего отвечать на localhost или localnet (что сейчас на месте).
> dig @ourdns local
Ответ:
; <<>> DiG 9.10.3 <<>> @dns1 local
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 4495
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;local. IN A
;; AUTHORITY SECTION:
. 85530 IN SOA a.root-servers.net. nstld.verisign-grs.com. 2015102000 1800 900 604800 86400
;; Query time: 17 msec
;; SERVER: 1.2.3.4#53(1.2.3.4)
;; WHEN: Tue Oct 20 13:00:17 EDT 2015
;; MSG SIZE rcvd: 109
Ага, это хороший ответ - обратите внимание на NXDOMAIN
status, что означает, что он ничего не говорит клиенту.
Поскольку это рекурсор, он основывает свое решение на том факте, что он запросил у корневых серверов .local
и корневые серверы ответили, что его не существует. (Забавный факт: такой запрос недействительного TLD составляет значительную часть нагрузки на корневые DNS-серверы, поскольку отсутствие .local
TLD не кэшируется почти до тех пор, пока существует реальный TLD)