Назад | Перейти на главную страницу

Как использовать числа в именах хостов DNS?

Я хочу настроить DNS-запись, содержащую только цифры, например:

www1                    A       1.2.3.4
1                       CNAME   www1

Однако чистое число, похоже, не работает.

Я знаю некоторые сайты, которые используют целые числа в именах хостов, например 400.5432.somefax.com, так что, наверное, мне следует избегать чисел?

РЕДАКТИРОВАТЬ

Кажется, BIND поддерживает метки чистых чисел:

$ dig @localhost 1.example.com
...
1.example.com.     43200  IN  CNAME  www1.example.com.
www1.example.com.  43200  IN  A      1.2.3.4
...

Однако когда я использую DNS-сервер Google (8.8.8.8), это не удается.

; <<>> DiG 9.7.3 <<>> 1.example.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 20866
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;1.example.com.         IN  A

;; AUTHORITY SECTION:
example.com.        1205    IN  SOA root.example.com. admin.example.com. 5 3600 600 43200 3600

;; Query time: 112 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Tue May  3 19:09:39 2011
;; MSG SIZE  rcvd: 94

Однако DNS-сервер Google не должен вызывать проблем с числовыми метками, потому что он может разрешить, например, 83592583.qzone.qq.com:

; <<>> DiG 9.7.3 <<>> 83592583.qzone.qq.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18687
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;83592583.qzone.qq.com.     IN  A

;; ANSWER SECTION:
83592583.qzone.qq.com.  600 IN  CNAME   qq.com.edgesuite.net.
qq.com.edgesuite.net.   9439    IN  CNAME   a1574.b.akamai.net.
a1574.b.akamai.net. 18  IN  A   60.254.175.65
a1574.b.akamai.net. 18  IN  A   60.254.175.64

;; Query time: 328 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Tue May  3 19:12:10 2011
;; MSG SIZE  rcvd: 134

Итак, BIND9 в порядке, Google DNS в порядке, конфигурация моей зоны в порядке, я могу dig @localhost 1.example.com что дает правильный ответ. Но я не могу dig @8.8.8.8 1.example.com, (ни 8.8.4.4), вот застрял.

RFC 1912, документирующий распространенные ошибки конфигурации DNS, гласит:

Допустимые символы в метке для имени хоста - это только буквы ASCII, цифры и символ «-». Ярлыки могут состоять не из всех цифр, но могут иметь начальную цифру (например, 3com.com). Ярлыки должны заканчиваться и начинаться только буквой или цифрой. См. [RFC 1035] и [RFC 1123]. (Изначально в [RFC 1035] ярлыки были ограничены, чтобы они начинались с буквы, и некоторые старые хосты, как сообщается, все еще имеют проблемы с ослаблением в [RFC 1123].) Обратите внимание, что есть некоторые имена хостов в Интернете, которые нарушают это правило (411.org, 1776 .com). Наличие подчеркивания в метке разрешено в [RFC 1033], за исключением того, что [RFC 1033] носит исключительно информационный характер и не определяет стандарт. Существует, по крайней мере, одна популярная реализация TCP / IP, которая в настоящее время отказывается взаимодействовать с хостами, имена которых указаны с подчеркиванием.

Ярлык эквивалентен имени хоста для вашего вопроса.

RFC1912 носит информационный характер, а не устанавливает стандарты. Что касается информационных RFC, некоторые реализации DNS восприняли это как евангелие и поэтому не работают со всеми числами. Другими словами, для максимальной совместимости со всем Интернетом, добавьте хотя бы одну букву в имена хостов.

Очевидно, что это может сработать (черт возьми, RFC приводит примеры!), Так что хитрость заключается в том, чтобы убедить ваш DNS-сервер разрешить это. И для этого мне придется полагаться на других пользователей.

Использование числа в качестве имени хоста запрещено, начиная с rfc1035:

"Метки должны соответствовать правилам для имен хостов ARPANET. Они должны начинаться с буквы, заканчиваться буквой или цифрой и содержать в качестве внутренних символов только буквы, цифры и дефис. Также существуют некоторые ограничения на длину. Метки должны быть 63 символа или меньше ".

В дополнение к ответам о RFC альтернативным решением было бы использовать

1.fax IN A 1.2.3.4

в конфигурации для example.com. Вы получаете полное доменное имя 1.fax.example.com.