Проблема, собственно, такая: есть сеть из множества филиалов. Все они связаны между собой OpenVPN туннелями и находятся в разных местах.
Каждый филиал имеет свой DNS сервер и свой внутренний домен, а так же PowerDNS recursor в качетсве основного DNS сервера. Все рекурсоры настроены так, что запросы к локальным доменам они переадресуют соответствующим DNS серверам (своему или удалённому). Всё, в общем-то, работает, за исключением одного но: с завидной регулярностью при обращении к хосту в другом филиале по имени вылезает вот такая ошибка:
getaddrinfo : Name or service not known
Её выдаёт ssh, bzr, puppet и много кто ещё в совершенно рандомных случаях. При этом ping и dig всегда резолвят имена нормально. И если сделать ping, то после этого начинает работать и то, что выдавало ошибку.
Подозреваю, что рекурсер испытывает некоторые проблемы со связью с нужным DNS сервером, а потому по какому-то тайм-ауту проиходит отбойка. Вопрос, собственно, в том, как устранить сей эффект. Т.е. как заставить рекурсор (или систему, которая вызывает getaddrinfo) ждать ответа и не вываливаться с ошибкой, если он моментально не получен.