Punycode, доменные зоны с использованием нац. символов

Створювати новину мають право лише адміни та модератори форуму.
Залишати коментарі можуть тільки зареєстровані користувачі.
Аватар користувача
toxi
Администратор
Администратор
Статті: 0
Повідомлень: 532
З нами з: 12-04-2008 07:58:25
Ваша стать: Чоловічий
І'мя: Roman
Контактна інформація:

Punycode, доменные зоны с использованием нац. символов

Повідомлення toxi »

Hастраиваем свой named на домашнем роутере для софта без установки I-Client,
чтобы корректно работала зона .xn--p1ag (и другие тоже), так как root-серверы
DNS про нее до сих пор ничего не знают (а пора было бы так как регистрация
идет и так далее)

Идем вот сюда http://www.i-dns.net/support_download/downloads/downloads.html
Качаем http://www.i-dns.net/download/db.cache

Можем заменить им свой named.root. И будет счастье, зоны .xn--p1ag заработают
(они так и рекомендуют -
http://www.i-dns.net/support_download/d ... cache.html )
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 (без особой разницы я ходил сюда)
или пишем конвертор самостоятельно (см. google.com) и получаем список
поконвертив частые имена

Код: Виділити все

        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 файл, который централизовано
обновлять) в конфигурациях ваших резолверов, тем самым мы приблизимся
на шаг к глобальной руссификации интернет-доменов, жалко, что эти домены конечно
отсутствуют на корневых серверах имен, но это уже тема отдельной большой статьи.


Еще ссылка по теме http://пример.испытание - корневая зона .испытание
присутствует на корневых серверах имен, по адресу расположен сайт посвященный
этой технологии.
Источник: http://www.opennet.ru/base/net/rus_dns.txt.html
Правила форуму :: Виконую послуги IT-адміністратора (види послуг).