В какой момент в процессе запроса DNS вступает в игру? Правильный ли логический поток ниже? Если да, то где в этом процессе DNS-сервер вызывается для перевода google.com в 216.68.248.42? (Или я полностью недопонимаю, и у каждого маршрутизатора есть список пар значение имя_домена / ключ IP или что-то в этом роде)

  1. Компьютер выдает пакеты с адресом "google.com".
  2. Пакеты отправляются на локальный маршрутизатор и пересылаются на интернет-провайдера.
  3. Пакеты, пересылаемые через маршрутизаторы ISP в сеть ISP (КАК? Похоже, что IP еще не существует, просто "google.com").
  4. Пакеты перемещаются по сети провайдера и, возможно, переходят на другой IPS
  5. Пакеты прибывают в пункт назначения.
  6. Ответные пакеты отправляются обратно на IP-адрес эмитента.

Нигде в этих шагах я не вижу «DNS-сервер запрашивает IP-адрес google.com» (что задает этот вопрос / выполняет звонок?). Более того, если я tracert на google.com, я нигде не увижу DNS.

Итак, на каком этапе `google.com 'становится 216.68.248.42?

3 ответа3

7

DNS очень похож на телефонную книгу - вы просматриваете номер перед звонком; аналогично, ОС ищет адреса для google.com перед отправкой каких-либо пакетов, и в тот момент, когда IP-пакет "выдан" и достигает первого маршрутизатора, в заголовке уже есть необработанные IP-адреса.

Таким образом, маршрутизаторам вообще не приходится иметь дело с доменными именами - маршрутизация остается полностью отдельной от "доменных имен", и один из них может быть улучшен или заменен без влияния на другие.

Сами DNS-запросы также являются обычными IP-пакетами (в частности, UDP-порт 53) и подчиняются той же IP-маршрутизации. Весь процесс выглядит примерно так:

  1. Программа хочет подключиться к www.google.com:80 через TCP.
  2. Программа просит библиотеку DNS ОС разрешить www.google.com список IP-адресов.
  3. Библиотека DNS использует функции ОС для отправки UDP-пакета «DNS-запрос» на предварительно настроенный DNS-сервер.
  4. Пакет DNS-запроса маршрутизируется, как описано в шагах 2–6.
  5. Библиотека DNS получает ответный пакет.
  6. Программа получает список IP-адресов.
  7. Программа использует функции ОС для установления TCP-соединения с одним из полученных адресов.
  8. Пакеты TCP также маршрутизируются, как описано в шагах 2–6.

Что касается того, как получить начальный адрес DNS-сервера (для использования на шаге 3):

  • Встроенный распознаватель "заглушки" вашей ОС использует только один сервер (например, вашего интернет-провайдера или общедоступный, например, Google, «8.8.8.8») и выполняет всю работу - этот адрес сервера можно настроить вручную или получить через DHCP с роутера. В Windows на том же экране "Конфигурация IP" есть поле для DNS-серверов. В Linux это /etc/resolv.conf .

  • "Рекурсивные" распознаватели вашего интернет-провайдера сами выполняют полный процесс поиска, поэтому они начинают со встроенного списка корневых серверов имен в Интернете и преследуют делегирования (root → com → google.com).

3

Перед шагом 1 - читаемый человеком адрес преобразуется в IP либо с помощью поиска DNS на удаленном DNS (путем рекурсивного запроса предварительно определенного набора DNS-серверов и запроса «кто отвечает за google.com »), либо путем запроса локального кэша. Затем пакеты отправляются на IP с несколькими отметками (в зависимости от того, что именно вы хотите от google.com)

3

Система доменных имен (DNS) - это распределенная система для преобразования понятных человеку доменных имен (например, example.com) в IP-адреса (например, 192.0.2.1), которые можно использовать для подключения к реальным серверам. По сути, это телефонная книга Интернета и жизненно важный компонент инфраструктуры Интернета.

Интернет содержит большое количество DNS-серверов. Большинство людей используют серверы, предоставляемые их провайдером, хотя их системы и домашние сети можно легко настроить для использования альтернативной службы DNS, такой как Google Public DNS (8.8.8.8 и 8.8.4.4). При наличии соответствующего серверного программного обеспечения можно также разместить собственный DNS-сервер.

Когда вы заходите на определенный веб-сайт, ваш браузер (обычно через операционную систему вашего устройства) запрашивает DNS-сервер, чтобы получить IP-адрес, которому соответствует домен, а затем подключается к серверу с помощью этого IP-адреса. Если имя домена не зарегистрировано, правильно спроектированный DNS-сервер должен вернуть NXDOMAIN (несуществующий домен), хотя многие DNS-серверы, запускаемые провайдером, по умолчанию возвращают страницу поиска, спонсируемую рекламой. Большинство систем кэшируют результаты поиска DNS, поэтому им не нужно повторно запрашивать у сервера один и тот же адрес веб-сайта.

Поскольку DNS имеет жизненно важное значение для доступа к веб-сайтам в Интернете, злоумышленники пытаются отключить систему с помощью DDoS-атак. В качестве примера того, насколько важен DNS, терабитная атака DDOS на главного поставщика DNS Dyn 21 октября 2016 года сделала большое количество крупных веб-сайтов, от Amazon до Yelp, недоступным для значительной части населения США.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .