Моя девушка вдруг спросила меня, что такое DNS...

задняя часть

Моя девушка вдруг спросила меня, что такое DNS...

Сегодня вечером я лежал в постели и листал телефон, когда моя девушка вдруг сказала, что ее компьютер сломался. Сказала, что при подключении к WIFI не может выйти в интернет, позвольте мне ее показать. (Это преимущество иметь парня-программиста 😂)tempImage1607343925724Затем я взглянул на компьютер и обнаружил, что при доступе к веб-странице будет ошибка разрешения DNS, и сразу же обнаружил проблему. Решение очень простое, просто измените адрес разрешения DNS и введите его в CMD.ipconfig /flushdnsВот и все. Но она вдруг спросила меня, что такое DNS. Так что я сказал ей...

текст

Точно так же, как мы делаем телефонный звонок, если вы хотите позвонить своему другу, то вы должны знать номер его мобильного телефона, прежде чем вы сможете установить связь, и номер мобильного телефона здесь относится к IP-адресу, потому что в компьютерной сети это TCP/IP используется для связи, а TCP/IP используется для определения объекта связи через IP-адрес, а IP-адрес состоит из цифр и точек.12.11.12.11. Если у вас нет IP-адреса, вы не знаете номер телефона своего друга, но хотите ему позвонить, имеет ли это смысл?

Но когда вы посещаете веб-сайт, вы не вводите IP-адрес, а вводите имя для посещения веб-сайта. Это имя используется для преобразования имен машин, удобных для использования людьми, в IP-адреса, а полное имя DNS —Domain Name SystemСистема доменных имен. И зачем использовать доменное имя вместо IP? На самом деле, потому что IP трудно запомнить 😂. Если вы мне не верите, дайте мне десять IP-адресов, чтобы я попробовал.

Система доменных имен на самом деле является системой имен. Почему она называется «доменное имя», а не «имя»? Это потому, что в этой системе именования Интернета используется много «доменов», поэтому появляется «доменное имя». . «Система доменных имен» прямо указывает, что такая система используется в Интернете.

Например, если вы хотите посетитьwww.baidu.comэто доменное имя. Затем вам нужно доверить операционной системе помощь в запросе IP-адреса целевого веб-сайта, невидимого для пользователя. Судя по приведенному выше примеру, вам должно быть трудно вспомнить номер мобильного телефона вашего друга. В настоящее время, если у вас есть телефонная книга, вам нужно только добавить примечание к каждому номеру мобильного телефона.Если вы хотите связаться с кем-то, вам нужно только проверить номер его мобильного телефона в телефонной книге. А DNS можно представить себе как огромную телефонную книгу. И этот вид DNS подходит не только для IPv4, но и для IPv6. В то же время DNS относится к прикладному уровню и предоставляет помощь программному обеспечению прикладного уровня.

Интерактивный процесс:

Структура доменного имени

Именование доменных имен основано на методе именования иерархической древовидной структуры.Например, доменное имя Baidu, реальное доменное имя Baidu должно бытьwww.baidu.com.rootОбычно сокращается какwww.baidu.com.и это.Указывает, что корнем доменного имени обычно является корневое доменное имя. Последняя структура делится на доменные имена верхнего уровня, доменные имена второго уровня, доменные имена третьего уровня и так далее. Доменные имена после второго уровня обычно называются субдоменами. Как показано на рисунке:Как видно из рисунка выше, доменное имя состоит из нескольких частей..Разделите, а затем соедините самое правое доменное имя — это корневое доменное имя, корневое доменное имя невидимо для пользователей. Как правило, доменные имена, которые мы видим, выглядят так:Каждый уровень доменного имени не должен превышать 63 символа (главным образом для удобства запоминания). Кроме того, доменное имя не чувствительно к регистру, но обычно используется нижний регистр. Кроме того, DNS не определяет значение каждого уровня доменного имени и не ограничивает уровень доменных имен.Доменные имена на каждом уровне управляются уполномоченным органом по доменным именам верхнего уровня, управляетсяICANNсправляться. Преимущество этого заключается в том, что каждое доменное имя уникально в Интернете, и легко разработать механизм запроса доменных имен.

