Я хочу настроить 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
.