8.2 Utilisation d'OpenSLP ou d'un fichier hosts.nds pour résoudre les noms d'arborescence

Avant d'installer l'infrastructure de coffre-fort d'identité, assurez-vous que le serveur dispose d'une méthode (un service ou un fichier spécifié) pouvant être utilisée pour résoudre les noms d'arborescence du coffre-fort d'identité en adresses de renvoi du serveur. NetIQ recommande l'utilisation des services SLP (Service Location Protocol) pour résoudre les noms d'arborescence. Dans les versions précédentes d'eDirectory, OpenSLP était installé automatiquement. Toutefois, à partir de la version 8.8, OpenSLP n'est plus installé automatiquement lors de l'installation d'eDirectory. Vous devez installer séparément un service SLP ou utiliser un fichier hosts.nds. Si vous utilisez un service SLP, les agents d'annuaire pour ce service (SLPDA) doivent être stables.

Cette section contient les informations suivantes :

8.2.1 Utilisation d'un fichier hosts.nds pour résoudre les noms d'arborescence

Le fichier hosts.nds est une table de recherche statique utilisée par les applications de coffre-fort d'identité pour rechercher des partitions et des serveurs de coffre-fort d'identité. Il vous permet d'éviter les délais de multidiffusion SLP lorsqu'aucun SLPDA n'est présent sur le réseau. Pour chaque arborescence ou serveur, vous devez spécifier les informations suivantes dans une seule ligne du fichier hosts.nds :

  • Nom du serveur ou nom de l'arborescence : les noms d'arborescence doivent se terminer par un point final (.).

  • Adresse Internet : il peut s'agir d'un nom DNS ou d'une adresse IP. N'utilisez pas localhost.

  • Port du serveur : facultatif, ajouté à l'adresse Internet à l'aide du signe deux-points (:).

Il n'est pas nécessaire d'inclure une entrée pour le serveur local dans le fichier, sauf si le serveur n'écoute pas sur un port NCP par défaut.

Pour configurer un fichier hosts.nds :

  1. Créez ou ouvrez un fichier hosts.nds.

  2. Ajoutez les informations suivantes :

    partition_name.tree_name. host_name/ip-addr:port
    server_name dns-addr/ip-addr:port
    

    Par exemple :

    # This is an example of a hosts.nds file:
    # Tree name Internet address/DNS Resolvable Name
      CORPORATE. myserver.mycompany.com
      novell.CORPORATE. 1.2.3.4:524
    
    # Server name Internet address
      CORPSERVER myserver.mycompany.com:524
    
  3. (Facultatif) Si vous décidez par la suite d'utiliser SLP pour résoudre le nom d'arborescence et garantir la disponibilité de l'arborescence du coffre-fort d'identité sur le réseau, ajoutez le texte suivant au fichier hosts.nds :

    /usr/bin/slptool findattrs services:ndap.novell///(svcname-ws==[treename or *])"
    

    Par exemple, pour rechercher les services dont l'attribut svcname-ws correspond à la valeur SAMPLE_TREE, entrez la commande suivante :

    /usr/bin/slptool findattrs services:ndap.novell///(svcname-ws==SAMPLE_TREE)"
    

    REMARQUE :effectuez cette opération après avoir installé SLP et le coffre-fort d'identité.

    Si vous disposez d'un service dont l'attribut svcname-ws a pour valeur SAMPLE_TREE, vous obtenez un résultat similaire à servicndap.novell:///SAMPLE_TREE. Sinon, la recherche ne renvoie aucun résultat.

8.2.2 Présentation d'OpenSLP

OpenSLP est une mise en œuvre Open Source de la norme IETF Service Location Protocol version 2.0, documentée dans la RFC (Request for Comments) 2608 de l'IETF.

L'interface fournie par le code source OpenSLP est une mise en œuvre d'une autre norme de l'IETF concernant l'accès par programme à la fonctionnalité SLP, documentée dans la RFC 2614.

Pour comprendre parfaitement les travaux de SLP, il est important de lire ces documents et de les assimiler. Leur lecture peut s'avérer laborieuse, mais ils sont essentiels pour procéder à une configuration correcte de SLP sur un intranet.

Pour plus d'informations sur le projet OpenSLP, reportez-vous aux sites Web d'OpenSLP et de SourceForge. Le site Web d'OpenSLP propose plusieurs documents qui offrent de précieux conseils de configuration. La plupart de ces documents sont encore incomplets à la date de publication de la présente documentation.

Cette section inclut les rubriques suivantes sur l'utilisation de SLP et sa relation avec le coffre-fort d'identité :

Protocole SLP NetIQ

La version NetIQ de SLP prend certaines libertés vis-à-vis de la norme SLP afin de fournir un environnement d'annonce de service renforcé, mais au prix d'une certaine évolutivité.

Par exemple, pour améliorer l'évolutivité d'une structure d'annonce de service, vous pouvez limiter le nombre de paquets diffusés ou multidiffusés sur un sous-réseau. La norme SLP gère ce facteur en imposant des limitations aux agents Service et Utilisateur concernant les requêtes à l'agent Annuaire. Le premier agent Annuaire identifié qui dessert l'étendue souhaitée est celui qu'un agent de service (et par conséquent des agents Utilisateur locaux) utilisera pour toutes les requêtes futures sur cette étendue.

