Skip to main content

Руководство пользователя

Использование публичных DNS-серверов

Вопрос: Какие нужно выполнить настройки на Keenetic, чтобы определение адресов доменных имён в Интернете осуществлялось не через предоставленные провайдером DNS-серверы, а через общедоступные публичные DNS-сервера?

В сети Интернет доступ к узлам может осуществляться по их адресам (например, 2.11.115.99) либо соответствующим доменным именам, таким как keenetic.ru. Соответствие между доменными именами и их адресами хранится в иерархической структуре службы доменных серверов (DNS-серверов). Обычно интернет-провайдер автоматически предоставляет своим пользователям собственный доменный сервер, однако в некоторых случаях может потребоваться использовать так называемые публичные серверы, расположенные в сети Интернет и доступные всем её пользователям.

В KeeneticOS модуль, отвечающий за работу службы доменных имён (DNS Proxy), агрегирует полученные от провайдера и настроенные вручную адреса серверов DNS в соответствии с указанными зонами (интерфейсами) и отправляет запрос на определение адреса доменного имени наиболее подходящему из них. Если адрес для доменного имени уже был определён в результате полученного ранее запроса, он может хранится в кэше устройства, что обеспечивает ускорение повторного отклика сайтов.

Далее рассмотрим настройки интернет-центра Keenetic, которые можно выполнить для использования DNS-серверов в сети Интернет.

Использование публичных серверов DNS непосредственно компьютерами, подключенными к интернет-центру

Существует два варианта такой настройки — на компьютерах домашней сети или в интернет-центре.

  1. На компьютере выполняется ручная настройка параметров протокола IP и требуемые адреса серверов DNS указываются в конфигурации сетевого интерфейса, например как на приведенном ниже скриншоте, — интерфейс компьютера получит IP-адрес и адрес шлюза по умолчанию от интернет-центра автоматически, но использовать в качестве DNS-сервера будет не его, а адреса серверов публичного провайдера SafeDNS.

    using-public-DNS-01-en.png

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

  2. Можно указать нужные публичные адреса DNS-серверов в веб-конфигураторе интернет-центра на странице "Домашняя сеть" в разделе "Параметры IP" в настройках DHCP, и при подключении компьютеров к его сети настройка будет выполнена в автоматическом режиме.

    using-public-DNS-02-en.png

    Следует отметить, что при использовании публичных DNS-серверов непосредственно на компьютерах невозможно будет получить доступ к интернет-центру по имени my.keenetic.net, а также воспользоваться преимуществами кэширования DNS-запросов на интернет-центре, автоматического выбора оптимального сервера и другими функциями DNS Proxy.

Указание на интернет-центре публичных серверов DNS вместо предоставленных провайдером

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

Шаг 1. Отключение использования серверов провайдера.

Иногда провайдеры предоставляют адреса собственных серверов DNS для включения их в конфигурацию вручную. В таком случае нужно будет удалить указанные в параметрах подключения адреса серверов DNS. Например, в веб-конфигураторе на странице "Ethernet" ("Проводной") в разделе "Параметры IP и DNS" в полях "DNS 1" и "DNS 2" удалите сервера.

using-public-DNS-03-en.png

Важно

При выходе в сеть Интернет с использованием авторизации, например типа PPTP/L2TP/PPPoE, обратите внимание на предоставленные провайдером реквизиты. Если в них присутствует адрес сервера в формате доменного имени, например internet.operator.com, нельзя отключать DNS-сервера на подключении, использующемся для установления соединения авторизации, — обычно это подключение "Ethernet" ("Проводной"), так как это может сделать невозможным определение адреса сервера, предоставляющего доступ к Интернет. Посмотрите Примечание 1 к данной статье.

Примечание

Начиная с версии KeeneticOS 3.1 в веб-конфигураторе можно включить опцию для игнорирования (отключения) DNS-серверов, автоматически получаемых от провайдера.

Подробную информацию вы найдете в инструкции "Игнорировать DNS провайдера".

Также убрать из конфигурации DNS Proxy серверы DNS, полученные от провайдера автоматически, можно через интерфейс командной строки (CLI) интернет-центра:

