Использование публичных DNS-серверов
Вопрос: Какие нужно выполнить настройки на Keenetic, чтобы определение адресов доменных имён в Интернете осуществлялось не через предоставленные провайдером DNS-серверы, а через общедоступные публичные DNS-сервера?
В сети Интернет доступ к узлам может осуществляться по их адресам (например, 2.11.115.99
) либо соответствующим доменным именам, таким как keenetic.ru
. Соответствие между доменными именами и их адресами хранится в иерархической структуре службы доменных серверов (DNS-серверов). Обычно интернет-провайдер автоматически предоставляет своим пользователям собственный доменный сервер, однако в некоторых случаях может потребоваться использовать так называемые публичные серверы, расположенные в сети Интернет и доступные всем её пользователям.
В KeeneticOS модуль, отвечающий за работу службы доменных имён (DNS Proxy), агрегирует полученные от провайдера и настроенные вручную адреса серверов DNS в соответствии с указанными зонами (интерфейсами) и отправляет запрос на определение адреса доменного имени наиболее подходящему из них. Если адрес для доменного имени уже был определён в результате полученного ранее запроса, он может хранится в кэше устройства, что обеспечивает ускорение повторного отклика сайтов.
Далее рассмотрим настройки интернет-центра Keenetic, которые можно выполнить для использования DNS-серверов в сети Интернет.
Использование публичных серверов DNS непосредственно компьютерами, подключенными к интернет-центру
Существует два варианта такой настройки — на компьютерах домашней сети или в интернет-центре.
На компьютере выполняется ручная настройка параметров протокола IP и требуемые адреса серверов DNS указываются в конфигурации сетевого интерфейса, например как на приведенном ниже скриншоте, — интерфейс компьютера получит IP-адрес и адрес шлюза по умолчанию от интернет-центра автоматически, но использовать в качестве DNS-сервера будет не его, а адреса серверов публичного провайдера SafeDNS.
Такой способ может быть неудобен, когда необходимо выполнить настройки на большом количестве устройств в сети или когда к интернет-центру подключаются всякий раз разные устройства, для которых требуется обеспечить одинаковые условия доступа.
Можно указать нужные публичные адреса DNS-серверов в веб-конфигураторе интернет-центра на странице "Домашняя сеть" в разделе "Параметры IP" в настройках DHCP, и при подключении компьютеров к его сети настройка будет выполнена в автоматическом режиме.
Следует отметить, что при использовании публичных DNS-серверов непосредственно на компьютерах невозможно будет получить доступ к интернет-центру по имени my.keenetic.net, а также воспользоваться преимуществами кэширования DNS-запросов на интернет-центре, автоматического выбора оптимального сервера и другими функциями DNS Proxy.
Указание на интернет-центре публичных серверов DNS вместо предоставленных провайдером
Такая настройка позволит отказаться от использования серверов провайдера, заменив их любыми подходящими для конкретного варианта использования адресами публичных серверов DNS. Настройка проходит в два шага.
Шаг 1. Отключение использования серверов провайдера.
Иногда провайдеры предоставляют адреса собственных серверов DNS для включения их в конфигурацию вручную. В таком случае нужно будет удалить указанные в параметрах подключения адреса серверов DNS. Например, в веб-конфигураторе на странице "Ethernet" ("Проводной") в разделе "Параметры IP и DNS" в полях "DNS 1" и "DNS 2" удалите сервера.
Важно
При выходе в сеть Интернет с использованием авторизации, например типа 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".
Для задания серверов общего назначения, которые будут использоваться при работе в сети Интернет, не нужно заполнять поле "Домен" и менять значение по умолчанию поля "Подключение". Через 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.org, www.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-модем, в команде используйте тот интерфейс, через который осуществляется подключение к Интернету.
Нужно обязательно учитывать регистр букв при использовании имени интерфейса в командах. Например, имена интерфейсов ISP
, PPTP0
, L2TP0
нужно указывать только большими (прописными) буквами, а интерфейсы 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"