La mise en œuvre de NetIQ SLP permet d'analyser tous les agents Annuaire connus, à la recherche des informations de la requête. Un acheminement AR de 300 millisecondes étant considéré comme trop long, 10 serveurs peuvent être analysés en 3 à 5 secondes. Il n'est pas nécessaire d'effectuer cette opération si SLP est configuré correctement sur le réseau et que OpenSLP considère le réseau comme configuré correctement pour le trafic SLP. Les valeurs de timeout de réponse de OpenSLP sont supérieures à celles du fournisseur de services SLP de NetIQ et cela limite le nombre d'agents Annuaire au premier qui répond, que les informations de celui-ci soient ou non précises et complètes.

Agents Utilisateur

Un agent Utilisateur prend la forme physique d'une bibliothèque statique ou dynamique liée à une application. Il permet à l'application d'émettre des requêtes de services SLP. La fonction de l'agent Utilisateur est de fournir une interface par programmation aux clients pour leurs requêtes de services, et aux services pour leur permettre de publier leurs annonces. Un agent Utilisateur contacte un agent Annuaire pour interroger des services enregistrés d'une classe de service et d'une étendue spécifiées.

Les agents Utilisateur suivent un algorithme pour obtenir l'adresse d'un agent Annuaire auquel les requêtes seront envoyées. Une fois qu'ils ont obtenu l'adresse d'un agent Annuaire sur une étendue spécifiée, ils continuent à utiliser cette adresse pour cette étendue jusqu'à ce qu'elle ne réponde plus. Là, ils se procurent l'adresse d'un autre agent Annuaire pour l'étendue. Les agents Utilisateur localisent l'adresse d'un agent Annuaire sur une étendue spécifiée en :

  1. vérifiant si l'identificateur de socket de la requête en cours est connecté à un agent Annuaire pour l'étendue indiquée ; S'il se trouve que la requête fait partie d'une requête en plusieurs parties, elle peut déjà contenir une connexion en cache.

  2. recherchant dans le cache de l'agent Annuaire connu un agent Annuaire correspondant à l'étendue indiquée ;

  3. recherchant auprès de l'agent Service local un agent Annuaire de l'étendue spécifiée (et en ajoutant de nouvelles adresses au cache) ;

  4. interrogeant DHCP pour obtenir des adresses d'agents Annuaire configurées pour le réseau et correspondant à l'étendue indiquée (et en ajoutant de nouvelles adresses au cache) ;

  5. envoyant une requête d'identification d'agent Annuaire par multidiffusion sur un port connu (et en ajoutant de nouvelles adresses au cache).

L'étendue indiquée est celle « par défaut », sauf spécification contraire. Cela signifie que si aucune étendue n'est définie de façon statique dans le fichier de configuration SLP et qu'aucune étendue n'est indiquée dans la requête, l'étendue utilisée est le mot « default ». Notez également que le coffre-fort d'identité n'indique jamais d'étendue dans ses enregistrements. S'il existe une étendue configurée statiquement, celle-ci devient l'étendue par défaut pour les requêtes de l'agent Utilisateur local et les enregistrements de l'agent Service en l'absence d'une étendue spécifiée.

Agents Service

Les agents de service prennent la forme physique d'un processus distinct exécuté sur l'ordinateur hôte. Dans le cas de Windows, slpd.exe s'exécute en tant que service sur l'ordinateur local. Des agents utilisateur interrogent l'agent de service local en envoyant des messages à l'adresse de bouclage sur un port connu.

La fonction de l'agent Service consiste à fournir des points de stockage et de maintenance persistants pour des services locaux s'étant enregistrés auprès de SLP. L'agent de service a pour tâche principale de gérer une base de données en mémoire des services locaux enregistrés. En fait, un service ne peut pas s'enregistrer auprès de SLP tant qu'un agent de service local n'est pas présent. Les clients peuvent identifier les services au moyen d'une seule bibliothèque d'agent Utilisateur, mais l'enregistrement nécessite obligatoirement un agent de service (SA), principalement parce que cet agent doit régulièrement vérifier l'existence de services enregistrés pour maintenir l'enregistrement des agents Annuaire à l'écoute.

Un agent de service localise et met en cache les agents Annuaire et la liste de l'étendue qu'ils prennent en charge en envoyant directement une requête d'identification d'agent Annuaire à des adresses d'agent Annuaire potentielles en :

  1. vérifiant toutes les adresses d'agent Annuaire configurées statiquement (et en ajoutant de nouvelles au cache d'agent Annuaire connu de l'agent de service) ;

  2. demandant la liste des agents Annuaire et des étendues à DHCP (et en en ajoutant de nouveaux au cache d'agent Annuaire connu de l'agent de service) ;

  3. envoyant une requête d'identification d'agent Annuaire par multidiffusion sur un port connu (et en en ajoutant de nouvelles au cache d'agent Annuaire connu de l'agent de service) ;

  4. recevant les paquets d'annonce régulièrement diffusés par les agents Annuaire (et en ajoutant les nouveaux au cache d'agent Annuaire connu de l'agent de service).

