Когда мы вводим URL-адрес в браузере, система доменных имен начинает работать. Система доменных имен — это распределенная база данных, которая связывает ресурсы и адреса Интернета.
DNS и унифицированный указатель ресурсов, суть системы доменных имен заключается в поиске ресурсов, различных ресурсов в Интернете, таких как видео, изображения, файлы и веб-страницы. . . .
Вот пример URL-адреса:
https://www.example.com:8080/test?id=1000#Good
[https] Часть схемы — это протокол, не только https, но также ftp, ssh и т. д. Различные протоколы представляют разные типы приложений, предоставляющих ресурсы.
[www.example.com] Часть Host представляет сайт, а основная функция DNS — найти IP-адрес на основе хоста.
【8080】Порт — это номер порта, обозначающий приложение, предоставляющее услуги.
[test] — путь, представляющий путь к ресурсу в сервисе.
[id=1000] — условие запроса, означающее, что необходима определенная часть ресурса.
[Хорошо] — это вторичное условие запроса, которое обычно не отвечает на стороне сервера, но используется для отображения контента позиционирования во внешнем интерфейсе.
В общем, URL-адрес представляет собой древовидную структуру, Хост представляет собой хост (соответствующий IP-адрес предоставляется службой DNS), Порт представляет собой приложение, предоставляющее услугу, Путь представляет собой путь к ресурсу в приложении, а Запрос представляет собой условие запроса для ресурса.
Система доменных имен, DNS (система доменных имен) — это распределенная служба, которая сопоставляет доменные имена и IP-адреса друг другу. DNS сам по себе представляет собой распределенную архитектуру.
Вверху находится корневой сервер имен. Корневой сервер имен хранит не отношения сопоставления между доменными именами и IP-адресами, а каталог. Из-за таких проблем, как трафик, предотвращение единых точек отказа и балансировка географического распределения, корневое имя. Сервер — это просто каталог, который не предоставляет конкретных данных.
Процесс разрешения доменного имени DNS
Как показано на рисунке выше, структура хранилища DNS представляет собой древовидную структуру. Реальные отношения сопоставления хранятся в конечных узлах, а промежуточные узлы хранят каталоги. Хранилище разделено на 3 уровня:
Вверху находится корневое хранилище DNS, в котором хранится каталог доменных имен верхнего уровня и которое называется корневым DNS-сервером.
Второй уровень — это хранилище доменов верхнего уровня, в котором хранится каталог доменных имен второго уровня и называется DNS-сервером домена верхнего уровня.
Последний уровень — это листовой узел, в котором хранятся определенные записи DNS и который называется авторитетным DNS-сервером.
Классификация доменных имен и разделение данных
Классификация доменных имен включает корневое доменное имя (.), доменное имя верхнего уровня (com, cn, net), доменное имя второго уровня (baidu), доменное имя третьего уровня (www). Классификация доменных имен в основном предназначена для создания каталогов. и индексы, а также для разделения хранилища данных.
Процесс разрешения доменного имени DNS
Процесс DNS-запроса
Когда пользователь вводит URL-адрес в браузере, запускается DNS-запрос. В настоящее время к вышеуказанным трем уровням добавляется уровень локального DNS-сервера, включающий в себя кэш DNS на собственном маршрутизаторе пользователя, DNS-сервер сообщества и DNS-сервер интернет-провайдера. следующее.
Процесс разрешения доменного имени DNS
Согласно приведенному выше рисунку, подробные результаты DNS-запроса следующие:
1. Пользователь вводит URL-адрес и сначала запрашивает локальный DNS. Локальный DNS представляет собой набор DNS, например DNS, предоставляемый интернет-провайдером, и DNS, предоставляемый сетью компании. Локальный DNS — это прокси-сервер, который перенаправляет DNS-запросы в сеть DNS. Если требуемая запись уже существует в локальном DNS, то есть соответствующая запись DNS найдена в локальном кэше DNS, она будет возвращена напрямую, а последующие шаги будут пропущены.
2. Если на локальном DNS-сервере нет соответствующей записи, запрос будет перенаправлен на корневой DNS-сервер. Корневой DNS-сервер разрешает только домен верхнего уровня, например «www.baidu.com», а корневой DNS-сервер просматривает только часть com.
3. Корневой DNS-сервер возвращает IP-адрес DNS-сервера верхнего уровня.
4. DNS-сервер домена верхнего уровня хранит каталог доменного имени второго уровня.
5. DNS-сервер верхнего уровня возвращает IP-адрес авторитетного DNS-сервера.
6. Сохраняйте определенные записи DNS на авторитетном DNS-сервере.
7. Авторитетный DNS-сервер возвращает записи DNS на локальный DNS-сервер.
8. Локальный DNS-сервер возвращает клиенту определенные записи DNS.
О кэшировании
Каждый из вышеперечисленных шагов на самом деле имеет структуру кэширования. Кроме того, операционная система, маршрутизатор и локальный DNS-сервер также кэшируют. Поэтому в большинстве случаев запрос не достигнет корневого DNS-сервера.
Если взять в качестве примера Baidu, то если в определенный момент пользователь в той же области запускает процесс 1-8, другой пользователь в той же области может получить записи DNS на локальном DNS-сервере, не обращаясь к корневому DNS-серверу. называется стратегией иерархического кэширования.
Стратегия иерархического кэширования: каждый уровень будет кэшироваться после слоя за слоем, в конечном итоге будут затронуты корневая служба DNS и DNS-сервер верхнего уровня. От авторитетного DNS-сервера будет очень мало запросов.
DNS-записи
Пример DNS-записи
Определите www.example.comIP-адрес
www.example.com В 139.18.28.5;
Это всего лишь DNS-запись,Простой текст. IN означает запись для Интернета,Аббревиатура да Интенетиз. Ада запись типа,Запись A представляет собой запись анализа адреса IPv4.,Представляет связь между именем домена и адресом IPv4. Из этой записи мы знаем IP-адрес www.example.com 139.18.28.5.
CNAMEда используется для определения псевдонима доменного имени, например следующих DNS-записей.
; Определите www.example.com как псевдоним
a.example.com. IN CNAME b.example.com.
Эта DNS-запись определяет a.example.com. да b.example.com псевдоним. Введите a.example.com в браузер. время, через DNS Запрос будет знать a.example.com да b.example.com псевдоним, поэтому фактическое IP Когда придет время, я пойду за ним b.example.com из A Записывать. Основная функция — сопоставить одно доменное имя с другим доменным именем. Время разрешения доменного имени,Если вы видите запись CNAME,Запрос будет перезапущен с цели сопоставления.