LES CAHIERS d'AIX

Publication réservée aux abonnés du Point Service AIX
Janvier 1998



La gestion des licences : de iFOR/LS à LUM



Jean-Luc GESTIN



Introduction


Les produits de gestion des licences sont souvent mal perçus par les
ingénieurs systèmes.

Ces produits, une fois installés, ne font plus parler d'eux pendant des années
jusqu'à ce qu'un problème survienne ; et quand il est là, tous les utilisateurs
bloqués en font une rapide "publicité",


Pour rester serein dans un tel cas, souvenez-vous de cet article et n'hésitez pas
à vous y reporter. Vous gagnerez du temps.



Gestionnaires de licences et versions d'AIX





Comment utiliser ce dossier


Ceux qui ne connaissent pas, ou peu, le produit iFOR/LS auront avantage
à lire d'abord le chapitre "Utilisation de iFOR/LS en AIX V4.1 ou V4.2"
afin de posséder les bases de compréhension. Ils pourront alors lire le
chapitre "Utilisation de LUM en AIX V4.3, V4.2 ou V4.1", qui suppose ces bases acquises.



Utilisation de iFOR/LS en AIX V4.1 ou V4.2



L'environnement iFOR/LS


Cet environnement est composé :



Les licences iFOR/LS


Lorsque vous achetez un produit IBM sous licence, vous obtenez une
licence permanente de durée illimitée, dont la validité commence le jour de l'achat.

Dans certains cas particuliers, une licence
temporaire peut vous être délivrée. Sa validité commence le jour de sa
délivrance, et sa durée d'utilisation est limitée.


La licence est attachée à un système, désigné comme serveur de
licence. La clef de licence intègre le uname
du système, que vous obtenez avec la commande uname -m.

Ceci implique deux contraintes :



La licence intègre également la notion de "date de début d'utilisation".

Si la date de votre système n'est pas à jour, la licence peut très bien
refuser de fonctionner. Par exemple : votre licence vous est délivrée le
1er avril, jour où vous souhaitez l'utiliser, or votre système indique
la date du 25 mars... Vous devrez attendre une semaine pour pouvoir utiliser la
licence, ou alors mettre à jour la date de votre système,


Les types de licences

iFOR/LS offre principalement trois types de licences :



Choix entre licence "Nodelock" et "Concurrent-use"

Dès maintenant, il faut vous poser la question : "Ai-je besoin de distribuer
"n" licences à "n", "2n",
"3n", ..., utilisateurs répartis sur le réseau, ou bien l'utilisation
du logiciel en question n'est-elle circonscrite qu'à un seul système local ? ".



La "cellule" iFOR/LS

Une cellule iFOR/LS est une enceinte logique qui contient :



Règles




La cellule "par défaut"




Les inconvénients de la cellule par défaut

Cette cellule représentant l'option par défaut, permet l'usage
le plus large du serveur de licences, éventuellement aux dépens de vos
objectifs de qualité de service,


Jugez-en : si vous installez votre serveur de licences dans une cellule par défaut,
les "n" licences que vous avez achetées deviennent disponibles pour :



Conclusion




La cellule "alternée"




Avantages de la cellule alternée




Le fichier des utilisateurs : "user_file"


Ce fichier permet de décrire, pour chaque produit ou pour chaque groupe
de produits d'un même fournisseur, la liste des utilisateurs autorisés
à accéder au produit ou la liste des utilisateurs interdits d'accès.


Exemple d'utilisation

Supposons qu'un administrateur veuille distribuer des licences CATIA à un groupe d'utilisateurs CAO,
et des licences Cset&supplus.&supplus. à un groupe de développeurs.

Il souhaite, de plus, que certains utilisateurs aient accès aux deux types de licences.


Or, un système client ne peut appartenir qu'à une seule cellule à la fois...




Exemple de fichier "user_file"



+--------------------------------------------------------------------------------+
|

| |vendor "IBM Software Solutions Toronto" "IBM C for AIX" | |allow ouioui -p 2 bud jyb -p 1 fred | |vendor "Dassault Systemes" all | |disallow gloups | |

| +--------------------------------------------------------------------------------+




Explications




Le "moteur" iFOR/LS


