Рубрики
network \ сеть

DNS \ dig \ host \ resolv ip \ преобразование сетевого имени в ip

Для чего нужны DNS-серверы:

Domain Name System
DNS - преобразует имя домена  в ip адрес.

Интернет — это бесчисленное количество физических устройств (серверов, компьютеров, планшетов и т.д.), связанных между собой в сеть. 
Любой сайт в интернете по факту находится на физическом устройстве. 
Каждое устройство имеет свой уникальный номер — IP-адрес вида 123.123.123.123.

Служба доменных имён работает благодаря DNS-cерверам.
Именно эти жизненно важные «программы» хранят таблицы соответствий вида «имя домена» — «IP-адрес». 
Кроме того, DNS-серверы служат для хранения ресурсных записей доменов.
В интернете огромное количество DNS-серверов и каждый выполняет свою функцию в общей системе. 
Служба Domain Name System необходима для того, чтобы мы могли без проблем находить свои любимые сайты, не запоминая вереницы цифр.

DNS-серверы интернет-провайдера обновляются раз в сутки (принцип работы DNS-серверов). 
Если вы только что прописали или сменили DNS-серверы, придётся подождать 24 часа. 
Смена DNS-сервера чревата временным отсутствием работающего сайта. 
После обновления DNS сайт станет доступен.

Основные записи:

А - IP-адрес веб-ресурса, который соответствует определённому имени домена
Запись A (address) - одна из ключевых ресурсных записей Интернета. 
Она нужна для связи домена с IP-адресом сервера. 
Пока не прописана А-запись, ваш сайт не будет работать.
site.ru         A       123.123.123.123
shop.site.ru    A       123.123.123.123

CNAME - указывает аналог основному доменному имени. 
Эта запись чаще всего используется для прикрепления поддомена.
CNAME (Canonical name) - запись, которая отвечает за привязку поддоменов (например, www.site.ru) к каноническому имени домена (site.ru) или другому домену.
Основная функция CNAME - дублирование ресурсных записей домена (A, MX, TXT) для различных поддоменов.
www.site.ru     CNAME    site.ru
mail.site.ru    CNAME     webmail.hosting.reg.ru

MX - адрес почтового сервера
Это запись, отвечающая за сервер, через который будет работать почта. 
Записи MX критически важны для работы почты. 
Благодаря им отправляющая сторона «понимает», на какой сервер нужно отправлять почту для вашего домена.
site.ru         MX   10  mx1site.ru
site.ru         MX   15  mx2.site.ru


NS - адрес DNS-сервера, где хранятся все ресурсные записи
NS - запись (Authoritative name server) указывает на DNS-серверы, которые отвечают за хранение остальных ресурсных записей домена. 
Количество NS записей должно строго соответствовать количеству всех обслуживающих его серверов. 
Критически важна для работы службы DNS.


TXT - любая текстовая информация о домене
TXT (Text string) - запись, которая содержит любую текстовую информацию о домене


SPF - список серверов, которым позволено отправлять письма от имени указанного домена

SOA - исходная запись зоны, в которой указаны сведения о сервере

Запись PTR
PTR - обратная DNS-запись, которая связывает IP-адрес сервера с его каноническим именем (доменом).
PTR-запись применяется для фильтрации почты.


Список 13 корневых серверов:

Официальная информация о том, где находится и кому принадлежит тот или иной действующий корневой DNS-сервер, публикуется на сайте Ассоциации операторов Корневых серверов DNS.
Чтобы повысить устойчивость системы, были созданы копии основных серверов в разных странах. Таким образом, корневых серверов стало 123.
DNS-серверы расположены согласно интенсивности использования интернет-инфраструктуры.

Хост	Оператор
a.root	VeriSign, Inc.
b.root  Information Sciences Institute
c.root  Cogent Communications
d.root  University of Maryland
e.root  NASA Ames Research Center
f.root  Internet Systems Consortium, Inc.
g.root  Defense Information Systems Agency
h.root  U.S. Army Research Lab
i.root  Netnod
j.root  VeriSign, Inc.
k.root  RIPE NCC
l.root  ICANN
m.root  WIDE Project

Как работают DNS-серверы в браузерах:

0. 
Когда вы вводите в строке браузера доменное имя, например, "b14esh.com" , браузер ищет на вашем локальном компьютере файл hosts. 
Допустим, в этом файлe есть запись для введённого доме, сайт откроется сразу.

1.
Если же записи нет, браузер сформирует DNS-запрос к интернет-провайдеру  чтобы тот нашёл IP-адрес домена.
У каждого интернет-провайдера есть локальные (кеширующие) DNS-серверы. 
После получения запроса провайдер ищет в своём кеше запись о соответствии требуемого домена IP-адресу. 
Если такая запись есть, браузер получит IP-адрес. 
По этому адресу браузер обратится к хостингу, на котором расположен сайт, и пользователю откроется нужная страница.

2. 
Если запись отсутствует, провайдер перенаправит DNS-запрос на корневые DNS-серверы.
Корневые DNS-серверы хранят информацию только о DNS-серверах, ответственных за доменные зоны. 

