Понимание протокола DNS (часть 2)

Опубликовано: 24 Марта, 2023

  • Понимание протокола DNS (часть 1)

DNS, записи ресурсов и RCODE

Теперь мы знакомы со службой доменных имен на высоком уровне. Теперь нам нужно ознакомиться с некоторыми особенностями. С этой целью мы рассмотрим примерно полдюжины ресурсных записей и объясним, что они означают. Это будет сделано с примерами пакетов, чтобы мы могли их визуализировать, а не просто читать о них. Записи ресурсов, которые мы рассмотрим ниже, расположены в произвольном порядке. На этой ноте продолжим!

В пакетах ниже показаны различные немаршрутизируемые IP-адреса, а именно 192.168.1.200 и 192.168.1.100, которые я вставил вместо реальных IP-адресов, которые были в пакетах. И, наконец, я включил подборку как RCODE, так и Resource Records, чтобы мы могли на них взглянуть. С учетом сказанного давайте взглянем на наш первый пакет, который содержит RCODE.

Нет такого домена!

Во время вашего повседневного серфинга в Интернете может случиться так, что ссылка, по которой вы нажимаете, не загружает запрошенную страницу. Ну, как и в реальном мире бизнеса, иногда веб-сайты исчезают по разным причинам. Принимая это во внимание, DNS нужен способ сообщить об этом клиенту, который первоначально сделал запрос. Это делается через DNS RCODE, то есть: код ответа, известный как NX или несуществующий домен. Буквально это означает, что такого домена не найти. Обратите внимание, что я вырезал указанный ниже пакет для краткости, и что на самом деле длина пакета должна была составлять 143 байта, что отражено в поле «len 143», выделенном ниже.

Таким образом, с учетом сказанного мы видим, что DNS-сервер, расположенный по адресу 192.168.1.200, сообщает 192.168.1.100 (который первоначально должен был запросить разрешение DNS для домена), что домен, для которого он хотел разрешить, не существует. Номер, который мы видим ниже, например: 17165, является номером транзакции DNS и позволяет клиенту, запрашивающему разрешение DNS, отслеживать, какой ответ идет с каким запросом DNS. В конце концов, ваш компьютер, вероятно, делает довольно много запросов на разрешение DNS, и наличие этого числа позволяет ему отслеживать, что к чему принадлежит.

