há um patch para o bind fornecer "split view" com reconhecimento de geoip. isso aborda a primeira parte da sua pergunta. infelizmente, o cliente http não possui um recurso de failover integrado, portanto, a parte "atende o IP do outro servidor como IP secundário, caso o servidor de destino trava" não funcionará. Certifique-se de que você pode responder à solicitação A com 2 ips, mas o cliente fará um round-robin entre eles. então você deve procurar outro failover [dns com short ttl?].
dê uma olhada aqui ou aqui para exemplos de como usar o geoip no bind para fornecer respostas diferentes dependendo da geolocalização do ip enviando a consulta dns.