DNS представляет собой распределенную базу данных, ставящую в соответствие доменным именам четверки (время жизни, класс, тип, значение), причем значение может, в свою очередь, обладать собственной внутренней структурой.

Цель этого раздела — познакомить с основными приемами диагностики и обслуживания зон ответственности (или доменов) DNS, а также дать представление о способах представления различной информации в системе DNS.

Пример зоны

править

В следующих разделах, мы рассмотрим пример данных, связанных — или которые могли бы быть связанными — с зоной example.org через систему DNS.

Мы будем использовать формат, подобный используемому BIND, NSD, или программой dig(1):

example.org.    86400   IN      NS      ns1.example.org.

Где:

  • example.org. — доменное имя (ключ DNS-записи);
  • 86400 — время жизни в секундах (в данном случае — 1 сутки);
  • IN — класс («Internet»);
  • NSтип записи («сервер имен зоны»);
  • ns1.example.org. — значение (доменное имя сервера имен.)

Описание зоны

править

Основные типы записей, описывающих зону в целом:

  • SOAначало зоны ответственности (англ. start of [a zone of] authority);
  • NSимя сервера имен (англ. name server);
  • DNSKEYоткрытый ключ зоны;
  • DSотпечаток ключа зоны (англ. delegation signer.)

При этом:

  • запись типа SOA используется в зоне однократно;
  • записи NS, DNSKEY могут повторяться (с различными значениями), а также, в общем случае, подлежат дублированию в родительской зоне (что также известно как клей; англ. glue или glue records);
  • каждой из записей DNSKEY дочерней зоны может соответствовать в родительской зоне как идентичная запись DNSKEY, так и содержащая лишь слепок ключа запись DS.

Отметим, что в случаях отсутствия поддержки DNSSEC инфраструктурой родительской зоны, соответствующие записи DLV (аналогичные DS) могут быть размещены и в зоне dlv.isc.org.

Наконец, рассмотрим использование вышеперечисленных записей на примере домена example.org, для чего воспользуемся программой dig. Для начала, однако, выясним, какие сервера имен обслуживают эту зону:

$ dig +short  example.org. ns 
b.iana-servers.net.
a.iana-servers.net.
$ 

Выполним теперь запрос к одному из них:

$ dig +tcp +norecurse +nocmd +nocomments +noquestion +nostats \
      @a.iana-servers.net. \
      example.org soa \
      example.org dnskey 
example.org.    3600    IN      SOA     sns.dns.icann.org. noc.dns.icann.org. (
                    2013073147 7200 3600 1209600 3600 )
example.org.    172800  IN      NS      a.iana-servers.net.
example.org.    172800  IN      NS      b.iana-servers.net.
example.org.    3600    IN      DNSKEY  257 3 8 AwEAAawt7HplI5M8GGA...
example.org.    3600    IN      DNSKEY  257 3 8 AwEAAeikvxboZpn9VCx...
example.org.    3600    IN      DNSKEY  256 3 8 AwEAAYqdHXTZN1Oj79j...
$ 

(Для удобства чтения, мы разбили представление записи SOA на две строки, а также привели открытые ключи — значения записей DNSKEY — лишь частично.)

Отметим, что хотя тип NS не упоминался в запросе явно, в разделе дополнительных (англ. additional) данных ответа для типа SOA он все же присутствует.

Описание узла

править

Основные типы записей, описывающих узел сети Internet:

Отметим, что эти записи непосредственно используются, по-видимому, большинством протоколов (включая HTTP, SSH, NNTP), а также при подключении к агентам начального приема почты (англ. Mail submission agent, MSA) при использовании протоколов SMTP. (В отличие от соединений между почтовыми транспортными агентамиMTA — для которых в первую очередь используются записи MX.)

Рассмотрим использование этих записей на примере HTTP-сервера http://example.org/:

$ dig +tcp +norecurse \
      +nocmd +nocomments +noquestion +noauthority +nostats \
      @a.iana-servers.net. \
      example.org aaaa \
      example.org a 
example.org.    86400   IN      AAAA    2606:2800:220:6d:26bf:1447:1097:aa7
example.org.    86400   IN      A       93.184.216.119
$ 

Как видно, доступ к данному HTTP-серверу может осуществляться по одному из двух IP-адресов: 2606:2800:220:6d:26bf:1447:1097:aa7 или 93.184.216.119.

См. также

править