IP-адрес имеет длину 32 бита, что означает 4 байта. Тем не менее, все ответы на вопрос о 13 корневых DNS-серверах говорят об обратном

Ладно, я думаю, проблема была в драйвере. В итоге я попытался установить Ubuntu и нашел кучу статей о проблемах с nividia. В итоге я изменил файл grub Ubuntu, чтобы он снова содержал без кавычек «nouveau.modeset = 0». Я совершенно не уверен, что именно здесь происходит, но, вероятно, есть аналогичный способ заставить его работать в Debian. Думаю, я все же буду использовать Ubuntu.

0
18.12.2019, 09:21
1 ответ

"... As each IPv4 address requires 32 bytes, having 13 servers uses 416 bytes, leaving up to 96 bytes for the remaining protocol information."

Протокол DNS никогда не передает просто IP-адреса, а правильно отформатированные запросы и ответы, состоящие из записей ресурсов DNS.

«IPv4-адрес требует 32 байта», вероятно, относится не к размеру простого IP-адреса, а к размеру записи ресурса A, отформатированной для передачи в протоколе DNS.

Похоже, что это значение было бы точным, когда все корневые DNS-серверы имели уникальные, не -систематические имена, но поскольку теперь корневые серверы имен были -переименованы в формат x.ROOT-SERVERS.NET, текущий состояние немного сложнее.

Я только что запустил tcpdumpна DNS-сервере BIND9 start -, и похоже, что первая запись A займет чуть больше 32 байт, так как она включает:

  • полное имяa.root-servers.net(с одним байтом длины каждого компонента имени и одним нулевым байтом в конце = всего 20 байтов)
  • 16-битный -код типа записи (2 байта)
  • 16-битный -код класса записи (2 байта)
  • 32-битное -значение TTL (4 байта)
  • 16-битное -значение длины данных (2 байта)
  • 32-битный -IP-адрес (4 байта)

Таким образом, если вы запрашиваете записи A для корневых DNS-серверов, первая запись ответа на самом деле займет 34 байта.

Любые последующие записи ответа в том же сообщении DNS могут ссылаться на любое ранее -упомянутое имя или его часть, так что если a.root-servers.netупоминается полностью, то b.root-servers.netможно выразить всего 4 байтами. (2 байта для части b, 2 байта в конце -ссылаются на суффикс root-servers.net). В результате любые другие записи A для корневых серверов будут занимать всего 17 байт каждая.

Фактический запрос на запуск -от BIND9 эквивалентен dig. NSи происходит по TCP, а не по UDP.

В результате,первая запись ответа представляет собой NS-запись размером 31 байт, в которой указан первый корневой DNS-сервер с полным именем. Последующие записи NS для других корневых серверов будут занимать всего 15 байт каждая. Поскольку записи A, представленные в качестве дополнительной информации, могут полностью ссылаться на -каждое имя хоста корневого сервера, каждая запись A для корневого DNS-сервера будет занимать всего 16 байтов. Ответ также включает записи IPv6 AAAA для корневых серверов имен. Несмотря на это, общая длина ответа DNS составляет всего 1097 байт.

4
28.01.2020, 02:17

Теги

Похожие вопросы