Ранее доменные имена делились на три категории:

  • национальный домен верхнего уровня nTLD:Например.cnпредставляющий Китай,.usпредставляющие Соединенные Штаты,.ukПредставляет Великобританию и т. д.
  • рДВУ: самые ранние домены верхнего уровня
    • .comПредставление компаний и предприятий
    • .netПредставляет сетевую сервисную организацию
    • .orgнекоммерческая организация
    • .eduобразовательное учреждение
    • .govДепартамент правительства
    • .intвоенная организация США
  • доменное имя инфраструктуры: только одно доменное имя инфраструктуры является arpa для обратного разрешения, которое обычно называется обратным доменным именем.

В сочетании с иерархической древовидной структурой системы доменных имен структура системы доменных имен в Интернете выглядит следующим образом:

Так что теперь есть другая проблема. Как упоминалось выше, существует много доменных имен, так как же их запрашивать? Если это доменное имя com, перейдите к запросу доменного имени com? Если это сетевое доменное имя, перейти к сетевому серверу для запроса?

DNS-сервер

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

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

Поэтому в DNS в качестве единицы используется не домен, а зона. Легче понять концепцию зоны.

Фактически, корневое доменное имя можно рассматривать как страну, доменное имя верхнего уровня — провинцию и т. д., поэтому доменное имя второго уровня — это единица уровня города, а доменное имя третьего уровня — единица уездного уровня и городская единица.

Тогда из приведенного выше рисунка видно, что a.com — это город, а все узлы, расположенные ниже, находятся под юрисдикцией города a.com, поэтому им нужен только один авторитетный сервер доменных имен для завершения разрешения всех поддоменов под доменом. .ком. Поэтому в DNS-сервере в качестве единицы используется не доменная категория, а область, которая является фактической юрисдикцией DNS-сервера. На приведенном выше рисунке отношения между регионом и доменом фактически равны. Тогда посмотрите на картинку ниже.

В настоящее время c.a.com также разделен на зону, но принадлежит домену a.com.В настоящее время их отношения таковы, что зона больше, чем зона. Поскольку они принадлежат к тому же домену, что и a.com, в домене a.com есть область c.a.com. Для зоны нужен один сервер, а теперь она разделена на две зоны, то есть требуется два авторитетных сервера доменных имен. Теперь другой вопрос, какой авторитет у сервера доменных имен?

На самом деле в DNS тоже разные сервера.разделить на три категории根域名服务器,顶级域名服务器,权限域名服务器.

  • Корневой сервер имен также является сервером имен самого высокого уровня, и корневой сервер имен знает адреса всех серверов имен верхнего уровня. В процессе разрешения, если локальный DNS-сервер не может быть разрешен, будет запрашиваться корневой сервер. Поэтому, пока корневой сервер не работает, все DNS-серверы не могут работать. Корневой сервер не занимается синтаксическим анализом, он отвечает только за то, чтобы сообщить вам, какой сервер верхнего уровня запрашивать в следующий раз.
  • Сервер доменных имен верхнего уровня отвечает за управление доменными именами второго уровня, зарегистрированными на сервере доменных имен верхнего уровня.
  • Сервер авторитетных доменных имен — это в основном сервер, который управляет зоной.

как запрашивается DNS

После того, как браузер получит введенное доменное имя, он перейдет к кэшу DNS браузера, чтобы проверить, есть ли запись. Если она существует, он вернется напрямую. Если ее нет, он запросит кеш операционной системы. Если операционная система не имеет кеша, она перейдет к просмотру локального файла HOST. Если в файле HOST нет записи, он будет отправлен на локальную службу DNS.Если нет локального сервера DNS, он может обратиться только к корневому серверу для запроса. Эти DNS-серверы обычно предоставляются сетевыми операторами или устанавливаются вами вручную. Среди них 13 корневых серверов в мире, а имена серверов доменных имен — от «А» до «М». Один основной корневой сервер расположен в США, а остальные 12 являются вторичными корневыми серверами, из которых 9 находятся в США, 2 в Европе, Великобритании и Швеции и 1 в Азии в Японии. Все серверы управляются ICANN.