11:00:06.289070 192.168.1.200.53 > 192.168.1.100.155: 17165 NXDomain 0/1/0 (115) (ttl 58, id 43899, длина 143 )
0x0000 4500 008f ab7b 0000 3a11 26d7 c0a8 01c8 E….{..:.&…e.
0x0010 c0a8 0164 0035 009b 007b 3410 430d 8183 …..5…{4.C…
0x0020 0001 0000 0001 0000 хххх хххх хххх хххх ………ххххххх
0x0030 xxxx xxxx xxxx xxxx xxxx 6e2d 6164 6472.xxxxx.in-addr
0x0040 0461 7270 6100 000c 0001 c014 0006 0001.arpa………..




Я хочу ответов!

То, что мы видим ниже, представляет собой запись ресурса ответа, о чем свидетельствует подчеркнутая часть, показанная ниже. В частности, «A» соответствует ресурсной записи «A». Запись A используется для определения IP-адреса. В нашем случае ниже это IP-адрес домена banner.paypopup.com. Из приведенного ниже мы снова можем сделать вывод, что 192.168.1.100 выдал «A?» запрос IP-адреса домена banner.paypopup. Эта запись ресурса очень распространена, и вы бы действительно увидели много таких записей, если бы прослушивали свое соединение во время серфинга. Еще раз для краткости я вырезал часть пакета.

11:00:09.511821 192.168.1.200.53 > 192.168.1.100.155: 17170 1/5/5 banner.paypopup.com. A 66.48.78.203 (242) (ttl 58, id 47434, len 270)
0x0000 4500 010e b94a 0000 3a11 1889 c0a8 01c8 E….J..:…..e.
0x0010 c0a8 0164 0035 009b 00fa 4ae2 4312 8180 …..5….JC…
0x0020 0001 0001 0005 0005 0662 616e 6e65 7208 ………баннер.
0x0030 7061 7970 6f70 7570 0363 6f6d 0000 0100 paypopup.com….
0x0040 01c0 0c00 0100 0100 000d 7200 0442 304e ……….r..B0N




CNAME-запись

CNAME означает каноническое имя, а также является записью ресурса DNS, очень похожей на запись ресурса A, показанную выше. Ресурсная запись CNAME используется для указания истинного имени хоста компьютера. Однако может быть более одного доменного имени, связанного с IP-адресом. По сути, у компьютера может быть множество псевдонимов, которые разрешаются в один IP-адрес, поэтому существует запись CNAME. Запись CNAME должна быть в базе данных DNS для каждого псевдонима.

11:00:11.484898 192.168.1.200.53 > 192.168.1.100.155: 17189 7/3/7 fpdownload.macromedia.com. CNAME fpdownload.macromedia.speedera.net., fpdownload.macromedia.speedera.net. А 216
.200.249.204, [|домен] (ttl 58, id 49656, длина 375)
0x0000 4500 0177 c1f8 0000 3a11 0f72 c0a8 01c8 E..w….:..r..e.
0x0010 c0a8 0164 0035 009b 0163 16bb 4325 8180 …..5…c..C%..
0x0020 0001 0003 0007 0007 0a66 7064 6f77 6e6c ………fpdownl
0x0030 6f61 640a 6d61 6372 6f6d 6564 6961 0363 oad.macromedia.c




ServFail RCODE

Другой загадочный пакет, с которым вы можете столкнуться, — это «ServFail», который является RCODE, как и NXDomain. ServFail сообщает вам, что, возможно, произошла ошибка самого DNS-сервера или тайм-аут во время пересылки. На самом деле это говорит вам о том, что он не может выполнить ваш DNS-запрос из-за проблемы на стороне сервера, по всей вероятности.

01:04:37.291738 192.168.1.200.53 > 192.168.1.100.649: [сумма UDP в порядке] 60301 ServFail 0/0/0 (33) (ttl 58, id 25184, длина 61)
0x0000 4500 003d 6260 0000 3a11 7043 c0a8 01c8 E..=b`..:.pC..e.
0x0010 c0a8 0164 0035 0289 0029 1266 eb8d 8182 …..5…).f….
0x0020 0001 0000 0000 0000 0b6d 7966 756e 6e79 ………myfunny
0x0030 6d61 696c 0363 6f6d 0000 1c00 01 mail.com…..



Как выглядит DNS-запрос?

Ну, до сих пор мы рассмотрели довольно много ответов DNS, и еще не рассмотрели запрос DNS. Без лишних слов давайте посмотрим, как выглядит запрос. Из подчеркнутой части ниже мы можем увидеть букву «А?» это означает, что 192.168.1.200 запрашивает запись ответа от 192.168.1.100. По сути, он запрашивает IP-адрес для домена, указанного после «А?».

Мы видим, что у нас есть общая длина пакета 61, о чем свидетельствует «len 61», который также подчеркнут ниже. Также мы можем видеть, что у нас есть тридцать три байта данных в пакете, как указано в «(33)», также подчеркнутом ниже. Почему существует несоответствие между двумя числами, которые вы спрашиваете? Хороший вопрос. Ну, у нас есть общий размер пакета шестьдесят один и полезная нагрузка данных тридцать три. Это составляет разницу в двадцать восемьдесят байтов. Где эти двадцать восемь байтов, это двадцать байтов для заголовка IP и восемь байтов для заголовка UDP. Как только мы добавим их, мы сможем учесть общий размер пакета, равный шестидесяти одному.

06.09.2005 21:00:38.294185 192.168.1.200.32768 > 192.168.1.100.53: [сумма udp в порядке] 56810 A? amextype.opt.mr . (33) (DF) (ttl 254, id 27836, длина 61 )
0x0000 4500 003d 6cbc 4000 fe11 e2d4 c0a8 01c8 [электронная почта защищена]………
0x0010 c0a8 0164 8000 0035 0029 64c8 ddea 0000 RZ….5.)d…..
0x0020 0001 0000 0000 0000 0861 6d65 7874 6970 ………amextip
0x0030 6503 6f70 7402 6d72 0000 0100 01 e.opt.mr…..



Итак, мы рассмотрели несколько записей ресурсов и RCODE. Это завершит вторую часть серии DNS. В третьей части мы завершим рассмотрение DNS, а пока продолжаем учиться!

  • Понимание протокола DNS (часть 1)