Введение в DNS
-
date post
16-Jun-2015 -
Category
Documents
-
view
782 -
download
3
description
Transcript of Введение в DNS
Введение в DNS
Interlabs
14 октября 2013
1 / 38
О чем речь
• Общая структура DNS• DNS как распределенная база данных• Пространство доменных имен Internet• Обратная зона• Конфигурирование зоны• Клиентский инструментарий• Инструментарий разработчика
2 / 38
Пространство имен DNS
Пространство имен DNS
4 / 38
Пространство имен DNS• дерево, вершина — root• максимальная глубина 127, максимальная длина имениузла — 63, максимальная длина имени 253
• домен — поддерево• зона — совместно администрируемая группа узлов,обычно поддоменов некоторого домена
• если с доменом ассоциирован хотя бы один IP — hostname• имя — [A-Z0-9-]+, полное имя — root в виде «.» в конце• интернациональные имена конвертируются в совместимоепредставление на стороне клиента
www.interlabs.ru.: www← interlabs← ru← .
5 / 38
Ресурсные записи
• каждому элементу дерева соответствует набор записей,содержащих определенную информацию о домене
• каждая запись имеет тип, определяющий структурузначения, хранимого в записи
• общие элементы для всех записей: name, ttl, class, rr• значение @ для name соответствует домену, для которогоопределена запись
6 / 38
DNS как распределеннаябаза данных
Сервера именAuthoritative Сервер, являющийся источником информации о
зонеMaster Авторитативный сервер, на котором производятся
изменения информации о зонеSlave Авторитативный сервер, автоматически
получающий информацию об изменениях отмастера
Primary Основной авторитативный сервер домена, обычноmaster
Secondary Дублирующий авторитативный сервер домена,обычно slave
Caching Кеширующий сервер, кеширует запросы,увеличивая производительность
8 / 38
Разрешение адреса
9 / 38
Ресолвер• клиентская часть DNS, часть операционной системы• формирует серию запросов, позволяющую определитьадрес по доменному имени
• запросы могут быть рекурсивными и нерекурсивными,сервер не обязан поддерживать рекурсивные запросы
• кеширует запросы
# /etc/resolv.confsearch example.comnameserver 172.16.1.254nameserver 172.16.2.254
При использовании DHCP формируется динамически,настройки — в DHCP-клиенте.
10 / 38
Пространство доменныхимен Internet
ROOT-сервера
[A-L].ROOT-SERVERS.NET
• 13 основных серверов, чтобы информация об IP всехумещалась в пакет 512 байт
• физически каждый сервер — высоконадежный кластер• администрирование зоны: US Department of Commerce,IANA, ICANN
• поддержка серверов: Verisign, USC-SI, University ofMaryland, NASA, US Army Research Lab, ICANN . . .
12 / 38
Домены первого уровня (TLD)Организационные
COM EDU GOV MIL NET ORG INT
Национальные
AC ... RU ... ZW
Новые после 2000
AERO BIZ COOP INFO MUSEUM NAME PRO13 / 38
Делегирование зоны
Делегирование — механизм децентрализации управления:
• организация, администрирующая домен, может разбитьего на поддомены и передать управление поддоменомдругой организации
• выполняется путем добавления NS-записей, указывающихна авторитативные сервера зоны в родительскую зону
• если авторитативные сервера находятся внутриделегируемой зоны — дополнительно прописываются ихIP-адреса (glue records)
14 / 38
Обратная зонаIP→ Domain Name.
• специальный TLD arpa. Address and Routing Parameter Area• IP4 соответствует in-addr.arpa., каждый адрес —последовательность из 4 цифр с суффиксом:
192.0.2.5→ 5.2.0.192.in-addr.arpa
• прописывается с помощью специальной записи типа PTR• рекомендуется использовать одну запись для одного IP• как правило, выполняется провайдером (хостером)• смена записи обычно производится по запросу
15 / 38
Resource Recordsразличные виды ресурсных записей DNS
Ресурсные записиSOA начальная запись зоныNS сервер имен, указывает на один из DNS-серверовA адрес, связывает имя с одним из IP адресов
CNAME каноническое имя, псевдоним,перенаправляющий на другое имя
MX почтовый сервер доменаSRV сервер для сервисов, указывает на сервер,
предоставляющий определенный сервис в доменеTXT произвольная текстовая записьPTR запись указателя, связывает имя с IP-адресом в
зоне in-addr.arpa
AAAA CERT DNSKEY DS LOC RRSIG SSHFP NSEC TKEY TSIG SPF ...
17 / 38
SOA: Start Of Authorityinterlabs.ru. 2650 IN SOA ns.majordomo.ru.support.majordomo.ru. 2004112401 3600 3600 432000 3800
name interlabs.ru. — имя домена
TTL 2650 — время кеширования записи
class IN — Internet
rr SOA — тип записи
nameserver ns.majordomo.ru. — сервер DNS, поддерживающий зону
email support.majordomo.ru. = [email protected]
serial 2004112401 — номер ревизии
refresh 3600 — период обновления master-slave
retry 3600 — период повторного обращения к master
expiry 432000 — время кеширования slave, если недоступен мастер
minimum 3800 — время кеширования slave по умолчанию
18 / 38
NS: Name Server
interlabs.ru. 60213 IN NS ns.majordomo.ru.
name interlabs.ru. — имя домена
TTL 2650 — время кеширования записи
class IN — Internet
rr NS — тип записи
nameserver ns.majordomo.ru. — имя сервера DNS
• несколько записей — резервирование• значение — всегда имя (абсолютное, относительное, @)
19 / 38
A: Addressinterlabs.ru. 3600 IN A 78.108.82.210
name interlabs.ru. — имя домена
TTL 3600 — время кеширования записи
class IN — Internet
rr A — тип записи
address 78.108.82.210 — IP-адрес, соответствующий имени
• несколько записей — простая балансировка1
• несколько записей можно использовать дляраспараллеливания, но нельзя для резервирования
1http://en.wikipedia.org/wiki/Round-robin_DNS20 / 38
CNAME: Canonical NAMEwww.yadonor.ru. 0 IN CNAME yadonor.ru.
name interlabs.ru. — имя домена
TTL 3600 — время кеширования записи
class IN — Internet
rr A — тип записи
domain yadonor.ru — домен, на который ссылается запись
• может указывать на другой домен, но не на IP• для псевдонима не должны присутствовать другие записи• не рекомендуется CNAME указывающий на CNAME• MX и NS не должны указывать на CNAME• домены с почтой не должны быть CNAME
21 / 38
MX: Mail eXchanger
interlabs.ru. 2574 IN MX 10 emx.mail.ru.
name interlabs.ru. — имя домена
TTL 3600 — время кеширования записи
class IN — Internet
rr MX — тип записи
priority 10 — приоритетность почтового сервера
mail server emx.mail.ru. — почтовый сервер
• должна указывать на домен c A записью• не дожна указывать на CNAME
22 / 38
SRV: SeRVice_sip._tcp.example.com. 86400 IN SRV0 5 5060 sipserver.example.com
name имя в формате _service._proto.name_service — имя сервиса, _proto — протоколname — полное имя домена
TTL 86400 — время кеширования записиclass IN — Internetrr SRV — тип записи
priority 0 — приоритетность сервераweight 5 — относительный вес для серверов с общим
приоритетомport 5060 — порт, который обслуживает сервис
target каноническое имя хоста, обслуживающего сервис23 / 38
TXT: TeXT
interlabs.ru. 3600 IN TXT "v=spf1include:_spf.mail.ru ip4:78.108.82.210ip4:87.244.36.211 ~all"
name interlabs.ru. — имя домена
TTL 3600 — время кеширования записи
class IN — Internet
rr TXT — тип записи
value "v=spf1 include:_spf.mail.ru ip4:78.108.82.210ip4:87.244.36.211 ∼all" — произвольный текст, в данномслучае — SPF-запись
24 / 38
Клиентскийинструментарий
whois
$ whois interlabs.ru
domain: INTERLABS.RUnserver: ns2.majordomo.ru.nserver: ns3.majordomo.ru.nserver: ns.majordomo.ru.state: REGISTERED, DELEGATED, VERIFIEDperson: Private Personregistrar: R01-REG-RIPNadmin-contact: https://partner.r01.ru/contact_admin.khtmlcreated: 2004.11.24paid-till: 2014.11.24free-date: 2014.12.25source: TCI
26 / 38
nslookup
• считается устаревшей, рекомендуются dig и host• тем не менее очень распространена• использует собственный ресолвер, результат может несовпадать с системным
$ nslookup -query=mx interlabs.ru ns2.majordomo.ruServer: ns2.majordomo.ruAddress: 78.108.89.252#53
interlabs.ru mail exchanger = 10 emx.mail.ru.
$ nslookup -query=any interlabs.ru
27 / 38
Интерактивный nslookup$ nslookup> set type=ns> interlabs.ruServer: 192.168.0.2Address: 192.168.0.2#53
Non-authoritative answer:interlabs.ru nameserver = ns3.majordomo.ru....
Authoritative answers can be found from:ns.majordomo.ru internet address = 78.108.81.247....> server ns2.majordomo.ruDefault server: ns2.majordomo.ruAddress: 78.108.89.252#53> set type=mx> interlabs.ruServer: ns2.majordomo.ruAddress: 78.108.89.252#53
interlabs.ru mail exchanger = 10 emx.mail.ru.28 / 38
digРекомендуемая замена nslookup, простой язык запросов DNS.
$ dig name @server type +option
server DNS-сервер (имя или IP)name имя записиtype тип записи (ANY, A, MX . . . ), по умолчанию A
option опции запроса (используемый протокол, показопределенных секций ответа и т.д.)
$ dig interlabs.ru @ns2.majordomo.ru mx +noall +answer
29 / 38
dig: результат выполненияСостоит из заголовка (HEADER) и набора секций.
header информация о программе и опциях запроса
QUESTION отправленный запросANSWER полученный ответ
AUTHORITY authority DNS-сервера для запрашиваемогодомена
ADDITIONAL адреса серверов из секции AUTHORITY
stats статистика выполнения запроса
Показом секций можно управлять с помощью соответствующихопций (+noquestion, +authority . . . ).
30 / 38
dig: примеры# сервера имен для домена$ dig interlabs.ru ns
# mx-запись с авторитативного сервера$ dig interlabs.ru @ns2.majordomo.ru mx
# значение (и только) SPF-записи$ dig interlabs.ru @ns2.majordomo.ru mx txt +short # значение SPF
# значения всех записей$ dig interlabs.ru any +noall +answer
# трансфер зоны с указанного сервера$ dig interlabs.ru @ns2.majordomo.ru axfr
# reverse lookup$ dig -x 78.108.82.210
31 / 38
host: упрощенный вариантПростая утилита, адрес по имени домена или наоборот.
$ host interlabs.ruinterlabs.ru has address 78.108.82.210interlabs.ru mail is handled by 10 emx.mail.ru.
$ host interlabs.ru ns2.majordomo.ruUsing domain server:Name: ns2.majordomo.ruAddress: 78.108.89.252#53Aliases:interlabs.ru has address 78.108.82.210interlabs.ru mail is handled by 10 emx.mail.ru.
$ host 78.108.82.210210.82.108.78.in-addr.arpa domain name pointer c1.interlabs.pro.
32 / 38
Инструментарийразработчика
hosts.txtВ простейших случаях достаточно, чтобы:
• создать на локальной машине virtual host;• переопределить адреса нескольких доменов• настроить имена для нескольких машин в локальной сети• настройка localhost обязательна
127.0.0.1 localhost.localdomain localhost127.0.1.1 hostname hostname.localdomain::1 localhost.localdomain localhost
Проблема: невозможно прописать wildcard: *.domain
34 / 38
dnsmasq
Простой кеширующий DNS-proxy2:
• для отдельной машины или небольшой сети• кеширует A и PTR-записи• транслирует содержимое /etc/hosts• позволяет легко реализовать wildcard-домены
address=/dev.localhost.localdomain/127.0.0.1listen-address=127.0.0.1
2http://www.thekelleys.org.uk/dnsmasq/doc.html35 / 38
Корпоративный DNS-proxy• поддержка локального пространства имен• кеширование DNS-запросов• wildcard-домены для разработки проектов• возможность подмены внешних имен (домен еще незарегистрирован, перенос домена)
pdns_serverавторитативный сервер
PowerDNShttp://www.powerdns.com
pdns_recursorкеширующий сервер
Удобно администрируется, позволяет использовать различныеисточники информации о зонах, в т.ч. LDAP.
36 / 38
Почта и DNS• MX запись должна указывать на почтовый сервер• желательно наличие PTR-записи, указывающей напочтовый сервер
• необходимо наличие SPF-записи, содержащей список IP, скоторых может быть отправлена почта с адресов домена
interlabs.ru. 3600 IN TXT "v=spf1 include:_spf.mail.ruip4:78.108.82.210 ip4:87.244.36.211 ~all
Отсутствие SPF и PTR записей могут проявляться в видеблокирования писем как спама, отказа от приемы почты с этихсерверов и т.д. в зависимости от настроек конкретногопочтового сервера.
37 / 38
Что читать
• DNS and Bind3
• Pro DNS and Bind4
• DNS Cheat Sheet5
• DNS Knowledge6
• SPF Framework7
• документация хостера/провайдера по настройке зон
3http://shop.oreilly.com/product/9780596001582.do4http://www.amazon.com/Pro-DNS-BIND-Ron-Aitchison/dp/15905949405http://refcardz.dzone.com/refcardz/dns6http://www.dnsknowledge.com7www.openspf.org
38 / 38