|
|
www.lissyara.su
—> статьи
—> FreeBSD
—> программы
—> DNS zones
Заметки про работу с DNS зонами
Автор: terminus.
Собственно это не совсем статья, а просто собранные вместе заметки которые писались на форуме. Спрашивали про DNS - отвечал. Набралось вот какое-то количество текста с примерами и описаниями, и вот решил это все оформить в виде отдельной памятки. Если у кого-нибудь возникнут вопросы про то, что осталось за кадром - спрашивайте в каментах или в ветке форума.
...Чтобы было наглядней о чем разговор идет, опишу как происходит процесс делегирования. Делегирование - это то каким образом пространство имен в DNS делится на зоны. Зона - это обособленная ветвь пространства DNS имен которая располагается на своих авторитарных DNS серверах. В зону может входить любое количество доменов нижележащего уровня - до тех пор пока они все расположены на одних и тех же авторитарных серверах, зона у них одна и та же.
Делегирование из родительской зоны происходит путем создания NS записей. В дочерней (делегированной) зоне создается полное описание зоны начиная с SOA записи. Вот, например, когда регистрируется домен второго уровня через регистратора nic.ru, то там при регистрации просят указать имена и адреса минимум двух DNS серверов которые будут считаться авторитарными для данной ветви пространства DNS имен. Для проведения делегирования не обязательно иметь под зону именно два DNS сервера - просто у nic.ru такая политика для того чтобы заставить клиентов обеспечить надежность системы. Вот эти два сервера становятся NS записями в домене ru.
Пример. Скажем, нами регистрируется домен второго уровня под названием net.ru. Авторитарными для него будут DNS сервера ns.net.ru (IP 1.2.3.4) и ns2.dnshosting.com (IP 5.6.7.9). В записях DNS серверов отвечающих за зону ru. (которыми управляет организация nic.ru) вносится такая информация:
$TTL 300
ru. IN SOA ns.ripn.net. hostmaster.ripn.net. (
4014396 ;serial
7200 ;refresh
900 ;retry
2592000 ;expire
3600 ;neg. ttl
)
NS sunic.sunet.se.
NS e.dns.ripn.net.
NS ns.ripn.net.
NS ns5.msk-ix.net.
; это добавили
net.ru. NS ns.net.ru.
net.ru. NS ns2.dnshosting.com.
ns.net.ru. A 1.2.3.4
| Запись "ns.net.ru. A 1.2.3.4" называют еще "glue record", она нужна в случаях, когда имя NS сервера располагается внутри делегированной зоны. Это вспомогательная запись которую обязательно указывать в таких случаях. Без нее возникла бы ситуация, когда для того чтобы узнать IP сервера ns.net.ru надо обратиться к нему по IP (замкнутый круг). Так как второй NS расположен в чужой зоне, то для него не указываем glue record.
В свою очередь на сервере ns.net.ru который является мастером для зоны net.ru создается полная SOA запись как и полагается:
$TTL 300
net.ru. IN SOA ns.net.ru. hostmaster.net.ru. (
2009012500 ;serial
7200 ;refresh
900 ;retry
2592000 ;expire
3600 ;neg. ttl
)
NS ns.net.ru.
NS ns2.dnshosting.com.
MX 10 mail.net.ru.
ns.net.ru. A 1.2.3.4
www.net.ru. A 9.8.7.6
ftp.net.ru. A 10.11.12.13
mail.net.ru. A 11.12.13.14
| На slave сервере ns2.dnshosting.com в ручную записи не создаются, но он настраивается так чтобы периодически запрашивать мастер ns.net.ru и перекачивать с него всю информацию о записях в домене, а мастер ns.net.ru настраивается так чтобы отдавать все записи о зоне при запросах с подчиненного.
Точно по такой же схеме происходит делегирование доменов третьего, четвертого да любого уровня. Делегировать можно даже одно единственное хост имя!
Например случай с делегированием домена третьего уровня. Выглядеть это будет так - в записях зоны net.ru добавляется информация с NS записями о субдомене home.net.ru (допустим, будет только один авторитарный DNS сервер для этого субдомена ns.home.net.ru IP 7.7.7.7)
$TTL 300
net.ru. IN SOA ns.net.ru. hostmaster.net.ru. (
2009012500 ;serial
7200 ;refresh
900 ;retry
2592000 ;expire
3600 ;neg. ttl
)
NS ns.net.ru.
NS ns2.dnshosting.com.
MX 10 mail.net.ru.
ns.net.ru. A 1.2.3.4
www.net.ru. A 9.8.7.6
ftp.net.ru. A 10.11.12.13
mail.net.ru. A 11.12.13.14
;это добавили
home.net.ru. NS ns.home.net.ru.
ns.home.net.ru. A 7.7.7.7
| Ну и соответственно на DNS сервере ns.home.net.ru создается зона с новой SOA записью:
$TTL 300
home.net.ru. IN SOA ns.home.net.ru. adminzoni.mail.ru. (
2009012501 ;serial
7200 ;refresh
900 ;retry
2592000 ;expire
3600 ;neg. ttl
)
NS ns.home.net.ru.
ns.home.net.ru. A 7.7.7.7
home.net.ru. A 7.7.7.8
www.home.net.ru. A 7.7.7.8
proxy.home.net.ru. A 7.7.7.9
| Был приведен синтаксис зоны как это принято в BIND и NSD. Для djbdns то, что написано выше будет выглядеть так:
Zhome.net.ru:ns.home.net.ru.:adminzoni.mail.ru.: \
2009012501:7200:900:2592000:3600:300
&home.net.ru:7.7.7.7:ns.home.net.ru
+home.net.ru:7.7.7.8:300
+www.home.net.ru:7.7.7.8:300
+proxy.home.net.ru:7.7.7.9:300
|
До кучи, напишу заодно еще и про реверс зоны и их делегирование.
Система DNS позволяет производить обратные разрешения из IP адресов в DNS имена. Для этого в дереве имен есть специальный служебный домен под именем in-addr.arpa. Этот домен имеет 256 субдоменов, каждый из субдомменов может иметь 256 своих субдоменов, у которых могут быть 256 своих субдоменов, в которых уже будет по 256 имен. Таким образом получается структура вида a.b.c.d.in-addr.arpa. где а,b,c,d это 0-255. На эту часть DNS имен распространяются те же правила, что и на обычные имена, вот только владельцем какого-либо субдомена может стать лишь организация получившая контроль за соответствующим блоком IP адресов - например провайдер, когда покупает для своих нужд у RIPE диапазоны IP адресов. Например, если провайдер купил себе префикс с адресами 123.44.55.0/24 (256 адресов), то он может получить от RIPE (регионального регистратора) и реверс зону в которой начнет создавать PTR записи по просьбе клиентов или для своих нужд:
$TTL 300
55.44.123.in-addr.arpa. IN SOA ns.net.ru. admin.net.ru. (
2009012500 ;serial
7200 ;refresh
900 ;retry
2592000 ;expire
3600 ;neg. ttl
)
NS ns.net.ru.
NS ns2.dnshosting.com.
1.55.44.123.in-addr.arpa. PTR hostname.net.ru.
2.55.44.123.in-addr.arpa. PTR imja.net.ru.
254.55.44.123.in-addr.arpa. PTR esheodnoija.net.ru.
| Тут все просто и красиво потому, что в этом примере деление на DNS зону и IP субнет произошло по границе третьего и четвертого байта в IP адресе, а как делегировать половину субнета или только пару IP адресов из него? Скажем, клиент купил себе 8 "белых" IP адресов и захотел получить контроль над назначением реверс имен для них?
В таком случае можно сделать делегирование таким образом - в родительской зоне создаются CNAME записи на подставной домен, а он уже делегируется клиенту:
$TTL 300
55.44.123.in-addr.arpa. IN SOA ns.net.ru. admin.net.ru. (
2009012500 ;serial
7200 ;refresh
900 ;retry
2592000 ;expire
3600 ;neg. ttl
)
NS ns.net.ru.
NS ns2.dnshosting.com.
1.55.44.123.in-addr.arpa. PTR hostname.net.ru.
2.55.44.123.in-addr.arpa. PTR imja.net.ru.
254.55.44.123.in-addr.arpa. PTR esheodnoija.net.ru.
;создаем подставные записи
7.55.44.123.in-addr.arpa. CNAME 7.klient.55.44.123.in-addr.arpa.
8.55.44.123.in-addr.arpa. CNAME 8.klient.55.44.123.in-addr.arpa.
9.55.44.123.in-addr.arpa. CNAME 9.klient.55.44.123.in-addr.arpa.
10.55.44.123.in-addr.arpa. CNAME 10.klient.55.44.123.in-addr.arpa.
11.55.44.123.in-addr.arpa. CNAME 11.klient.55.44.123.in-addr.arpa.
12.55.44.123.in-addr.arpa. CNAME 12.klient.55.44.123.in-addr.arpa.
13.55.44.123.in-addr.arpa. CNAME 13.klient.55.44.123.in-addr.arpa.
14.55.44.123.in-addr.arpa. CNAME 14.klient.55.44.123.in-addr.arpa.
;делегируем клиенту
klient.55.44.123.in-addr.arpa. NS ns1.klient.ru.
klient.55.44.123.in-addr.arpa. NS ns2.hosting.com.
| Клиент принимает у себя:
$TTL 300
klient.55.44.123.in-addr.arpa. IN SOA ns1.klient.ru. admin.klient.ru. (
2009012502 ;serial
7200 ;refresh
900 ;retry
2592000 ;expire
3600 ;neg. ttl
)
NS ns1.klient.ru.
NS ns2.hosting.com.
7.klient.55.44.123.in-addr.arpa. PTR host1.klient.ru.
8.klient.55.44.123.in-addr.arpa. PTR host2.klient.ru.
9.klient.55.44.123.in-addr.arpa. PTR host3.klient.ru.
10.klient.55.44.123.in-addr.arpa. PTR host4.klient.ru.
11.klient.55.44.123.in-addr.arpa. PTR host5.klient.ru.
12.klient.55.44.123.in-addr.arpa. PTR host6.klient.ru.
13.klient.55.44.123.in-addr.arpa. PTR host7.klient.ru.
14.klient.55.44.123.in-addr.arpa. PTR host8.klient.ru.
| ...
Да, еще одна штука вспомнилась.
Я когда работал в провайдере, так все хотел приколоться и сделать себе почтовый адрес вида terminus@1.2.3.4.in-addr.arpa, но не успел - все лень было, а потом уволился и сейчас своих реверс зон нет нигде.
Между прочим, нету никакаих объективных причин почему бы такое не работало - DNS должен будет корректно отвечать на запросы о MX записях для домена 1.2.3.4.in-addr.arpa так же как и для обычных доменов. Если есть в наличии SMTP сервер "для поиграться" + желание приколоться, то можно прописать в PTR зоне MX запись, на почтовом сервере на который указывают MX запись прописать домен, и проверить как оно будет (99% что должно работать).
...
Еще заметка про новый домен РФ и punycode.
Как известно недавно создали новые "национальные" домены верхнего уровня. Вот список всех TLD доменов ( http://data.iana.org/TLD/tlds-alpha-by-domain.txt ). России достался свой домен под именем "РФ.". Возникает вопрос - как это работает и как его использовать. Работает это следующим образом: юзер вписывает в адресной строке броузера "россия.рф", броузер юзера перекодирует этот адрес в формат punycode и получается "xn--h1alffa9f.xn--p1ai", далее идет стандартное обращение к DNS на разрешения А записи для имени xn--h1alffa9f.xn--p1ai. Таким образом поддержка национальных языков в DNS именах - проблема клиентского програмного обеспечения. Захотел юзер посмотреть страничку - броузер должен уметь punycode. Захотел послать письмо электропочтой - почтовый клиент должен уметь punycode. И так далее.
Администратуру DNS сервера для создания зоны надо воспользоваться punycode конвертором ( например http://mct.verisign-grs.com/ ) и переконвертировать имя своего нового, модного домена из "иванломов.рф" в "xn--80adbvrgfjb.xn--p1ai". Далее все как обычно:
$TTL 300
xn--80adbvrgfjb.xn--p1ai. IN SOA ns.xn--80adbvrgfjb.xn--p1ai. ad.m.ru. (
2012082600 ;serial
7200 ;refresh
900 ;retry
2592000 ;expire
3600 ;neg. ttl
)
NS ns.xn--80adbvrgfjb.xn--p1ai.
NS ns2.dnshosting.ru.
A 56.78.90.12
ns.xn--80adbvrgfjb.xn--p1ai. A 98.76.54.32
www CNAME xn--80adbvrgfjb.xn--p1ai.
| Пока что, насколько я в курсе, перекодирование в punycode - задача администратора DNS сервера. Но скорее всего в будущем это будет автоматизировано или в самих DNS серверах, или в каких-нибудь внешних конверторах. В гламурный бинд это скорее всего встроют в первую очередь (если уже не встроили).
Ссылка на обсуждение: http://forum.lissyara.su/viewtopic.php?f=3&t=14239&start=25.
размещено: 2010-03-09,
последнее обновление: 2010-08-26,
автор: terminus
|
|
|
|
2014-07-27, lissyara
gmirror
Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9
Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту
Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis
Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS
Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
2011-06-15, -ZG-
Охранная система на FreeBSD+LPT
В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
2011-03-13, terminus
ng_nat
Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
2011-02-20, Капитан
Nagios+Digitemp
Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
2011-02-17, Le1
Zyxel Configuration
Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
2011-02-16, fox
hast carp zfs ucarp cluster
HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
2011-02-04, BlackCat
Восстановление ZFS
История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
2011-02-03, Капитан
1-Wire
Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
2011-01-28, Капитан
Температура в серверной
Статья описывает построение системы наблюдения за температурой в помещении серверной с использованием программы Digitemp и выводом графиков в MRTG
2011-01-21, m4rkell
Syslog server
Как то буквально на днях, у нас завалилось, что то в еве) или не в еве не суть. Суть в том, что когда захотели снять логи с хостов esx обнаружили, что хранят эти негодяи логии только за последнии сутк
2011-01-07, lissyara
Canon/gphotofs
Монтирование цифровых фотоаппаратов Canon (PTP) как файловой системы, автоматизация этого процесса через события devd и внешние скрипты.
2010-12-13, Al
IPSec
Описание принципов работы IPSEC и способов аутентификации.
2010-12-07, manefesto
FreeBSD on flash
Было принято решении переехать на USB Flash и установить минимальный джентельменский набор для работы своего роутера. Делаем =)
2010-12-05, Fomalhaut
root ZFS, GPT
Инструкция по установке FreeBSD с использованием в качестве таблицы разделов GPT и в качестве основной файловой системы - ZFS
2010-09-05, Cancer
Настройка аудиоплеера на ximp3
Цели: Простенький аудиоплеер, для того что бы тетя продавец в магазине утром пришла нажала на кнопку Power и заиграла в зале музыка, так же был доступ по сети, общая шара куда можно заливать музыку, к
2010-08-31, Cancer
Установка и настройка OpenVPN
На днях появилась задача - объединить головной офис и 3 филиала в одну сеть через интернет посредством OpenVPN, чтобы люди могли подключаться через RDP к базам 1С на серверах.
2010-08-25, manefesto
freebsd lvm
Использование linux_lvm для работы с LVM разделами из-под FreeBSD. Проблемы которые возники при монтирование lvm раздела
2010-04-30, gonzo111
proftpd file auth"a
Proftpd - квоты и авторизация из файлов, без использования базы данных и/или системных пользователей
2010-04-22, lissyara
tw_cli
Пошаговая инструкция по восстановлению RAID на контроллере 3ware, из которого выпал один диск. Настройка мониторинга состояния рейда и отчётов о его состоянии на email.
2010-04-14, fox
MySQL Master+Master
MySQL (Master Master) and (Master Slave) Как настроить репликацию…
2010-03-09, terminus
DNS zones
Краткий ликбез про управление DNS зонами. Примеры проведения делегирования прямых и обратных DNS зон.
|
Комментарии пользователей [22 шт.]