— Интерфейсы типа IPoE. В таких интерфейсах для получения адресов серверов DNS используется протокол DHCP (Dynamic Host Configuration Protocol, набор правил динамической настройки узла). Выключить настройку для интерфейса с именем ISP (это преднастроенный в интернет-центре интерфейс для WAN-подключения Ethernet) можно так:

(config)> interface ISP
(config-if)> ip dhcp client no name-servers
Dhcp::Client: ISP DHCP name servers are disabled.

В этом случае DNS-адрес, полученный от интернет-провайдера, исчезнет из списка DNS-серверов.

Для обратного включения возможности получения DNS-сервера на интерфейсе ISP выполните команды:

(config)> interface ISP
(config-if)> ip dhcp client name-servers
Dhcp::Client: ISP DHCP name servers are enabled.

— Интерфейсы с авторизацией (PPTP/L2TP/PPPoE). Параметры IP в интерфейсах этого типа обычно передаются с сервера по протоколу IPCP (Internet Protocol Control Protocol, управляющий протокол Интернета). Для того чтобы отключить получение адресов DNS-серверов от провайдера на таком интерфейсе, нужно перейти к его настройкам при помощи команды interface {имя_интерфейса} и выполнить ipcp no name-servers. Например, для интерфейса PPTP0 команды могут выглядеть следующим образом:

(config)> interface PPTP0
(config-if)> ipcp no name-servers
Not using remote name servers.

— Модемные интерфейсы. В случае использования сотовой сети через USB-модем, в зависимости от типа (режима) его подключения в устройстве, адреса DNS-серверов могут быть назначены как по DHCP (для модемов, работающих в режиме эмуляции порта Ethernet, либо NDIS), так и по IPCP (для RAS-подключений). Для выполнения настройки нужно в командной строке перейти к управлению соответствующим интерфейсом и дать команду, отвечающую типу модема.

— Для QMI-модемов используйте команды:

(config)> interface UsbQmi0
(config-if)> mobile no name-servers
UsbQmi::Interface: "UsbQmi0": automatic name servers via QMI are disabled.

— Если требуется отключить использование серверов DNS, предоставленных в подключении типа OpenVPN, в конфигурацию этого подключения нужно добавить строку:

pull-filter ignore "dhcp-option DNS"

Проверить успешность отключения полученных автоматически от провайдера DNS-серверов можно, сверив содержимое файла конфигурации модуля DNS Proxy. Для этого дайте устройству команду:

(config)> more temp:ndnproxymain.conf
rpc_port = 54321
rpc_ttl = 30000
rpc_wait = 10000
timeout = 7000
bantime = 300000
proceed = 500
ban_threshold = 3
stat_file = /var/ndnproxymain.stat
stat_time = 10000
static_a = my.keenetic.net 78.47.125.180

В отображенном выводе не должно быть записей dns_server.

Шаг 2. Указание требуемых адресов серверов вручную.

Эту операцию можно выполнить через веб-конфигуратор устройства на странице "Интернет-фильтр" в разделе "Серверы DNS".

using-public-DNS-04-en.png

Для задания серверов общего назначения, которые будут использоваться при работе в сети Интернет, не нужно заполнять поле "Домен" и менять значение по умолчанию поля "Подключение". Через CLI адреса DNS-серверов можно указать, используя команду:

(config)> ip name-server {server address}

Более подробно её формат описан в Справочнике командного интерфейса Keenetic (справочник можно найти в разделе Центр загрузки).

После указания адресов DNS-серверов файл конфигурации DNS Proxy примет вид:

(config)> more temp:ndnproxymain.conf
rpc_port = 54321
rpc_ttl = 30000
rpc_wait = 10000
timeout = 7000
bantime = 300000
proceed = 500
ban_threshold = 3
stat_file = /var/ndnproxymain.stat
stat_time = 10000
dns_server = 195.170.55.1 .
dns_server = 141.1.27.249 .
dns_server = 80.252.130.254 .
dns_server = 141.1.1.1 .
static_a = my.keenetic.net 78.47.125.180

Просмотреть информацию об используемых в текущий момент серверах DNS можно при помощи команды:

(config)> show ip name-server

server: 
 address: 192.168.100.1
 port: 
 domain: 
 global: 65522

Примечание 1

