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

Проблемы с DNS в Mac OS X с Google DNS

Я помогаю другому пользователю с проблемами DNS и ошибкой golang размером более 512 байт. На моей машине разрешение DNS намного меньше 512 байт и не включает раздел полномочий, но на компьютере пользователя оно намного больше 512 байт из-за раздела полномочий. Какая конфигурация / программное обеспечение может вызывать эту разницу? Насколько я могу судить, мы используем одну и ту же версию Mac OS X.

Мои результаты раскопок

> % dig @8.8.4.4 api.heroku.com

; <<>> DiG 9.8.3-P1 <<>> @8.8.4.4 api.heroku.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37856
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;api.heroku.com.                        IN      A

;; ANSWER SECTION:
api.heroku.com.         29      IN      CNAME   midgard.heroku.com.
midgard.heroku.com.     449     IN      CNAME   midgard.herokussl.com.
midgard.herokussl.com.  2758    IN      CNAME   elb082153-1559744486.us-east-1.elb.amazonaws.com.
elb082153-1559744486.us-east-1.elb.amazonaws.com. 3 IN A 23.21.149.112
elb082153-1559744486.us-east-1.elb.amazonaws.com. 3 IN A 54.225.188.133
elb082153-1559744486.us-east-1.elb.amazonaws.com. 3 IN A 54.243.105.250

;; Query time: 76 msec
;; SERVER: 8.8.4.4#53(8.8.4.4)
;; WHEN: Thu Aug  4 09:29:57 2016
;; MSG SIZE  rcvd: 193

Вывод пользователя dig

; <<>> DiG 9.8.3-P1 <<>> @8.8.4.4 api.heroku.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 55215
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 13, ADDITIONAL: 12

;; QUESTION SECTION:
;api.heroku.com. IN A

;; ANSWER SECTION:
api.heroku.com. 21 IN CNAME midgard.heroku.com.
midgard.heroku.com. 441 IN CNAME midgard.herokussl.com.
midgard.herokussl.com. 3137 IN CNAME elb082153-1559744486.us-east-1.elb.amazonaws.com.
elb082153-1559744486.us-east-1.elb.amazonaws.com. 51 IN A 54.243.105.250
elb082153-1559744486.us-east-1.elb.amazonaws.com. 51 IN A 54.225.188.133
elb082153-1559744486.us-east-1.elb.amazonaws.com. 51 IN A 23.21.149.112

;; AUTHORITY SECTION:
com. 140079 IN NS g.gtld-servers.net.
com. 140079 IN NS j.gtld-servers.net.
com. 140079 IN NS i.gtld-servers.net.
com. 140079 IN NS b.gtld-servers.net.
com. 140079 IN NS k.gtld-servers.net.
com. 140079 IN NS a.gtld-servers.net.
com. 140079 IN NS e.gtld-servers.net.
com. 140079 IN NS c.gtld-servers.net.
com. 140079 IN NS l.gtld-servers.net.
com. 140079 IN NS m.gtld-servers.net.
com. 140079 IN NS f.gtld-servers.net.
com. 140079 IN NS h.gtld-servers.net.
com. 140079 IN NS d.gtld-servers.net.

;; ADDITIONAL SECTION:
g.gtld-servers.net. 124660 IN A 192.42.93.30
j.gtld-servers.net. 91373 IN A 192.48.79.30
i.gtld-servers.net. 119024 IN A 192.43.172.30
b.gtld-servers.net. 119025 IN A 192.33.14.30
k.gtld-servers.net. 27063 IN A 192.52.178.30
a.gtld-servers.net. 16745 IN A 192.5.6.30
e.gtld-servers.net. 123106 IN A 192.12.94.30
c.gtld-servers.net. 153632 IN A 192.26.92.30
l.gtld-servers.net. 22933 IN A 192.41.162.30
f.gtld-servers.net. 107336 IN A 192.35.51.30
h.gtld-servers.net. 29637 IN A 192.54.112.30
d.gtld-servers.net. 119025 IN A 192.31.80.30

;; Query time: 48 msec
;; SERVER: 8.8.4.4#53(8.8.4.4)
;; WHEN: Thu Jul 14 07:37:57 2016
;; MSG SIZE rcvd: 609

Похоже, что нет никакой разницы в запросах и заголовках запросов. Я ожидаю, что ситуация будет одной из следующих:

  • Устройство в сети удаленного пользователя перехватывает трафик DNS и искажает ответы.
  • Вы попадаете в разные фермы серверов. Вы оба отправляете запросы на один и тот же IP-адрес, но ваши запросы поступают в разные места назначения из-за Anycast. Что касается того, почему серверы реагируют по-разному, только Google может ответить на этот вопрос.

https://developers.google.com/speed/public-dns/faq#anycast

Google Public DNS использует произвольную маршрутизацию для направления всех пакетов на ближайший DNS-сервер. Для получения дополнительной информации о маршрутизации с произвольной доставкой см. Запись в Википедии.

Следует отметить, что разделы «Дополнительные» и «Полномочия», приложенные ко второму ответу, необычны. Когда рекурсивный сервер возвращает эти разделы, можно было бы ожидать увидеть серверы имен для heroku.com а не com. TLD. Скорее всего, это непреднамеренное поведение серверного программного обеспечения.