Часть 1. Использование DNS
Служба DNS
В этом разделе изучается работа клиента и сервера DNS, конфигурирование соответствующего программного обеспечения, получение информации из баз данных DNS.
Дерево доменных имен аналогично файловой системе Unix. Корнем дерева является домен “.” (точка). Полное – абсолютное или полностью определенное, fully qualified domain name – доменное имя заканчивается точкой, обозначающей корень доменного дерева, но часто эта завершающая точка опускается. Доменами верхнего уровня выступают двухбуквенные национальные домены или трехбуквенные домены com, edu, org, net, gov, int, mil (см. рис 2.1).
Рис 2.1. Дерево доменных имен
Служба DNS представляет собой иерархическую структуру серверов, где каждый сервер отвечает за определенную зону – т.е. свою часть дерева доменных имен, хранит соответствующие базы данных и отвечает на запросы. При этом вышестоящие по дереву серверы имеют информацию об адресах нижестоящих серверов, что обеспечивает связность дерева (говорят, что вышестоящий сервер делегирует нижестоящему серверу полномочия по обслуживанию определенной зоны).
Конфигурирование клиента DNS
- имя хоста,
- домен, в котором находится данный хост,
- IP-адрес сервера DNS, обслуживающего этот домен.
Получение всех этих данных возможно автоматически – в случае конфигурирования стека TCP/IP с помощью DHCP-сервера, либо их выдает администратор сети.
Ручное конфигурирование. Windows.
Ручное конфигурирование. Unix.
В Unix имя домена и адрес DNS-сервера указываются в файле /etc/resolv.conf в формате:
domain vvsu.ru nameserver 212.16.195.98
(Естественно, что адрес сервера указывается исключительно в числовом виде.)
Имя хоста устанавливается командой hostname имя_хоста. Иногда, в дополнение к /etc/resolv.conf, требуется также установить имя домена командой domainname имя_домена, а для автоматической установки этого параметра при загрузке системы – внести имя домена в файл /etc/defaultdomain.
Важным файлом в Unix является файл /etc/hosts. В нем в формате
IP-адрес имя_хоста [псевдоним ...] 127.0.0.1 localhost 212.16.195.98 maria mail2
Другие службы распознавания имен и порядок их использования хостом
Помимо DNS и файла /etc/hosts существуют и другие службы, выполняющие преобразования “имя в адрес” и “адрес в имя”, например, NIS (Network Information Service). В большинстве Unix-систем требуется указать какие службы будут использоваться для распознавания имен и в каком порядке.
В ОС Solaris такие указания делаются в файле /etc/nsswitch.conf в строке hosts. Формат строки:
hosts: служба [модификатор(ы)] служба ...
где служба – служба распознавания имен (dns, files, nis); files означает просмотр /etc/hosts; службы используются в порядке их появления в строке, модификатор задает условие перехода от использования одной службы к другой и имеет вид
событие=действие
NOTFOUND – запрос обслужен, данные не найдены,
TRYAGAIN – сервис временно недоступен (например, произошел тайм-аут),
UNAVAIL – сервис недоступен (например, несконфигурирован, отcутствует файл resolv.conf),
SUCCESS – запрос обслужен, данные найдены.
Действия: continue – использовать следующую службу, return – прекратить поиск.
Модификаторов может быть несколько, тогда они следуют друг за другом внутри квадратных скобок через пробел.
Пример строки наиболее распространенной конфигурации
hosts: files [NOTFOUND=continue] dns
означает, что сначала просматривается файл /etc/hosts, и в случае, если искомые данные не найдены, запрашивается сервер DNS.
В Linux порядок использования служб распознавания имен задается в файле /etc/host.conf, например:
order hosts,bind,nis multi on
Для решения этой задачи в других Unix-системах обратитесь к руководству системного администратора.
Порядок выполнения DNS-запроса
При необходимости произвести какое-либо из DNS-преобразований (“адрес в имя”, “имя в адрес”) хост обращается к своему серверу DNS, адрес которого устанавливается как описано выше.
Обращение происходит через протокол UDP на порт 53.
Если DNS-сервер не может выдать ответ на поступивший запрос (т.е. необходимые данные отсутствуют в его базе и кэше предыдущих запросов), он обращается к одному из корневых серверов (root servers). Рассмотрим на примере, что происходит дальше.
Рис.2.2. Схема обработки запроса DNS-сервером
Различают рекурсивные и итеративные запросы. При получении рекурсивного запроса сервер должен вернуть либо ответ на запрос, либо сообщение об ошибке; все действия по поиску данных и опросу других серверов сервер берет на себя. При получении итеративного запроса сервер может вместо ответа вернуть адрес другого сервера; предполагается, что сделавший запрос клиент перенаправит это запрос указанному серверу. В примере на рис 2.2 DNS-клиент на хосте ada производит рекурсивный запрос, а сервер ns.vvsu.ru посылает другим серверам итеративные запросы.
Программа nslookup
Программа nslookup (обычно – /usr/sbin/nslookup в Unix)позволяет произвести DNS-преобразования в явном виде. Например:
%nslookup www.ibm.com Server: maria.vvsu.ru Address: 212.16.195.98 Name: www.ibm.com Address: 204.146.18.33
Пример обратного преобразования:
%nslookup 204.146.18.33 Server: maria.vvsu.ru Address: 212.16.195.98 Name: www.ibm.com Address: 204.146.18.33
Программа nslookup работает также в режиме командной строки. Необходимые команды:
- server [имя_опрашиваемого_сервера]
- lserver [имя_опрашиваемого_сервера]
- сменить опрашиваемый DNS сервер, например: server ns.kiae.su. Без аргумента – установить сервер по умолчанию (“свой” сервер). Все запросы (кроме команды lserver – см. след. абзац) отправляются к опрашиваемому серверу, установленному в данный момент. Nslookup позволяет напрямую обращаться с запросами к серверам, непосредственно отвечающим за ту или иную зону. Если же ответ поступил от сервера, не отвечающего за зону, для хоста которой запрашивалась информация (например, данные были извлечены из кэша), такой ответ будет помечен как “non-authoritative answer“.
server и lserver отличаются тем, что при смене сервера командой server адрес нового сервера преобразуется с помощью текущего сервера, а команда lserver производит то же преобразование с помощью сервера, установленного для nslookup по умолчанию – “своего” сервера. Это имеет значение, когда текущий сервер по какой-либо причине не отвечает на запросы.
- set type=тип_данных
- установить запрос данных определенного типа. Например:
>set type=NS >ibm.com
означает запрос списка DNS-серверов, отвечающих (authoritative) за домен ibm.com. (Запрос в этом случае должен состоять из имени домена, а не отдельного хоста.)
- SOA (Start Of Authority) – заголовок зоны,
- NS (Name Server) – сервер DNS,
- A (Address) – IP-адрес, если указано доменное имя, или доменное имя, если указан IP-адрес (выбрано по умолчанию),
- MX (Mail Exchanger) – обработчик почты,
- CNAME (Canonical Name) – каноническое имя,
- PTR (Pointer) – запрос по обратной зоне,
- ANY – все записи.
Более подробно о типах данных в базе данных DNS см. часть 2 этой темы “Конфигурирование сервера DNS”.
- set recurse
- отправлять рекурсивные запросы (выбрано по умолчанию).
- set norecurse
- отправлять итеративные запросы.
- set domain=имя_домена
- установить имя домена, добавляемое к неполностью определенным доменным именам (по умолчанию берется из /etc/resolv.conf).
- set debug
- подробно показывать содержимое поступающих ответов.
- set nodebug
- отменить set debug (отменено по умолчанию).
- set d2
- подробно показывать содержимое отправляемых запросов.
- set nod2
- отменить set d2 (отменено по умолчанию).
- set all
- показать значения всех опций.
- ls имя_домена
- вывести список хостов указанного домена, например ls vvsu.ru. Предварительно следует переключиться на опрос сервера, отвечающего (authoritative) за данный домен. В целях безопасности некоторые серверы не выполняют эту команду (запрещена пересылка баз данных зоны – см. п. Вопросы безопасности).
- help
- помощь.
- exit
- выход.
Любой ввод, не являющийся командой, воспринимается как запрос. Перенаправление вывода в файл производится с помощью символа >.
Задания по части 1
Задание 1. Объяснить и устранить ошибку в конфигурации
клиента DNS на своей рабочей станции.
Задание 3. Получить список хостов указанной преподавателем организации.
Задание 4. Переконфигурировать хост так, чтобы он обращался к другому DNS-серверу своей зоны. Список серверов своей зоны найти.
Задание 5. Если при вызове соединения указывается только имя хоста без имени домена, то к нему автоматически присоединяется имя своего домена. Сделать так, чтобы при указании имени хоста “www” (например, “ping www”) производилось соединение с хостом “www.ru”, а не “www.vvsu.ru”), а к любым другим именам по-прежнему добавлялось имя своего домена.
Максим Мамаев
Технологии Интернет
Лабораторный практикум
Тема 2. DNS – ДОМЕННАЯ СЛУЖБА ИМЕН
Часть 1. Использование DNS
Часть 2. Конфигурирование сервера DNS
- Первичные и вторичные серверы DNS
- Конфигурационный файл /etc/named.conf (/etc/named.boot)
- Файл root.cache
- Файл зоны
- Типы стандартных записей ресурсов
- Файл обратной зоны
- Файл локальной петли
- Создание поддомена
- Дополнительные возможности BIND
- Управление работой демона named
- Задания по части 2
Литература и ссылки
- Cricket Liu, Paul Albitz “DNS and BIND” – O’Reilly, Third Edition, September 1998; ISBN 1-56592-512-2, 502 pages.
- Оригинальный сайт BIND в Internet Software Consortium (дистрибутив, документация).
- man named, man nsupdate, man nslookup
Используемое ПО:
- Unix (Solaris 2.x),
- BIND v. 8.2.1 (распространяется свободно).
What is a DNS record?
- IP (IPv4/IPv6) is associated with that domain.
- How to handle the DNS requests for that domain.
Different Types of DNS Records
- A record: the most basic type of record, also known as address record, provides an IPv4 address to a domain or sub-domain name. That record points the domain name to an IP address.
- AAAA record: maps the hostname to a 128-bit IPv6 address. For a long time, 32-bit IPv4 addresses served the purpose of identifying a computer on the internet. But due to the shortage of IPv4, IPv6 was created. The four “A” s (AAAA) are mnemonic to represent that IPv6 is four times larger than IPv4.
- CNAME record: also known as Canonical Name record, creates an alias of one domain name. The aliased domain or sub-domain gets all the original Domain’s DNS records and is commonly used to associate subdomains with the existing main domain. Use the CNAME Lookup tool to dig deeper.
- MX record: also known as Mail Exchange records, tells which mail exchange servers are responsible for routing the email to the correct destination or mail server. For detailed analysis, use MX Record Lookup.
- NS record: also known as Name Server records, points to the name servers with authority in managing and publishing DNS records of that domain. These DNS servers are authoritative in handling any query related to that domain. Use the NS Lookup tool to dig deeper.
- PTR record: also known as Pointer record, points the IPv4 or IPv6 address to its machine’s hostname. It provides a reverse DNS record, or rDNS record, by pointing an IP address to the server’s hostname. Use the Reverse IP Lookup tool to dig deeper.
- SRV record: also known as Service record, indicates which specific services the domain operates and port numbers. Internet protocols such as the Extensible Messaging and Presence Protocol (XMPP) and the Session Initiation Protocol (SIP) often require SRV records.
- SOA record: also known as Start of Authority records, provides essential information about the domain, like identifying the master node of the domain authoritative nameserver, an email of the domain administrator, the serial number of the DNS zone, etc.
- TXT record: allows the website’s administrator to insert any arbitrary text in the DNS record.
- CAA record: also known as Certification Authority Authorization record, reflects the public policy regarding issuing digital certificates for the domain. If no CAA record exists for your domain, any Certification Authority can issue an SSL certificate. However, using this record, you can restrict which CA is authorized to issue digital credentials for your domain.
- DS record: also known as Delegation Signer record, consists of the unique characters of your public key and its related metadata like Key Tag, Algorithm, Digest Type, and cryptographic hash value called Digest. Use the DS Lookup tool to dig deeper.
- DNSKEY record: also known as DNS Key record, containing public signing keys like Zone Signing Key (ZSK) and Key Signing Key (KSK). The DS and DNSKEY records validate the authenticity of DNS records returned by the DNS Server. Use DNSKEY Lookup to dig deeper.
More free DNS tools such as SPF Checker, DKIM Checker, DMARC Checker, and DMARC Generator are also available.
Интересно и полезно
Monitorus – теперь вы не потеряете своих посетителей!
- 26 июля 2018
Как правильно рассылать письма и не попадать в СПАМ?
- 03 декабря 2014
Старт открытой регистрации доменов МОСКВА и MOSCOW
- 03 декабря 2014
Разместить новость своей компании на этом месте
How is a domain name translated to an IP address?
DNS stands for Domain Name System. The system converts a hostname (dnschecker.org) to a computer-friendly IP address.
Consider DNS domain lookup as a map or phone book to find your respective searches for a better understanding.
As discussed, humans cannot learn long number strings (IP Addresses). Therefore, by simply typing the website’s name (www.amazon.com), the DNS server provides the IP Address associated with that domain.
The DNS server can either be on ISP or your local network. Other devices, such as routers, access the translated domain (into IP address) to channel your search results.
DNS Lookup Flow – Eight-Step Process
The flow of the DNS lookup process for domain example.com involves several steps.
- Requesting domain information: It starts with a client typing the domain “example.com” in its browser bar.
- Contact the recursive DNS server: The browser sends a DNS query to its configured DNS resolver (a recursive resolver) (e.g., the router or ISP’s DNS server).
- Return DNS record if present: The recursive resolver checks its cache to see if it has a recent copy of the DNS record. If so, it returns the DNS record to the client.
- Sending DNS query to root nameserver: If the recursive resolver does not have a recent record copy, it sends a query to one of the root nameservers.
- Contacting TLD nameserver: The root nameserver returns with an address of the top-level domain (TLD) nameserver (e.g., the .com TLD nameserver in that case) responsible for the domain in question.
- Referring to authoritative nameserver: The TLD nameserver refers to the authoritative nameserver for the specific domain.
- Access the DNS record: The recursive resolver sends a request to the authoritative nameserver that responds with the requested DNS record to the recursive resolver, which it caches and then returns to the client.
- Final Step: The client uses the information from the DNS record to connect to the IP address of the server hosting the website.
Each DNS request also returns a TTL (time to live) value specifying the time (in seconds) for which the DNS record is cached. When you change your DNS servers, it usually takes 24 to 48 hours for the DNS records to propagate globally. You can go for my DNS check to check whether your domain DNS records are propagated globally.
Forward DNS Lookup
Reverse DNS Lookup
Contrary to forwarding DNS Lookup, DNS reverse lookup identifies the domain name using the IP Address. Email servers use this lookup method to identify valid receivers.