Вопрос или проблема
Есть ли у роутеров DNS-сервер?
Я знаю, что Windows 10 кэширует DNS-запросы, и вы можете увидеть это с помощью команды ipconfig /displaydns.
У меня есть сомнение, есть ли у некоторых маршрутизаторов и маршрутизаторов SOHO (для малого офиса/домашнего офиса) встроенный DNS-сервер.
Если это так, то я предполагаю, что этот DNS-сервер будет просто еще одним кэшем, подобным тому, что есть в Windows, или он более продвинутый? Я предполагаю, что он просто кэширует разрешения имен и перенаправляет все остальные запросы на вышестоящий DNS-сервер (обычно это DNS-сервер вашего интернет-провайдера). Поэтому это отличается от DNS-сервера вашего интернет-провайдера, поскольку этот базовый DNS-сервер не включает подсказки корня для 13 корневых серверов и т. д.
Я был бы признателен за разъяснения.
У меня есть сомнение, есть ли у некоторых маршрутизаторов и маршрутизаторов SOHO встроенный DNS-сервер.
Да, у большинства маршрутизаторов SOHO есть встроенный DNS-сервер, который выступает в роли кэша. Однако это не обязательная функция “маршрутизатора” — корпоративные сети обычно запускают свой DNS на отдельной системе.
Если это так, то я предполагаю, что этот DNS-сервер будет просто еще одним кэшем, подобным тому, что есть в Windows… или это более продвинутый DNS-сервер?
Это зависит от продукта. Говоря о маршрутизаторах SOHO, встроенный DNS-сервер маршрутизатора почти всегда является только кэш-прокси, а фактическое разрешение имен основано на перенаправлении запросов на вышестоящий резолвер; без использования подсказок корня.
Помимо этого, довольно распространено, что маршрутизатор является авторитетным для некоторого “локального” домена (например, .lan
, .home
или .dlink
), который включает имена хостов для ваших локальных сетевых устройств. Это интегрируется с DHCP-сервисом маршрутизатора, собирая имена хостов, которые устройства предоставляют в своих запросах на аренду. Он может даже поддерживать статические записи, хотя в маршрутизаторах SOHO это редко больше, чем одна ‘A’ запись на имя.
Тем не менее, он не будет запускать программное обеспечение “полного” DNS-сервера — даже если большинство маршрутизаторов SOHO основаны на Linux, не ожидайте найти там BIND или Unbound. В лучшем случае, если вам повезет, он будет запускать dnsmasq, или пользовательский DNS-кэш от производителя, если повезет меньше.
Некоторые имеют, некоторые нет.
Маршрутизация и поиск DNS — это две совершенно отдельные операции, поэтому они могут выполняться как две службы на одном устройстве, или как две службы на двух разных устройствах.
(То же самое касается большинства сетевых функций — например, межсетевой экран или службы аутентификации/доступа пользователей, которые отслеживают, к чему пользователь может получить доступ.)
Интегрированная локальная служба DNS полезна для таких вещей, как локальная сеть устройств и поиск, хотя некоторым типам устройств эта функция не нужна, и это не помешает ее добавить. В худшем случае она может выступать в роли кэша.
На более мелких и домашних маршрутизаторах обычно включены какие-то базовые другие службы, потому что домашние пользователи обычно не хотят покупать 3 устройства, когда одно может справиться с задачей.
Но если вы планируете приобретение отдельных устройств как предприятие, то, вероятно, это не то, что вам нужно. Вы разделяете их для безопасности, надежности и отзывчивости (вы можете иметь несколько экземпляров каждой службы с резервным переключением/раунд-робином, в том числе удаленно), проектирования сети и удобства обслуживания/эксплуатации.
Ответ таков: это зависит!
Причина этого в том, что некоторые маршрутизаторы просто перенаправляют запрос на другой сервер. Некоторые имеют установленный dnsmasq или bind и разрешают и кэшируют запросы самостоятельно. Это также может быть любое другое стандартное программное обеспечение, установленное на устройствах, которые отвечают и кэшируют или просто отвечают на запросы.
На этот вопрос нельзя ответить однозначно, потому что производитель и устройство не указаны. Также может случиться так, что один и тот же производитель использует разные службы для своих собственных продуктов.
Большинство домашних маршрутизаторов также являются настоящими DNS-серверами. (Хотя очень простыми: они обычно лучше всего обрабатывают перенаправление запросов “вверх” к серверам интернет-провайдера и, как правило, предоставляют небольшое количество недалеко расположенных кэшированных значений. Но это все равно считается “DNS-сервером”.)
Поскольку многие домашние маршрутизаторы основаны на Linux, немало из них действительно запускают распространенные программные обеспеченные реле DNS, такие как Unbound или Dnsmasq, хотя у других есть индивидуальные реализации различного качества.
Таким образом, когда ваш ноутбук отправляет DNS-запрос на ваш маршрутизатор, внутренний DNS-сервер маршрутизатора сначала проверяет, может ли он быть ответом из локального кэша, и если нет, перенаправляет его на более успешные DNS-серверы вашего интернет-провайдера.
(Ваш компьютер не обязательно должен обращаться к DNS-серверам интернет-провайдера одновременно или вообще. Ответы DNS обычно не содержат никаких специфических для ISP данных.)
В типичной домашней настройке ваш компьютер даже не знает DNS-сервера вашего интернет-провайдера. Маршрутизатор получает адрес DNS-сервера интернет-провайдера, вероятно, по какому-то протоколу после установки соединения, или, возможно, путем конфигурации вместе с другими данными от интернет-провайдера (или вы можете настроить его на использование совершенно другого DNS-сервера). У маршрутизатора есть собственный DNS, который перенаправляет запросы на сервер интернет-провайдера (или на тот, что вы настроили). Когда ваш компьютер подключается к маршрутизатору, маршрутизатор скажет компьютеру через DHCP, какой DNS-сервер использовать, и это будет внутренний DNS-сервер маршрутизатора. Снова, вы можете настроить свой компьютер игнорировать это и использовать другой DNS-сервер по своему выбору.
Что маршрутизатор не будет делать, так это перехватывать DNS-запрос, направленный на другой DNS-сервер, и предоставлять вам кэшированный ответ.
Важно понять, что разрешение DNS включает распределенную сеть кэшей.
Как уже упоминали другие, маршрутизаторы, ориентированные на дом или малый офис, обычно имеют встроенный DNS-сервер. Большинство таких маршрутизаторов работают на операционной системе Linux, и большинство из них используют dnsmasq для предоставления DNS-услуг.
Эти маршрутизаторы, как правило, работают в режиме перенаправления, хотя может быть опция работы в рекурсивном режиме.
В любом из случаев серверы поддерживают локальный кэш. Если запрос кэшируется и запись действительна, они возвращают кэшированное значение.
Они различаются тем, как они действуют, когда у них нет действительной кэшированной записи. В этом случае серверы в режиме перенаправления и рекурсивные серверы запрашивают другой DNS-сервер в поисках ответа, но каждый использует свою стратегию.
Сервер DNS в режиме перенаправления будет запрашивать один из DNS-серверов, к которым он был настроен. Результат этого запроса будет возвращен клиенту и кэширован.
Рекурсивный сервер DNS, наоборот, сделает серию запросов. Сначала он проконсультируется с одним из корневых серверов. Эти серверы не могут разрешить полностью квалифицированное доменное имя, но могут направить рекурсивный сервер на серверы, которые находятся в лучшей позиции для этого. Таким образом, рекурсивный сервер запрашивает корневые серверы список серверов, которые могут ответить на запросы для соответствующего доменного уровня (например, .com, .org, .uk…). Как только он получает ответ, он запрашивает один из них, чтобы узнать имена серверов, которые могут ответить на вопросы о домене (например, superuser). Затем он делает запрос именам серверов Google, чтобы получить IP-адрес имени хоста (например, www или корень домена).
Эта цепочка запросов не обязательно инициируется каждым DNS-запросом, поскольку результаты каждого запроса на каждом уровне кэшируются. Запросы к именам серверов .com, например, кэшируются на день.
Суть в том, что DNS кэшируется на каждом уровне.
Большинство маршрутизаторов допускают ввод DNS.
Вы можете найти в вашем маршрутизаторе, в разделе Сеть > DNS > Ввод DNS
- Добавить новую DNS-запись
Здесь hh.com — это поддельное доменное имя, к которому я хочу получить доступ со всех устройств в своей локальной сети. 192.168.1.255 — это сервер, к которому я хочу получить доступ, используя hh.com.
Вы также должны добавить виртуальный хост с именем hh.com в обоих файлах https-vhost.conf и httpd-ssl.conf, если используете apache, или добавить соответствующий блок server {} в nginx на сервер, имеющий ip 192.168.1.255.
Ответ или решение
Да, многие маршрутизаторы, особенно в сегменте SOHO (малый офис/домашний офис), имеют встроенный DNS-сервер, который в основном выполняет функции кэширования. Это не обязательная функция для маршрутизаторов, так как в корпоративных сетях DNS-сервисы часто размещаются на специализированных серверах, отделенных от маршрутизаторов из соображений безопасности и производительности.
В структуре маршрутизатора, его внутренний DNS-сервер в большинстве случаев действуют как кэш-прокси. Он принимает запросы на разрешение доменных имен от подключенных устройств и сначала проверяет, есть ли требуемая информация в локальном кеше. Если запрашиваемая запись найдена и является действительной, то маршрутизатор возвращает ответ, минуя дальнейшие запросы к внешним серверам. Если же необходимой информации в кеше нет, маршрутизатор перенаправляет запрос к "внешнему" DNS-серверу, обычно это сервер, предоставленный вашим интернет-провайдером. В этом случае маршрутизатор не использует корневые серверы DNS, а просто действует как посредник.
Кроме того, многие маршрутизаторы могут быть авторитетными для определенных локальных доменов, таких как .lan
или .home
. Это означает, что они могут хранить записи о локальных устройствах в вашей сети, интегрируя информацию с DHCP-сервисом. Это позволяет маршрутизатору запоминать имена хостов, которые устройства предоставляют в процессе запроса DHCP. В некоторых случаях может быть возможность добавления статических записей, позволяя пользователю создавать пользовательские DNS-записи для удобства сетевого администрирования.
Как правило, маршрутизаторы для домашних пользователей не имеют полного программного обеспечения для работы с DNS, подобного BIND или Unbound, однако они могут работать с более простыми программами, такими как dnsmasq. Эта программа предоставляет возможности кэширования и может также функционировать как DHCP-сервер, что делает настройку и управление сетью проще для пользователя.
Важно подчеркнуть, что в типичной домашней сети устройство (например, компьютер или смартфон) не знает о DNS-сервере провайдера. IP-адреса таких серверов в основном настраиваются на маршрутизаторе, который затем сообщает подключенным устройствам, каким DNS-сервером следует пользоваться, часто через DHCP. Пользователь может также вручную настроить свои устройства для использования других DNS-серверов, например, Google DNS или Cloudflare DNS.
Таким образом, встроенные DNS-серверы в маршрутизаторе полезны для кэширования запросов и упрощения локального сетевого взаимодействия, но они практически всегда действуют, полагаясь на другие DNS-серверы для разрешения более сложных запросов.