Il est constitué de deux serveurs principaux, le netlsd et le glbd,
qui s'insèrent sur une couche de support local, le llbd :
llbd et glbd font partie de la couche NCS (Network
Computing System
, qui utilise une technologie d'informatique distribuée), alors que
le netlsd fait partie de la couche iFOR/LS, qui s'insère au-dessus de NCS.



llbd : le gestionnaire de la base de données locale

Pour pouvoir travailler, les gestionnaires principaux glbd et netlsd
ont besoin qu'une couche de support locale soit préalablement installée
sur le système où ils se trouvent.

Cette couche :



netlsd : le gestionnaire de distribution des licences

Le gestionnaire de distribution des licences est le daemon netlsd.

Son travail se décline en plusieurs tÔches :


netlsd "écoute" dynamiquement sur un port affecté au démarrage, de
valeur supérieure à 1024.



glbd : le gestionnaire de la base de donnée globale

Pour tenir son rôle, le gestionnaire netlsd a besoin d'informations.

Les questions à résoudre sont les suivantes :


Pour cela, il doit s'appuyer sur une base de données globale,
la GLB (Global Location Base) qui décrit la
topologie de l'environnement NetLS pour la cellule associée.

Cette base est gérée par le daemon glbd.


Les clients iFOR/LS


Un client iFOR/LS est une station de travail sur laquelle tournent des logiciels
qui ont besoin d'obtenir une licence d'utilisation pour travailler.


Aucun daemon llbd, glbd, ou netlsd ne doit y tourner, à moins bien
sûr que ce client ne soit en même temps le serveur de licence.


Le mode d'accès à une licence est le suivant :



Cependant, une cellule iFOR/LS s'affranchit de la topologie du réseau sous-jacent.
Ainsi, un client iFOR/LS peut faire partie de la même "cellule"
que votre serveur de licences, bien qu'il soit installé sur un réseau
situé à 5 routeurs de distance du réseau attaché à votre serveur...

Mais alors, comment le client peut-il "voir" votre serveur, puisque le broadcast
ne "traverse" pas les routeurs ?


C'est ici qu'intervient le fichier glb_site.txt.

Ce fichier contient la référence à votre serveur de GLB, sous la forme :



Ainsi, le client ne lance plus de broadcast sur son réseau local,
mais s'adresse directement au système supporant le glbd, pour pointer
ensuite sur le serveur de licences netlsd.


Un client, situé sur le même réseau local que son serveur, a tout
intérêt à utiliser quand même ce fichier /etc/ncs/glb_site.txt ; ceci
élimine les broadcasts qui chargent inutilement le réseau.


Enfin, ce fichier peut contenir plusieurs lignes, chacune référençant
un serveur différent, à la manière des fichiers /etc/resolv.conf du DNS.

Ainsi, vous pouvez répartir la charge des requêtes de licences sur votre réseau
entre plusieurs serveurs, chaque groupe d'utilisateurs référençant
en priorité son propre serveur, puis celui des autres groupes en backup.

Dans ce cas, lorsqu'une requête de licence échoue auprès du
premier serveur de la liste, le second est sollicité après un délai (timeout),
puis le suivant, etc.


Configurations diverses


iFOR/LS permet une certaine modularité dans le choix des configurations
possibles... la plus simple étant très souvent la plus efficace.


GLB séparée du netlsd


La base de données globale GLB, peut être installée sur un système
distinct de celui qui accueille le serveur de licences netlsd.



--------------     1      --------------    2       --------------
|  système A | <--------  |  client    | ---------> |  système B |
|   GLB      |  serveur?  |            | licence ?  |            |
|    glbd    | ---------> |            | <--------- |   netlsd   |
|    llbd    |  syst.B    |            |    OK !    |   llbd     |
--------------            --------------            --------------
 



Dans ce cas, lorsque le client recherche une licence, la requête est
dirigée sur le système qui héberge le GLB (opération 1).

Le glbd
précise alors au client la localisation du serveur qui héberge le netlsd.

La requête est alors dirigée sur le gestionnaire de licences (opération 2).



GLB dupliquée


Pour lui garantir une plus grande disponibilité, la base de données
globale (GLB) peut être dupliquée sur plusieurs systèmes au sein d'une
même cellule.

Ce genre de duplication n'est utile que pour de grosses
configurations iFOR/LS, impliquant des centaines de clients, afin de
répartir la charge. Généralement, chaque GLB se situe sur un
subnet différent, pour éviter de charger les routeurs.

Ce type de configuration impose un travail de maintenance périodique
supplémentaire, afin de conserver la synchronisation des GLB
(voir "Synchronisation de GLB multiples").


Exemple




---------------          ---------------           ---------------
|  système A  |          |  système B  |           |  système C  |
|     GLB     |          |     GLB     |           |             |
|    glbd     |          |    glbd     |           |   netlsd    |
|    llbd     |          |    llbd     |           |   llbd      |
---------------          ---------------           ---------------
 



Dans ce cas, chaque hôte d'une GLB doit supporter un glbd.

Cette configuration nécessite de garantir la bonne reproduction et la
synchronisation périodique des bases. C'est le gestionnaire de
reproduction des données drm (Data Reproduction Manager)
qui s'assure de ce travail.

drm fait partie du glbd.


L'outil drm_admin permet de gérer ces mises à jour.



netlsd dupliqués


Pour garantir une plus grande disponibilité des licences, deux (ou
plusieurs) serveurs de licences netlsd, chacun installé sur un système
distinct, peuvent être définis au sein d'une même cellule.

Ce genre de duplication n'est utile que pour de grosses
configurations iFOR/LS, impliquant des centaines de clients, afin de
répartir la charge.

Généralement, chaque netlsd se situe sur un
subnet différent, pour éviter de charger les routeurs.



 
---------------          ---------------           ---------------
|  serveur A  |          |  serveur B  |           |   client    |
|   netlsd    |          |   netlsd    |           |             |
|     GLB     |          |     GLB     |           |             |
|    glbd     |          |    glbd     |           |             |
|    llbd     |          |    llbd     |           |             |
---------------          ---------------           ---------------
 
 



Il faut comprendre qu'une limitation demeure : chaque licence
est liée à son système serveur par son uname. Si un serveur tombe,
les licences correspondantes ne peuvent pas être transférées sur l'autre
serveur disponible.


Exemple :

Dans une cellule de 40 utilisateurs, qui contient 2 serveurs
de 10 licences, la chute d'un serveur entraîne le partage, en mode
dégradé, des 10 licences restantes parmi les 40 usagers.


Cette duplication des serveurs impose également un travail de maintenance,
pour synchroniser les GLB lorsque l'un des serveurs tombe.



glbd et netlsd ensemble


Le mode d'utilisation le plus simple et le plus fiable d'iFOR/LS consiste,
cependant, à garder llbd, glbd, et netlsd réunis sur un seul et
même serveur.
Cette configuration suffit dans 95% des cas, et aucune maintenance n'est nécessaire...



 
---------------
|   netlsd    |
|     GLB     |
|    glbd     |
|    llbd     |
---------------
 




Ordre de démarrage et arrêt des daemons




Donc l'ordre de démarrage doit toujours être :


  1. llbd
  2. glbd
  3. netlsd


L'ordre inverse doit être utilisé lors de l'arrêt des daemons.

Pour éviter les erreurs, deux commandes font ce travail à notre place :



Lorsque l'administrateur fait un boot sur un système serveur de
licences flottantes, l'ordre de démarrage des daemons llbd, glbd, et
netlsd est déterminé par l'exécution des fichiers etc/rc.ncs, puis
/etc/rc.netls, telle qu'elle est décrite dans /etc/inittab :



+--------------------------------------------------------------------------------+
|

| |rcncs:2:wait:sh /etc/rc.ncs > /dev/console 2>&1 Start NCS | |netlsd:2:wait:sh /etc/rc.netls >/dev/console 2>&1 Start netls | |

| +--------------------------------------------------------------------------------+



Note: Ces deux lignes sont ajoutées dans /etc/inittab selon les
choix effectués lors de l'exécution du script netls_config, lors de
l'installation du serveur iFOR/LS.


Par contre, à l'arrêt du système, l'ordre d'arrêt de ces mêmes daemons
n'est, à priori, décrit nulle part...

Donc, si les daemons ne sont pas stoppés dans le bon ordre par le système,
leur redémarrage se passe généralement mal : soit le glbd,
soit le netlsd tombe sans que personne ne comprenne pourquoi,

Il suffit, dans ce cas, de lancer un
srv_stop suivi d'un srv_start pour que tout rentre dans l'ordre.


Pour éviter ce désagrément, une solution simple consiste à rajouter
la commande srv_stop dans le script de la commande /usr/sbin/shutdown.



Synthèse


Le meilleur environnement iFOR/LS est un environnement simple et sous contrôle,

Pour connaître la sérénité, il est recommandé que l'environnement respecte
les règles suivantes :



Mise en oeuvre d'un environnement iFOR/LS



Obtention des clefs de licences


Installer un environnement iFOR/LS ne se justifie que si vous avez
besoin d'accéder à des clefs de licences flottantes.

Le nombre et le type de ces clefs (nodelock ou concurrent) sont déterminés
lors de la commande du logiciel. Il vous appartient de vérifier que cette commande,
si elle est faite par un autre service que le vôtre, est conforme à vos besoins.


Si vous avez besoin d'obtenir des clefs de licences, les coordonnées
du centre IBM qui gère ces demandes sont les suivantes :




Si vous souhaitez obtenir de nouvelles clefs ou un
remplacement des clefs actuelles, si votre système connaît un problème
de uname, vous devez fournir les renseignements suivants :




Nettoyage d'un environnement iFOR/LS


Si votre serveur était installé dans une cellule par défaut, et que
vous souhaitez le réinstaller dans une cellule alternée, le script
suivant vous permet de faire place nette avant la réinstallation.


Entrer les licences dans le serveur est un travail fastidieux... Si
vous souhaitez ne pas avoir à le refaire lors de la seconde installation,
il ne faut pas effacer les fichiers lic_db.bak et lic_db.



+--------------------------------------------------------------------------------+
|

| |#!/bin/ksh | |srv_stop | |sleep 5 | |rm -f /etc/ncs/glb.e | |rm -f /etc/ncs/glb.p | |rm -f /etc/ncs/glb_site.txt | |rm -f /etc/ncs/glb_obj.txt | |rm -f /etc/ncs/glb_log | |rm -f /tmp/llbdbase.dat | |# fichiers à conserver si des licences ont déjà été entrées | |# rm -f /usr/lib/netls/conf/lic_db.bak | |# rm -f /usr/lib/netls/conf/lic_db | |rm -f /usr/lib/netls/conf/cur_db | |rm -f /usr/lib/netls/conf/log_file | |rm -f /usr/lib/netls/conf/list_targetids | |rmitab netlsd | |rmitab rcncs | |

| +--------------------------------------------------------------------------------+




Préparation avant la mise en oeuvre d'un serveur iFOR/LS


Avant la mise en oeuvre d'un serveur iFOR/LS, ces étapes doivent être
systématiquement et soigneusement validées par l'utilisateur root.

Ne pas le faire vous expose à des surprises lors de la première mise
en oeuvre du serveur...



  1. Vérifiez la date et l'heure de votre système.

    Nous avons vu qu'une date incorrecte peut bloquer la disponibilité d'une clef de licence.

  2. Vérifiez que le nom du système est correctement configuré sur votre serveur.

    D'une façon générale, toute la couche de communication basée sur TCP/IP doit être
    correctement paramétrée en fonction de votre environnement.

  3. Vérifiez que les ensembles de fichiers nécessaires sont installés :

    utilisez la commande lslpp -h <fileset_name>

    En AIX V4, les filesets sont :

  4. Pour pouvoir utiliser directement les différentes commandes et
    outils de iFOR/LS, rajoutez les chemins suivants dans la variable
    d'environnement PATH située soit dans /etc/environment, soit dans le
    fichier .profile de l'utilisateur root :




Préparation à la mise en oeuvre d'un client iFOR/LS





Cas particulier : plusieurs cartes réseaux sur le serveur iFOR/LS


L'installation d'un serveur de licences iFOR/LS sur un système se
fait en exécutant le script netls_config.


Si le système sur lequel vous souhaitez installer votre serveur
possède plusieurs cartes réseaux, netls_config n'étant pas conçu pour
gérer une telle situation, les licences risquent d'être distribuées
sur un réseau qui ne vous convient pas...

Ce cas se présente souvent lorsque la console d'un SP2 est choisie comme serveur de licences.


Lorsqu'il y a plus d'un adaptateur actif, il n'y a aucun moyen pour indiquer explicitement à la
couche NCS quel adaptateur réseau utiliser. NCS en choisira un au hasard, chaque fois que les
daemons NCS (llbd et glbd) seront démarrés.


Exemple




---------------            ---------------             ---------------
|             |            |   serveur   |             |   client    |
|             |  réseau    |   netlsd    |    réseau   |             |
|             |---------en0|     GLB     |tr0----------|             |
|             |    A       |    glbd     |      B      |             |
|             |            |    llbd     |             |             |
---------------            ---------------             ---------------
 



Si vos licences sont distribuées sur le réseau A alors que vous
les attendiez sur le réseau B, vous avez toujours la possibilité
de rendre votre système "routeur" par la commande :
no -o ipforwarding=1.

Ainsi, un client du réseau B pourra accéder aux licences distribuées sur le réseau A,
en traversant le serveur, à condition d'avoir un glb_site.txt qui pointe
correctement sur l'adresse IP ou le nom de la carte "en0".


Cependant, il est préférable de distribuer les licences directement là où elles sont nécessaires...

La seule façon de forcer NCS à se placer sur la carte de notre choix, consiste à s'assurer
que toutes les autres cartes réseaux sont inactives durant le démarrage des daemons NCS.

Ceci peut se faire à deux moments :



Inactiver toutes les interfaces réseaux, sauf une, peut avoir un impact
majeur si elles sont déjà en cours d'utilisation lorsque
l'administrateur décide de reconfigurer son serveur de licences.

Une telle manoeuvre est à proscrire sur un système en production.

Il convient donc de bien choisir son moment pour effectuer cette manoeuvre...


La procédure décrite au chapitre suivant peut être utilisée pour forcer temporairement
NCS à se placer sur l'interface de votre choix. Cependant, ce choix ne
persistera que jusqu'au prochain redémarrage des daemons NCS.



Forçage temporaire du serveur iFOR/LS sur une carte

Nous nous plaçons dans la configuration correspondant au dessin du chapitre
ci-dessus, avec :

Les clients sont installés sur le réseau tr0, et nous supposons qu'il
n'y a aucune connexion possible entre les cartes tr0 et en0
(ipforwarding=0).

Quand les deux interfaces sont disponibles,
l'expérience montre que NCS choisit quasiment toujours l'interface
en0, plutôt que tr0, lors du démarrage des daemons NCS.

Nous supposons donc que le serveur iFOR/LS a fait un bind sur la carte
en0, et que les licences sont injoignables pour les clients du réseau B.


Il va donc falloir inactiver l'interface en0 et garder active l'interface
tr0 pendant le redémarrage des daemons NCS :


tr0 est maintenant la seule interface disponible.



Forçage permanent du serveur iFOR/LS sur une carte

Un administrateur système peut adapter les commandes du chapitre ci-dessus, pour
les intégrer au script rc.ncs ; ceci afin de s'assurer que le serveur iFOR/LS
est bien forcé sur la carte réseau choisie lors du démarrage du système.

Cette adaptation doit correspondre à la configuration existante.


Vous pouvez également configurer de la même façon le script de la
commande srv_start en faisant attention au point suivant :
il faut, dans ce cas, prévoir un message de WARNING pour prévenir l'opérateur qu'il est
sur le point de stopper l'interface XXXX, ou les interfaces XXXX, YYYY, ZZZ, ...

Il faut alors proposer le choix entre :



Note: De telles modifications peuvent éventuellement être perdues
si des PTF viennent mettre à jour des filesets NCS ou NETLS...

Pensez donc à garder une copie des fichiers modifiés.



Installation d'un serveur iFOR/LS dans une nouvelle cellule alternée



  1. Mettez-vous en langue américaine : export LANG=C

  2. Lancez le script netls_config

    A la série de questions qu'il vous pose, répondez :

  3. Lorsque le script netls_config a fini de tourner, il a créé
    un nouveau script nommé netls_first_time, lancez ce dernier.

    Les daemons nécessaires au serveur de licences sont alors lancés.

    Ce script n'est lancé qu'une fois : les démarrages et arrêts ultérieurs des
    daemons seront assurés par les commandes srv_start et srv_stop.

  4. Vérifiez avec la commande ls_tv que votre serveur est correctement configuré.


    L'installation est terminée.

  5. Si nécessaire, entrez vos licences avec l'utilitaire graphique ls_admin

  6. Et pour finir, ajoutez la commande srv_stop
    dans le script de la commande /usr/sbin/shutdown
    (voir le chapitre "Ordre de démarrage et arrêt des daemons").



Synchronisation de GLB multiples


Lorsque plusieurs GLB existent au sein d'une même cellule, les
manipulations faites sur les serveurs de licences (arrêts et démarrages
des daemons, transferts de licences, etc.) génèrent, tôt ou tard, des
différences de niveaux d'information entre les GLB. Ceci entraîne des
anomalies dans la distribution des licences, voire l'impossibilité de les utiliser.


Dans ce cas, une solution simple existe, il faut resynchroniser les GLB
en suivant la procédure suivante :




Les outils d'administration d'IFOR/LS


Pour finir le chapitre sur iFOR/LS, voici une liste récapitulative des outils d'administration
qui sont à votre disposition pour gérer votre environnement de licences :



Table 2. Outils de gestion de l'environnement de licences.





Domaine
Outils
Utilisation
Les outils de


la couche NCS

lb_find
Va voir, au-delà de la cellule proche, quels sont les autres
serveurs iFOR/LS du réseau.

Permet de trouver et délivrer un UUID de cellule existante.
lb_admin
Enregistre les serveurs NCS dans les Bases de Données GLB ou LLB.

Utilisé en consultation, ajout et suppression d'entrées dans une Base de Données
désignée.
drm_admin
Gère les reproductions des Bases de Données de GLB : recopie, fusion,
interruption, suppression.
Les outils de


la couche iFOR/LS

ls_targetid
Donne le uname du système.
ls_stat
Affiche les informations sur l'état des licences sur le
réseau (disponibilité).
ls_admin
Outil graphique.

Edite la base de données des licences.

Permet d'ajouter et de supprimer des fournisseurs, des produits, des licences.
ls_rpt
Génère des rapports sur les évènements du serveur :
reporting, contrôle.
ls_tv
Vérifie que les serveurs de licences fonctionnent et indique
quels sont les serveurs actifs.
ls_dpass
Permet d'accéder à des licences complexes et de les gérer.
uuid_gen
Permet de générer un nouvel UUID.
srv_start
Démarre les daemons dans l'ordre.
srv_stop
Stoppe les daemons dans l'ordre.
Les fichiers de

base de données

dans


/usr/lib/netls/conf

lic_db
Informations fournisseur, produits, licences.
lic_db.bak
Sauvegarde de la Base de Données des licences.
cur_db
Informations sur l'état courant des licences (fichier binaire chiffré).
nodelock
Fichier plat contenant les licences nodelock.
Les fichiers de

base de données

dans


/etc/ncs

glb.e
Contient le fichier de la Base de Données du GLB.
glb.p
Contient la file d'attente de propagation du GLB.
glb_obj.txt
Contient l'UUID qui identifie de façon unique une cellule alternée.
glb_site.txt
Contient la liste du (des) serveur(s) de licences
de la cellule considérée : adresse IP ou hostname.



Utilisation de LUM en AIX V4.3, V4.2 ou V4.1


A partir de AIX V4.3, la gestion des licences est assurée par
LUM V4.0 (Licence Use Management System).

Il s'agit de la version améliorée du produit iFOR/LS (information For Operating
and Retrieval Licensing System).

LUM V4.0 fait partie du BOS (Base Operating System) de AIX V4.3.

Il est fourni sur le cdrom de la souche système d'AIX V4.3.


Cette version LUM V4.0 est également utilisable en AIX V4.1 et AIX V4.2.

Dans ce cas, il faut rajouter l'APAR IX64408 pour AIX V4.1, ou l'APAR
IX64105 pour AIX V4.2, afin qu'il fonctionne correctement.

Si vous êtes en AIX V4.1 ou en AIX V4.2, vous pouvez trouver le code de
LUM V4.0 sur certains CD-Rom de produits langages, comme, par exemple, IBM C for AIX
Version 4.3
- 5765-C64, ou aux URL citées ci-dessous.


Si vous rencontrez des problèmes d'installation, la dernière version
disponible de LUM V4.0 peut être obtenue aux URL suivantes :



Pour comprendre l'utilisation de LUM :




A suivre...

Cet article étant trop long pour un seul cahier d'AIX, le chapitre
sur LUM sera traité dans "Les Cahiers d'AIX" n° 24.


A bientôt,
    
    
    
:poinnoir.


[ Top of Page | Previous Page | Next Page | Table of Contents ]