3. 
Корневой DNS-сервер не может предоставить провайдеру информацию об IP-адресе домена "b14esh.com". 
Зато он отправит IP-адрес DNS-сервера доменной зоны, в данном случае зоны ".com".
Теперь у интернет-провайдера есть IP-адрес DNS сервера доменной зоны ".com". 
Поэтому он обращается к этому DNS-серверу и запрашивает IP-адрес домена.
DNS-серверы зоны ".com" хранят только информацию о DNS-серверах всех доменов в этой зоне, а не их IP-адреса. 
Поэтому DNS-серверы зоны подскажут интернет-провайдеру IP-адрес DNS-сервера домена "b14esh.com".

4.
Интернет-провайдер получил IP-адрес DNS-сервера домена "b14esh.com". 
Он обращается к DNS-серверу домена (например, к ns1.superpuper.com) с запросом IP-адреса домена.
После получения запроса DNS-сервер сначала проверяет, есть ли у него информация о домене "b14esh.com" и искомый IP-адрес для него. 
В случае успеха DNS-сервер отправит IP-адрес домена интернет-провайдеру.

5.
Интернет-провайдер получает IP-адрес домена и сохраняет его у себя в кеше. 
После этого он отправит браузеру результат DNS-запроса — IP-адрес домена "b14esh.com".
Браузер обращается к хостингу по полученному IP-адресу. 
Теперь пользователю открывается запрашиваемый сайт "b14esh.com".

hostname

hostname - посмотреть имя локального пк
hostname -f - посмотреть имя FQDN локального пк

DNS

nano /etc/resolv.conf - настройка DNS 
nameserver 8.8.8.8
nameserver 8.8.4.4 

DIG

dig - без параметров выведет информацию о DNS

dig www.server.com - поиск по A указанным в ( в первую очередь /etc/resolv.conf)
dig www.site.ru mx - запрос об устройстве работы с электронной почтой MX
dig www.name.com ns - запрос о низкоуровневых серверах имен NS 

dig -f names.txt +noall +answer - ключ (-f) позволяет использовать список имен из файла names.txt

dig @8.8.8.8 www.name_site.org - выполнить опрос конкретного DNS-сервера (@8.8.8.8)
dig @ns1.yandex.ru ya.ru - выполнить опрос конкретного DNS-сервера  (@ns1.yandex.ru)

dig -x 66.113.99.70 - получение информации PTR по IP адресу

dig ya.ru ns +short  - отображает NS ( +short  вывод короткий)
dig ya.ru a  +short  - отображает A ( +short  вывод короткий)
dig ya.ru mx +short  - отображает MX ( +short  вывод короткий)
dig -x 66.113.99.70 +short - получение информации PTR по IP адресу ( +short  вывод короткий)


dig +trace www.name.ty - рекурсивное отслеживание DNS-серверов
dig AXFR @ns1.xname.org cb.vu  - получить всю зону (пересылка зоны)

HOST

host ya.ru - получение A MX AAAA

host 66.113.99.70 - получение информации PTR  (70.99.133.66.in-addr.arpa name_server.com)
host 87.250.250.242 - получение PTR

host -a ya.ru - выведет больше информации

host ya.ru 8.8.8.8 - используем в качестве резолвера 8.8.8.8

NSLOOKUP

nslookup - программа позволяет подключится к dns серверу и запросить у него name/ip тип ALL/A/MX/SRV/NS (server=8.8.8.8, set q=MX)

Первый вариант использования:
nslookup ya.ru - все о DNS ya.ru
nslookup 78.31.70.238
nslookup -type=all ya.ru  8.8.8.8 - показать все A,MX,PTR,NS и т.д.
nslookup -type=ns ya.ru  8.8.8.8 -  показать записи MX (почта) домена ya.ru
nslookup -type=a ya.ru  8.8.8.8 -  показать записи MX (почта) домена ya.ru
nslookup -type=mx ya.ru  8.8.8.8 -  показать записи MX (почта) домена ya.ru
nslookup -type=ptr 8.8.8.8  8.8.8.8 - показать имя сервера которому принадлежит 8.8.8.8
nslookup ya.ru 8.8.8.8 - все о DNS ya.ru спросили у 8.8.8.8


Второй вариант использования:
nslookup - входим в программу
nslookup \ server=DNS_server \ q=вид_запроса \ hostname
nslookup -> server ->  8.8.8.8 -> set q=ALL -> ya.ru  - показать все A,MX,PTR,NS и т.д.
nslookup -> server -> 8.8.8.8 -> set q=a ->  ya.ru - показать записи A домена ya.ru
nslookup -> server -> 8.8.8.8 -> set q=mx ->  ya.ru -  показать записи MX (почта) домена ya.ru
nslookup -> server -> 8.8.8.8 -> set q=ptr ->  8.8.8.8 - показать имя сервера которому принадлежит 8.8.8.8
nslookup -> server -> 8.8.8.8 -> set q=ns ->  ya.ru - показать сервер держателя DNS ya.ru