2015-06-04 5 views
0

Я использую libresolv для извлечения списка авторитетных серверов имен для домена и затем запрашиваю один из этих серверов имен непосредственно для разрешения хоста.Конфигурированный TTL для записи (записей) записей CNAME

Таким образом, я могу получить сконфигурированный TTL для записи A, а затем я хочу обновить свои записи DNS в своем коде на этом TTL.

Однако я столкнулся с snafu тем, что я не уверен, как обращаться с хостами, которые ссылаются на CNAMES. Например, выход из www.microsoft.com выглядит следующим образом:

; <<>> DiG 9.7.3 <<>> www.microsoft.com 
;; global options: +cmd 
;; Got answer: 
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 3870 
;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 8, ADDITIONAL: 7 

;; QUESTION SECTION: 
;www.microsoft.com.    IN  A 

;; ANSWER SECTION: 
www.microsoft.com.  5  IN  CNAME toggle.www.ms.akadns.net. 
toggle.www.ms.akadns.net. 5  IN  CNAME www.microsoft.com-c.edgekey.net. 
www.microsoft.com-c.edgekey.net. 5 IN CNAME www.microsoft.com-c.edgekey.net.globalredir.akadns.net. 
www.microsoft.com-c.edgekey.net.globalredir.akadns.net. 5 IN CNAME e10088.dspb.akamaiedge.net. 
e10088.dspb.akamaiedge.net. 5 IN  A  23.194.222.159 

Должен ли я быть освежающим мой хозяин, используя CNAME TTL? Если да, то как мне настроить этот TTL для CNAME?

Или, должен ли я обновлять свое использование с использованием записи A, которая связана с CNAME (то есть e10088.dspb.akamaiedge.net)? Если да, то как мне получить настроенный TTL для этого хоста?

Любая информация, которую вы можете предоставить экспертам, была бы весьма признательна.

ответ

2

В случае серверов CNAME для балансировки нагрузки вы хотите обновить ближайшую к вам запись, что является первоначальным поиском. Рассмотрим остальную часть поиска как обработку бэкэнда, которая в этом случае мне нравится называть Akamai shuffle.

EDIT: Если вы запрашиваете авторитетные NS напрямую, вы должны получить «реальную» TTL:

[email protected]:~$ dig +noall +answer @ns2.google.com www.google.com 
www.google.com.   300  IN  A  74.125.194.103 
www.google.com.   300  IN  A  74.125.194.147 
www.google.com.   300  IN  A  74.125.194.99 
www.google.com.   300  IN  A  74.125.194.105 
www.google.com.   300  IN  A  74.125.194.106 
www.google.com.   300  IN  A  74.125.194.104 

ТТЛ отсчет является функцией LDNS кэширования или сервера-посредника. Таким образом, в вашем примере:

Во-первых, сделать свой основной поиск:

[email protected]:~$ dig www.microsoft.com 

; <<>> DiG 9.9.5-3ubuntu0.2-Ubuntu <<>> www.microsoft.com 
;; global options: +cmd 
;; Got answer: 
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54032 
;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 1 

;; OPT PSEUDOSECTION: 
; EDNS: version: 0, flags:; udp: 4000 
;; QUESTION SECTION: 
;www.microsoft.com.    IN  A 

;; ANSWER SECTION: 
www.microsoft.com.  60  IN  CNAME toggle.www.ms.akadns.net. 
toggle.www.ms.akadns.net. 123 IN  CNAME www.microsoft.com-c.edgekey.net. 
www.microsoft.com-c.edgekey.net. 10967 IN CNAME www.microsoft.com-c.edgekey.net.globalredir.akadns.net. 
www.microsoft.com-c.edgekey.net.globalredir.akadns.net. 576 IN CNAME e10088.dspb.akamaiedge.net. 
e10088.dspb.akamaiedge.net. 17 IN  A  172.233.22.36 

;; Query time: 19 msec 
;; SERVER: 192.168.186.1#53(192.168.186.1) 
;; WHEN: Thu Jun 11 21:24:28 CDT 2015 
;; MSG SIZE rcvd: 237 

Затем вам нужно, чтобы получить NS/SOA последнего CNAME:

[email protected]:~$ dig e10088.dspb.akamaiedge.net NS 

; <<>> DiG 9.9.5-3ubuntu0.2-Ubuntu <<>> e10088.dspb.akamaiedge.net NS 
;; global options: +cmd 
;; Got answer: 
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17178 
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1 

;; OPT PSEUDOSECTION: 
; EDNS: version: 0, flags:; udp: 4000 
;; QUESTION SECTION: 
;e10088.dspb.akamaiedge.net. IN  NS 

;; AUTHORITY SECTION: 
dspb.akamaiedge.net. 965  IN  SOA  n0dspb.akamaiedge.net. hostmaster.akamai.com. 1434075886 1000 1000 1000 1800 

;; Query time: 15 msec 
;; SERVER: 192.168.186.1#53(192.168.186.1) 
;; WHEN: Thu Jun 11 21:25:01 CDT 2015 
;; MSG SIZE rcvd: 119 

Затем вы должны быть в состоянии чтобы запросить авторитетный сервер для записи:

[email protected]:~$ dig +noall +answer @n0dspb.akamaiedge.net e10088.dspb.akamaiedge.net 
e10088.dspb.akamaiedge.net. 20 IN  A  23.207.250.131 
+0

Hi Rick. Я не понимаю, как это на самом деле получает TTL записей A, которые предоставляют адреса хоста для CNAME. Мне нужен TTL для этих записей A. Я не хочу, чтобы оставшийся TTL тоже, я хочу сконфигурированный TTL. Возможно, то, что я прошу, даже не возможно ... – Vinbot

+0

Привет, Рик, спасибо за дополнительную информацию. Это закрывает комбинацию копающих звонков, которые я также выполнял, но явно что-то пропустил. Однако я нахожу удивительным, что TTL составляет 20 секунд, когда рекомендуемый минимум составляет 5 минут. Немного чтения показывает, что это типично для акамаи. Я подозреваю, что это может иметь отношение к динамическим записям DNS. – Vinbot

+0

более низкий TTL в сбалансированной среде с высокой нагрузкой не является чем-то необычным –

Смежные вопросы