Шаги для завершения запроса следующие:

  • 1. Кэш браузера клиента, если нет, запросите кеш операционной системы, если нет, запросите файл HOST, если нет, запросите локальный DNS-сервер.
  • 2. Локальный DNS-сервер запрашивает, есть ли локальный кеш, и если нет, запрашивает корневой сервер.
  • 3. Корневой сервер возвращается к локальному DNS-серверу для запроса домена, а затем локальный DNS-сервер снова запрашивает
  • 4. Локальный DNS-сервер возвращает результат запроса клиенту и кэширует результат.

На следующем рисунке показана блок-схема запроса a.com:Существует два способа запроса IP-адреса доменного имени в DNS: один — рекурсивный запрос, а другой — итеративный запрос.

итеративный запрос

Итеративный запрос — это запрос с локального сервера на корневой сервер, как правило, используется итеративный запрос. Характеристика итеративного запроса заключается в том, что когда корневой сервер доменных имен получает запрос от локального DNS-сервера, он сообщает серверу Ponto перейти к серверу верхнего уровня для запроса, а затем локальный DNS-сервер переходит к сервер верхнего уровня. Если сервер верхнего уровня сообщит локальному серверу адрес известного ему авторитетного сервера, то локальный сервер запросит авторитетный сервер. После получения запроса локальный DNS-сервер вернет результат клиенту.

рекурсивный запрос

Рекурсивный запрос относительно прост. Запрос локального DNS-сервера клиента является рекурсивным запросом. Если локальный DNS-сервер доменного имени, запрошенного клиентом, не знает, он будет запрашивать другие серверы доменных имен в качестве DNS-клиента.

Ручной запрос

Затем мы вручную запрашиваем DNS доменного имени в операционной системе. В Linux есть команда dig, которая в основном используется для запроса информации об адресе хоста с сервера доменных имен DNS.Выходная информация команды dig по умолчанию обширна и может быть разделена на пять частей.

  • Первая часть показывает версию команды dig и введенные аргументы.
  • Во второй части показаны некоторые технические детали, возвращаемые службой, наиболее важной из которых является статус. Если значение status равно NOERROR, это означает, что запрос завершился успешно.
  • «РАЗДЕЛ ВОПРОСОВ» в третьем разделе показывает доменное имя, которое мы хотим запросить.
  • «РАЗДЕЛ ОТВЕТОВ» в четвертой части является результатом запроса.
  • Пятая часть — это некоторая статистическая информация об этом запросе, например, сколько времени он занял, какой DNS-сервер был запрошен, когда был выполнен запрос и т. д.

Запрос dig по умолчанию — это запись A в результате, возвращенном в четвертой части выше, что означает, что запрашивается запись A. В Интернете есть много информации, объясняющей команду dig, поэтому я не буду объяснять ее здесь слишком подробно. Чтобы узнать больше о команде dig, я рекомендую статью Руан Да.

Вууху. Руан Ифэн.com/blog/2016/0…

Типы DNS-записей

Типы объяснять
A Запись адреса используется для указания IPv4-адреса доменного имени.Если вам нужно указать доменное имя на IP-адрес, вам нужно добавить запись A.
AAAA Используется для указания записи адреса IPv6, соответствующей имени хоста (или имени домена).
CNAME Если вам нужно указать доменное имя на другое доменное имя, а затем другое доменное имя предоставляет IP-адрес, вам необходимо добавить запись CNAME.
MX Если вам нужно настроить почтовый ящик, чтобы почтовый ящик мог получать почту, вам нужно добавить запись MX.
NS Записи сервера доменных имен.Если вам нужно передать имя поддомена другим DNS-серверам для разрешения, вам необходимо добавить записи NS.
SOA SOA Эта запись обязательна во всех файлах зон. Это должна быть первая запись в файле.
TXT Написать можно что угодно, длина ограничена 255. Подавляющее большинство записей TXT используются для записей SPF (защита от спама).

наконец

В то же время следует отметить, что DNS имеет механизм кэширования, и целью кэширования является повышение эффективности запросов. Поэтому обязательно обновите кеш DNS после изменения DNS-сервера. как начало моей статьиipconfig /flushdnsЦель команды — очистить локальный кеш DNS.

плечи гигантов

Следуйте за мной, чтобы узнать больше