Route53 Многозначный ответ, сохраняющий одну запись

Route53 Многозначный ответ, сохраняющий одну запись

Мы используем Route53 для нашего частного DNS, в частности политику маршрутизации с несколькими значениями ответа, без проверок работоспособности для дамповой/ленивой балансировки нагрузки.

Это работало у нас хорошо, пока вчера мы не заметили странное поведение.

У нас есть набор записей для ro.mysql.foo.bar.com, который содержит IP-адреса наших реплик MySQL, доступных только для чтения.

Если вы запустите DIG, он это отразит;

dig A ro.mysql.foo.bar.com

;; QUESTION SECTION:
;ro.mysql.foo.bar.com. IN   A

;; ANSWER SECTION:
ro.mysql.foo.bar.com. 4 IN A    10.2.2.2
ro.mysql.foo.bar.com. 4 IN A    10.2.2.3
ro.mysql.foo.bar.com. 4 IN A    10.2.2.4

Ожидаемое поведение — когда mysql попадает, ro.mysql.foo.bar.comон подключается к одному из 3 хостов наугад, в стиле dumb/random load balancer. Это работало нормально до вчерашнего дня.

Если я побегу

mysql -h ro.mysql.foo.bar.com -e "select @@hostname;"

Я ожидаю, что вывод @@hostnameбудет варьироваться между 10.2.2.2, 10.2.2.3, и10.2.2.4

Вместо этого он не маршрутизирует трафик случайным образом по трем IP-адресам, а берет и использует только один.

+-----------------------------------+
| @@hostname                        |
+-----------------------------------+
| 10.2.2.3                          |
+-----------------------------------+

Если мы удалим 10.2.2.3из DNS, он перестанет его использовать. Если мы добавим его обратно, он продолжит использовать только 10.2.2.3снова.

Мы используем собственный резолвер через PowerDNS (от которого мы постепенно отказываемся), но, судя по всему, никаких неполадок в этом нет. Кэш DNS PowerDNS также был очищен.

Связанный контент