Введение в dns

38
Введение в DNS Interlabs 14 октября 2013 1 / 38

Post on 16-Jun-2015

804 views

Category:

Documents


3 download

DESCRIPTION

Материалы обучающего семинара по основам DNS. Рассмотрены общая структура DNS, механизм делегирования, базовые инструменты диагностики DNS.

TRANSCRIPT

Page 1: Введение в DNS

Введение в DNS

Interlabs

14 октября 2013

1 / 38

Page 2: Введение в DNS

О чем речь

• Общая структура DNS• DNS как распределенная база данных• Пространство доменных имен Internet• Обратная зона• Конфигурирование зоны• Клиентский инструментарий• Инструментарий разработчика

2 / 38

Page 3: Введение в DNS

Пространство имен DNS

Page 4: Введение в DNS

Пространство имен DNS

4 / 38

Page 5: Введение в DNS

Пространство имен DNS• дерево, вершина — root• максимальная глубина 127, максимальная длина имениузла — 63, максимальная длина имени 253

• домен — поддерево• зона — совместно администрируемая группа узлов,обычно поддоменов некоторого домена

• если с доменом ассоциирован хотя бы один IP — hostname• имя — [A-Z0-9-]+, полное имя — root в виде «.» в конце• интернациональные имена конвертируются в совместимоепредставление на стороне клиента

www.interlabs.ru.: www← interlabs← ru← .

5 / 38

Page 6: Введение в DNS

Ресурсные записи

• каждому элементу дерева соответствует набор записей,содержащих определенную информацию о домене

• каждая запись имеет тип, определяющий структурузначения, хранимого в записи

• общие элементы для всех записей: name, ttl, class, rr• значение @ для name соответствует домену, для которогоопределена запись

6 / 38

Page 7: Введение в DNS

DNS как распределеннаябаза данных

Page 8: Введение в DNS

Сервера именAuthoritative Сервер, являющийся источником информации о

зонеMaster Авторитативный сервер, на котором производятся

изменения информации о зонеSlave Авторитативный сервер, автоматически

получающий информацию об изменениях отмастера

Primary Основной авторитативный сервер домена, обычноmaster

Secondary Дублирующий авторитативный сервер домена,обычно slave

Caching Кеширующий сервер, кеширует запросы,увеличивая производительность

8 / 38

Page 9: Введение в DNS

Разрешение адреса

9 / 38

Page 10: Введение в DNS

Ресолвер• клиентская часть DNS, часть операционной системы• формирует серию запросов, позволяющую определитьадрес по доменному имени

• запросы могут быть рекурсивными и нерекурсивными,сервер не обязан поддерживать рекурсивные запросы

• кеширует запросы

# /etc/resolv.confsearch example.comnameserver 172.16.1.254nameserver 172.16.2.254

При использовании DHCP формируется динамически,настройки — в DHCP-клиенте.

10 / 38

Page 11: Введение в DNS

Пространство доменныхимен Internet

Page 12: Введение в DNS

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

Page 13: Введение в DNS

Домены первого уровня (TLD)Организационные

COM EDU GOV MIL NET ORG INT

Национальные

AC ... RU ... ZW

Новые после 2000

AERO BIZ COOP INFO MUSEUM NAME PRO13 / 38

Page 14: Введение в DNS

Делегирование зоны

Делегирование — механизм децентрализации управления:

• организация, администрирующая домен, может разбитьего на поддомены и передать управление поддоменомдругой организации

• выполняется путем добавления NS-записей, указывающихна авторитативные сервера зоны в родительскую зону

• если авторитативные сервера находятся внутриделегируемой зоны — дополнительно прописываются ихIP-адреса (glue records)

14 / 38

Page 15: Введение в DNS

Обратная зона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

Page 16: Введение в DNS

Resource Recordsразличные виды ресурсных записей DNS

Page 17: Введение в 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

Page 18: Введение в DNS

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

Page 19: Введение в DNS

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

Page 20: Введение в DNS

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

Page 21: Введение в DNS

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

Page 22: Введение в DNS

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

Page 23: Введение в DNS

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

Page 24: Введение в DNS

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

Page 25: Введение в DNS

Клиентскийинструментарий

Page 26: Введение в DNS

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

Page 27: Введение в DNS

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

Page 28: Введение в DNS

Интерактивный 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

Page 29: Введение в DNS

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

Page 30: Введение в DNS

dig: результат выполненияСостоит из заголовка (HEADER) и набора секций.

header информация о программе и опциях запроса

QUESTION отправленный запросANSWER полученный ответ

AUTHORITY authority DNS-сервера для запрашиваемогодомена

ADDITIONAL адреса серверов из секции AUTHORITY

stats статистика выполнения запроса

Показом секций можно управлять с помощью соответствующихопций (+noquestion, +authority . . . ).

30 / 38

Page 31: Введение в DNS

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

Page 32: Введение в DNS

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

Page 33: Введение в DNS

Инструментарийразработчика

Page 34: Введение в DNS

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

Page 35: Введение в DNS

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

Page 36: Введение в DNS

Корпоративный DNS-proxy• поддержка локального пространства имен• кеширование DNS-запросов• wildcard-домены для разработки проектов• возможность подмены внешних имен (домен еще незарегистрирован, перенос домена)

pdns_serverавторитативный сервер

PowerDNShttp://www.powerdns.com

pdns_recursorкеширующий сервер

Удобно администрируется, позволяет использовать различныеисточники информации о зонах, в т.ч. LDAP.

36 / 38

Page 37: Введение в DNS

Почта и 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

Page 38: Введение в DNS

Что читать

• 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