Sim, os aplicativos que desejam interagir com o Active Directory realmente devem ser projetados para usar procedimentos apropriados de localização de DC (que são bem documentados); infelizmente, muitas vezes não são.
Normalmente, é possível solucionar isso apontando seu aplicativo LDAP para o nome de domínio do Active Directory em vez de um DC específico, porque cada DC registra automaticamente um registro AN para o nome de domínio apontando para seu endereço IP, portanto, isso funcionará como um DNS round robin; no entanto, isso pode e causará dois problemas significativos:
- Se um DC estiver inativo, ele ainda será incluído na resposta do DNS; isso pode causar falhas no LDAP se o aplicativo não for inteligente o suficiente para tentar outro.
- Isso não levará em conta a topologia do site do Active Directory; se você tiver um ambiente distribuído geograficamente, poderá ter um aplicativo em Londres autenticado em um DC na Austrália por meio de um link WAN lento e / ou não confiável.
Uma solução um pouco melhor é criar seu próprio registro DNS para aplicativos LDAP como um registro CNAME apontando para um DC específico, como ldap.example.com
apontando para dc1.example.com
e definindo um TTL lento nele (fe 60 segundos) ; Em seguida, você pode configurar seu aplicativo para usar ldap.example.com
para todas as suas necessidades de LDAP. Se / quando o DC1 ficar inativo, você poderá remapear ldap.example.com
para dc2.example.com
e o TTL lento garantirá que o aplicativo tome conhecimento da alteração o quanto antes, minimizando o tempo de inatividade.
Em qualquer caso, é realmente melhor evitar a solução de balanceamento de carga, porque o LDAP simplesmente não foi projetado para funcionar com eles e eles poderiam ser carregados para qualquer tipo de problema.