Что такое DNS, принципы работы DNS и почему домены начинают работать не сразу. Лучшие DNS серверы

Прежде всего необходимо сказать буквально несколько слов о том, что такое DNS и какое влияние это оказывает на скорость вашего подключения. Говоря совсем простыми словами, DNS (система доменных имён) — это система перевода адреса сайта с человеческого языка на язык компьютеров. То есть, когда вы набираете в адресной строке своего браузера адрес www.example.ru, то он сначала отправляется на специальный сервер, который по специальной базе данных находит адрес соответствующего компьютера и передает ему запрос. Отсюда становится понятно, какое большое значение имеет скорость работы этого сервиса на быстроту открытия страниц в вашем браузере.

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

В решении этой задачи нам поможет небольшая бесплатная утилита NameBench (Windows, Mac, Linux). Она может не только протестировать ваше текущее соединение, но и подобрать самый быстрый DNS-сервер именно для вашего расположения. Для этого она делает ряд тестов, результаты которых могут вас несколько удивить.

После скачивания и запуска программы (установка не требуется) перед вами предстанет окно, содержащее ряд опций. По умолчанию все установки уже выставлены и ничего трогать не нужно. Проверьте только, чтобы была правильно определена ваша страна и используемый для серфинга браузер. Вам необходимо только нажать кнопку Start Benchmark и запастись терпением. Программа полностью автоматически произведет ряд тестов и выдаст результат в виде веб-страницы.

Опа! Оказывается мой текущий сервис DNS почти наполовину медленнее, чем соответствующий сервис от компании Google. Здесь же мы видим все необходимые данные для правильной настройки подключения. Идем в свойства сетевого соединения, настраиваем как нужно протокол TCP/IPv4 и пытаемся ощутить разницу.

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

Иногда необходимо прописать DNS для компьютера с динамическим IP адресом. Простым путем для этого являются сервисы по типу dyndns , описанные в недавнем топике . Иногда такой подход работает достаточно плохо.

Напрмер в моей ситуации, провайдер иногда меняет мой публичный IP адрес. Это иногда случается обычно раз в несколько месяцев. Кроме того, мой домашний компьютер перезагружается крайне редко. За это время сервис dyndns, которым я пользовался ранее успевал пару раз прислать мне оповещения о неактивности с целью отключить «неиспользуемый» аккаунт. Перейти на вручную прописываемую DNS зону также не получается, потому что иногда адрес все же меняется. Причем обычно об этом узнаешь когда нужен доступ к домашнему компьютеру здесь и сейчас.

Для реализации описываемого метода понадобится сервер в интернете с DNS сервером bind на нем. А так же доменная зона, субдомен которой мы будем выделять для нашего компьютера. Описывается вариант с подключением Linux-компьютера к Linux-серверу. Для использования других операционных систем понадобится почитать мануалы и модифицировать некоторые шаги.

Итак:
1. Имеем установленный сервер bind9 с доменом server.org
2. Создаем зону client.server.org.zone:

