Я размещаю дома несколько веб-сайтов, например, example.com и sub.example.com, и, хотя мои записи DNS установлены правильно (запись для example.com, которая указывает на IP-адрес моего маршрутизатора, и CNAME для (*) со значением 'example.com.') мой маршрутизатор не может разрешить поддомен. Вот результаты некоторых упражнений, в которых мои действительные имена доменов и поддоменов заменены на example.com и sub.example.com.

~ $ drill example.com @8.8.8.8    
;; ->>HEADER<<- opcode: QUERY, rcode: NOERROR, id: 55521
;; flags: qr rd ra ; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 
;; QUESTION SECTION:
;; example.com. IN  A

;; ANSWER SECTION:
example.com.    899 IN  A   109.133.244.17

;; AUTHORITY SECTION:

;; ADDITIONAL SECTION:

;; Query time: 70 msec
;; SERVER: 8.8.8.8
;; WHEN: Fri Oct 13 10:06:23 2017
;; MSG SIZE  rcvd: 41


~ $ drill sub.example.com @8.8.8.8                                                                                                                  <<<
;; ->>HEADER<<- opcode: QUERY, rcode: NOERROR, id: 33949
;; flags: qr rd ra ; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0 
;; QUESTION SECTION:
;; sub.example.com. IN  A

;; ANSWER SECTION:
sub.example.com.    1799    IN  CNAME   example.com.
example.com.    899 IN  A   109.133.244.17

;; AUTHORITY SECTION:

;; ADDITIONAL SECTION:

;; Query time: 105 msec
;; SERVER: 8.8.8.8
;; WHEN: Fri Oct 13 10:06:33 2017
;; MSG SIZE  rcvd: 62


~ $ drill example.com @192.168.1.1
;; ->>HEADER<<- opcode: QUERY, rcode: NOERROR, id: 59107
;; flags: qr rd ra ; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 
;; QUESTION SECTION:
;; example.com. IN  A

;; ANSWER SECTION:
example.com.    781 IN  A   109.133.244.17

;; AUTHORITY SECTION:

;; ADDITIONAL SECTION:

;; Query time: 26 msec
;; SERVER: 192.168.1.1
;; WHEN: Fri Oct 13 10:06:43 2017
;; MSG SIZE  rcvd: 41

~ $ drill -V 10000 sub.example.com @192.168.1.1 
;; ->>HEADER<<- opcode: QUERY, rcode: NOERROR, id: 0
;; flags: rd ; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 
;; QUESTION SECTION:
;; sub.example.com. IN  A

;; ANSWER SECTION:

;; AUTHORITY SECTION:

;; ADDITIONAL SECTION:

;; Query time: 0 msec
;; WHEN: Fri Oct 13 10:17:39 2017
;; MSG SIZE  rcvd: 0
Error: error sending query: Could not send or receive, because of network error

Для полноты вот записи DNS, связанные с доменом:

@ 900 IN A 109.133.244.17
@ 10800 IN SOA ns1.gandi.net. hostmaster.gandi.net. 1507886704 10800 3600 604800 10800
sub 10800 IN CNAME example.com.
imap 10800 IN CNAME access.mail.gandi.net.
pop 10800 IN CNAME access.mail.gandi.net.
smtp 10800 IN CNAME relay.mail.gandi.net.
webmail 10800 IN CNAME webmail.gandi.net.

Кто-нибудь знает, что может быть причиной этого любопытного поведения?

Спасибо.

1 ответ1

0

Использование CNAME в "базовой" записи является проблемой. Это распространенная ошибка - CNAME - это не просто перенаправление домена на другой домен, это делегирование SOA из этого домена. Таким образом, вы, как правило, захотите использовать CNAME на www.example.com, а не на example.com. (Правило никогда не должно использовать CNAME на доменном имени, только поддомен)

Техническое обоснование сложное - оно указано в 3.6.2 rfc1034. «Доменная система предоставляет такую возможность, используя каноническое имя (CNAME) RR. CNAME RR идентифицирует имя своего владельца как псевдоним и указывает соответствующее каноническое имя в разделе RDATA RR. Если CNAME RR присутствует на узле, никакие другие данные не должны присутствовать ; это гарантирует, что данные для канонического имени и его псевдонимов не могут быть разными. Это правило также гарантирует, что кэшированное CNAME может использоваться без проверки на официальном сервере других типов RR. "

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .