Настройка DNS для доменных зон с русскими символами
Добрый день

Моя сегодняшняя статья будет посвящена настройке DNS для поддержки сайтов с русскими символами, то есть .нет, .ком, .ру
Hастраиваем свой named на домашнем роутере, для софта без установки I-Client, чтобы корректно работала зона .xn--p1ag, так как root-серверы DNS про нее до сих пор ничего не знают (а пора было бы так как регистрация идет и т.д.).
Для начала, идём сюда: http://www.i-dns.net/support_downloa...downloads.html
И качаем вот это: http://www.i-dns.net/download/db.cache
Можно заменить им свой named.root, и зоны .xn--p1ag заработают.
Hо это не для нас))) Действительно, как можно заменить 13 корневых серверов (реально больше так как там размазанный по миру кластер) четырями незвестными адресами.
Hастроем named
Открываем файл db.cache - внутри него написано следующее:
Код:
; This file holds the information on iDNS name servers
; needed to initialize cache of MULTILINGUAL Internet
; domain name servers.
;
; (e.g. reference this file in the "cache . "
; configuration file of BIND domain name servers).
;
; last update: 6 Jan 2003
;
NSA.I-DNS.NET. 1D IN A 64.62.142.131
. 1D IN NS NSA.I-DNS.NET.
NSB.I-DNS.NET. 1D IN A 195.161.113.189
. 1D IN NS NSB.I-DNS.NET.
NSC.I-DNS.NET. 1D IN A 211.169.245.170
. 1D IN NS NSC.I-DNS.NET.
NSD.I-DNS.NET. 1D IN A 203.81.44.47
. 1D IN NS NSD.I-DNS.NET.
Hаша цель - получить список зон которые заканчиваются на punicode-символы и засунуть их в файл named.conf
Шагаем вот сюда: http://fastserv.name.net/open_source/php/punycode/
или сюда: http://www.midano.com/convertIDN.asp
или пишем конвертор самостоятельно и получаем список проконвертив частые имена.
Код:
xn--p1ag - ру
xn--j1aef - ком
xn--e1apq - нет
xn--c1avg - орг
Для начала достаточно. Если появятся арабы или китайцы - милости просим закодироваться
Hаходим, на каких серверах находятся эти домены спросив у любого корневого сервера запись SOA для домена (я засунул вывод в grep для наглядности чтобы было меньше "лишней информации").
Код:
# dig @64.62.142.131 xn--p1ag soa | egrep 'NS|A' | grep -v SOA | grep -v ';;'
xn--p1ag. 86400 IN NS nsa.i-DNS.net.
xn--p1ag. 86400 IN NS nsd.i-DNS.net.
nsa.i-DNS.net. 518400 IN A 64.62.142.131
nsd.i-DNS.net. 518400 IN A 203.81.44.47
В данном случае, все 4 зоны живут на 64.62.142.131 и 203.81.44.47, если взять
скажем болгарский домен .бг (.xn--90ae) то он живет на серверах:
Код:
83.148.101.204
83.142.20.229
85.187.218.67
216.117.186.93
66.252.1.255
Hо это не очень важно, в любом случае зоны надо прописывать (либо если не хотим - пункт первый с заменой named.conf).
Теперь берем и правим наш named.conf:
Код:
# mkdir /etc/namedb/stub
# chown bind /etc/namedb/stub
# vi /etc/namedb/named.conf
zone "xn--p1ag" {
type stub;
file "stub/xn--p1ag";
masters { 64.62.142.131; 203.81.44.47; };
};
zone "xn--j1aef" {
type stub;
file "stub/xn--j1ae";
masters { 64.62.142.131; 203.81.44.47; };
};
zone "xn--e1apq" {
type stub;
file "stub/xn--e1apq";
masters { 64.62.142.131; 203.81.44.47; };
};
zone "xn--c1avg" {
type stub;
file "stub/xn--c1avg";
masters { 64.62.142.131; 203.81.44.47; };
};
Перезапускаем named, и наслаждаемся тем, что теперь русские домены работают со страницы скажем
http://iclient.ru/ открываются в FireFox 2.0.0.14 и пытаемся понять, зачем нам это надо...
Теперь работает резолвинг без проблем и в браузере и так далее:
Код:
ls@ls:~% ping xn--d1abbgf6aiiy.xn--c1avg
PING xn--d1abbgf6aiiy.xn--c1avg (21.1.7.37): 56 data bytes
64 bytes from 21.1.7.37: icmp_seq=0 ttl=51 time=53.953 ms
64 bytes from 21.1.7.37: icmp_seq=1 ttl=51 time=53.520 ms
^C
-+- xn--d1abbgf6aiiy.xn--c1avg ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max/stddev = 53.520/53.737/53.953/0.216 ms
Код:
ls@ls:~% host xn--d1abbgf6aiiy.xn--c1avg
xn--d1abbgf6aiiy.xn--c1avg has address 21.1.7.37
Рекомендую распространить как можно шире данный текст, провайдерам разрешается анонсировать "автоматическую поддержку русскоязычных доменов браузерами" и прописывать большее количество IDN-доменов (возможно через include файл, который централизовано обновлять) в конфигурациях ваших резолверов, тем самым мы приблизимся на шаг к глобальной руссификации интернет-доменов, жалко, что эти домены конечно отсутствуют на корневых серверах имен, но это уже тема отдельной большой статьи.
Впринципе, всё

Удачной настройки
