
У меня есть корпоративный DNS-сервер, использующий Bind.
У меня есть 3 сервера Consul. Consul прослушивает DNS-запросы на локальном порту 8660. На этих серверах у меня также есть DNSmasq для пересылки DNS-запросов с публичного IP-порта 53 на Consul на локальном хосте.
Конфигурация Consul очень проста. Я просто активировал порт DNS. Когда я проверяю DNS локально на порту 8660, он работает нормально.
Конфигурация DNSmasq на каждом сервере Consul следующая:
server=/subdomain.example.com/127.0.0.1#8600
server=XX.XX.XX.XX (first ip of the corporate DNS)
server=XX.XX.XX.XX (second ip of the corporate DNS)
listen-address=XX.XX.XX.XX (ip of the server)
Конфигурация корпоративного DNS следующая:
zone "subdomain.example.com" {
type forward;
forward only;
forwarders {
XX.XX.XX.XX; (ip of the first consul)
XX.XX.XX.XX; (ip of the second consul)
XX.XX.XX.XX; (ip of the third consul)
};
};
При добавлении или удалении записей из Consul зона DNS на корпоративном DNS обновляется практически мгновенно.
Когда все записи для сервиса удаляются из consul, корпоративный DNS удаляет все записи в своей таблице (что нормально). Но если записи создаются снова, DNS из consul обновляется, но не корпоративный DNS. Чтобы обновить корпоративный DNS, я должен выполнить командуrndc flushtree subdomain.example.com
решение1
Об этом говорится в документе Консула под заголовком «День 1». ☺
Установите soa.min_ttl
параметр конфигурации. Без него кэширующие DNS-прокси не знают, как долго должна храниться информация "no such name" и "no data", и вы получите их собственные предположения с наилучшими усилиями. Это немного неверно представлено как вина кэширующих DNS-прокси. Это не так. Датаграмма ответа "no such name" и "no data" должна содержать информацию TTL в (синтезированной) записи ресурса SOA.
дальнейшее чтение
- https://learn.hashicorp.com/consul/security-networking/dns-caching
- Джонатан де Бойн Поллард "Поле
MINIMUM
".Семантика полей записи ресурса SOA. Часто задаваемые ответы.