$ORIGIN .
$TTL 10 ; 10 seconds
client.server.net IN SOA ns1.server.net. hostmaster.server.net. (
18 ; serial
10800 ; refresh (3 hours)
3600 ; retry (1 hour)
604800 ; expire (1 week)
10 ; minimum (10 seconds)
$TTL 3600 ; 1 hour
NS ns1.server.net.
NS ns2.server.net.
MX 10 client.server.net.

Здесь сервера ns1.server.net и ns2.server.net - DNS сервера для нашей зоны, client.server.net - адрес нашего домашнего компьютера

3. генерим ключи на клиенте:
client# cd /etc/namedb/keys
client# dnssec-keygen -b 512 -a HMAC-MD5 -v 2 -n HOST client.server.net.

4. Создаем фаил с ключем на сервере:
server# cd /var/named/chroot/etc
server# vim keys.conf:

Key client.server.net. {
algorithm "HMAC-MD5";
secret "omr5O5so/tZB5XeGuBBf42rrRJRQZB8I9f+uIIxxei8qm7AVgNBprxtcU+FQMzBvU/Y+nyM2xbs/C8kF3eJQUA==";
};

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

Выставляем права доступа к фаилу с ключами:
server# chmod 640 keys.conf
server# chown root:named keys.conf

5. добавляем нашу зону в named.conf:
include "/etc/keys.conf"
zone "client.server.net" {
type master;
file "zones/client.server.net";
allow-update{
key client.server.net;
};
};

Здесь прописан параметр, который позволяет обновлять данные зоны. Вообще, почитав мануалы, можно найти опции этого параметра, позволяющие обновлять только одну запись в зоне для данного ключа. Т.е можно иметь зону с прописанными в ней поддоменами client1, client2, etc. которые будут авторизоваться с ключами key1, key2, etc.

6. Перезапускаем DNS сервер:
server# /etc/init.d/named reload

7. Создаем на клиенте скрипт, который будет обновлять данные зоны:
#!/bin/bash
IFACE="wlan0"
TTL=3600
SERVER=ns1.example.com
HOSTNAME=foo.example.com
ZONE=example.com
KEYFILE=/root/ddns-keys/Kfoo.example.com.+157+12345.private

New_ip_address=`ifconfig $IFACE | grep "inet addr:" | awk "{print $2}" | awk -F ":" "{print $2}"`
new_ip_address=${new_ip_address/ /}

Nsupdate -v -k $KEYFILE << EOF
server $SERVER
zone $ZONE
update delete $HOSTNAME A
update add $HOSTNAME $TTL A $new_ip_address
send
EOF

В начале скрипта описаны соответствующие параметры: интерфейс, имена сервера и зоны, местоположение фаила с ключем.

8. Осталось только настроить автозапуск/автоматическую смену адреса при смене DNS.
Мы это сделаем при помощи скрипта для NetworkManager:
создадим фаил /etc/NetworkManager/dispatcher.d/20-dyndns.sh:
#!/bin/sh

Iface=$1
state=$2

If [ "x$state" == "xup" ] ; then
/etc/namedb/ddns-update
elif [ "x$state" == "xdown" ]; then
true
fi

Сделаем его исполняемым и принадлежащим пользователю root.

Запускаем-проверяем-пользуемся.

Upd: Если не работает - проверяем (устанавливаем) на сервере права named на записть в папку в которой лежит фаил client.server.org.zone
named будет создавать там фаил client.server.org.zone.jnl

Использованы следующие материалы.

ИВАН КОРОБКО, сертифицированный специалист MCP, автор более 50 статей и двух книг. Занимается созданием различных приложений для Active Directory

Домашний хостинг
Используем сервисы динамического DNS

Как обеспечить постоянный доступ к сетевым ресурсам, у которых периодически меняется IP-адрес.

В большинстве современных сетей TCP/IP используется служба DNS, главное назначение которой – сопоставлять простые для запоминания человеком имена типа company.com IP‑адресам. Без этой службы использование Интернета было бы весьма затруднительным, т.к. запомнить множество IP-адресов гораздо сложнее, чем ассоциирующиеся с контентом имена сетевых ресурсов. Похожим образом работают сервисы Dynamic DNS (Dynamic DNS, DDNS), которая позволяет назначать доменные адреса ресурсам, часто меняющим IP‑адрес. Для обновления изменившегося IP-адреса используется специальная программа, которая устанавливается на компьютере или включена в прошивку маршрутизатора.

Большинство xDSL-провайдеров предоставляет доступ в Интернет с помощью динамического IP-адреса, выделяемого из пула своих IP-адресов. При этом IP-адрес обычно меняется раз в 24 часа, по прошествии которых осуществляется разрыв существующей сессии с последующим ее восстановлением, при этом происходит обновление IР-адреса. Всвязи с этим ресурсы, находящиеся за маршрутизатором во внутренней сети (LAN), будут недоступны, т.к. теперь для обращения к ним IP-адрес неизвестен. Используя клиент службы DDNS, встроенный в большинство ADSL-модемов, добиваются сопоставления нового IP-адреса зарегистрированному доменному имени.

Сервисы Dynamic DNS в Интернете

В Интернете существует множество сайтов, бесплатно предоставляющих доменные имена с поддержкой DDNS. В настоящее время в мире существует несколько таких сервисов:

  • no-ip.com
  • tzo.com
  • dyndns.com
  • dyndns.dk
  • FreeDNS.afraid.org
  • ChangeIP.com

Список сервисов, из которых предстоит сделать выбор, ограничивается перечнем, находящимся на встроенном сайте ADSL-модема. Обычно он содержит один или два сайта. Этот список жестко записан в прошивку модема и может быть изменен только производителем (см. рис. 1).

Каждый из сервисов поддерживает несколько десятков доменных имен второго уровня, например dyndns.info, game-host.org, homeftp.net. Имя хоста пользователь определяет самостоятельно во время регистрации учетной записи на сервере.

Домены первого уровня

В настоящее время в Интернете серверы DDNS предоставляют домены второго уровня, при этом активно используются различные общесетевые домены верхнего уровня. Последние делятся на общесетевые и географические. Поскольку местонахождение регистируемого домена пользователем с помощью сервера DDNS не является статическим, тосервер предоставляет только общедоступные имена доменов.

Регистрация на сервере Dynamic DNS

Перед регистрацией доменного имени необходимо создать на нем свою учетную запись. На сервере http://www.DynDNS.com процедура регистрации предельно проста. Необходимо задать несколько параметров:

Имя для входа на сайт (login), который впоследствии будет указан в ADSL-модеме (см. рис. 2).

Пароль и его подтверждение. Длина пароля должна быть не менее 5 символов.

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

После завершения процесса создания учетной записи на указанный почтовый ящик будет отправлено письмо, в котором находится ссылка для активации созданной записи. После входа на сайт под зарегистрированным именем необходимо создать хост и выбрать доменное имя из предлагаемого списка (см. рис. 3), затем активировать сделанные изменения.

Настройка Dynamic DNS в ADSL-модеме

Любой современный ADSL-модем имеет встроенный веб-интерфейс. Однако не любой из них поддерживает службу Dynamic DNS. Прежде чем приобрести модем, необходимо ознакомиться с его спецификацией и убедиться в поддержке этой службы, выяснить список поддерживаемых DDNs-сайтов и убедиться, что в списке доменов второго уровня есть подходящий для вас. Несмотря на различия веб-интерфейсов различных модемов, идеология настройки службы DDNS везде одинакова.

Замечание: как правило, для входа на внутренний сайт модема используется стандартный адрес 192.168.1.1. Имя и пароль необходимо уточнить в документации или на сайте производителя модема. Обычно, именем для входа на сайт служит admin, паролем – admin или 1234.

Замечание: при попытке войти на сайт http://www.DynDNS.org осуществляется автоматическая переадресация на http://www.DynDNS.com .

На рис. 4 приведен скриншот настройки службы Dynamic DNS, которая условно разделена на две части.

В первой из них (Dynamic DNS Setup) осуществляется настройка соединения с сайтом – провайдером сервиса (www.DynDNS.org). Во второй части (IP Address Update Policy) осуществляется управление местоположением сайта, который можно создать на одном из компьютеров во внутренней сети.

Настройка Dynamic DNS Setup

В группе параметров Dynamic DNS Setup необходимо выбрать провайдера (на сайте которого зарегистрировано доменное имя), имя хоста и параметры учетной записи для входа на сайт провайдера. После того как все данные введены, необходимо активировать службу в ADSL-модеме. Для этого установите флажок напротив записи Active Dynamic DNS. Наэтом первичная настройка завершена. Удостоверьтесь, что соединение модема с сайтом установлено. Для этого необходимо выполнить несколько команд в оболочке командной строки:

ipconfig /flushdns – очищает кэш службы DNS на локальном компьютере;

ping korobko.DynDNS.info – позволяет определить, доступен ли сайт в данный момент времени.

Настройка IP Address Update Policy

В разделе IP Address Update Policy осуществляется настройка внутреннего IP-адреса, где будет располагаться сетевой ресурс, например веб-сайт. По умолчанию установлен IP-адрес маршрутизатора (Use WAN IP Address). Рекомендуется использовать либо автоматическое распознавание IP-адреса (Dynamic DNS server auto detect IP address), или указать IP-адрес (Use specified IP Address) компьютера внутренней сети, на котором расположен сайт или FTP-сервер.

Предположим, что все адреса локальной сети назначены статически и IP-адрес компьютера, на котором будет создан WEB- или FTP-сервер, 192.168.1.2. Исходя из этих предпосылок предпочтительнее всего выбрать третий вариант настройки (см. рис. 4, п. 2).

Установка и настойка IIS-сервера

IIS-сервер – стандартный компонент операционных систем семейства Windows, который не устанавливается по умолчанию.

Для его установки необходимо в «Панели управления» запустить оснастку «Установка и удаление программ». В появившемся диалоговом окне перейдите во вкладку «Установка компонентов Windows» и установите флажок напротив Internet Information Server (IIS).

Осуществляя настройку веб-сервера необходимо помнить, что пользователи, посещающие сайт, воспринимаются системой как anonimous, т.е. неопознанные. Поэтому в свойствах сервера необходимо отключить проверку учетных данных пользователей.

Замечание: по умолчанию устанавливается только компонент WEB. Если необходимо установить FTP-сервер, то выберите соответствующий компонент в Internet Information Server (IIS).

Использование сервисов динамического DNS позволит обеспечить постоянный доступ к сетевым ресурсам, у которых периодически меняется IP-адрес. В частности, таким образом вы можете предоставлять доступ к файлам с использованием понятных человеку веб-адресов, тем самым заменяя файлообменники в Интернете. Кроме того, поддержка собственного сайта позволит сэкономить средства на хостинге, особенно, если это Windows Hosting (ASP/ASPX).

Доброго времени суток!

Не так давно один мой знакомый пожаловался, что у него интернет-странички в браузере открываются с какой-то задержкой. Да, она была не очень-то и заметной, но все же "чувствовалась". И это, кстати несмотря на то, что у него кабельный доступ к интернету, со скоростью 100 Мбит/с. Сначала был "обвинен" браузер, ОС и пр., но как оказалось в последствии, причина была в ужасной работе DNS-сервера провайдера. И как только его сменили в настройках Windows, сайты стали открываться моментально!

Теперь немного об основах , чтобы было понятно, о чем идет речь широкому кругу читателей. Дело в том, что когда вы открываете какую-нибудь страничку в браузере (т.е. переходите по ссылке, или вручную указываете URL-адрес) - сначала ваш ПК посылает запрос DNS-серверу (т.е. спрашивает его: "где расположен сайт") , тот, поискав в своей базе сайта, отвечает ему и указывает по какому IP располагается сайт. И уже после, по указанному IP-адресу браузер загружает страничку.

В большинстве случаев, при подключении абонента к сети Интернет, провайдеры не задумываются об удобстве пользователя и не указывают никаких DNS (используются по умолчанию их собственные). И почти всегда - они проигрывают и по скорости, и по стабильности многим публичным бесплатным DNS-серверам.

Думаю, теперь вам немного понятно, почему от DNS-сервера может зависеть скорость открытия интернет-странички?

Как найти быстрый DNS-сервер и указать его в параметрах Windows

Ищем наиболее быстрый DNS-сервер для вас

Указать, какой DNS будет самым быстрым именно для вас - невозможно. Это зависит от работы вашего Интернет-провайдера, от вашего географического месторасположения и т.д.

Но с помощью одной небольшой утилиты можно за 1-2 мин. протестировать и узнать наиболее быстрые DNS-серверы конкретно под вашего провайдера. И так...

После того, как запустите утилиту DNSBench , откройте вкладку "Nameservers" и нажмите кнопку "Run Benchmark" . Через пару минут, утилита закончит тест и представит вам результаты в отсортированном виде (лучшие варианты для вас будут на самом верху. На скрине ниже, в моем случае, это: 8.8.8.8 и 8.8.4.4, DNS от Google) .

Определяем наиболее быстрый DNS-сервер для конкретно вашего провайдера (утилита DNSBench)

Примечание! Утилита DNSBench не использует в своем тесте многие известные российские сервера. Однако, на мой взгляд это не так критично, к тому же если вы захотите их сравнить - можете добавить их в ручном варианте (кнопка ADD). Часть из них будет представлена чуть ниже.

Самые популярные DNS-серверы

Google DNS:

  • 8.8.8.8
  • 8.8.4.4

Одни из самых быстрых, пользуются большой популярностью. Есть один минус: Google собирает статистику в рекламных целях...

OpenDNS:

  • 208.67.222.222
  • 208.67.220.220

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

Level3 DNS:

  • 209.244.0.3
  • 209.244.0.4

Третьи по популярности в Мире публичные DNS-сервера. Как заявляют разработчики, обеспечивают достаточно высокую степень безопасности от вредоносных сайтов.

Yandex DNS:

  • 77.88.8.8 и 77.88.8.1 - базовые DNS-сервера;
  • 88.8.88 и 77.88.8.1 - DNS для обеспечения защиты от вредоносных сайтов;
  • 77.88.8.7 и 77.88.8.3 - DNS-сервера предоставляют защиту от "взрослых" сайтов, своего рода, семейный вариант.

На эти сервера стоит обратить внимание, т.к. они от Российского поисковика, а значит могут быть несколько быстрее зарубежных!

DNS.WATCH:

  • 84.200.69.80
  • 84.200.70.40

Политика компании - предоставлять доступ практически к любым сайтам. Кстати, они не ведут статистику ваших посещений.

Comodo Secure DNS:

  • 8.26.56.26
  • 8.20.247.20

У компании весьма неплохо реализована фильтрация вредоносных сайтов (даже несмотря на то, что это публичные бесплатные DNS серверы).

Norton ConnectSafe:

  • 199.85.126.10 и 199.85.127.10 - DNS-серверы со стандартным уровнем фильтрации (фишинг сайты, вирусные сайты, вредоносное ПО);
  • 199.85.126.30 и 199.85.127.30 - родительский контроль (исключены сайты для взрослых);
  • 199.85.126.20 и 199.85.127.20 - что-то среднее между первым и вторым вариантами (продвинутый уровень защиты).

Изменяем DNS (универсальный способ на примере Windows 10)

Предложенный вариант смены будет актуален для популярных на сегодняшний день Windows: 7, 8, 10 (универсальный способ).


Кстати, если вы используете Wi-Fi роутер, то DNS-сервера можно указать в его настройках подключения к интернет. Описать здесь, как это сделать, не представляется возможным - это зависит как от модели вашего роутера, так и от версии его прошивки. Чаще всего, это делается в разделе настроек подключения к интернет (WAN).

В помощь!

Как настроить Wi-Fi роутер с "нуля" (инструкция) -

На этом все, удачи!

Дополнения по теме приветствуются...

Статья более не актуальна. Яндекс всех поголовно переводит на Яндекс.Коннект. В API Коннекта на данный момент отсутствует возможность управлять DNS-записями. API pdd.yandex уже не работает.
Можно использовать api Telegram для получения динамических ip. Инструкция

Я давно пользовался услугами dyndns для подключения из вне к домашней файлопомойке-торрентокачалке на фряхе, у которой динамический ip от провайдера. Хотя уже давно у dyndns эта услуга платная для вновь зарегистрировавшихся пользователей, но я пользовался бесплатно, т.к зарегистрировался ещё до того как они стали за это просить денег. Но на днях мне пришло письмо что они не могут больше предоставлять эту услугу мне бесплатно и со следующего месяца я должен буду за неё платить. Меня это не устроило и я стал искать выход из текущего положения.

Т. к. домены у меня делегированы на Яндекс DNS я стал читать мануалы для их API и выход был найден. Расскажу о нём ниже.

Чтобы использовать яндекс api нам нужно получить токен. Получить его довольно просто, в браузере вводим.

Https://pddimp.yandex.ru/get_token.xml?domain_name=domen.ru

Где domen.ru - ваш домен делегированный на яндекс. Вводим капчу и в выводе ищем:

Token="XXXXXX"

В кавычках будет ваш токен. Копируем его куда-нибудь, он нам потребуется чуть позже.
Теперь нам нужно добавить к нашему домену сабдомен, который будет ссылаться на машину с динамическим ip. Переходим на https://pdd.yandex.ru , выбираем домен и кликаем «Редактор DNS» там добавляем А-запись для домена:

В поле «Хост» вводите сабдомен, а в поле «Значение записи» пишете любой ip(в последствии он будет меняться, когда будет изменятся ip вашей тачки).

Теперь нам нужно получить id нашей записи. Для этого в браузере вводим:

Https://pddimp.yandex.ru/nsapi/get_domain_records.xml?token=XXXXXX&domain=domen.ru

Где ХХХХХХ-ваш токен, а domen.ru - ваш домен делегированный на яндекс.

В выводе ищем строку с нашей записью myhome.domen.ru и в этой строке находим:

Id="1234567"

В кавычках id записи, так же копируем его куда-нибудь.

Теперь пишем скрипт на тачке на которой динамический ip. Скрипт будет проверять внешний ip тачки раз в пол часа и если он изменился, то будет изменять А-запись на Яндекс DNS.

# ee /usr/local/bin/dyndns.sh

#!/bin/sh PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin; export PATH DOMEN="domen.ru" # ваш домен делегированный на яндекс SUB=myhome # сабдомен TOKEN=XXXXXX # токен RECID=1234567 # id записи while true; do IP="curl -s http://ip..domen.ru dns1.yandex.ru | grep has | awk "{print $4}"` # замените myhome.domen.ru на ваш сабдомен if [ $IP != $YAIP ] then curl -s "https://pddimp.yandex.ru/nsapi/edit_a_record.xml?token=$TOKEN&domain=$DOMEN&subdomain=$SUB&record_id=$RECID&content=$IP&ttl=1800" fi sleep 1800; done;

Значения переменных измените в соответствии с комментариями.

Делаем скрипт исполняемым:

# chmod +x /usr/local/bin/dyndns.sh

И добавляем соответствующую запись в крон:

# crontab -e @reboot /usr/local/bin/dyndns.sh

Всё, теперь после перезагрузки скрипт будет автоматически запускаться. Перезагружаемся или запускаем скрипт вручную и проверяем на https://pdd.yandex.ru изменилось ли значение записи для нашего сабдомена.

P.S. Чтобы было совсем все бесплатно, можно не покупать домен а использовать бесплатный домен в зоне.tk. Получить его можно на сайте www.dot.tk