4 votes

Load balancing LDAP à partir d'un contrôleur de domaine via F5

Je sais que l'équilibrage de charge ou le basculement de LDAP sur un contrôleur de domaine Windows n'est généralement pas une bonne idée en raison des problèmes de Kerberos et de SPN.

MAIS, j'ai beaucoup d'applications non-Windows qui utilisent LDAP pour l'authentification et l'autorisation. Pour l'instant, elles ne sont dirigées que vers un seul contrôleur de domaine. Ce serait bien d'avoir un VIP et un pool avec tous mes DC derrière lui.

Alors, qu'est-ce qui se passe quand je vois ça ?

https://devcentral.f5.com/questions/ad-dcs-behind-f5

Le F5 fait-il quelque chose de spécial ? Se contente-t-il de revenir à NTLM ? Ou bien utilise-t-il une simple liaison LDAP avec AD ? (ou SLDAP bind).

Quel est le meilleur moyen pour les clients non-Windows d'utiliser LDAP ? Devraient-ils être conçus dès le départ pour utiliser les enregistrements SRV du localisateur DNS ? Faut-il déployer AD-LDS et équilibrer la charge ?

Y a-t-il quelque chose qui m'échappe ?

4voto

Massimo Points 67633

Oui, les applications qui veulent interagir avec Active Directory ont réellement devrait être conçus pour utiliser les procédures appropriées de localisation des DC (qui sont bien documentées) ; malheureusement, très souvent, ils ne le sont pas.

Vous pouvez généralement contourner ce problème en faisant pointer votre application LDAP vers le nom de domaine Active Directory au lieu d'un DC spécifique, car chaque DC enregistre automatiquement un enregistrement A pour le nom de domaine pointant vers son adresse IP, ce qui fonctionne comme un DNS round robin ; cependant, cela peut et va causer deux problèmes importants :

  • Si un DC est hors service, il sera quand même inclus dans la réponse DNS, ce qui peut provoquer des échecs LDAP si l'application n'est pas assez intelligente pour en essayer un autre.
  • Cela ne tient pas compte de la topologie du site Active Directory ; si votre environnement est géographiquement distribué, vous pouvez vous retrouver avec une application à Londres s'authentifiant auprès d'un DC en Australie sur une liaison WAN lente et/ou peu fiable.

Une solution légèrement meilleure consiste à créer votre propre enregistrement DNS pour les applications LDAP sous la forme d'un enregistrement CNAME pointant vers un DC spécifique, tel que ldap.example.com pointant vers dc1.example.com et définissez un TTL lent (par exemple, 60 secondes) ; vous pouvez ensuite configurer votre application pour qu'elle utilise le service ldap.example.com pour tous ses besoins LDAP. Si/quand DC1 tombe en panne, vous pouvez alors remapper ldap.example.com a dc2.example.com et le TTL lent permettra à l'application d'être informée du changement dès que possible, ce qui minimisera les temps d'arrêt.

Dans tous les cas, il est vraiment préférable d'éviter les solutions d'équilibrage de charge, car LDAP n'est tout simplement pas conçu pour fonctionner avec elles et elles pourraient entraîner toutes sortes de problèmes.

0 votes

Je vois, bonne info. Et si c'était une authentification simple, utilisant le nom/mot de passe et employant un cryptage au niveau de la session ? Je suppose que c'est la raison pour laquelle cela fonctionne bien avec un F5 puisque Kerberos n'est pas du tout utilisé ? Y a-t-il des problèmes avec cette méthode, à part le fait qu'elle n'est pas la meilleure en termes de sécurité ?

1 votes

