Что невозможно было бы сделать без dns
В прошлом мы уже рассматривали сторонние DNS-серверы, такие как OpenDNS и Google Public DNS, но сейчас мы просто расскажем о том, почему вам, возможно, стоило бы поменять DNS-сервер.
Возможно повышение скорости
Сторонние серверы DNS могут быть быстрее, чем серверы DNS вашего провайдера. Это не гарантируется, это будет зависеть от вашего географического местоположения, - от того, насколько близко к вам находятся сторонние серверы DNS и насколько медленно работают серверы DNS у вашего провайдера.
Если все, что вам необходимо, это лишь хорошая скорость, вы можете увидеть преимущества от перехода на сторонний сервер DNS, а можете и не увидеть. Чтобы узнать точно, вы должны запустить инструмент сравнительного тестирования DNS, например Namebench, который сделает DNS-запросы вашему текущему DNS-серверу и другим серверам DNS, проверив, сколько времени каждому из этих серверов требуется, чтобы ответить.
Популярные сторонние сервисы, предоставляющие DNS, такие как Google Public DNS или OpenDNS, для вас могут оказаться более быстрыми. Если это так, Namebench даст об этом знать.
Отметьте, что Namebench не может оценить эффективность каждого фактора. Например, Google Public DNS и OpenDNS участвуют в “Глобальной инициативе интернет-ускорения”, которая позволяет участвующим DNS-службам узнать ваш IP-адрес и ответить с таких IP-адресов, которые более близки к вам, увеличивая тем самым скорость связи. Другие серверы DNS, подобные тем, что предлагает ваш провайдер, не столь же расторопны в реализации таких новых технологий.
Возможно улучшение надежности
Это тесно связано с уже отмеченной возможностью улучшения скорости. Если ваш Интернет-провайдер не слишком заботится о том, чтобы его серверы DNS работали быстро и стабильно, вы можете столкнуться с периодами, когда не удается загрузить веб-сайты или когда они загружаются очень медленно из-за слишком длительных DNS-запросов. Если ваш провайдер не выполняет свою работу должным образом, переключение на сторонний DNS-сервер может принести вам большую надежность.
Родительский контроль
Если у вас есть маленькие дети и вы хотите установить веб-фильтрацию, есть множество различных путей, как это можно сделать. Один из самых простых способов настройки веб-фильтрации состоит в том, чтобы поменять ваши серверы DNS на серверы OpenDNS. Поменяйте сервер DNS на своем маршрутизаторе, и вы сможете сконфигурировать настройки родительского контроля на веб-сайте OpenDNS, что позволит вам блокировать определенные категории веб-сайтов и просматривать веб-сайты, доступные из вашей домашней сети.
Примите во внимание то, что это не очень надежно. Пользователь в вашей сети может просто изменить сервер DNS своего устройства, чтобы обойти фильтрацию. Маленькие дети не смогут сделать это, но подростки вполне могли бы — точно так же, как и в отношении большей части других средств родительского контроля.
Защита от фишинга
OpenDNS также выполняет фильтрацию, с целью блокирования фишинговых сайтов. У современных браузеров есть встроенная защита против фишинга, но если вы работаете в сети, которая включает компьютеры с Windows XP и Internet Explorer 6, то использование OpenDNS даст всем этим компьютерам некоторую защиту от похищения личных данных, которой в противном случае у них бы не было.
Другие DNS-службы не предлагают эту функцию. Например, Google Public DNS не включает функций фильтрации контента, поскольку она стремится функционировать просто как быстрая служба DNS без каких бы то ни было излишеств.
Средства защиты
Сторонние серверы DNS, как например OpenDNS и Google Public DNS, также предлагают средства защиты, которые еще не были реализованы в DNS-серверах многих провайдеров. К примеру, Google Public DNS поддерживает DNSSEC, чтобы гарантировать, что запросы DNS имеют правильные подписи и достоверны. На серверах DNS вашего проваайдера такие защитные функции, возможно, еще не реализованы.
Если бы законопроект SOPA был принят, то никакие американские серверы DNS не поддерживали бы DNSSEC, поскольку SOPA поставил бы DNSSEC вне закона. Если бы американцы хотели иметь преимущества DNSSEC, они были бы вынуждены использовать зарубежные DNS-серверы.
Доступ к контенту, заблокированному по географическим критериям
Специальные сторонние серверы DNS могут также открыть вам доступ к определенному географически заблокированному контенту. Например, переключившись на Unblock-Us можно получить доступ к таким СМИ, как Netflix, Hulu и BBC iPlayer, независимо от того, где в мире вы находитесь. Когда ваш компьютер делает DNS-запрос, DNS-служба выполняет некоторое туннелирование, чтобы заставить сервис исходить из того, что вы находитесь где-то в другом месте мира. Это удобная возможность, потому что она позволяет добраться до этих сервисов с любого устройства всего лишь за счет изменения DNS-сервера на своем маршрутизаторе.
Вам не стоит использовать бесплатный сервис в качестве своего основного DNS-сервиса — переключение на него обязательно будет замедлять просмотр веб-страниц. Если вы пользуетесь одним из них, вам нужно использовать такой инструмент, как DNS Jumper для быстрого переключения на него, когда вам это понадобится, и переключения обратно, когда закончите свое дело.
UnoDNS и Unblock-Us работают таким же образом и не имеют этого ограничения, но, с другой стороны, вам придется заплатить за них.
Обход веб-цензуры
Обратите внимание на то, что веб-сайты часто блокируются на уровне IP, таким образом, это не всегда будет срабатывать. Например, в брандмауэре используется множество приемов блокирования веб-сайтов, включая DNS-блокирование.
Namebench включает опцию, с помощью которой проверяются серверы DNS на цензуру, чтобы определить, подвергаются ли результаты работы текущих серверов DNS цензуре.
Если вы захотите поменять DNS-серверы, то Вы, вероятно, захотите поменять сервер DNS на своем роутере, который окажет влияние на всю вашу домашнюю сеть. Вы можете также изменить сервер DNS на единственном компьютере, что окажет влияние только на этот конкретный компьютер.
А какими DNS-службами пользуетесь вы? Для каких целей? Поделитесь своим опытом и настройками в комментариях.
Внимательный читатель найдет на этой картинке IPv6
Люди часто озадачены доменами. Почему мой сайт не работает? Почему эта хрень поломана, ничего не помогает, я просто хочу, чтобы это работало! Обычно, вопрошающий или не знает про DNS, или не понимает фундаментальных идей. Для многих DNS — страшная и непонятная штука. Эта статья — попытка развеять такой страх. DNS — это просто, если понять несколько базовых концепций.
Что такое DNS
DNS расшифровывается как Domain Name System. Это глобальное распределенное хранилище ключей и значений. Сервера по всему миру могут предоставить вам значение по ключу, а если им неизвестен ключ, то они попросят помощи у другого сервера.
Базовые штуки
Давайте взглянем на маппинг между именем и адресом:
Команда dig это такой швейцарский армейский нож для DNS-запросов. Крутой, многофункциональный инструмент. Вот первая часть ответа:
Здесь есть только одна интересная деталь: информация о самом запросе. Говорится, что мы запросили запись и получили ровно один ответ. Вот:
dig по-умолчанию запрашивает A -записи. A это address (адрес), и это один из фундаментальных видов записей в DNS. A содержит один IPv4 -адрес. Есть эквивалент для IPv6 -адресов — AAAA . Давайте взглянем на ответ:
Тут говорится, что у хоста web01.bugsplat.info. есть один адрес A : 192.241.250.244 . Число 300 это TTL , или time to live (время жизни). Столько секунд можно держать значение в кэше до повторной проверки. Слово IN означает Internet . Так сложилось исторически, это нужно для разделения типов сетей. Подробнее об этом можно почитать в документе IANA's DNS Parameters.
Оставшаяся часть ответа описывает сам ответ:
В частности, здесь говорится, как долго сервер откликался, какой у сервера IP-адрес ( 192.168.1.1 ), на какой порт стучался dig ( 53 , DNS-порт по-умолчанию), когда запрос был завершен и сколько байтов было в ответе.
Как видите, при обычном DNS-запросе происходит куча всего. Каждый раз, когда вы открываете веб-страницу, браузер делает десятки таких запросов, в том числе для загрузки всех внешних ресурсов вроде картинок и скриптов. Каждый ресурс отвечает за минимум один новый DNS-запрос, и если бы DNS не был рассчитан на сильное кэширование, то трафика генерировалось бы очень много.
Но в этом примере не видно, что DNS-сервер 192.168.1.1 связался с кучей других серверов чтобы ответить на простой вопрос: «куда указывает адрес web01.bugsplat.info ?». Давайте запустим трейс чтобы узнать о всей возможной цепочке, которую пришлось бы пройти dig 'у, если бы информация не был закэширована:
Информация выводится в иерархической последовательности. Помните как dig вставил точку . после хоста, web01.bugsplat.info ? Так вот, точка . это важная деталь, и она означает корень иерархии.
Корневые DNS-сервера обслуживаются различными компаниями и государствами по всему миру. Изначально их было мало, но интернет рос, и сейчас их 13 штук. Но у каждого из серверов есть десятки или сотни физических машин, которые прячутся за одним IP.
Итак, в самом верху трейса находятся корневые сервера, каждый определен с помощью NS- записи. NS -запись связывает доменное имя (в данном случае, корневой домен) с DNS-сервером. Когда вы регистрируете доменное имя у регистратора типа Namecheap или Godaddy, они создают NS -записи для вас.
В следующем блоке видно, как dig выбрал случайный корневой сервер, и запросил у него A -запись для web01.bugsplat.info . Видно только IP-адрес корневого сервера ( 192.5.5.241 ). Так какой именно корневой сервер это был? Давайте узнаем!
Возвращаясь к нашему начальному запросу: корневой сервер F вернул другой набор NS -серверов. Он отвечает за домен верхнего уровня info . dig запрашивает у одного из этих серверов запись A для web01.bugsplat.info , и получает в ответ еще один набор NS -серверов, и потом запрашивает у одного из этих серверов запись A для web01.bugsplat.info. . И, наконец, получает ответ!
Уф! Сгенерировалось бы много трафика, но почти все эти записи были надолго закэшированы каждым сервером в цепочке. Ваш компьютер тоже кэширует эти данные, как и ваш браузер. Чаще всего DNS-запросы никогда не доходят до корневых серверов, потому что их IP-адреса почти никогда не изменяются («Наверно все таки речь идет о большом TTL для записей в их базе. Если у DNS сервера IP адрес вообще ни разу не изменялся, то это не означает, что его база навечно закеширована» — прим. от rrrav). Домены верхнего уровня com , net , org , и т.д. тоже обычно сильно закэшированы.
Другие типы
Заметьте, что MX -запись указывает на имя, а не на IP-адрес.
Еще один тип, который вам скорее всего знаком, это CNAME . Расшифровываетя как Canonical Name (каноническое имя). Он связывает одно имя с другим. Давайте посмотрим на ответ:
Что не так с CNAME
Записи CNAME очень полезны, но есть важный момент: если есть CNAME с каким-то именем, то нельзя создать другую запись с таким же именем. Ни MX , ни A , ни NS , ничего.
Запросы к другим серверам
Давайте представим, что конфигурация DNS испорчена. Вам кажется, что вы исправили проблему, но не хотите ждать когда обновится кэш чтобы удостовериться. С помощью dig можно сделать запрос к публичному DNS-серверу вместо своего дефолтного, вот так:
Символ @ с IP-адресом или хостом заставляет dig прозводить запрос к указанному серверу через порт по-умолчанию. Можно использовать публичный DNS-сервер Гугла или почти-публичный-сервер Level 3 по адресу 4.2.2.2 .
Типичные ситуации
Давайте рассмотрим типичные ситуации, знакомые многим веб-разработчикам.
Редирект домена на www
CNAME для Heroku или Github
С Github похожая история, но там нужно создать специальный файл в корне репозитория, и назвать его CNAME . См. документацию.
Wildcards
Большинство DNS-серверов поддерживают шаблоны (wildcards). Например, есть wildcard CNAME для *.web01.bugsplat.info указывает на web01.bugsplat.info . Тогда любой хост на web01 будет указывать на web01.bugsplat.info и не нужно создавать новые записи:
Заключение
Надеюсь, теперь у вас есть базовое понимание DNS. Все стандарты описаны в документах:
Есть еще пара интересных RFC, в том числе 4034, который описывает стандарт DNSSEC и 5321, который описывает взаимосвязь DNS и email. Их интересно почитать для общего развития.
Записная книжка рассеянного [в пространстве и времени] программиста
Или сказ о том, как перестать бояться и начать раздавать динамические адреса в локальной сети.
- необходимо автоматизировать распределение имен различным устройствам в сети.
- доисторический (ископаемый) роутер, который не умеет dd-wrt/openwrt и иже. А вместе с этим он не умеет статические адреса или локальный dns.
- много iot-желаза в локальной сети к которому хочется получать доступ по имени (доменному конечно же).
- Очень много железа, которое появляется в сети лишь на короткое время, а доступ к нему по сети нужен (ну не прописывать же ему постоянно статику?)
- большое количество скриптов автоматизации, которым надо откуда-то брать именя устройств.
Проблему можно решить несколькими путями:
- Поставить слабую железку, поставить на нее bind, поднять локальную доменную зону и убрать с роутера роль dhcp и dns-сервера. Минус в том, что слабой железки может и не быть.
- Поменять роутер на менее доисторический. Минус в том, что роутера может не быть под рукой.
- Воспользоваться протоколом zeroconf. Минусы тоже есть - возможный конфликт имен устройств.
Если с первыми двума вариантами все более-менее понятно, то на третьем стоит остановиться подробно. Так как он решает проблему наименее затратным способом. Протокол описывает:
- назначение адресов устройствам в сети (диапазон 169.254.*)
- разрешение имен
- обнаружение сервисов
Поскольку адреса у устройств уже есть (dhcp же), то нас будет интересовать только та часть протокола, где рассказывается про обнаружение сервисов и разрешение имен. Это mDNS+DNSSD. В nix\bsd за эту часть протокола отвечает сервис avahi В ряде дистрибутивов он включен и нормально настроен сразу. На примере федоры посмотрим как его поставить и настроить.
Если у вас в сети уже есть устройства, где активирован avahi, то можно посмотреть на то, найдет ли оно какие-либо устройства
Как видим что-то нашло.
Мы можем попробовать его попинговать.
Если вы увидели такую картину, то это означает лишь одно - mdns для получения имен доменов у вас не подключен. Чтобы его включить требуется отредактировать /etc/nsswitch.conf.
В строчку hosts нужно добавить mdns_minimal [NOTFOUND=return] перед dns.
После перезагрузки или перезапуска соотвествующего сервиса пингуем снова.
Если у вас очень медленно резолвятся локальные домены, то стоит попробовать использовать модуль mdns4_minimal.
Задача раздачи локальных имен полностью решена. В данном случае я не затрагиваю dnssd поскольку цель была лишь обеспечить доступность хостов по имени.
При желании поднять zeroconf можно как на ардуине, так и на модулях esp8266.
Вы можете столнуться с проблемами из-за того, что некоторые продукты используют зону local для своих целей.
В последнее время многие пользователи столкнулись с проблемами в работе домашнего или офисного интернет-соединения. Это выражается в периодических дисконектах или лагах во время передачи данных.
Скорее всего, это может быть связано с использованием DNS-серверов Google и Cloudflare. Согласно заявлению Роскомнадзора, эти сервера вскоре могут быть заблокированы в России.
Сейчас расскажем, как сменить параметры DNS-сервера и не столкнуться потом с неработающим интернетом на смартфоне, компьютере или вообще всех устройствах, подключенных к вашему роутеру.
Как убрать DNS-адреса из настроек роутера
Делать это необходимо, если вы самостоятельно прописывали адреса серверов на используемом маршрутизаторе, чтобы они применялись для всех гаджетов в домашней или офисной сети.
1. Определите IP-адрес используемого роутера. Для большинства моделей по умолчанию используется:
Маркировка с используемым адресом обычно нанесена на самом роутере, данные можно найти в используемом приложении для настройки сети.
2. Перейдите по IP-адресу вашего роутера в браузере на любом устройстве, которое на данный момент подключено к сети (смартфон, планшет или компьютер).
Если сохраненных данных нет, возможно, используются стандартные учетные данные, которые тоже нанесены на корпусе маршрутизатора.
4. Найдите раздел с настройкой DNS. Параметры могут находиться по пути:
5. Найдите два поля с параметрами DNS. Обычно они маркируются Первичный\Вторичный, Основной\Дополнительный, DNS1\DNS2 или как-то еще.
6. Удалите используемые параметры DNS серверов Google или Cloudflare.
7. Сохраните параметры и перезагрузите роутер для вступления изменений в силу.
Как убрать DNS-адреса из настроек в macOS
Если вы прописывали адреса серверов не в роутере, а на каждом используемом девайсе, то и удалять их придется на каждом устройстве. Алгоритм действия на Mac следующий:
■ В левой панели выберите используемое интернет-соединение. Это может быть проводной Ethernet-канал или Wi-Fi.
■ На вкладке DNS удалите или измените используемые адреса для серверов.
■ Нажмите ОК, а затем Применить.
■ Для вступления изменений в силу отключитесь от интернета и подключитесь заново.
Как убрать DNS-адреса из настроек в Windows
При использовании Windows-компьютера нужно делать следующее:
□ Откройте Панель управления (через меню Пуск или свойства компьютера).
□ В окне Просмотр основных сведений о сети и настройка подключений найдите активное подключение Wi-Fi или Ethernet.
□ Выберите активное подключение и нажмите кнопку Свойства.
□ В открывшемся окне выберите протокол IP версии 4 (TCP/IPv4) и нажмите Свойства.
□ На вкладке Общие удалите или измените используемые адреса серверов DNS.
□ Для вступления изменений в силу отключитесь от интернета и подключитесь заново.
Как убрать DNS-адреса из настроек на iPhone или iPad
Чтобы внести нужные изменения в параметры сетевого подключения iOS, делайте следующее:
● Перейдите в раздел Настройка DNS.
● Удалите или измените используемые адреса серверов DNS
● Нажмите Сохранить и переподключитесь к сети для вступления изменений в силу.
Как убрать DNS-адреса из настроек в Android
При использовании Android-смартфонов, планшетов или ТВ-приставок, менять настройки нужно следующим образом (название и расположение пунктов меню может отличаться):
○ Выберите активное подключение и нажмите Изменить сеть.
○ В разделе DNS-1/DNS-2 удалите или измените используемые адреса серверов DNS.
○ Нажмите Сохранить и переподключитесь к сети для вступления изменений в силу.
Какие сервера DNS использовать вместо Google и Cloudflare
Многие интернет провайдеры и поставщики сетевых услуг самостоятельно рекомендуют пользователям определенные настройки DNS или настраивают автоматическое получение DNS. Чаще всего эти параметры указываются при настройке подключения.
Актуальные данные можете уточнить в службе поддержки своего провайдера.
Если самостоятельно решили указать какой-либо сторонний DNS-сервер, можете использовать такие варианты:
Экспериментируйте и выбирайте подходящий сервис, который устроит по скорости работы и стабильности подключения.
(23 голосов, общий рейтинг: 4.22 из 5)Читайте также: