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

Почему команда хоста возвращает и запись A, и запись CNAME?

У нас есть зона с 2-часовым TTL. Перед внесением каких-либо изменений он возвращал A запись при поиске записи для www.

Мы изменили запись для www указать на CNAME запись. После изменения мы заметили, что команда хоста возвращала как CNAME и A запись, как показано:

user@osx:~$ host www.example.com
www.example.com has address 192.168.1.2
www.example.com is an alias for vip.example.com.
www.example.com is an alias for vip.example.com.
user@osx:~$ 

Была ли это проблема с кешированием некоторых DNS-серверов? Если бы мы просто позволили TTL полностью истечь, получили бы мы CNAME как и ожидалось без A запись?

Я не получил более подробной информации с помощью dig или других команд.

РЕДАКТИРОВАТЬ: Настоящий адрес для vip.example.com. полностью отличается от A запись, которая была первоначально возвращена:

user@osx:~$ host vip.example.com
vip.example.com has address 172.16.4.5
user@osx:~$ 

Насколько мне известно, это совершенно нормально. Запрос CNAME возвращает значение A запись, потому что это в конечном итоге то место, куда он отображается, когда вы запрашиваете A запись.

Будучи специалистом по Windows, я использую nslookup. Когда тип запроса установлен на A Я получил:

Server:  bladedc1.live.local
Address: 192.168.163.50

Name:    example.com.au
Address:  x.x.x.x
Aliases:  www.example.com.au

Но когда я установил тип запроса на CNAME Я получил:

www.example.com.au
Server:  bladedc1.live.local
Address: 192.168.163.50

Non-authoritative answer:
www.example.com.au        canonical name = example.com.au

example.com.au    internet address = x.x.x.x

Попробуйте установить тип запроса на CNAME вместо того A и посмотрите, что вы получите.

Есть ли dig +trace показать что-нибудь? Он должен показать, как вы получаете ответ.

kechara# host cnametest.flame.org
cnametest.flame.org is an alias for www.isc.org.
www.isc.org has address 149.20.64.42
www.isc.org has IPv6 address 2001:4f8:0:2::d

Хозяин умен. Он пытается отобразить пользователю все возможные данные. Тем не мение, dig - гораздо более надежный инструмент для отладки.

Сначала вы должны определить, начинается ли получаемый вами ответ на серверах имен или идет дальше по цепочке.

$ host -t ns example.com
example.com name server b.iana-servers.net.
example.com name server a.iana-servers.net.
$ host example.com b.iana-servers.net
Using domain server:
Name: b.iana-servers.net
Address: 193.0.0.236#53
Aliases: 

example.com has address 192.0.32.10
$ host example.com a.iana-servers.net.
Using domain server:
Name: a.iana-servers.net.
Address: 192.0.34.43#53
Aliases: 

example.com has address 192.0.32.10