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

Есть ли официальный предел косвенного обращения к серверу имен?

Связующие записи обычно недоступны, если домен и его сервер имен не имеют общего TLD, и технически не являются обязательный если они не используют один и тот же домен второго уровня, что может привести к дополнительным действиям по разрешению домена. Преобразователь должен сначала найти адрес сервера имен, прежде чем он сможет найти адрес вашего домена. Но теоретически вы можете добавить туда больше шагов, чем только эти два.

Вопрос здесь в том, как долго эта цепочка может быть?

если xyz.com использует сервер имен ns1.xyz.info,
и xyz.info использует сервер имен ns1.xyz.co,
и xyz.co использует сервер имен ns1.xyz.cc,
и xyz.cc использует сервер имен ns1.xyz.co.uk, ... и так далее

... вы можете получить очень длинную цепочку, которую распознаватель будет распутывать, прежде чем он сможет разрешить имя, которое вы изначально хотели.

По-видимому, существует практический предел - BIND должен быть готов пройти только по определенному количеству ссылок, иначе существует вероятность отказа в обслуживании. Но есть ли официальный лимит? Какое-то количество шагов, за которые преобразователь официально не должен продолжать работу?

if xyz.com uses nameserver ns1.xyz.info,

В этом случае ваш локальный преобразователь сначала запросит у серверов .com (например, a.gtld-servers.net), где найти серверы имен для домена xyz.com. Сервер домена .com обычно предоставляет связующие записи для IP-адресов серверов имен для домена xyz.com.

например:

$ dig  gmail.com @a.gtld-servers.net 

; <<>> DiG 9.9.3-rpz2+rl.13214.22-P2-Ubuntu-1:9.9.3.dfsg.P2-4ubuntu1.1 <<>> gmail.com @a.gtld-servers.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46893
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 4, ADDITIONAL: 5
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;gmail.com.         IN  A

;; AUTHORITY SECTION:
gmail.com.      172800  IN  NS  ns2.google.com.
gmail.com.      172800  IN  NS  ns1.google.com.
gmail.com.      172800  IN  NS  ns3.google.com.
gmail.com.      172800  IN  NS  ns4.google.com.

;; ADDITIONAL SECTION:
ns2.google.com.     172800  IN  A   216.239.34.10
ns1.google.com.     172800  IN  A   216.239.32.10
ns3.google.com.     172800  IN  A   216.239.36.10
ns4.google.com.     172800  IN  A   216.239.38.10

;; Query time: 375 msec
;; SERVER: 192.5.6.30#53(192.5.6.30)
;; WHEN: Thu Jul 10 01:10:57 EST 2014
;; MSG SIZE  rcvd: 181

По моему опыту, ваше утверждение о том, что «Связующие записи обычно недоступны, если домен и его сервер имен не имеют общего TLD», просто неверно. Однако это зависит от данных, предоставленных регистратором для домена, и их политики различаются. Некоторые требуют указания IP. Некоторые оставляют это на усмотрение владельца домена. Думаю, я помню одного в Австралии, который их не поддерживает. Если количество регистраторов, работающих с доменом вашей страны, невелико, то, возможно, это может быть верно в пределах этой части доменного пространства, но для сети в целом это нетипично.

Для владельцев доменов, безусловно, является хорошей практикой предоставлять Glue-записи, но иногда возможность указать DNS-сервер по имени без привязки IP-адреса рассматривается как обеспечение гибкости, и многие владельцы доменов не понимают проблемы с производительностью, которые это создает.

Если вы предоставляете инструмент отчетности DNS, действительно ли это абсолютный предел такой неправильной конфигурации, который вас интересует? Конечно, для вас более уместно сообщить об отсутствующих записях клея в качестве предупреждения, если возникает хотя бы одна такая проблема с отсутствующими записями клея. Вы, вероятно, захотите отслеживать хотя бы несколько косвенных указаний, которые вы предоставляете (и сообщать об отсутствующих связующих записях), но должны быть некоторые ограничения на то, как далеко вы должны следовать этому. Я был бы очень рад, если бы инструмент отчетов DNS предупредил о первых трех или около того, так как меня действительно интересовало бы только либо добавление связанных записей в мой домен, либо переключение поставщика DNS для домена на более компетентного.

Я сомневаюсь в предлагаемом вами подходе DOS к BIND, поскольку BIND будет кэшировать собираемую информацию о расположении серверов имен. Злоумышленнику придется создать множество доменов без клея, а затем сделать много запросов о них. Стоимость создания доменов, которые, вероятно, будут отменены регистратором после использования, скорее всего, сделает это непривлекательным для злоумышленника.