Ce n'est pas un problème de sécurité... c'est un problème de protocole ; LDAP n'est tout simplement pas conçu pour fonctionner avec l'équilibrage de charge. Microsoft ne le prend pas en charge et personne ne le fait non plus (jusqu'à F5 inclus). Il est tout à fait possible que tout fonctionne bien dans 99% des cas, mais lorsque quelque chose se passera inévitablement mal, absolument personne ne vous soutiendra si vous avez placé un équilibreur de charge devant vos contrôleurs de domaine, et vous no être en mesure de déterminer si votre problème est réellement causé par lui ou par quelque chose de complètement indépendant. TL;DR : Vous ne faites que demander des ennuis.

0 votes

Que diriez-vous de quelque chose comme ça : windowsitpro.com/article/network-load-balancing-nlb/ et synchroniser LDS avec AD.

1voto

fartheraway Points 4886

Presque tous les produits d'authentification LDAP non Windows que j'ai vus sont capables d'utiliser une entrée DNS. Au lieu de pointer vers un serveur spécifique, vous pouvez pointer vers la racine de votre domaine. Cela devrait fonctionner dans la grande majorité des situations.

C'est le cas parce que si vous effectuez une recherche à la racine de votre domaine, par exemple exemple exemple.com, vous devriez obtenir toutes les adresses IP de vos contrôleurs de domaine. Cela permet au DNS round robin standard de prendre le relais, sans avoir besoin d'une quelconque configuration spécialisée.

1voto

Mike42 Points 849

S'agit-il plutôt de haute disponibilité ou de performances ?

Pour la performance, je veux souligner ceci :

J'ai beaucoup d'applications non-Windows qui utilisent LDAP pour l'authentification et l'autorisation. Pour l'instant, elles ne sont dirigées que vers un seul contrôleur de domaine.

La solution rapide et évidente consiste à diriger certaines de vos applications vers vos DC supplémentaires. Bien sûr, ce n'est pas l'idéal car cela laisse les applications vulnérables si un DC tombe en panne, mais c'est un moyen facile de répartir votre charge immédiatement.

Pour une haute disponibilité, vous pouvez faire pointer les applications sur le nom de domaine ou (encore mieux) sur un nom de domaine. Ce n'est pas génial, car cela signifie un ajustement manuel du dns si quelque chose ne va pas, mais cela facilitera la réponse.

Vous pouvez combiner ces techniques en utilisant des enregistrements cname vers plusieurs DCs. La charge est répartie, et vous pouvez facilement ajuster un enregistrement de nom de domaine pour un DC individuel en cas de panne.

1voto

Thecamelcoder Points 11

L'utilisation d'un équilibreur de charge pose un problème : selon l'activité, certaines applications peuvent demander un accès à un DirectoryEntry. Le DirectoryEntry comprend le nom du serveur. Ceci est plus courant pour les mises à jour, mais peut également se produire pour les lectures/requêtes. Dans ce cas, il est évident que vous ne passez pas par l'équilibreur de charge. Serait-ce suffisant pour l'authentification ? Peut-être.

J'ai appris que si vous mettez un service à disposition, les gens peuvent l'utiliser à d'autres fins que celles prévues. Alors ce VIP "authentification uniquement" que vous avez mis en place ? Peut-être que quelqu'un décide de l'utiliser pour autre chose. C'est vraiment important. Que se passe-t-il si ça explose ?

Une autre question est de savoir quels sont les contrôles de santé. Il n'est pas rare qu'un contrôleur de domaine soit présent sur les ports 389/636 mais ne fonctionne pas correctement. Un simple contrôle de port peut donc ne pas être suffisant.

Traditionnellement, la résilience de la connexion Active Directory (le processus DC Locator) est poussée vers le client. Lorsque vous commencez à le bricoler pour le rendre "hautement disponible", vous vous appropriez les problèmes. Et certains de ces problèmes peuvent être difficiles et insaisissables à diagnostiquer et à résoudre. Qui vous soutiendra ? F5 ? Microsoft ? Bonne chance avec ça.

0 votes

Il s'agit donc de s'assurer que l'application peut gérer le basculement, c'est-à-dire que vous pouvez entrer plus d'un nom d'hôte pour le contrôleur de domaine, OU que l'application peut gérer le processus de localisation du contrôleur de domaine. L'équilibrage de la charge LDAP se fait à vos risques et périls.

0 votes

C'est le résultat, oui. S'appuyer sur une simple consultation DNS est une erreur courante lorsqu'on tente d'utiliser Active Directory. J'ai vu cette erreur même avec des produits commerciaux très courants.

0 votes

Une véritable application LDAP n'utilise pas les DC Locators car elle ne s'intègre pas à Active Directory ; il s'agit simplement de clients LDAP. Quelques applications avancées sont capables d'utiliser les enregistrements SRV du DNS, mais cela ne signifie pas qu'elles utiliseront ceux enregistrés dans AD ; elles peuvent avoir leurs propres exigences.

1voto

Bill Points 11

J'ai 3 serveurs dans un VIP pour cette circonstance.

De plus, l'utilisation du nom de domaine est souvent mauvaise car elle touchera le premier DC de la liste renvoyée, si l'application ne connaît pas le site (la plupart ne le font pas). Cela pourrait être n'importe où dans le pays et ce serait mauvais pour la charge et la latence du réseau étendu.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X