Для локального хоста, подключенного к маршрутизатору, когда локальный хост пытается получить доступ к внешнему веб-сайту, существует ли внутренний маршрутизатор, который анализирует URL-адрес, или он будет перенаправлен на внешний DNS?
4 ответа
"Это зависит."
Точнее, это зависит от того, есть ли в маршрутизаторе DNS-сервер какого-либо типа. Некоторые большие маршрутизаторы имеют полный DNS-сервер; другие имеют простой кеширующий сервер; третьи вообще не имеют DNS-сервера. Проверьте руководство вашего маршрутизатора, чтобы увидеть, какой он имеет, если таковые имеются.
Если у маршрутизатора нет сервера, все DNS-запросы будут перенаправлены на внешний DNS-сервер для разрешения (обычно настраиваемого вашим провайдером).
Если маршрутизатор имеет сервер DNS, он будет пытаться разрешить имя хоста. Если он не знает ответа, он будет рекурсивно переадресовывать запрос в восходящем направлении на более авторитетные DNS-серверы, пока не получит окончательный ответ.
DNS - это огромный список серверов и соответствующих им IP-адресов, который постоянно обновляется. Насколько мне известно, ни один маршрутизатор не содержит такой службы, поскольку это потребовало бы много обработки и некоторой памяти. Ваш маршрутизатор просто использует DNS-сервер, о котором он спрашивает.
Как вы знаете, когда компьютеру необходимо разрешить хост по IP-адресу, ему необходимо связаться с DNS-сервером для запроса имени хоста (если только он каким-то образом уже не знает свой IP-адрес, то есть запись в файле hosts
). Этот процесс происходит очень быстро, хотя может быть много шагов в зависимости от того, как настроена ваша сеть или сеть.
По умолчанию, когда вы включаете маршрутизатор, он запрашивает у вашего интернет-провайдера IP-адрес, вероятно, с использованием протокола DHCP. Когда DHCP-сервер вашего интернет-провайдера отвечает, он отправляет не только IP-адрес, назначенный вашему маршрутизатору, но и список DNS-серверов, размещенных в их сети. Теперь ваш маршрутизатор может преобразовывать имена хостов в IP-адреса, запрашивая те DNS-серверы, но как насчет компьютеров в вашей LAN
которые находятся за маршрутизатором?
Когда вы запускаете компьютер, вероятно, снова использующий протокол DHCP , он запросит IP-адрес. Ваш маршрутизатор ответит IP-адресом, но вместо отправки DNS-серверов вашего интернет-провайдера он отправит себя (IP-адрес на своем интерфейсе LAN
) в качестве DNS-сервера, который будет использоваться вашим компьютером.
Теперь, когда вы вводите http://google.com
в браузер, вашему компьютеру необходимо преобразовать имя хоста google.com
в IP-адрес, чтобы он мог отправлять запросы на удаленные серверы. Чтобы сделать это, сначала он проверяет, разрешил ли он недавно google.com
и сохраняется ли он где-нибудь на локальном компьютере, поскольку восстановление IP-адреса из ОЗУ или локального хранилища, скорее всего, будет быстрее, чем запрос DNS-сервера. Если он больше не кэшируется локально, он запрашивает DNS-сервер вашего маршрутизатора.
Та же процедура выполняется вашим маршрутизатором: если он недавно разрешил google.com
, он отвечает на ваш компьютер тем, что он кэшировал. Если google.com
не разрешен недавно, он запрашивает DNS-серверы вашего интернет-провайдера, которые являются внешними серверами.
Чтобы прямо ответить на ваш вопрос: Да, при попытке перейти на веб-сайт по его имени хоста, если ваш компьютер уже не знает свой IP-адрес каким-либо другим способом, некоторые (или многие) внешние DNS-серверы будут запрашиваться для разрешения этого имени хоста на IP-адрес.
Примечание. Выше приведен очень упрощенный план, и его следует рассматривать как таковой. Процесс может отличаться в зависимости от настройки сети и компьютера, пытающегося определить имя хоста. Для получения дополнительной информации о DNS и о том, как работает протокол, вы можете начать с проверки записи в Википедии о DNS и / или проведения дальнейших исследований.
Система DNS предназначена для распространения. Каждый уровень может иметь "Начало авторитета", которое гласит: «Я определяю, что происходит на этом уровне». Уловки DNS могут включать балансировку нагрузки, аварийное переключение, геобалансирование и множество других забавных вещей. Таким образом, ваш роутер определенно НЕ квалифицирован, чтобы знать все в Интернете.
Таким образом, он перенаправляет ваши запросы на другие серверы, как определено в протоколе DNS. Ваш маршрутизатор может заставить DNS-серверы пересылать данные из протокола конфигурации, такого как DHCP, или вы можете установить его / их вручную.
У вашего роутера может быть кеш DNS, так что, скажем, вы не выполняете поиск на facebook.com на каждой веб-странице, но это всего лишь кеш. Для заполнения этих записей в кэше все еще необходимо подключиться к реальным DNS-серверам Facebook.