Pourquoi

Aujourd'hui de nombreuses applications passent beaucoup de requêtes de résolutions de nom (FQDN vers IP et vice-versa). La latence qui découle de cette requête impacte directement les performances de ces applications.
Pour répondre à ce besoin croissant, IBM avec sa version AIX 6.1 introduit un nouveau démon: le "Network Caching Daemon" (netcd). Celui-ci permet non seulement d'améliorer les performances de résolution de nom mais aussi de cacher les informations relatives aux utilisateurs et aux groupes fournit par un serveur NIS.

Comment

La communication entre le "resolver" et le démon netcd est assurée par un socket UNIX (/dev/netcd).
Il est à noter que l'utilisation du démon netcd n'affecte en rien le comportement du "resolver". La variable NSORDER ainsi que les fichiers /etc/netsvc.conf et /etc/irs.conf sont toujours consultés de la même manière.

 

Fonctionnement du mécanisme de cache

Les caches sont stockés sous forme de tableaux hachés pour assurer l'accès le plus rapide. Le démon netcd va maintenir deux types de caches différents, l'un pour les ressources locales, l'autre pour les ressources réseaux.

  1. Les ressources locales (/etc/hosts par exemple)
    Au démarrage du démon netcd, toutes les entrées de la ressource locale sont insérées dans le cache. Une requête du "resolver" vers une ressource locale est donc toujours servie par le cache. Dans des environnements de production utilisant énormément de ressources locales, une requête du "resolver" est servie bien plus vite par le démon netcd qu'en passant par la recherche linéaire sur le fichier plat de la ressource. Le démon netcd vérifie périodiquement si la ressource locale a changé et si nécessaire reload le cache.
  2. Les ressources réseaux (le DNS par exemple)
    Au démarrage du démon netcd, le cache est créé vide. Le cache se rempli au fur et à mesure des requêtes passées au "resolver". Lorsqu'une entrée est insérée dans le cache, un "Time To Live" TTL lui est associé. Dans le cas du DNS, le TTL envoyé par le serveur DNS est directement utilisé. Le démon netcd vérifie périodiquement les entrées expirées et les supprime.

Implémentation sous AIX

Le démon netcd est délivré dans le package bos.net.tcp.client. Trois fichiers important viennent avec le netcd.

  1. /usr/sbin/netcd - le démon lui même
  2. /usr/sbin/netcdctrl
    La commande qui permet la gestion des caches du démon netcd. Incluant, les dumps des caches, les suppressions des caches, la modification du niveau de log et les statistiques
  3. /usr/samples/tcpip/netcd.conf
    Un exemple du fichier de configuration du démon netcd

 

Le démon netcd est géré par le "System Resource Controler" (SRC). Vous pouvez donc utiliser les command "startsrc, stopsrc et lssrc" pour contrôler le démon netcd. Attention cependant la commande refresh n'est pour le moment pas supportée.

Au démarrage d'AIX, le démon est démarré pendant l'exécution du script /etc/rc.tcpip