Le fait qu'un agent Utilisateur interroge toujours l'agent Service local en premier lieu revêt toute son importance, car la réponse de l'agent Service local détermine si l'agent Utilisateur passe ou non à l'étape suivante de la découverte (en l'occurrence, DHCP-- reportez-vous à l'Étape 3 et l'Étape 4 de la section Agents Utilisateur).

Agents Annuaire

Le fonction de l'agent Annuaire consiste à fournir un cache persistant à long terme pour les services annoncés, ainsi qu'un point d'accès permettant aux agents Utilisateur de rechercher des services. En tant que cache, l'agent Annuaire reste à l'écoute de l'annonce de nouveaux services par les agents de service et met en cache ces notifications. Le cache d'un agent Annuaire se complète ou se remplit rapidement. Les agents Annuaire utilisent un algorithme d'expiration pour faire expirer les entrées de cache. Lorsqu'un agent Annuaire s'active, il lit le cache du stockage persistant (en général un disque dur), puis commence à faire expirer les entrées selon l'algorithme. Lorsqu'un nouvel agent Annuaire arrive ou lorsqu'un cache a été supprimé, l'agent Annuaire détecte cette condition et envoie une notification spéciale à tous les agents Service à l'écoute pour qu'ils vident leurs bases de données locales, de manière à ce que l'agent Annuaire puisse rapidement créer son cache.

En l'absence d'agents Annuaire, l'agent Utilisateur effectue une requête de multidiffusion générale à laquelle les agents de service peuvent répondre listant ainsi les services demandés de la même manière que les agents Annuaire créent leur cache. La liste des services renvoyée par une telle requête est incomplète et bien plus localisée que celle fournie par un agent Annuaire, notamment en présence d'un filtrage multidiffusion mis en œuvre par un grand nombre d'administrateurs réseaux, lesquels limitent les diffusions et les multidiffusions au sous-réseau local seulement.

En bref, tout s'articule autour de l'agent Annuaire trouvé par un agent Utilisateur dans une étendue donnée.

8.2.3 Configuration de SLP pour le coffre-fort d'identité

Les paramètres suivants du fichier %systemroot%/slp.conf contrôlent la découverte des agents Annuaire :

net.slp.useScopes = comma-delimited scope list
net.slp.DAAddresses = comma-delimited address list
net.slp.passiveDADetection = <"true" or "false">
net.slp.activeDADetection = <"true" or "false">
net.slp.DAActiveDiscoveryInterval = <0, 1, or a number of seconds>
useScopes

Ce paramètre indique à quelles étendues l'agent Service va s'annoncer et à quelles étendues les requêtes seront adressées en l'absence d'une étendue spécifique lors de l'enregistrement ou de la requête effectuée par le service ou l'application client. Comme le coffre-fort d'identité émet toujours ses annonces et ses requêtes sur l'étendue par défaut, cette liste sera considérée comme la liste d'étendues par défaut pour l'ensemble des enregistrements et des requêtes du coffre-fort d'identité.

DAAddresses

Ce paramètre représente une liste d'adresses IP décimales avec points, séparées par une virgule, d'agents Annuaire qui doivent être préférés à tous les autres. Si cette liste des agents Annuaire configurés ne prend pas en charge l'étendue d'un enregistrement ou d'une requête, les agents Service et Utilisateur font alors appel à la découverte multidiffusion des agents Annuaire, sauf si cette fonction a été désactivée.

passiveDADetection

Par défaut, ce paramètre est défini sur True. Les agents Annuaire annoncent régulièrement leur existence sur le sous-réseau au moyen d'un port connu si celui-ci est configuré à cet effet. Ils s'intitulent paquets DAAdvert. Si cette option est définie sur False, tous les paquets DAAdvert diffusés sont ignorés par l'agent Service.

activeDADetection

Par défaut, ce paramètre est défini sur True. Elle permet à l'agent de service de diffuser régulièrement une requête à tous les agents Annuaire pour qu'ils répondent au moyen d'un paquet DAAdvert dirigé. Un paquet dirigé n'est pas diffusé, mais envoyé directement à l'agent de service en réponse à ces requêtes. Si cette option est définie sur False, aucune requête régulière de découverte d'agents Annuaire n'est diffusée par l'agent Service.

DAActiveDirectoryInterval

Représente un paramètre à trois états. La valeur par défaut est 1. Cela signifie que l'agent Service doit seulement envoyer une requête de découverte d'agents Annuaire lors de l'initialisation. Si vous définissez cette option sur la valeur 0, vous obtenez le même effet qu'en définissant l'option activeDADetection sur False. Toute autre valeur indique un nombre de secondes entre les diffusions de découverte.

Employées correctement, ces options assurent une utilisation appropriée de la bande passante du réseau pour l'annonce de services. En fait, les paramètres par défaut sont conçus pour optimiser l'évolutivité d'un réseau moyen.