Содержание
ДНС | это… Что такое ДНС?
DNS (англ. Domain Name System — система доменных имён) — распределённая система (распределённая база данных), способная по запросу, содержащему доменное имя хоста (компьютера или другого сетевого устройства), сообщить IP адрес или (в зависимости от запроса) другую информацию. DNS работает в сетях TCP/IP. Как частный случай, DNS может хранить и обрабатывать и обратные запросы, определения имени хоста по его IP адресу — IP адрес по определённому правилу преобразуется в доменное имя, и посылается запрос на информацию типа «PTR».
Содержание
|
Ключевые характеристики DNS
DNS обладает следующими характеристиками:
- Распределённость хранения информации. Каждый узел сети в обязательном порядке должен хранить только те данные, которые входят в его зону ответственности и (возможно) адреса корневых DNS-серверов.
- Кеширование информации. Узел может хранить некоторое количество данных не из своей зоны ответственности для уменьшения нагрузки на сеть.
- Иерархическая структура, в которой все узлы объединены в дерево, и каждый узел может или самостоятельно определять работу нижестоящих узлов, или делегировать (передавать) их другим узлам.
- Резервирование. За хранение и обслуживание своих узлов (зон) отвечают (обычно) несколько серверов, разделённые как физически, так и логически, что обеспечивает сохранность данных и продолжение работы даже в случае сбоя одного из узлов.
DNS важна для работы Интернета, ибо для соединения с узлом необходима информация о его IP-адресе, а для людей проще запоминать буквенные (обычно осмысленные) адреса, чем последовательность цифр IP-адреса. В некоторых случаях это позволяет использовать виртуальные серверы, например, HTTP-серверы, различая их по имени запроса. Первоначально преобразование между доменными и IP-адресами производилось с использованием специального текстового файла HOSTS, который составлялся централизованно и обновлялся на каждой из машин сети вручную. С ростом Сети возникла необходимость в эффективном, автоматизированном механизме, которым и стала DNS.
DNS была разработана Полом Мокапетрисом в 1983 году; оригинальное описание механизмов работы описано в RFC 882 и RFC 883. В 1987 публикация RFC 1034 и RFC 1035 изменили спецификацию DNS и отменили RFC 882 и RFC 883 как устаревшие. Некоторые новые RFC дополнили и расширили возможности базовых протоколов.
Дополнительные возможности
- поддержка динамических обновлений
- безопасные соединения (DNSsec)
- поддержка различных типов информации (SRV-записи)
Терминология и принципы работы
Ключевыми понятиями DNS являются:
- Зона — логический узел в дереве имён. Право администрировать зону может быть передано третьим лицам, за счёт чего обеспечивается распределённость базы данных. При этом персона, передавшая право на управление в своей базе данных хранит информацию только о существовании зоны (но не подзон!), информацию о персоне (организации), управляющей зоной, и адрес серверов, которые отвечают за зону. Вся дальнейшая информация хранится уже на серверах, ответственных за зону.
- Доме́н — название зоны в системе доменных имён (DNS) Интернета, выделенной какой-либо стране, организации или для иных целей. Структура доменного имени отражает порядок следования зон в иерархическом виде; доменное имя читается слева направо от младших доменов к доменам высшего уровня (в порядке повышения значимости), корневым доменом всей системы является точка (‘.’), следом идут домены первого уровня (географические или тематические), затем — домены второго уровня, третьего и т. д. (например, для адреса ru.wikipedia.org домен первого уровня — org, второго wikipedia, третьего ru). На практике точку в конце имени часто опускают, но она бывает важна в случаях разделения между относительными доменами и англ. Fully Qualifed Domain Name, полностью определённое имя домена).
- Поддомен — имя подчинённой зоны. (например, wikipedia.org — поддомен домена org, а ru.wikipedia.org — домена wikipedia.org). Теоретически такое деление может достигать глубины 127 уровней, а каждая метка может содержать до 63 символов, пока общая длина вместе с точками не достигнет 254 символов. Но на практике регистраторы доменных имён используют более строгие ограничения.
- DNS-сервер — специализированное ПО для обслуживания DNS. DNS-сервер может быть ответственным за некоторые зоны и/или может перенаправлять запросы вышестоящим серверам.
- DNS-клиент — специализированная библиотека (или программа) для работы с DNS. В ряде случаев DNS-сервер выступает в роли DNS-клиента.
- ответственность (англ. authoritative) — признак размещения зоны на DNS-сервере. Ответы DNS-сервера могут быть двух типов: ответственные (когда сервер заявляет, что сам отвечает за зону) и неответственные (англ. Non-authoritative), когда сервер обрабатывает запрос, и возвращает ответ других серверов. В некоторых случаях вместо передачи запроса дальше DNS-сервер может вернуть уже известное ему (по запросам ранее) значение (режим кеширования).
- DNS-запрос англ. DNS query — запрос от клиента (или сервера) серверу. Запрос может быть рекурсивным или нерекурсивным. Нерекурсивный запрос либо возвращает данные о зоне, которая находится в зоне ответственности DNS-сервера (который получил запрос) или возвращает адреса корневых серверов (точнее, адрес любого сервера, который обладает большим объёмом информации о запрошенной зоне, чем отвечающий сервер). В случае рекурсивного запроса сервер опрашивает серверы (в порядке убывания уровня зон в имени), пока не найдёт ответ или не обнаружит, что домен не существует. На практике поиск начинается с наиболее близких к искомому DNS-серверов, если информация о них есть в кеше и не устарела, сервер может не запрашивать DNS-серверы). Рекурсивные запросы требуют больше ресурсов от сервера (и создают больше трафика), так что обычно принимаются от «известных» владельцу сервера узлов (например, провайдер предоставляет возможность делать рекурсивные запросы только своим клиентам, в корпоративной сети рекурсивные запросы принимаются только из локального сегмента). Нерекурсивные запросы обычно принимаются ото всех узлов сети (и осмысленный ответ даётся только на запросы о зоне, которая размещена на узле, на DNS-запрос о других зонах обычно возвращаются адреса корневых серверов).
- субдомен — дополнительное доменное имя 3-го уровня в основном домене. Может указывать как на документы корневого каталога, так и на любой подкаталог основного сервера. Например, если у вас есть домен вида mydomain.ru, вы можете создать для него различные поддомены вида mysite1.mydomain.ru, mysite2.mydomain.ru и т. д.
Система DNS содержит иерархию серверов DNS. Каждый домен или поддомен поддерживается как минимум одним авторитетным сервером DNS (от англ. authoritative — авторитетный, заслуживающий доверия; в Рунете применительно к DNS и серверам имен часто употребляют и другие варианты перевода: авторизированный, авторитативный), на котором расположена информация о домене. Иерархия серверов DNS совпадает с иерархией доменов.
Имя и IP-адрес не тождественны — один IP-адрес может иметь множество имён, что позволяет поддерживать на одном компьютере множество веб-сайтов (это называется виртуальный хостинг). Обратное тоже справедливо — одному имени может быть сопоставлено множество IP-адресов: это позволяет создавать балансировку нагрузки.
Для повышения устойчивости системы используется множество серверов, содержащих идентичную информацию, а в протоколе есть средства, позволяющие поддерживать синхронность информации, расположенной на разных серверах. Существует 13 корневых серверов, их адреса практически не изменяются[1].
Протокол DNS использует для работы UDP-порт 53 для ответов на запросы. Традиционно запросы и ответы отправляются в виде одной UDP датаграммы. TCP используется для AXFR-запросов.
Рекурсия
Рассмотрим на примере работу всей системы.
Предположим, мы набрали в браузере адрес ru.wikipedia.org. Браузер спрашивает у сервера DNS: «какой IP-адрес у ru.wikipedia.org»? Однако, сервер DNS может ничего не знать не только о запрошенном имени, но даже обо всём домене wikipedia.org. В этом случае имеет место рекурсия: сервер обращается к корневому серверу — например, 198.41.0.4. Этот сервер сообщает — «У меня нет информации о данном адресе, но я знаю, что 204.74.112.1 является авторитетным для зоны org.» Тогда сервер DNS направляет свой запрос к 204.74.112.1, но тот отвечает «У меня нет информации о данном сервере, но я знаю, что 207.142.131.234 является авторитетным для зоны wikipedia.org.» Наконец, тот же запрос отправляется к третьему DNS-серверу и получает ответ — IP-адрес, который и передаётся клиенту — браузеру.
В данном случае при разрешении имени, то есть в процессе поиска IP по имени:
- браузер отправил известному ему DNS-серверу т. н. рекурсивный запрос — в ответ на такой тип запроса сервер обязан вернуть «готовый результат», то есть IP-адрес, либо сообщить об ошибке;
- DNS-сервер, получив запрос от клиента, последовательно отправлял итеративные запросы, на которые получал от других DNS-серверов ответы, пока не получил авторитетный ответ от сервера, ответственного за запрошенную зону.
В принципе, запрошенный сервер, мог бы передать рекурсивный запрос «вышестоящему» DNS-серверу и дождаться готового ответа.
Запрос на определение имени обычно не идёт дальше кеша DNS, который сохраняет ответы на запросы, проходившие через него ранее. Вместе с ответом приходит информация о том, сколько времени разрешается хранить эту запись в кэше.
Обратный DNS-запрос
Основная статья: Обратный запрос DNS
DNS используется в первую очередь для преобразования символьных имён в IP-адреса, но он также может выполнять обратный процесс. Для этого используются уже имеющиеся средства DNS. Дело в том, что с записью DNS могут быть сопоставлены различные данные, в том числе и какое-либо символьное имя. Существует специальный домен in-addr.arpa, записи в котором используются для преобразования IP-адресов в символьные имена. Например, для получения DNS-имени для адреса 11.22.33.44 можно запросить у DNS-сервера запись 44.33.22.11.in-addr.arpa, и тот вернёт соответствующее символьное имя. Обратный порядок записи частей IP-адреса объясняется тем, что в IP-адресах старшие биты расположены в начале, а в символьных DNS-именах старшие (находящиеся ближе к корню) части расположены в конце.
Записи DNS
Основная статья: Ресурсные записи DNS
Наиболее важные типы DNS-записей:
- Запись A (address record) или запись адреса связывает имя хоста с адресом IP. Например, запрос A-записи на имя referrals.icann.org вернет его IP адрес — 192.0.34.164
- Запись AAAA (IPv6 address record) связывает имя хоста с адресом протокола K. ROOT-SERVERS.NET вернет его 2001:7fd::1
- Запись CNAME (canonical name record) или каноническая запись имени (псевдоним) используется для перенаправления на другое имя
- Запись MX (mail exchange) или почтовый обменник указывает сервер(ы) обмена почтой для данного домена.
- Запись PTR (pointer) или запись указателя связывает IP хоста с его каноническим именем. Запрос в домене in-addr.arpa на IP хоста в reverse форме вернёт имя (Обратный DNS-запрос). Например, (на момент написания), для IP адреса 192.0.34.164: запрос записи PTR 164.34.0.192.in-addr.arpa вернет его каноническое имя referrals.icann.org. В целях уменьшения объёма нежелательной корреспонденции (спама) многие серверы-получатели электронной почты могут проверять наличие PTR записи для хоста, с которого происходит отправка. В этом случае PTR запись для IP адреса должна соответствовать имени отправляющего почтового сервера, которым он представляется в процессе
- Запись NS (name server) указывает на DNS-сервер для данного домена.
- Запись Start of Authority) или начальная запись зоны указывает, на каком сервере хранится эталонная информация о данном домене, содержит контактную информацию лица, ответственного за данную зону, тайминги кеширования зонной информации и взаимодействия DNS-серверов.
Зарезервированные доменные имена
Документ RFC 2606 (Reserved Top Level DNS Names — Зарезервированные имена доменов верхнего уровня) определяет названия доменов, которые следует использовать в качестве примеров (например, в документации), а также для тестирования. Кроме example.com
, example.org
и example.net
, в эту группу также входят test
, invalid
и др.
Интернациональные доменные имена
Доменное имя может состоять только из ограниченного набора ICANN утвердил основанную на Punycode систему IDNA, преобразующую любую строку в кодировке Unicode в допустимый DNS набор символов.
Программное обеспечение DNS
Серверы имен:
- [1]
- [2]
- MaraDNS [3]
- NSD (Name Server Daemon) [4]
- PowerDNS [5]
- Microsoft DNS Server (в серверных версиях операционных систем Windows NT)
Информация о домене
Многие домены верхнего уровня поддерживают сервис whois, который позволяет узнать кому делегирован домен, и другую техническую информацию.
Регистрация домена
Регистрация домена — процедура получения доменного имени. Заключается в создании записей, указывающих на администратора домена, в базе данных DNS. Порядок регистрации и требования зависят от выбранной доменной зоны. Регистрация домена может быть выполнена как организацией-регистратором, так и частным лицом[2], если это позволяют правила выбранной доменной зоны.
См. также
- Киберсквоттинг
- Тайпсквоттинг
- Динамический DNS
- DNS-клиент
Примечания
- ↑ Текущая версия корневой зоны всегда находится по адресу: ftp://ftp.internic.net/domain/named.root
- ↑ http://info.nic.ru/st/62/out_72.shtml порядок регистрации домена в зоне ru
Ссылки
- DNS Lookup Tools, проверка IP на Reverse DNS
- Координационный центр национального домена сети Интернет
- DNS Resources Directory (англ.)
- Ресурсы, посвящённые DNS & BIND (англ. )
- Общество CircleID DNS (англ.)
- Повышение безопасности DNS (DNSSEC) (англ.)
- Рабочий комитет IETF занимающийся разработкой расширенной спецификации DNS (DNSEXT) (англ.)
- Онлайн конвертация русскоязычных символов в Punycode и обратно (англ.)
- http://www.root-servers.org/ (англ.)
- Просмотр DNS-записей домена
- Пошаговые инструкции по настройке DNS в системах Windows
- Бесплатные DNS-серверы
- Как работает DNS
- dnsStuff.com — Платное предоставление информации, относящейся к доменной системе имён (разрешён один бесплатный запрос)
- Веб-инструменты для DNS, каталог на сайте dmoz.org (англ.)
- Как самостоятельно зарегистрировать домен
- Ложный DNS-сервер в сети Internet
- Система доменных имён
Статьи
- Фундаментальная уязвимость в DNS. Рекомендуется срочно обновить BIND
Документы RFC
- RFC 1034 — Domain Names — Concepts and Facilities
- RFC 1035 — Domain Names — Implementation and Specification
- RFC 1537 — Common DNS Data File Configuration Errors
- RFC 1591 — Domain Name System Structure and Delegation
- RFC 1713 — Tools for DNS Debugging
- RFC 2606 — Reserved Top Level DNS Names
DEXP: бренд, производитель, дистрибьюторы DEXP
Страна:
Россия
Год основания:
DEXP — российская торговая марка электроники, компьютерной и бытовой техники.
Бренд DEXP принадлежит компании DNS — одному из лидеров российского рынка по продаже цифровой и бытовой техники.
Компания DNS была основана в 1998 году во Владивостоке и изначально занималась сборкой настольных компьютеров. На протяжении дальнейших лет она стремительно росла и развивалась.
В конце 2000 годов был запущен международный OEM-проект. В 2009 году был открыт первый комплекс по сборке ноутбуков в России. Позже компания начала производить ЖК-мониторы, планшеты, а также мелкую и крупную бытовую технику.
За три квартала 2017 года смартфоны Dexp вошли в пятёрку самых популярных российских брендов смартфонов. По количеству проданных телевизоров в первом полугодии 2018 года бренд DEXP находился на четвёртом месте и занимал 9% рынка.
Команда DEXP активно поддерживает тесные партнерские отношения с лидирующими компаниями Китая и Тайваня, что позволяет производить доступную по цене продукцию для конечного потребителя. Основными рынками сбыта техники DEXP являются Россия и некоторые страны СНГ.
Продукция
Wi-Fi и Bluetooth
Источники бесперебойного питания (UPS)
Сетевые карты и адаптеры
Мыши
Кулеры и системы охлаждения
Компьютерные гарнитуры
Компьютерные корпуса
Настольные компьютеры
Рули, джойстики и геймпады
Компьютерная акустика
Клавиатуры
Блоки питания
Веб-камеры
Звуковые карты
Мониторы
Мультимедиа-проекторы
Холодильники
Морозильники
Духовые шкафы
Варочные панели
Вытяжки
Стиральные машины
Сушильные машины
Микроволновые печи
Тостеры
Чайники и термопоты
Кофеварки и кофемашины
Кофемолки
Блендеры
Мясорубки
Кухонные весы
Сушилки для овощей и фруктов
Утюги
Отпариватели
Пылесосы
Швейные машины
Конвекторы
Кондиционеры (сплит-системы)
Масляные радиаторы
Тепловентиляторы
Увлажнители воздуха
Электробритвы
Фены и фен-щётки
Щипцы, плойки, стайлеры и выпрямители
Напольные весы
Внешние аккумуляторы
Зарядные устройства и адаптеры
Кард-ридеры
Микрофон
Стационарные медиаплееры
TV-тюнеры
Умные часы и браслеты
Телевизоры
Фотоаппараты
Фоторамки
Электронные книги
Смартфоны и мобильные телефоны
Радиоприемники
Магнитолы
Планшеты
Портативная акустика
Плееры
DVD и Blu-ray плееры
Наушники
FM-трансмиттеры
Радар-детекторы
Видеорегистраторы
GPS-навигаторы
Автоинверторы
Автомагнитолы
Стабилизаторы и сетевые фильтры
Кронштейны и подставки
Производство
Страны-производители DEXP — Китай, Россия
Основная часть техники DEXP производится в Китайской Народной Республике. Телевизоры DEXP на контрактной основе производит российский завод, расположенный в г. Санкт-Петербурге в районе п. Шушары.
TPV CIS (электроника)
Jiangsu Midea Cleaning Appliances (МБТ)
Wuxi Little Swan Co Ltd (КБТ)
Hefei Hualing Co.,Ltd (КБТ)
Ningbo Shuaiwei Electric Appliance Co. (МБТ)
Foshan Shunde Deerma Electric Appliances (МБТ, климат)
Ningbo Ryaca Electrical (МБТ)
Hisense Ronshen (Yangzhou) Refrigerator Co.,Ltd (КБТ)
«Лаборатория Идей» (МБТ)
КВАНТ-Воронеж (электроника)
DNS-сервер — Хостинг Википедии
Вы можете думать о системе доменных имен ( DNS ) как о платформе, которая питает Интернет, поскольку мы используем его каждый день. Это связано с тем, что DNS отвечает за преобразование доменного имени, которое вы вводите в адресную строку, или домена, стоящего за «@» в адресе электронной почты, в IP-адрес, который позволяет вашему компьютеру найти один из миллионов серверов, на которых размещены интернет услуги. Но, как и любая интернет-служба, DNS — это просто концепция, если только за службой не стоит сервер. вот что за DNS сервер делает.
Что делают DNS-серверы
Работая в иерархии, DNS-серверы используют частные сетевые протоколы для облегчения связи между DNS-серверами. Во-первых, есть главные DNS-серверы, каждый из которых содержит полную базу данных DNS всех доменных имен в Интернете — вместе с соответствующим IP-адресом. Эти главные DNS-серверы, также известные как корневые серверы, принадлежат независимым агентствам, базирующимся в США, Великобритании, Японии и Швеции.
DNS-серверы более низкого уровня, количество которых намного больше, хранят только части базы данных DNS и принадлежат частным компаниям, либо коммерческим, либо интернет-провайдерам (ISP). DNS-серверами в основном может быть любой компьютер, зарегистрированный в системе DNS, при условии, что на сервере работает необходимое специальное программное обеспечение для DNS-серверов, программное обеспечение, которое облегчает преобразование DNS из доменного имени в IP-адрес хоста. Каждый DNS-сервер имеет общедоступный IP-адрес, а также включает в себя базу данных адресов и сетевых имен других хостов в Интернете.
Как работает DNS-сервер?
Ввод адреса веб-сайта (который будет содержать доменное имя) в адресной строке браузера запускает связь между ПК конечного пользователя и DNS-сервером. Веб-браузер — это клиент DNS, который отправляет запрос данных DNS на сервер DNS, которым управляет интернет-провайдер конечного пользователя. Затем этот сервер ищет соответствующий IP-адрес в своей внутренней базе данных DNS.
Иногда совпадения не найдены. В этом случае запрос отправляется на другой низкоуровневый DNS-сервер и, при необходимости, на корневой сервер. В конце концов будет найдено подходящее доменное имя и соответствующий IP-адрес, затем эти данные отправляются обратно в веб-браузер через сеть DNS. Этот процесс поиска DNS называется прямым DNS, который отличается от обратного DNS. В обратном DNS DNS-сервер также играет важную роль в процессе.
Настройка DNS-сервера
Настроить DNS-сервер несложно. Все, что вам нужно, это стандартное серверное вычислительное оборудование, а также специальный набор программного обеспечения, предназначенного для обработки DNS-запросов. Существует ряд решений, как коммерческих, так и с открытым исходным кодом, которые предлагают услуги DNS.
Microsoft DNS
DNS-сервер Microsoft использует операционную систему Microsoft Windows Server и занимает 4-е -е -е место в рейтинге продуктов, предлагающих DNS — первые три — это три версии BIND: BIND4, BIND8 и, конечно же, BIND9.. Microsoft основывала свой DNS-сервер на BIND4, когда он поставлялся в качестве тестового выпуска с Windows NT 4.0, но за это время Microsoft DNS претерпела значительные изменения.
Djbdns
Хотя продукты Microsoft являются коммерческими, djbdns — это решение с открытым исходным кодом для DNS-серверов. Интересно, что его создал всего один человек — D.J. Бернштейн. Считалось, что это один из самых безопасных вариантов DNS-сервера: если кто-то обнаружит уязвимость в его работе, придется заплатить 1000 долларов.
Еще одной особенностью djbdns является используемая им модульная структура. Это уменьшает объем кода в основном теле службы и, как следствие, снижает сложность связанного демона.
Dnsmasq
Полезно для небольших сетей, Dnsmasq предоставляет переадресацию IP, а также DHCP-сервер. Он поддерживает как IPv4, так и IPv6, а также облегчает преобразование из IPv4 в IPv6 и наоборот. Наиболее популярные дистрибутивы Linux включают Dnsmasq, а также есть порты, которые можно использовать для распространенных выпусков BSD, включая FreeBSD. Linksys поставляет Dnsmasq со всеми своими беспроводными маршрутизаторами.
Обратите внимание, что технологии, описанные на страницах Wiki, не являются обязательной частью панели управления Plesk или ее расширений.
DNS — Wikitech
На этой странице описывается настройка DNS Викимедиа. Викимедиа использует два разных типа DNS-серверов: авторитетные серверы имен (которые отвечают на запросы сторонних серверов имен для наших доменов) и рекурсивные преобразователи (которые разрешают запросы DNS, когда любому из наших серверов необходимо найти имя).
Нужно внести изменения в зоны Викимедиа? См. HOWTO в оглавлении этой страницы.
Содержание
- 1 Официальные серверы имен
- 1.1 Отладка сопоставления IP-адресов общедоступного сервера имен
- 1.2 Шаблоны доменов
- 1.2.1 Переменные и макросы
- 1.2.2 обновление аутентификации
- 1.2.3 локальное обновление аутентификации
- 1.3 Географический DNS
- 1.4 КАК ДЕЛАТЬ
- 1.4.1 Изменение GeoDNS/депул сайта
- 1.4.2 Изменение записей в файле зоны
- 1.4.3 Динамические данные, управляемые Netbox
- 1.4.4 Добавление новой зоны
- 1.4.5 Удаление зоны
- 1.4.6 Добавление новой (языковой) вики
- 1.4.7 Если определенный сервер имен недоступен
- 1.4.8 Линтинг файлов зоны
- 1.4.9 Знать, на какой DC перенаправляется конкретный IP-адрес
- 1.4.10 Знать, какой IP-адрес AuthDNS видит запрос от
- 1. 4.11 Обновление DNS, если gerrit или DNS не работают (только в экстренных случаях)
- 2 рекурсивных преобразователя
- 2.1 Как удалить запись из кэшей преобразователя DNS
- 2.2 Как удалить весь домен из кэшей преобразователя DNS
- 3 Внешние ссылки
В настройках DNS Викимедиа у Викимедиа есть 3 авторитетных общедоступных имени хоста/IP-адреса DNS-сервера, на которые ссылаются записи NS во всех наших зонах. Эти служебные IP-адреса направляются путем ручной настройки в наших маршрутизаторах Juniper на любой из 12 доступных целевых рабочих хостов, роль которых содержит profile::dns::auth (dns[12345]00[12] и authdns[12]001).
Три IP-адреса серверов имен и их текущая маршрутизация:
- ns0.wikimedia.org — 208.80.154.238 (в настоящее время размещен на authdns1001.wikimedia.org в eqiad)
- ns1.wikimedia.org — 208.80.153.231 (в настоящее время размещен на authdns2001.wikimedia. org в codfw)
- ns2.wikimedia.org — 91.198.174.239 (в настоящее время размещен на dns300[12].wikimedia.org в esams)
Все 12 серверов, на которых выполняется установка authdns, используются псевдонимом cumin A:dns-auth (как в отличие от A:dns-rec, который выбирает подмножество из также рекурсоров). Если вы хотите запросить службу authdns на отдельных базовых хостах (в отличие от запроса 3 официальных IP-адресов службы, которые могут быть перенаправлены на любой из них), вам необходимо запросить нестандартный порт 5353, так как authdns служба не прослушивает порт 53 IP-адреса хоста (в зависимости от того, какое подмножество хостов там либо ничего не слушает, либо там прослушивает рекурсивная служба DNS).
Серверы работают с gdnsd с плагином geoip, отвечающим за географический DNS.
Zonefiles и другая конфигурация реплицируются с помощью git fetch и git merge в наборе сценариев обновления. В случае крайней необходимости серверы могут быть синхронизированы с любым другим.
Все файлы конфигурации можно найти в
/etc/gdnsd/
на всех трех хостах, с отдельным файлом конфигурации, используемым только для синхронизации файлов зон и тому подобного, в /etc/wikimedia-authdns.conf .
Основной файл конфигурации gdns — /etc/gdnsd/config. Он создается из файлов в нашем репозитории git Operations/dns, как и файлы зоны.
Отладка сопоставления IP-адресов общедоступных серверов имен
Все наши серверы авторизации поддерживают параметр NSID EDNS и настроены на передачу своих внутренних имен хостов в ответ на запросы NSID.
Инструменты dig или kdig можно использовать как из общедоступного Интернета, так и с внутренних хостов, чтобы проверить, какой внутренний сервер аутентификации отвечает на запрос к одному из общедоступных IP-адресов аутентификации, используя параметр +nsid . .
Примеры (удалите часть grep, чтобы увидеть полный вывод):
bblack@cumin1001:~$ dig +nsid @ns0. wikimedia.org en.wikipedia.org A|grep NSID ; NSID: 61 75 74 68 64 6e 73 31 30 30 31 ("authdns1001") bblack@cumin1001:~$ dig +nsid @ns1.wikimedia.org en.wikipedia.org A|grep NSID ; NSID: 61 75 74 68 64 6e 73 32 30 30 31 ("authdns2001") bblack@cumin1001:~$ dig +nsid @ns2.wikimedia.org en.wikipedia.org A|grep NSID ; NSID: 64 6e 73 33 30 30 31 («dns3001») # Использование kdig с внешнего хоста, для которого маршрутизаторы вместо этого хэшируют ns2 на dns3002: blblack@dallas:~$ kdig +nsid @ns2.wikimedia.org en.wikipedia.org A|grep NSID ;; NSID: 646E7333303032 "dns3002"
Шаблоны доменов
Шаблоны зон — это (обычные) файлы в репозитории git Operations/dns в каталоге templates/.
Каждый обычный файл в этом каталоге соответствует зоне с таким же именем. Каждая символическая ссылка на обычный файл в этом каталоге соответствует псевдониму домена . Итак, в этом примере:
# ls -l шаблоны/медиавики* lrwxrwxrwx 1 root root 13 июн 19 15:52 templates/mediawiki. com -> mediawiki.org lrwxrwxrwx 1 root root 13 19 июня15:52 шаблоны/mediawiki.net -> mediawiki.org -rw-r--r-- 1 root root 1500 19 июня 15:12 templates/mediawiki.org
…перечислена одна зона mediawiki.org с двумя зонами псевдонимов, mediawiki.com и mediawiki.net.
Файлы зон обычно соответствуют стандартному формату основного файла DNS (он же файлы зон BIND), указанному в разделе 5 RFC1035. Сам gdnsd и наши шаблоны на основе jinja добавляют еще несколько дополнительных возможностей, в частности:
Переменные и макросы
В шаблоне зоны можно использовать несколько предопределенных переменных и макросов, которые будут заменены при создании реальных файлов зоны из шаблона. Это включает:
- $INCLUDE имя файла происхождение
- Включает другой файл, который должен находиться в подкаталоге
- @ Z
- Заменяется фактическим именем зоны (FQDN) зоны (работает для символических ссылок, а также включает файлы)
- @F
- Заменяется исходным источником в начале файла, таким же, как @Z в случае основного файла зоны, но может отличаться во включаемом файле
- {{серийный_номер}}
- Вызывает автоматическую генерацию серийного номера SOA в этом месте, приблизительно совпадающего с меткой даты последнего изменения, полученной из истории коммитов git
- {{ серийный_комментарий }}
- Выдает текст, подходящий только для строки комментария, показывающий хэш git и первую строку сообщения фиксации
- {{ языковой список(. ..) }}
- Список языковых субдоменов CNAME , то есть список всех языковых сокращений для всех языков, которые есть в любом проекте Викимедиа, сгенерированный из helpers/langlist.tmpl.
Также можно использовать другие общие конструкции шаблонов jinja2, например:
{% для i в диапазоне (1, 10) %} asw{{ i }}-pmtpa 1H IN A 10.0.1.{{ i }} {%- конец для %}
Обратите внимание, что если диапазон равен (a,b), то первая запись будет для , а последняя запись будет для b-1 .
authdns-update
/usr/sbin/authdns-update — это простой сценарий оболочки, установленный на серверах authdns, который автоматизирует вызовы сценариев, указанных выше. Он проходит следующие шаги на каждом из ns0-2 (требует обновления, слишком ленив, чтобы полностью исправить прямо сейчас):
- ssh к хосту
- git вытащить шаблоны из репозитория Operations/git через authdns-git-pull
- генерировать файлы зоны из файлов шаблона зоны через authdns-gen-zones
- обновите файлы конфигурации gdnsd из локального репозитория git, только что обновленного
- проверка работоспособности и перезагрузка демона gdns
По сути, authdns-update позаботится обо всем после того, как вы отредактировали и объединили файлы зон.
локальное обновление authdns
/usr/sbin/authdns-local-update используется на любом из серверов для загрузки обновлений с любого другого (предположительно актуального) DNS-сервера. Его можно использовать для обновления сервера после, например. время простоя или установка/обновление программного обеспечения. Таким образом он также используется марионеткой во время первоначальной настройки.
Географический DNS
Географический DNS гарантирует, что клиенты в конечном итоге будут использовать ближайший к ним кластер Викимедиа, изменяя ответы DNS в зависимости от IP-запроса (страны) резолвера. Это обрабатывается плагином gdns geoip. Файл конфигурации находится в config-geo в репозитории Operations/dns. Наша настройка geoip использует /usr/share/GeoIP/GeoIPCity.dat (ipv4) и /usr/share/GeoIP/GeoIPv6.dat (ipv6). Они извлекаются из нестабильного каталога на мастере марионеток, который регулярно обновляется с помощью cron. См. модуль geoip для получения дополнительной информации.
HOWTO
В этом разделе кратко объясняется, как выполнять наиболее распространенные изменения DNS.
Изменить GeoDNS / депулировать сайт
При редактировании также обновите README.md .
Например, когда какой-то кластер не работает/недоступен, и вы хотите перенаправить весь трафик на другие.
Депулирование любого сайта:
- В репозитории Operations/dns отредактируйте файл
admin_state
, включив что-то вродеgeoip/generic-map/eqiad => DOWN
(см. примеры внутри), зафиксируйте и запустите authdns-update с любого из DNS-серверов.
Что-то, что следует учитывать в часы пик трафика, — это следить за насыщением наших пиринговых/транзитных каналов! В то время как насыщение ссылок является предупреждением о подкачке, представление LibreNMS о пиринговых и транзитных ссылках может помочь.
Изменение записей в файле зоны
- Это обрабатывается через операции git repo/dns
- Отредактируйте файл шаблона templates/ zonename локально и зарегистрируйтесь в git и git review (для проверки gerrit)
- Внесите изменения в gerrit, затем войдите в систему
authdns1001. wikimedia.org
и запуститеsudo -i authdns-update
. Это будет извлекаться из Operations/dns и генерировать файлы зон и конфигурации gnsd на каждом сервере имен.
- Вам больше не нужно пересылать собственный ключ, системы настроены с собственными доверенными ключами для синхронизации.
- Убедитесь, что обновление правильно работает на всех DNS-серверах, свяжитесь с другими SRE, если этого не происходит, и вы не знаете, почему.
- После завершения сценария рекомендуется запросить все три DNS-сервера, чтобы убедиться, что ваше изменение было правильно развернуто.
- например:
для i в 0 1 2; делать ns=ns${i}.wikimedia.org эхо $нс dig +short @${ns} -t srv _etcd-server-ssl._tcp.dse-k8s-etcd.eqiad.wmnet Выполнено
- Если какой-либо DNS-сервер аутентификации не ответил, обратитесь к другим SRE и проверьте, что не так, прежде чем делать что-либо еще.
Динамические данные, управляемые Netbox
Большинство записей инфраструктуры динамически генерируются с помощью данных, управляемых Netbox. См. DNS/Netbox.
Добавление новой зоны
- Сначала решите, будет ли эта новая зона использовать новый независимый файл зоны или будет псевдонимом другой зоны.
- независимый файл зоны
- Создайте новый шаблон зоны в репозитории Operations/dns как templates/ zonename . (Для начала скопируйте существующий, относительно чистый файл зоны, такой как wiktionary.org).
- псевдоним зоны
- Создайте символическую ссылку templates/ aliasname для алиаса зоны, для которой создается алиас.
- git добавьте файл, зафиксируйте и проверьте gerrit.
- Запустить authdns-update на ns0 (или любом сервере имен).
- Запросите все три сервера ns, чтобы убедиться, что ваши изменения приняты правильно.
- Если какой-либо DNS-сервер авторизации не ответил, перезапустите его с помощью /etc/init. d/pdns restart
Удаление зоны
- git rm соответствующий файл и выполнить слияние с gerrit.
- Войдите в NS0 и запустите authdns-update
Добавление новой (языковой) вики
- Добавьте код языка в templates/helpers/langs.tmpl в репозитории Operations/dns и объедините фиксацию
- Обычный процесс развертывания не даст ожидаемых результатов. На данный момент вы должны следовать обходному пути, описанному на https://phabricator.wikimedia.org/T97051#1994679!
Если определенный сервер имен
unreachable
Когда определенный сервер имен недоступен, другие все еще могут быть обновлены с любого из других серверов, запустив там authdns-update . Чтобы пропустить недоступный сервер в процессе обновления, используйте:
# authdns-update -s " список серверов "
, где список серверов — это разделенный пробелами список полных доменных имен. Не забудьте кавычки, скрипт примет только один аргумент после -s.
- запросите все три сервера ns, чтобы убедиться, что ваше изменение было принято правильно.
- Если какой-либо DNS-сервер аутентификации не ответил, перезапустите его с помощью /etc/init.d/pdns restart
Линтинг файлов зоны
- Большинство сценариев здесь ожидают запуска из корневого каталога клона операций
Репозиторий /dns
. - Для всех скриптов Python требуется Python 3.5+ (например, stretch python3)
Для локального запуска тех же проверок CI:
- Частичный локальный CI: установите модуль Python
tox
и запуститетоксик -- -n
- Завершите локальную CI: установите модуль Python
tox
и последний пакет debian WMFgdnsd
и запустите:tox
Более подробные инструкции см. в файле utils/README
внутри репозитория.
Дополнительные сведения о сценарии проверки согласованности файлов зон DNS, специфичных для WMF, для файлов внутренних зон (зоны wmnet и указателей) см. в строке документации в верхней части файла.
Знать, на какой DC перенаправляется конкретный IP-адрес
bblack@authdns1001:~$ gdnsd_geoip_test [запускает интерактивную оболочку, затем вводит имя карты, а затем IP, например:] > универсальная карта 1.2.3.4 generic-map => 1.2.3.4/24 => eqiad, codfw, ulsfo, esams, eqsin
Если вы просто хотите выполнить один поиск, вы также можете указать имя карты и IP-адрес в командной строке, но если вы делаете несколько, использование интерактивной оболочки предотвращает дорогостоящую перезагрузку карт каждый раз
Знать, с какого IP-адреса AuthDNS видит запрос от
Для сценариев, когда сеть, к которой вы в данный момент подключены, не перенаправляется на правильный контроллер домена, в то время как ваш IP-адрес и IP-адрес вашего преобразователя сопоставляются с правильным контроллером домена.
Поиск Reflect.wikimedia.org , он расскажет вам, как на самом деле authdns видит IP-адрес клиента или рекурсора.
Обновите DNS, если gerrit или DNS не работают (только в экстренных случаях). не могу дождаться, пока оно поднимется.
Попробуйте связаться с кем-нибудь из SRE/Traffic, прежде чем пытаться это сделать, так как рабочий процесс еще не подходит для внесения изменений вручную. Кроме того, скоро у нас будет более 3 серверов авторизации, что сделает любое ручное «ssh для всех серверов авторизации и редактирования файлов вручную» плохим. Прежде чем делать это, убедитесь, что это последнее и единственное средство — зависимости между службами делают эту операцию небезопасной. |
- ssh к каждому серверу авторизации (dns и ips находятся на DNS#Authoritative_nameservers)
- отредактируйте данные зоны непосредственно в
/etc/gdnsd/zones
, чтобы устранить проблему - выполнить
зоны перезагрузки gdnsdctl
- Не забудьте повторить это для каждого сервера авторизации, чтобы все они были синхронизированы.
Обязательно зарегистрируйтесь и объявите, что никто не должен трогать gerrit DNS или authdns-update, пока все снова не станет нормальным, иначе все сломается (даже более ).
pdns_recursor выполняется на следующих узлах:
- днс[1001-1002] в уравнении
- dns[2001-2002] в коде
- днс[3001-3002] в есам
- днс[4001-4002] в ulsfo
- dns[5001-5002] в eqsin
Они используют роль role::dnsbox.
Здесь используется программное обеспечение рекурсивного кэширования PowerDNS recursor (он же pdns-recursor ). На этих машинах также размещается локальный экземпляр authdns и NTP-серверы сайта.
Статистика доступна по адресу: Grafana DNS Recursor Stats
Как удалить запись из кэшей преобразователя DNS
Если вы только что добавили или обновили запись DNS на авторитетных серверах имен, она все еще может кэшироваться на (несвязанных) преобразователях DNS, используемых нашими серверами. Чтобы очистить запись из кеша, используйте:
# rec_control wipe-cache имя-записи
на всех преобразователях DNS. Это также удалит все отрицательные записи кэша. Если вам нужно очистить запись PTR, обязательно используйте фактическое имя записи, например.
# rec_control wipe-cache 122.36.64.10.in-addr.arpa.
(с ‘.’ в конце).
Все рекурсоры могут быть настроены с помощью этой команды cumin:
sudo cumin 'A:dns-rec' 'rec_control wipe-cache'
Как удалить весь домен из кэшей преобразователя DNS
При более масштабных миграциях может оказаться полезным иметь возможность стереть кэш для всего домена. Для доменов, для которых мы являемся авторитетными, влияние на распознаватели минимально, учитывая, что они запрашивают локальный экземпляр gdnsd. Следует проявлять осторожность перед очисткой кеша для внешнего домена, так как это может повлиять на время, необходимое для повторного заполнения кеша внешними уполномоченными преобразователями DNS.