У меня есть внутренняя настройка DNS в моей сети AWS VPC, я только что создал внутренний балансировщик нагрузки и добавил запись CNAME в этот балансировщик нагрузки, но он не работает.
Запись DNS CNAME:
db1 IN CNAME internal-DB1-1579653487.us-east-1.elb.amazonaws.com.
nslookup выглядит хорошо:
epf-mac:~ erico$ nslookup -q=CNAME db1
Server: 10.0.200.4
Address: 10.0.200.4#53
db1.example.com canonical name = internal-DB1-1579653487.us-east-1.elb.amazonaws.com.
Имя хоста балансировщика нагрузки указывает на 2 IP-адреса (балансировщик нагрузки работает в двух подсетях).
epf-mac:~ erico$ nslookup internal-DB1-1579653487.us-east-1.elb.amazonaws.com.
Server: 10.0.200.4
Address: 10.0.200.4#53
Non-authoritative answer:
Name: internal-DB1-1579653487.us-east-1.elb.amazonaws.com
Address: 10.0.211.228
Name: internal-DB1-1579653487.us-east-1.elb.amazonaws.com
Address: 10.0.200.65
Но настоящее имя не работает:
epf-mac:~ erico$ ping db1
ping: cannot resolve db1: Unknown host
epf-mac:~ erico$ dig db1
; <<>> DiG 9.8.3-P1 <<>> db1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 39452
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;db1. IN A
;; AUTHORITY SECTION:
. 9456 IN SOA a.root-servers.net. nstld.verisign-grs.com. 2014100901 1800 900 604800 86400
;; Query time: 165 msec
;; SERVER: 10.0.200.4#53(10.0.200.4)
;; WHEN: Thu Oct 9 21:10:30 2014
;; MSG SIZE rcvd: 96
----- РЕДАКТИРОВАТЬ (ИСПРАВЛЕНО) -----
Я точно не знаю, что это было, но запись заработала без каких-либо дополнительных изменений, возможно, какое-то кеширование DNS.
Это не было никакого негативного кеширования. Взглянем еще раз на фактический запрос, который был выполнен:
;; QUESTION SECTION:
;db1. IN A
Конечная точка означает, что запрос был для полного доменного имени db.
(обратите внимание на точку в конце), и суффикс вашего поиска example.com не был автоматически добавлен. Команда dig не добавляет автоматически суффикс поиска, указанный в /etc/resolv.conf
. На странице руководства:
+[no]search Use [do not use] the search list defined by the searchlist or domain directive in resolv.conf (if any). The search list is not used by default.