Конфигурации сетей отличаются у различных провайдеров доступа. Отключение автоматического получения адресов DNS-серверов в известных случаях может привести к неработоспособности туннельных подключений, сбоям в работе дополнительных услуг и пр. Перед тем как отключать использование серверов DNS, предоставленных вашим провайдером, убедитесь что в настройках отсутствуют доменные имена серверов, авторизующих ваше подключение. В противном случае следует уточнить, возможно ли использовать вместо имени сервера его IP-адрес. Для самостоятельного определения адреса сервера авторизации можно использовать программу nslookup (встроенная в операционных системах Windows), например:

$> nslookup vpn.myisp.com
Server:  UnKnown
Address:  192.168.1.1
Non-authoritative answer:
Name:    vpn.myisp.com
Addresses:  208.48.81.134
          64.15.205.100
          64.15.205.101
          208.48.81.133

В приведенном выше примере имя сервера указывает на несколько адресов, в этом случае рекомендуем уточнить у провайдера какой из них можно явно указать на вашем подключении.

Примечание 2

Использование публичных серверов DNS, в особенности при указании их в настройках DNS Proxy на интернет-центре, может в некоторых случаях понизить время отклика ресурсов в сети Интернет. На это могут влиять разнообразные факторы: место расположения серверов относительно точки выхода в Интернет вашего подключения, ширина и загруженность каналов, ведущих к этим серверов, время суток и прочие.

Некоторые публичные серверы DNS приведены в списках на сайтах: WikiLeaks.orgwww.lifewire.com. Пользовательскую подборку публичных серверов можно посмотреть в блоге theos.in.

Для определения наиболее подходящих серверов среди доступных можно воспользоваться специализированными программами, такими как, например, DNS Benchmark.

Примечание 3

При использовании публичных серверов DNS возможны проявления некорректного поведения при работе браузеров и других использующих подключение к сети Интернет программ. Также не рекомендуем использовать информацию из данной статьи для неправомерных задач.

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

Примечание 4

На сайте http://www.whatsmydnsserver.com/ или https://www.dnsleaktest.com можно запустить онлайн-тест, помогающий определить, через какой DNS-сервер проходят ваши запросы.

Примечание 5

При использовании интернет-фильтров, таких как Яндекс.DNS, SkyDNS, AdGuard DNS и т.п. необходимо учитывать, что при отключении получаемых от провайдера и отсутствии добавленных вручную адресов DNS-серверов, сам Keenetic и устройства домашней сети с профилем интернет-фильтра "Без фильтрации" не смогут разрешать доменные имена. В частности Keenetic не сможет определить наличие Интернета, и соответствующий индикатор будет всегда погашен. В тоже время устройства домашней сети с профилем отличным от "Без фильтрации" смогут разрешать имена, используя DNS-адреса используемого интернет-фильтра.

Примечание 6

Чтобы отключить DNS-сервера от провайдера по протоколу IPv6, в интерфейсе командной строки (CLI) интернет-центра выполните команду:

(config)> no interface ISP ipv6 name-servers auto 
Ip6::Nd::Node: Ignore name servers provided by the interface network.
(config)> system configuration save
Core::ConfigurationSaver: Saving configuration...

Мы привели пример для подключения IPoE (Ethernet, Проводной, ISP). Если вы используете подключение с авторизацией (PPPoE, PPTP, L2TP) или через USB-модем, в команде используйте тот интерфейс, через который осуществляется подключение к Интернету.

Нужно обязательно учитывать регистр букв при использовании имени интерфейса в командах. Например, имена интерфейсов ISPPPTP0L2TP0 нужно указывать только большими (прописными) буквами, а интерфейсы PPPoE0 или UsbModem0 содержат как прописные, так и строчные буквы.

Для добавления IPv6 DNS выполните команды:

(config)> ipv6 name-server 2606:4700:4700::1111
Dns::Manager: Name server 2606:4700:4700::1111 added, domain (default).
(config)> system configuration save
Core::ConfigurationSaver: Saving configuration...

В нашем примере добавлен публичный DNS-сервер от компании Cloudflare.

Примечание 7

Добавить публичные DNS-серверы в Keenetic можно в разных пунктах меню веб-конфигуратора. Подробная информация представлена в статье: "Описание разных способов добавления дополнительных серверов DNS"