<!doctype linuxdoc system>
<!-- Linux IPX-HOWTO sources sgml -->
<!-- Traduction Grégory LAJON (glajon@mail.dotcom.fr) -->
<article>
<!-- Title information -->
<title> Linux IPX-HOWTO
<author>Kevin Thorpe, <tt/kevin@pricetrak.com/
<newline>
Version Française par Grégory Lajon <tt>glajon@mail.dotcom.fr</tt>
<date>v2.3, 06 Mai 1998
<abstract>
Ce document tente de décrire comment obtenir, installer et
configurer différents outils existant pour le système d'exploitation
Linux utilisant le support du protocole IPX du noyau.
</abstract>
<toc>
<sect><heading>Introduction
<p>
Ceci est l'IPX-HOWTO. Il est conseillé de lire le NET-3-HOWTO de Linux
en parallèle avec ce document.
<sect1><heading>Changements par rapport à la version précédente
<p>
<tt>
Changement d'auteur: <newline>
Un grand merci à Terry Dawson pour avoir transmis ce document et
félicitations pour être devenu papa.
<newline>
Ajouts : <newline>
Ajout d'une brève explication sur IPX en réponse à
beaucoup de questions déroutantes sur la liste de diffusion.
<newline>
Corrections, mises à jour : <newline>
La nouvelle version de ncpfs supporte maintenant les logins NDS.
C'est en beta test et peut être interdit dans votre pays à
cause de l'utilisation de technologies brevetées.
Ajout du support des droits d'accès dans mars_nwe. Toujours
en beta test.
</tt>
<sect1><heading>Introduction
<p>
Comparé aux autres systèmes d'exploitation de la famille Un*x,
le noyau de Linux possède une toute nouvelle implémentation de la partie
réseau.
Cette nouvelle approche de développement des logiciels
réseau du noyau ont permis à Linux de pouvoir supporter des protocoles
autres que TCP/IP. Le protocole IPX fait partie de ceux-là.
Le noyau de Linux supporte le protocole IPX seulement. Il ne prend pas encore
en compte les protocoles tels que IPX/RIP, SAP ou NCP. Ces derniers sont
gérés par d'autres logiciels comme nous le verrons plus loin dans ce
document.
La gestion du protocole IPX a été initialement développée par Alan Cox
<tt><alan@lxorguk.ukuu.org.uk></tt>, puis a été amélioré par Greg Page
<tt><greg@caldera.com></tt>.
<sect><heading>Responsabilité vis à vis de ce document
<p>
Je ne sais et ne peux connaître tout ce qu'il y a à savoir sur la partie
logiciel réseau de Linux. Je vous prie donc d'accepter le fait qu'il puisse y
avoir des erreurs dans ce document et d'être vigilant. Je vous conseille de
lire tout fichier README inclus dans chacun des logiciels dont il sera
question dans ce document pour de plus amples informations. Je tenterai de
mon côté de conserver ce document à jour et sans erreurs autant que possible.
Les versions des logiciels sont les versions disponibles au moment où ce
document a été écrit.
En aucun cas les auteurs des logiciels cités dans ce document ou moi-même
n'offrons de protection contre ce que vous faites. Si vous utilisez ce
logiciel, même de la façon décrite dans ce document, et que cela cause
des problèmes sur votre réseau, alors vous seul en endosserez la responsabilité.
J'ai inclus cet avertissement parce que la mise en oeuvre et la configuration
d'un réseau IPX n'est pas toujours aisée et que cela peut engendrer
d'indésirables interactions avec les autres routeurs ou serveurs de fichiers
si vous ne faites pas attention. J'ai également inclus cet avertissement
parce qu'une personne suffisamment malchanceuse pour avoir appris cette leçon
de la manière douloureuse me l'a demandé.
<p>
NdT : Le traducteur, qui n'est pas un spécialiste des réseaux Netware(tm), émet
les mêmes réserves que l'auteur.
<sect><heading>Documentation sur le même sujet
<p>
Ce document présume que vous savez compiler un noyau Linux avec les options
réseau appropriées et que vous savez vous servir des outils de configuration
de base des réseaux comme <tt>ifconfig</tt> et <tt>route</tt>. Si ce n'est pas
le cas, je vous conseille de lire le
<url url="NET-3-HOWTO.html" name="NET-3-HOWTO">
lorsque le présent document y fait référence.
<p>
Les autres documents HOWTO de Linux qui pourraient vous être utiles sont :
<p>
L'<url url="Ethernet-HOWTO.html" name="Ethernet-HOWTO"> qui décrit
en détail la manière
de configurer un port Ethernet pour Linux.
Le <url url="PPP-HOWTO.html"
name="PPP-HOWTO"> puisque la gestion d'IPX est implémentée
à partir de la version 2.2.0d de PPP pour Linux.
<sect1><heading>Nouvelles versions de ce document
<p>
Si votre copie de ce document date de plus de deux mois, je vous
recommande fortement d'obtenir une version plus récente. Les supports
réseau pour Linux changent très rapidement avec de nouvelles
fonctions et améliorations, en conséquence de quoi ce document change lui aussi fréquemment. La
dernière version de ce document est disponible en version anglaise par le
biais d'un ftp anonyme sur :
<tt><ftp://metalab.unc.edu/pub/Linux/docs/HOWTO/IPX-HOWTO></tt>
ou :
<tt><ftp://metalab.unc.edu/pub/Linux/docs/HOWTO/other-formats/IPX-HOWTO{-html.tar,ps,dvi}.gz></tt>
ou
sur le serveur du <url url="http://metalab.unc.edu/LDP/linux.html"
name="Linux Documentation Project"> à la page :
<url url="http://metalab.unc.edu/LDP/HOWTO/IPX-HOWTO.html" name="IPX-HOWTO">
ou sinon auprès de l'auteur,
<tt><kevin@pricetrak.com></tt>.
Il peut aussi être posté dans les
forums de discussion <tt>comp.os.linux.networking</tt>,
<tt>comp.os.linux.answers</tt> et
<tt>news.answers</tt> de temps à autre.
<p>
NdT :
La version française initialement traduite par Jean-Christophe Arnu
est disponible de la même manière :
<url url="ftp://ftp.lip6.fr/pub/Linux/french/docs/HOWTO/IPX-HOWTO.gz"
name="lip6">
<sect1><heading>Votre avis
<p>
Envoyez-moi tout commentaire, améliorations ou suggestions :
<tt/<kevin@pricetrak.com>/. Si j'obtiens des retours
d'informations rapidement je pourrai améliorer ou corriger ce document
dans les plus brefs délais. Si
vous rencontrez un quelconque problème avec ce document, veuillez m'en faire
part directement par courrier électronique car je peux rater des informations postées dans les
forums de discussion.
<sect1><heading>Liste de diffusion
<p>
Il existe une liste dans laquelle on discute des différents logiciels IPX
pour Linux décrits dans ce document. Vous pouvez vous y abonner en
envoyant un courrier à <tt><listserv@sh.cvut.cz></tt> avec <tt>add
linware</tt> dans le corps du message. Vous envoyez vos contributions
par courrier à <tt><linware@sh.cvut.cz></tt>. Je consulte
régulièrement cette liste.
<p>
Cette liste est archivée
sur le site <url url="http://www.kin.vslib.cz/hypermail/linware/"
name="www.kin.vslib.cz">
<sect><heading>Quelques termes utilisés dans ce document
<p>
Vous rencontrerez souvent au cours de ce document les termes <tt>client</tt> et
<tt>serveur</tt>. Ce sont des termes spécifiques dont la définition est bien
connue mais j'ai un peu généralisé leur définition :
<descrip>
<tag>client</tag> C'est la machine ou le programme qui initie une
action ou une connexion dans le but de pouvoir utiliser des
services ou des données.
<tag>serveur</tag>C'est la machine ou le programme qui accepte des
connexions d'une ou plusieurs machines distantes et qui leur fournit
un service ou des données.
</descrip>
Ces définitions ne sont pas très complètes, mais elles
permettent de distinguer les participants des protocoles de
bout en bout tels que <EM>PPP</EM> et <EM>SLIP</EM> qui n'ont pas
réellement de client et de serveur.
Vous lirez aussi les termes suivants :
<descrip>
<tag>Bindery</tag>
La <EM>bindery</EM> est une base de données spécialisée qui
stocke sur un serveur de fichiers Novell des informations
concernant la configuration du réseau. Les clients Netware
peuvent interroger la <EM>bindery</EM> pour obtenir de
l'information sur les services disponibles, sur le routage
et sur les utilisateurs.
<tag>Type de Trame (Frame type)</tag>
décrit le protocole utilisé pour transporter
les paquets de données IPX (et IP) à travers vos segments Ethernet.
On en rencontre couramment quatre :
<descrip>
<tag>Ethernet_II</tag>
C'est une version raffinée du standard Ethernet original DIX.
Novell s'est vu attribuer un identifiant de protocole (protocol
id) formel. Cela signifie que IPX et IP peuvent coexister
joyeusement dans un environnement Ethernet_II.
Ce type de trame est généralement utilisé dans les environnements
Novell et c'est un bon choix.
<tag>802.3</tag>
C'est un protocole IEEE définissant un mécanisme à détection
de porteuse et accès multiple avec détection des collisions
(Carrier Sense Multiple Access with Collision Detection
(CSMA/CD)). Il est basé sur le standard Ethernet original DIX,
avec une importante modification. Le champ de type (protocol id)
a été transformé en champ de longueur à la place. C'est pour cette
raison que l'on ne devrait pas utiliser IPX avec ce type de trame.
IEEE 802.3 a été conçu pour transporter des trames IEEE 802.2
<bf>seulement</bf>, mais il existe des implémentations qui
l'utilisent pour transporter des trames IPX directement et
cela fonctionne quand même. Evitez-le à moins de vouloir vous
connecter à un réseau déjà configuré pour l'utiliser.
<tag>802.2</tag>
C'est un protocole IEEE qui définit un ensemble de procédures
de contrôle de la couche liaison logique. Il fournit une
façon simple de faire coexister plusieurs protocoles mais
reste limité dans ce sens. Novell utilise un SAP (Service
Address Point, équivalent d'un identifiant de protocole) non
officiel. Mais comme tout le monde fait pareil, cela n'a
encore jamais posé de problèmes.
<tag>SNAP</tag>
SNAP est le protocole d'accès au sous-réseau (Sub Network
Access Protocol). Ce protocole est implémenté au-dessus de
802.3 et 802.2. Il étend les capacités multiprotocole de
802.2 et présente une certaine compatibilité avec les trames
Ethernet et Ethernet_II existantes.
</descrip>
<tag>IPX</tag>
Internet Packet eXchange est un protocole utilisé par la société
Novell fournissant un support d'interconnexion pour leur produit
NetWare(tm). IPX a une fonction similaire au protocole IP
utilisé par la communauté TCP/IP.
<tag>Adresse IPX d'un réseau (IPX network address)</tag>
Il s'agit d'un nombre qui identifie de manière unique un réseau
IPX particulier. La notation courante de cette adresse est
exprimée en hexadécimal. On peut donner comme exemple : 0x23a91002
<tag>Réseau IPX interne (IPX Internal network)</tag>
C'est un réseau IPX virtuel. Il est virtuel car il ne correspond à
aucun réseau physique. Il est utilisé pour fournir un moyen unique
d'identifier et d'adresser une machine IPX.
Cette adresse est codée de la même manière qu'une adresse IPX
de réseau. En général, ce n'est utile que pour les machines IPX
qui sont physiquement connectées à plusieurs réseaux IPX comme
les serveurs de fichiers.
<tag>RIP</tag>
Routing Information Protocol est un protocole utilisé pour
informer automatiquement les différents ordinateurs
présents sur un réseau IPX des
différentes routes qui lui sont applicables. Il est
fonctionnellement identique au RIP utilisé au sein de la communauté
TCP/IP.
<tag>NCP</tag>
Netware Core Protocol est un protocole de système de fichiers
réseau créé par la société Novell pour leur produit NetWare(tm). On
peut comparer les fonctionnalités de NCP à NFS utilisé par la
communauté TCP/IP.
<tag>SAP</tag>
Service Advertisement Protocol est un protocole créé par la société
Novell. Il est utilisé pour avertir des services fournis sur le
réseau dans un environnement NetWare(tm).
<tag>Adresse Physique (hardware address)</tag>
C'est un nombre qui identifie de manière unique une machine sur un
réseau physique au niveau de la couche media (couche MAC).
L'adresse Ethernet en est un exemple.
Une adresse Ethernet est généralement codée par six valeurs
hexadécimales séparées par deux points : ex. 00:60:8C:C3:3C:0F.
<tag>route</tag>
La <em>route</em> est le chemin emprunté par les paquets
de données au travers d'un réseau pour atteindre leur destination.
</descrip>
<sect><heading>Une brève discussion sur la topologie des réseaux IPX
<p>
C'est une explication très simplifiée pour les personnes qui découvrent IPX.
Les grands réseaux mettront probablement à mal beaucoup des règles
expliquées ici. Dans les réseaux IPX complexes, l'administrateur devrait toujours
être consulté.
<p>
Les réseaux IPX s'appuient sur un procédé de <em/réseaux/
numérotés, à la différence de IP qui insiste plus sur les adresses
d'<em/interface/. Un réseau est un ensemble d'équipements connectés à un
même segment de réseau local (LAN) et <em/utilisant le même type de trame/.
Des types de trame différents sur le même segment de réseau local sont
traités comme des réseaux séparés.
<p>
Chaque réseau doit recevoir un numéro qui soit unique au travers de toute l'interconnexion
de réseaux (internetwork). Ceci est habituellement réalisé par un serveur
Netware(tm), mais peut facilement être réalisé par Linux. Les clients IPX
recoivent ce numéro du serveur lors de leur démarrage, ils ont juste besoin de
connaître le type de trame correct.
<p>
Le routage entre les réseaux est habituellement réalisé en mettant deux
cartes réseaux dans un serveur. Ce serveur fait tourner le protocole RIP qui maintient
une table de routage pour l'interconnexion de réseaux. Périodiquement, cette table
de routage est échangée entre les serveurs. En peu de temps, chaque serveur
'découvre' la topologie de l'interconnexion de réseaux.
<p>
Si vous souhaitez uniquement utiliser les services d'un serveur NetWare existant, vous pouvez
utiliser <tt/ipx_configure/ (section 7.1) pour définir automatiquement les interfaces
en utilisant des requêtes de "broadcast" pour rechercher un serveur. Si cela échoue
ou que vous voulez fournir des services IPX, vous devrez définir les interfaces
manuellement en utilisant <tt/ipx_interface/ ou <tt/mars_nwe/.
<sect><heading>Les fichiers relatifs à IPX dans le répertoire <tt>/proc</tt>
<p>
Il existe un certain nombre de fichiers relatifs au support d'IPX par
Linux dans le répertoire <tt>/proc</tt> :
<descrip>
<tag>/proc/net/ipx_interface</tag>
Ce fichier contient des informations au sujet des interfaces IPX
configurées sur votre machine. Elles peuvent avoir été configurées
manuellement par commande ou automatiquement détectées et
configurées.
<tag>/proc/net/ipx_route</tag>
Ce fichier contient une liste de routes existantes dans la table de
routage IPX. Ces routes peuvent avoir été ajoutées à la main par
l'intermédiaire de commandes ou automatiquement par le démon de
routage IPX.
<tag>/proc/net/ipx</tag>
Ce fichier contient la liste des sockets IPX qui sont ouverts sur la
machine au moment de l'édition du fichier.
</descrip>
<sect><heading>Les outils IPX de Greg Page
<p>
Greg Page <tt><greg@caldera.com></tt> de la société Caldera
Incorporated a écrit un ensemble d'outils de configuration pour IPX et a
amélioré le support IPX du noyau Linux.
<p>
Les améliorations du noyau permettent de configurer un système Linux comme
pont ou routeur IPX parfaitement fonctionnel. Le support
d'IPX amélioré a déjà été incorporé dans le corps du noyau de distribution.
Vous en êtes donc certainement équipé.
<p>
Ces outils de configuration vous permettent de
paramétrer vos périphériques réseau pour le
support d'IPX et de mettre en place le routage pour ce protocole. D'autres
fonctionnalités sont aussi incluses dans ce paquetage.
Ces outils sont disponibles sur
<url url="ftp://metalab.unc.edu/pub/Linux/system/filesystems/ncpfs/ipx.tgz"
name="metalab.unc.edu">.
<p>
NdT : les lecteurs connectés en France pourront utiliser un site miroir
comme <url url="ftp://ftp.lip6.fr/" name="ftp.lip6.fr">
<sect1><heading>Les outils IPX en détails
<p>
<descrip>
<tag>ipx_interface</tag>
Cette commande est utilisée pour ajouter, enlever ou contrôler
manuellement des propriétés d'IPX sur un périphérique réseau donné. Ce dernier
est souvent un périphérique Ethernet comme <tt>eth0</tt>.
Au moins une interface IPX doit être déclarée comme
interface <em>primaire</em> par le paramètre <tt>-p</tt> suivi du nom
de l'interface. Par exemple, l'attribution des
capacités IPX au périphérique eth0, en tant que première interface
utilisant le type de trame IEEE 802.2 et l'adresse réseau
<tt>39ab0222</tt> se fera ainsi :
<tscreen><verb>
# ipx_interface add -p eth0 802.2 0x39ab0222
</verb></tscreen>
<p>
Si le type de trame diffère des serveurs NetWare(tm) sur ce réseau, ils
vous ignoreront délibérement. Si le type de trame est correct, mais que
le numéro de réseau diffère, ils vous ignoreront encore, mais
afficheront des messages sur la console du serveur Netware(tm). Ce dernier cas vous
promet d'avoir des problèmes avec votre administrateur NetWare et peut perturber
les clients NetWare en cours d'utilisation.
<p>
Si vous obtenez une erreur en faisant tourner ce programme et que vous
n'avez pas encore configuré TCP/IP, alors vous allez devoir démarrer
manuellement l'interface <tt>eth0</tt> en utilisant la commande :
<tscreen><verb>
# ifconfig eth0 up
</verb></tscreen>
<tag>ipx_configure</tag>
Cette commande permet ou interdit la configuration automatique de
l'interface et la mise en oeuvre de l'interface primaire.
<descrip>
<tag><tt>--auto_interface</tt></tag>
vous permet de décider si de nouveaux périphériques réseau doivent
être automatiquement configurés comme des périphériques IPX ou pas.
<tag><tt>--auto_primary</tt></tag>
vous accorde le droit de décider si les logiciels IPX doivent
sélectionner une interface primaire ou non. Des problèmes ont été
reportés sur l'utilisation de ceci avec des clients Windows 95 sur le réseau.
</descrip>
Par exemple si l'on désire une configuration automatique des
interfaces et une mise en oeuvre automatique de l'interface primaire on
utilisera la ligne suivante
<tscreen><verb>
# ipx_configure --auto_interface=on --auto_primary=on
</verb></tscreen>
<tag>ipx_internal_net</tag>
Cette commande permet de mettre en place, de configurer
ou retirer une
adresse de réseau interne. Cette adresse de réseau interne est
optionnelle, mais lorsqu'elle est configurée elle est toujours
considérée comme interface primaire. Pour configurer une adresse
réseau IPX ayant le numéro <tt>ab000000</tt> sur le noeud IPX
<tt>1</tt> vous devez utiliser:
<tscreen><verb>
# ipx_internal_net add 0xab000000 1
</verb></tscreen>
<tag>ipx_route</tag>
Cette commande permet de modifier manuellement la table de routage
IPX. On peut prendre comme exemple l'ajout d'une route vers le réseau IPX
<tt>39ab0222</tt> via un routeur ayant le numéro de noeud
<tt>00608CC33C0F</tt> sur le réseau
IPX 39ab0108 :
<tscreen><verb>
# ipx_route add 0x39ab0222 0x39ab0108 0x00608CC33C0F
</verb></tscreen>
</descrip>
<sect><heading>Configurer votre machine Linux comme routeur IPX
<p>
Si vous avez un certain nombre de segments IPX que vous souhaitez
interconnecter, vous aurez besoin d'un routeur. Dans l'environnement Novell,
la propagation d'au moins deux types d'informations est absolument
primordiale sur le réseau : d'un côté, les informations de routage sur le réseau
qui sont propagées en utilisant le RIP Novell, de l'autre côté, les informations
d'avertissement du système qui sont véhiculées par le SAP Novell. Tout routeur
doit pouvoir traiter et comprendre ces deux types de protocoles pour être
utilisé dans toutes les situations.
<p>
Linux possède un support pour ces deux protocoles et peut donc être
aisément configuré pour réaliser un routeur IPX complètement compatible
Novell.
<p>
Le support IPX du noyau de Linux gère réellement le routage des paquets
entre les interfaces, mais il le fait selon les règles données dans une table
de routage. Linux nécessite un programme implémentant les protocoles RIP et SAP de
Novell afin que la table de routage soit correctement construite et maintenue
périodiquement, pour qu'elle reflète bien les changements d'état du
réseau.
<p>
Volker Lendecke <tt><lendecke@namu01.gwdg.de></tt> a développé
un démon de routage <em/ipxrid/ qui fera tout ça pour vous.
Le paquetage <em/mars_nwe/ mentionné plus loin inclut un autre démon de routage.
<p>
Vous pouvez trouver <em>ipxrid</em> sur :
<url url="ftp://metalab.unc.edu/pub/Linux/system/filesystems/ncpfs/ipxripd-0.7.tgz"
name="metalab.unc.edu">
ou directement chez Volker :
<url url="ftp://ftp.gwdg.de/pub/linux/misc/ncpfs/ipxripd-0.7.tgz"
name="ftp.gwdg.de">
<p>
Configurer une machine Linux en routeur IPX est une opération très
linéaire. Procédez comme suit :
<enum>
<item>Construisez le noyau avec les supports d'IPX, d'Ethernet et le système
de fichiers <tt>/proc</tt>
<item>Procurez-vous, compilez et installez le démon <em>ipxd</em>.
<item>Redémarrez la machine avec son nouveau noyau et assurez-vous que chacune
des cartes Ethernet ont été correctement détectées et qu'il n'y a pas de
conflits matériels.
<item>Mettez en place le protocole IPX sur chacune des interfaces en utilisant la
commande <tt>ipx_interface</tt> décrite ci-dessus.
<item>Lancez le démon <em>ipxd</em>.
</enum>
En considérant le simple réseau suivant :
<verb>
IPX Addr: 0x01000000 802.2
|--------------------------|
|
\_________________________
\ Routeur Linux
IPX Addr: 0x02000000 802.2 \
|--------------------------| \ eth0/-----------\
| \--====| |
\_________________________ | IPX route |
\ eth1| Table |
IPX Addr: 0x03000000 etherII \----====| ^ |
|--------------------------| | | |
| eth2| IPXd |
\______________________________/====| |
| SAPd |
IPX Addr: 0x04000000 etherII eth3| |
|--------------------------| /====| |
| | \___________/
\______________________________/
</verb>
<p>
La configuration pour le réseau ci-dessus ressemblera à :
<tscreen><verb>
# ipx_interface add eth0 802.2 0x0100000000
# ipx_interface add eth1 802.2 0x0200000000
# ipx_interface add eth2 etherii 0x0300000000
# ipx_interface add eth3 etherii 0x0400000000
# ipxd
</verb></tscreen>
<p>
Vous devrez attendre un petit moment pour vérifier le fichier
<tt>/proc/net/ipx_route</tt> (<tt>cat /proc/net/ipx_route</tt>). Vous devriez retrouver
les routes IPX inhérentes à votre configuration du système et toutes les
configurations apprises par le contact avec les autres routeurs sur le réseau
le cas échéant.
<sect1><heading>Dois-je utiliser un réseau interne ?
<p>
Novell a une fonctionnalité appelée réseau interne, qui est utilisée pour
simplifier le routage lorsqu'une machine est connectée à plus d'un périphérique
réseau. C'est utile dans le cas d'un serveur de fichiers connecté à plusieurs
réseaux, en ce sens qu'une seule route doit être utilisée pour atteindre le
serveur, quel que soit le réseau à partir duquel on opère.
<p>
Dans le cas d'une configuration où vous ne faîtes pas tourner un serveur
de fichiers mais seulement un routeur IPX, il n'est pas simple de répondre.
Des témoignages rapportent que l'utilisation de IPX/PPP marche "mieux"
si vous utilisez également un réseau interne.
<p>
Dans tous les cas, c'est facile à faire, mais cela peut nécessiter de
recompiler le noyau. Lorsque vous en êtes au <tt>make config</tt>
du noyau, vous devez répondre Oui (<tt>y</tt>) à la question
<tt>Full internal IPX network</tt> comme suit :
<tscreen><verb>
...
...
Full internal IPX network (CONFIG_IPX_INTERN) [N/y/?] y
...
...
</verb></tscreen>
Pour configurer le réseau interne, utilisez la commande
<em>ipx_internal_net</em> déjà décrite dans la section outils IPX.
La principale précaution à prendre est de s'assurer que l'adresse IPX
réseau que vous choisissez est unique sur votre réseau et qu'aucune
autre machine ou réseau ne l'utilise.
<sect><heading>Configurer votre machine Linux en client NCP
<p>
Si vous êtes un utilisateur d'un réseau
hétérogène où les protocoles IP et
IPX sont utilisés, il est probable que vous ayez à un moment ou à un autre,
besoin d'accéder à partir de votre machine Linux, à des données stockées sur
un serveur de fichier Novell de ce réseau. Novell a longtemps proposé un
ensemble logiciel NFS pour leurs serveurs de fichiers qui permettaient cet
accès. Cependant si le site auquel vous êtes connecté est petit, le nombre de
personnes nécessitant cet type d'accès ne justifie peut-être pas l'achat de ces
outils logiciels commerciaux.
<p>
Volker Lendecke <tt><lendecke@namu01.gwdg.de></tt> a écrit un module
du système de
fichiers du noyau Linux supportant un sous-ensemble limité du protocole Novell
NCP qui permet de monter une partition Novell dans votre système de
fichiers
Linux sans avoir recours à quelque produit additionnel sur votre
serveur de fichiers.
<p>
Volker a appelé cet ensemble <em>ncpfs</em>. Ce dernier a été
réalisé à partir des
informations tirées principalement du livre "Netzwerkprogrammierung in C" de
Manfred Hill et Ralf Zessin (de plus amples informations sont données dans le
fichier README contenu dans l'ensemble <em>ncpfs</em>).
<p>
Ce logiciel permet à Linux d'émuler une station de travail Novell normale
pour ce qui concerne la partie fichiers. Un petit utilitaire d'impression
est également inclus pour vous permettre d'imprimer dans les queues
d'impression Novell (ceci est documenté plus loin dans la section client
d'impression). Le paquetage <em>ncpfs</em> fonctionne avec les serveurs
de fichier Novell version 3.x et supérieurs, il ne fonctionne pas avec les
serveurs de fichier Novell version 2.x . Le client <em>ncpfs</em> ne
fonctionne qu'avec les produits réellement compatibles Novell, mais
malheureusement, certains produits qui se disent compatibles ne le sont
pas suffisamment. Pour utiliser <em>ncpfs</em> avec Novell 4.x,
il est préférable d'utiliser le serveur Novell en mode d'emulation
de <em/bindery/. Le support de la NDS est un ajout très récent
de <em/ncpfs/ et est toujours en version bêta. De plus son utilisation
peut être interdite dans votre pays en raison de l'inclusion
de technologie soumise à brevet.
<p>
<sect1><heading> Comment récupérer <bf><em>ncpfs</em></bf>
<p>
L'ensemble <em>ncpfs</em> a été développé afin d'être compilé avec les noyaux de
Linux version <tt>1.2.13</tt> ou plus récents que <tt>1.3.71</tt> (ce qui
inclut <tt>2.x.x</tt>). Si vous n'utilisez pas
un de ces noyaux vous devrez vous en procurer et l'utiliser.
Le <url url="kernel-HOWTO.html"
name="Kernel-HOWTO"> décrit comment faire cela en détail.
<p>
Vous pouvez vous procurer l'ensemble <em>ncpfs</em> par ftp anonyme sur le site
de Volker, <url url="ftp://ftp.gwdg.de/pub/ncpfs/" name="ftp.gwdg.de">,
sur <url url="ftp://metalab.unc.edu/pub/Linux/system/Filesystems/ncpfs"
name="metalab.unc.edu">
ou sur un site miroir. La version à jour au moment où j'écris ces lignes est
<tt>ncpfs-2.0.11.tgz</tt> ou <tt/ncpfs-2.2.0.tgz/ pour le support de la NDS.
<sect1><heading> Compiler <bf><em>ncpfs</em></bf> pour les noyaux 1.2.13
<p>
<descrip>
<tag>
Compiler un noyau Linux avec les supports d'Ethernet et IPX</tag>
La première chose que vous ayez à faire est de vérifier que votre
noyau a été compilé avec l'option IPX. Dans la version <tt>1.2.13</tt> du
noyau, vous vous assurerez que la réponse à la question '<tt>The IPX
Protocol</tt>' est <tt>Y</tt> (yes) comme illustré :
<verb>
...
...
Assume subnets are local (CONFIG_INET_SNARL) [y]
Disable NAGLE algorithm (normally enabled) (CONFIG_TCP_NAGLE_OFF) [n]
The IPX protocol (CONFIG_IPX) [n] y
*
* SCSI support
...
...
</verb>
Vous devez aussi vérifier que vous avez inclus le gestionnaire approprié
pour votre carte Ethernet. Si vous ne savez pas comment procéder, je vous
conseille de lire l'Ethernet-HOWTO
<url url="Ethernet-HOWTO.html" name="Ethernet-HOWTO">.
<p>
Vous pourrez alors procéder à la compilation. Je vous rappelle que le
lancement de <em>lilo</em> pour installer le nouveau noyau est obligatoire une fois
la compilation terminée.
<tag>Décompresser les programmes <em>ncpfs</em></tag>
<verb>
# cd /usr/src
# tar xvfz ncpfs-2.0.11.tgz
# cd ncpfs
</verb>
<tag>Vérifier le Makefile</tag>
Si vous avez l'intention d'utiliser <em>kerneld</em> pour charger automatiquement
le module noyau <em>ncpfs</em>, alors vous devez décommenter la ligne du
<tt>Makefile</tt> qui fait référence à <tt>KERNELD</tt>. Si vous n'êtes pas
certain de comprendre tout ce que cela signifie, vous devriez lire le
<url url="Kernel-HOWTO.html"
name="Kernel-HOWTO"> pour vous familiariser avec la configuration des
modules noyau.
<tag>Compiler les outils <em>ncpfs</em></tag>
Le logiciel doit se compiler proprement sans qu'une configuration ne
soit nécessaire :
<verb>
# make
</verb>
<tag>Copier les outils IPX à un endroit utile de votre arborescence</tag>
Après cette compilation, vous trouverez tous les outils dont vous
aurez besoin dans le répertoire <tt>ncpfs/bin</tt>.
Vous pouvez utiliser
<tscreen><verb>
# make install
</verb></tscreen>
pour installer les outils dans le choix de répertoires de Volker.
Si votre système est basé sur ELF, alors vous devrez taper <tt>ldconfig -v</tt>
pour vous assurer que la bibliothèque partagée est accessible.
<tag>Copier le module <em>npfs.o</em> à un endroit approprié si nécessaire.</tag>
Après la compilation d'un noyau <tt>1.2.x</tt>, vous trouverez aussi dans le
répertoire <tt>ncpfs/bin</tt> le fichier <tt>ncpfs.o</tt>
Il s'agit du module <em>ncpfs</em> du
noyau. Je vous conseille de copier ce fichier à un endroit utile. Par
exemple sur ma distribution <em>Debian</em> de Linux, je l'ai copié
dans le répertoire <tt>/lib/modules/1.2.13/fs</tt> et j'ai ajouté ncpfs dans
le fichier <tt>/etc/modules</tt> de manière à ce qu'il soit automatiquement
chargé lors du démarrage de Linux. Si vous utilisez d'autres distributions,
vous devrez trouver où les modules sont généralement placés et copier
le fichier <tt>ncpfs.o</tt> à cet endroit, ou sinon, copiez-le dans le
répertoire <tt>/etc</tt>. Utilisez la commande suivante afin de charger le
module en mémoire manuellement :
<verb>
# insmod ncpfs.o
</verb>
</descrip>
<sect1><heading>Compiler <bf><em>ncpfs</em></bf> pour des noyaux 1.3.71++/2.0.*
<p>
Pour la dernière version de <em>ncpfs</em>, vous devez utiliser un noyau 1.3.71
ou supérieur, ce qui inclut les noyaux 2.0.* .
<p>
Le code noyau de <em>ncpfs</em> a été inclus dans la distribution noyau standard,
ainsi vous n'aurez qu'à répondre oui (<tt>Y</tt>)
à la question suivante
lors de la configuration de la compilation :
<tscreen><verb>
Networking options --->
...
...
<*> The IPX protocol
...
Filesystems --->
...
...
<*> NCP filesystem support (to mount NetWare volumes)
...
</verb></tscreen>
<p>
Vous devez suivre les instructions pour la compilation des noyaux <tt>1.2.*</tt>
afin de créer les outils IPX, mais il n'y aura pas de module à installer.
<sect1><heading>Configurer et utiliser <bf><em>ncpfs</em></bf>
<p>
<descrip>
<tag>Configurer les logiciels de réseau IPX</tag>
Deux moyens sont possibles pour configurer ceux-ci. Vous pouvez tout
faire manuellement ou vous pouvez laisser le logiciel déterminer lui-même
ses paramètres en utilisant
<verb>
# ipx_configure --auto_interface=on --auto_primary=on
</verb>
Cela devrait fonctionner dans la plupart des situations, mais si ce n'est
pas votre cas, lisez la section "les outils IPX" située plus loin dans
ce document pour configurer manuellement les logiciels. Des problèmes ont
été rapportés concernant cette utilisation au sein de réseaux
contenant des clients Windows95.
<tag>Tester la configuration</tag>
<p>
Maintenant que votre réseau IPX est configuré, vous devriez être
capable d'exécuter la commande <em>slist</em> qui vous renverra la liste
de tous les serveurs de fichiers Novell de votre réseau :
<verb>
# slist
</verb>
Si la commande slist affiche un message du type :
<tt>ncp_connect: Invalid argument</tt>, cela signifie que votre noyau ne
supporte pas IPX. Vérifiez que vous
avez démarré votre ordinateur avec le noyau approprié.
Au démarrage du système, vous devriez voir des messages concernant
"IPX" et "ncpfs".
Si la commande <em>slist</em> ne
renvoie pas la liste de tous les serveurs de fichiers, vous devrez utiliser la
méthode de configuration manuelle.
<tag>Monter un volume ou un serveur Novell(tm)</tag>
Si votre logiciel réseau IPX fonctionne correctement, vous devriez
pouvoir monter un volume du serveur de fichiers dans votre système
de fichiers Linux.
La commande <em>ncpmount</em> est utilisée à ces fins et nécessite que vous
spécifiez au moins les informations suivantes :
<enum>
<item>le nom du serveur de fichiers ;
<item>(éventuellement) le répertoire du serveur de fichier à monter ;
<item>l'identifiant de login du serveur de fichiers. Dans le cas où il
a un mot de passe, vous devrez aussi le donner à cette commande ;
<item> le point de montage, c'est-à-dire l'endroit où vous voulez que le
système de fichiers du serveur Novell soit monté dans votre système de fichiers.
Ce doit être un répertoire déjà existant.
</enum>
De la même manière, il existe une commande <em>ncpumount</em> pour démonter
un système de fichiers NCP monté. Le système de fichiers NCP sera démonté
proprement si vous éteignez votre machine normalement. Vous n'avez donc pas
à vous tracasser pour <em>ncpumount</em>er manuellement vos systèmes de
fichiers avant un halt ou un shutdown.
Par exemple si l'on veut monter le serveur de fichiers <tt>ACCT_FS01</tt> sous
l'identifiant <tt>guest</tt> qui ne possède pas de mot de passe, dans le
répertoire <tt>/mnt/Accounts</tt>, la commande devrait ressembler à :
<verb>
# ncpmount -S ACCT_FS01 /mnt/Accounts -U guest -n
</verb>
Notez que l'utilisation de l'option <tt>-n</tt> indique qu'aucun mot de passe
n'est nécessaire pour se loguer. Le même login avec le mot de
passe <tt>secret</tt> ressemblera à :
<verb>
# ncpmount -S ACCT_FS01 /mnt/Accounts -U guest -P secret
</verb>
Si vous ne spécifiez ni l'option <tt>-n</tt> ni l'option <tt>-P</tt>,
le système vous demandera un mot de passe.
<tag>Vérifier le montage</tag>
Si le montage est réussi, vous pourrez accéder à tous les
volumes auxquels l'utilisateur que vous avez spécifié a accès.
Cet accès se fait de manière
transparente comme si le volume se trouvait directement dans le répertoire
spécifié lors du montage. Vous devez être capable de naviguer
au travers des répertoires de ce volume et d'y trouver des fichiers.
Vous pouvez également utiliser l'option <tt/-V/ pour monter un seul volume.
NCP ne fournit pas d'identificateur d'utilisateur (uid) ni d'identificateur de
groupe (gid) pour les fichiers. Tous les fichiers auront les permissions
données au répertoire de montage, restreints par les droits de permissions
sur le serveur Novell. Gardez ce point à l'esprit
lorsque vous partagerez des montages avec des utilisateurs Linux.
<tag>Configurer le montage automatique des volumes ncp</tag>
Si vous avez besoin de monter de manière permanente vos partitions
ncp, vous aurez à mettre les commandes de configuration ci-dessus dans vos
fichiers <em>rc</em> de manière à ce que le montage soit opéré à chaque
démarrage de Linux.
Si votre distribution ne fournit pas déjà un moyen de configurer IPX comme
le propose Debian, alors je vous recommande de les placer dans le fichier
<tt>/etc/rc.local</tt> si vous en avez un.
Vous devrez utiliser un script du type suivant :
<tscreen><verb>
#
# Démarrer le systéme de fichiers NCP
/sbin/insmod /lib/modules/1.2.13/fs/ncpfs.o
# Configurer le reseau IPX
ipx_configure --auto_interface=on --auto_primary=on
# Accéder au volume réservé à l'utilisateur guest sur le serveur de fichiers
ncpmount -S ACCT_FS01 /mnt/Accounts -U guest -n
</verb></tscreen>
Il existe un autre moyen de configurer les montages NCP. Cela se
fait au moyen du fichier <tt>$HOME/.nwclient</tt>. Ce fichier
contient les informations spécifiques à l'utilisateur qui seront
appliquées sur des montages NCP réguliers. Vous pourrez
ainsi les monter sans avoir à spécifier tous les paramètres à chaque fois.
<p>
Le format de ce fichier est assez simple :
<tscreen><verb>
# Le premier paramètre est le 'serveur préféré'
# utilisé même si vous ne spécifiez pas de serveur lors du
# lancement du script.
#
# L'utilisateur TERRY se loguant sur le serveur de fichiers DOCS_FS01
# avec le mot de passe 'password'
DOCS_FS01/TERRY password
#
# Login Guest sur le serveur de fichiers ACCT_FS01 sans mot de passe.
ACCT_FS01/GUEST -
</verb></tscreen>
Vous pourrez, par la suite, utiliser :
<tscreen><verb>
$ ncpmount /home/terry/docs
</verb></tscreen>
afin de monter la partition <tt>DOCS_FS1</tt> avec le login
<tt>TERRY</tt> sous le répertoire <tt>/home/terry/docs</tt>.
Vous remarquerez que cette commande a été
choisie car aucun serveur de fichiers n'a été spécifié dans la commande de
montage. Si la commande suivante avait été utilisée :
<tscreen><verb>
$ ncpmount -S ACCT_FS01 /home/terry/docs
</verb></tscreen>
vous seriez entré sur le serveur de fichiers <tt>ACCT_FS01</tt> avec le compte
<tt>GUEST</tt>.
<p>
<bf>Note :</bf> Pour que ce mécanisme fonctionne, il faut que la permission de
<tt>$HOME/.nwclient</tt> soit de <tt>0600</tt>, vous devrez utiliser la commande suivante :
<tscreen><verb>
$ chmod 0600 $HOME/.nwclient
</verb></tscreen>
Si des utilisateurs non-root ont la permission
d'utiliser ce mécanisme, la commande <em>ncpmount</em> doit utiliser
un Set Userid Root, vous aurez donc à donner ces permissions :
<tscreen><verb>
# chmod 4755 ncpmount
</verb></tscreen>
<tag>Tester l'utilitaire nsend</tag>
<em>nsend</em> est un utilitaire pour envoyer des messages à des utilisateurs
Novell qui est également inclus dans le paquetage. Il s'utilise de la
manière suivante :
<tscreen><verb>
# nsend pierre coucou ici
</verb></tscreen>
qui va envoyer le message "coucou ici" à un utilisateur "pierre" déjà logué
sur votre serveur de fichiers "primaire" (le premier qui apparaît dans votre
fichier <tt>.nwclient</tt>). Vous pouvez spécifier un autre serveur de
fichiers avec la même syntaxe que la commande <em>ncpumount</em>.
</descrip>
<sect><heading>Configurer votre machine Linux en serveur NCP
<p>
Il existe deux paquetages permettant à Linux de fournir les
fonctions d'un serveur de fichiers Novell. Tous deux permettent de partager
des fichiers de la machine Linux entre les utilisateurs utilisant un client
Novell Netware. Les utilisateurs peuvent attacher et utiliser des systèmes de
fichiers Novell comme des volumes locaux à leurs machines juste comme s'ils
provenaient d'un serveur de fichiers Novell. Je vous propose d'essayer les deux
paquetages afin de voir celui qui correspond le mieux à vos besoins.
<sect1><heading>L'ensemble <bf><em>mars_nwe</em></bf>
<p>
Martin Stover <tt><mstover@freeway.de></tt> a développé
<em>mars_nwe</em> pour permettre à
Linux de fournir des services fichiers et impression pour des clients NetWare.
<p>
<em>mars_nwe</em> signifie "Martin Stover's Netware Emulator".
<sect2><heading>Possibilités offertes par <bf><em>mars_nwe</em></bf>
<p>
<em>mars_nwe</em> fournit un sous-ensemble de la spécification Novell NCP pour les
services fichiers, pour les connexions aux disques et aussi pour les services
d'impressions. Il est probable qu'il contient des bogues mais beaucoup de
personnes l'utilisent et le nombre de bogues diminue avec les nouvelles
versions.
<sect2><heading>Obtenir <bf><em>mars_nwe</em></bf>
<p>
Vous pouvez récupérer <em>mars_nwe</em> sur le serveur
<url url="ftp://ftp.gwdg.de/pub/linux/misc/ncpfs/" name="ftp.gwdg.de">.
ou sur
<url url="ftp://metalab.unc.edu/pub/linux/filesystems/ncpfs/" name="metalab.unc.edu">.
&nl
La version à jour lors de l'écriture de
ce document est : <tt>mars_nwe-0.99.pl10.tgz</tt>.
<sect2><heading>Compiler l'ensemble <em>mars_nwe</em>
<p>
<descrip>
<tag>Compiler un noyau Linux supportant Ethernet et IPX.</tag>
Dans la version <tt>1.2.13</tt> du noyau, vous devrez juste vérifier que vous
avez répondu oui (<tt>Y</tt>) à '<tt>The
IPX Protocol</tt>' et non (<tt>N</tt>) à '<tt>Full internal IPX network</tt>'
comme illustré :
<verb>
...
...
The IPX protocol (CONFIG_IPX) [n] y
...
...
Full internal IPX network (CONFIG_IPX_INTERN) [N/y/?] n
...
...
</verb>
Pour les noyaux plus récents, un procédé similaire est utilisé lors de
la construction du noyau. La question posée peut légèrement changer.
<p>
Assurez-vous aussi d'un choix approprié pour votre carte Ethernet. Si
vous ne savez pas comment procéder, vous devriez lire
l'Ethernet-HOWTO,
<url url="Ethernet-HOWTO.html"
name="Ethernet-HOWTO">.
<p>
Vous pouvez maintenant procéder à la compilation de votre
noyau. Une fois cette étape finie, n'oubliez pas de lancer
<em>lilo</em> afin d'installer le nouveau noyau.
<tag>Décompresser le paquetage <em>mars_nwe</em>.</tag>
<tscreen><verb>
# cd /usr/src
# tar xvfz mars_nwe-0.99.pl10.tgz
</verb></tscreen>
<tag>Compiler <em>mars_nwe</em>.</tag>
Cette opération est très simple.
La première étape consiste simplement à lancer <tt>make</tt>, cela va vous
créer un fichier <tt>config.h</tt>. Ensuite, vous devez regarder et modifier
le fichier <tt>config.h</tt> si nécessaire. Cela vous permet de configurer
des choses comme le répertoire d'installation ou le nombre maximum de
sessions et de volumes que le serveur pourra supporter. Les lignes importantes
à regarder sont :
<verb>
FILENAME_NW_INI l'emplacement des fichiers d'initialisation
PATHNAME_PROGS l'emplacement du programme exécutable
PATHNAME_BINDERY l'endroit où iront les fichiers de la 'bindery'
PATHNAME_PIDFILES le répertoire où les fichiers PID seront écrits
MAX_CONNECTIONS le nombre maxi de connexions simultanées autorisées
MAX_NW_VOLS le nombre maxi de volumes supportés par mars_nwe
MAX_FILE_HANDLES_CONN le nombre maxi de fichiers ouverts par connexion
WITH_NAME_SPACE_CALLS si vous voulez supporter les clients ncpfs
INTERNAL_RIP_SAP si vous voulez que mars_nwe fasse le routage rip/sap
SHADOW_PWD selon que vous utilisez les 'shadow passwords' ou non
</verb>
Les options par défaut devraient vous convenir mais vérifiez quand même.
Une fois ceci terminé tapez :
<tscreen><verb>
# make
# make install
</verb></tscreen>
Ces commandes compileront les différents serveurs et les
installeront dans un répertoire approprié. Le script
d'installation installe aussi le fichier de configuration
<tt>/etc/nwserv.conf</tt>.
<tag>Configuration du serveur.</tag>
Celle-ci est simple. Il faut éditer le fichier<tt>/etc/nwserv.conf</tt>.
Le format de ce fichier peut vous sembler assez énigmatique au
premier abord,
mais il est en fait bel et bien ordonné. Chaque ligne de ce fichier
correspond à un point de configuration. Chacune de ces lignes est
délimitée par le caractère espace et débute par un nombre qui indique
le contenu de la ligne. Tous les
caractères précédés du caractère '<tt>#</tt>' sont considérés comme étant un
commentaire et de ce fait sont ignorés. Martin fournit un fichier
d'exemple de configuration dans son paquetage, cependant, je vous
donne ce que je considère comme étant une version simplifiée de ce
fichier, et ce, afin que vous puissiez mieux le comprendre.
<tscreen><verb>
# VOLUMES (max. 5)
# Seul le volume SYS est obligatoire. Le répertoire contenant le volume
# SYS doit contenir les répertoires : LOGIN, PUBLIC, SYSTEM, MAIL.
# l'option 'i' ignore la casse (majuscules/minuscules)
# l'option 'k' convertit toutes les requêtes de nom de fichier en
# minuscules
# l'option 'm' indique que le volume est amovible (cdrom par ex.)
# l'option 'r' positionne le volume en lecture seule
# l'option 'o' indique le volume est un système de fichiers monté unique
# l'option 'P' permet aux commandes d'être utilisées comme des fichiers
# l'option 'O' permet l'utilisation de l'espace de noms (namespace) OS/2
# l'option 'N' permet l'utilisation de l'espace de noms (namespace) NFS
#
# Par défaut les noms de fichiers sont en majuscules.
# Syntaxe :
# 1 <Nom du volume> <Chemin du volume> <Options>
1 SYS /home/netware/SYS/ # SYS
1 DATA /home/netware/DATA/ k # DATA
1 CDROM /cdrom kmr # CDROM
# NOM DU SERVEUR
# Si cette option n'est pas mise le nom du serveur Linux sera converti
# en majuscule et utilisé
# Syntaxe :
# 2 <Nom du serveur>
2 LINUX_FS01
# ADRESSE DE RESEAU INTERNE
# l'adresse de réseau interne est une fonctionnalité qui simplifie
# le routage IPX pour les machines reliées à plusieurs réseaux IPX.
# Syntaxe :
# 3 <adresse interne du réseau> [<Numéro de noeud>]
# ou
# 3 auto
# si vous utilisez 'auto' alors l'adresse IP de la machine sera
# utilisée. NOTE : cela peut être dangereux, assurez-vous de prendre
# un nombre unique sur votre réseau. Les adresses sont codées en
# hexadécimal sur 4 octets (le préfixe 0x est obligatoire).
3 0x49a01010 1
# PERIPHERIQUES RESEAU
# Cette option configure votre réseau IPX. Si votre réseau IPX est déjà
# configuré, vous n'en aurez pas besoin.
# Syntaxe
# 4 <Numéro de reseau IPX> <Nom de périphérique> <Type de trame> [<ticks>]
# Types de trames : ethernet_ii, 802.2, 802.3, SNAP
4 0x39a01010 eth0 802.3 1
# SAUVEGARDE DES ROUTES IPX APRES EXTINCTION DU SERVEUR.
# Syntaxe :
# 5 <drapeau>
# 0 = ne pas sauver les routes, 1 = sauver les routes.
5 0
# VERSION DE NETWARE
# Syntaxe :
# 6 <version>
# 0 = 2.15, 1 = 3.11
6 1
# GESTION DES MOTS DE PASSE
# les clients DOS de Novell supportent une fonctionnalité qui chiffre
# votre mot de passe (mdp) lorsque vous le changez. Vous pouvez
# configurer votre serveur mars pour supporter cette fonctionnalité.
# Syntaxe :
# 7 <drapeau>
# avec <drapeau> =
# 0 force chiffrage du mdp (les clients ne peuvent pas changer de mdp).
# 1 force chiffrage du mdp, permet les changements de mdp non chiffrés.
# 7 permet les mdp non chiffrés mais pas les mdp nuls.
# 8 permet les mdp non chiffrés ainsi que les mdp nuls.
# 9 seulement les mdp non chiffrés (ne marche pas avec OS/2).
7 1
# DROITS MINIMUM EN FONCTION DES GID ET UID
# Les permissions qui sont appliquées lors de connexions sans login
# Ces permissions seront utilisées pour les fichiers
# de votre serveur primaire.
# Syntaxe :
# 10 <gid>
# 11 <uid>
# <gid> <uid> sont ceux donnés dans /etc/passwd et /etc/group
10 200
11 201
# MOT DE PASSE DU SUPERVISEUR
# Doit etre enlevé après le premier démarrage du serveur. Le serveur
# cryptera cette information dans le fichier de bindery après son
# lancement. Vous devriez éviter d'utiliser le compte 'root' et en choisir
# un autre pour administrer le serveur mars.
#
# Cette entrée est lue et chiffrée dans le fichier de bindery du serveur,
# elle n'a donc besoin d'être présente que la première fois que vous
# démarrez le serveur, pour s'assurer que le mot de passe ne soit pas volé
# Syntaxe :
# 12 <Login du superviseur> <Nom d'utilisateur UNIX> [<mot de passe>]
12 SUPERVISOR terry secret
# COMPTES DES UTILISATEURS
# Permet d'associer les comptes NETWARE aux comptes UNIX. Les mots de
# passe sont en option.
# Syntaxe :
# 13 <Login utilisateur> <Nom d'utilisateur UNIX> [<mot de passe>]
13 MARTIN martin
13 TERRY terry
# ADMINISTRATION SYSTEME PARESSEUSE
# Si vous avez beaucoup d'utilisateurs et ne pouvez/voulez utiliser
# le champ 13 pour chaque utilisateur, vous pouvez faire correspondre
# automatiquement les logins mars_nwe aux logins des utilisateurs Linux
# MAIS il n'y a pour le moment aucun moyen d'utiliser les mots de passe
# des comptes Linux si bien que tous les utilisateurs configurés de cette
# façon devront utiliser le mot de passe fourni ici.
# Je vous déconseille de l'utiliser à moins que la sécurité ne fasse pas
# partie de vos préoccupations.
# Syntaxe :
# 15 <drapeau> <mot de passe commun>
# avec <drapeau> :
# 0 - ne configure aucun utilisateur automatiquement.
# 1 - configure automatiquement les utilisateurs non encore configurés.
# 99 - configure automatiquement tous les utilisateurs.
15 0 duzzenmatta
# VERIFICATION SIMPLE
# mars_nwe s'assurera automatiquement que certains répertoires existent
# si vous positionnez ce drapeau.
# Syntaxe :
# 16 <drapeau>
# avec <drapeau> à 0 pour non, ne fait rien et 1 pour oui, vérifie.
16 0
# QUEUES D'IMPRESSION
# Permet d'associer des imprimantes Netware à des imprimantes UNIX. Les
# répertoires de files d'impression doivent être crées manuellement
# avant de tenter toute impression.
# Syntaxe :
# 21 <Nom de queue> <répertoire de queue> <commande d'impression UNIX>
21 EPSON SYS:/PRINT/EPSON lpr -h
21 LASER SYS:/PRINT/LASER lpr -Plaser
# DRAPEAUX DE DEBOGAGE
# normalement, ils ne sont pas nécessaires, mais ils peuvent être utiles
# pour la résolution de problèmes.
# Syntaxe :
# <élément de débogage> <drapeau de debogage>
#
# 100 = IPX KERNEL
# 101 = NWSERV
# 102 = NCPSERV
# 103 = NWCONN
# 104 = démarrage NWCLIENT
# 105 = NWBIND
# 106 = NWROUTED
# 0 = supprime le débogage, 1 = active le débogage
100 0
101 0
102 0
103 0
104 0
105 0
106 0
# LANCER LE SERVEUR NETWARE EN TACHE DE FOND ET UTILISER UN FICHIER DE LOG
# Syntaxe :
# 200 <drapeau>
# 0 = Lance NWSERV en avant-plan et pas de fichier de log
# 1 = Lance NWSERV en tâche de fond et utiliser le fichier de log
200 1
# NOM DU FICHIER DE LOG
# Syntaxe :
# 201 <Fichier de log>
201 /tmp/nw.log
# AJOUT/ECRASEMENT DU FICHIER DE LOG
# Syntaxe :
# 202 <drapeau>
# 0 = ajouter dans le fichier de log existant
# 1 = écraser le fichier de log existant
202 1
# EXTINCTION DU SERVEUR
# Ce point modifie le délai entre l'affichage d'extinction du serveur et
# l'extinction réelle du serveur
# Syntaxe :
# 210 <temps>
# en secondes (par défaut 10)
210 10
# INTERVALLE ENTRE LES DIFFUSIONS DE ROUTAGE
# la durée en secondes entre les diffusions (broadcast) de serveurs
# Syntaxe :
# 211 <temps>
# en secondes (par défaut : 60)
211 60
# INTERVALLE ENTRE LES LOGS DE ROUTAGE
# configure le nombre de diffusions après lesquelles les informations
# de routage sont écrites dans les fichiers de log.
# Syntaxe :
# 300 <nombre>
300 5
# FICHIER DE LOG DE ROUTAGE
# configure le nom du fichier de log des informations de routage
# Syntaxe :
# 301 <nom de fichier>
301 /tmp/nw.route
# AJOUT/ECRASEMENT DU FICHIER DE LOG DE ROUTAGE
# configure si vous voulez ajouter les nouveaux logs à la fin du
# fichier existant ou bien le réecrire.
# Syntaxe :
# 302 <drapeau>
# avec <drapeau> à 0 pour l'ajout et à 1 pour création/écrasement
302 1
# MINUTAGE DU CHIEN DE GARDE (watchdog)
# Configure les intervalles de temps entre les messages de garde pour
# s'assurer que le réseau est toujours vivant.
# Syntaxe :
# 310 <valeur>
# avec <valeur> =
# 0 - toujours envoyer des messages de garde.
# <0 - ne jamais envoyer de message de garde.
# >0 - envoyer des messages quand le trafic réseau chute en dessous
# de 'n' ticks.
310 7
# FICHIER DE STATIONS
# configure le nom du fichier qui détermine les machines pour lesquelles
# ce serveur de fichiers sera le serveur primaire.
# La syntaxe de ce fichier est décrite dans le répertoire 'examples'
# du code source.
# Syntaxe :
# 400 <nom de fichier>
400 /etc/nwserv.stations
# OBTENTION DU SERVEUR DE FICHIERS LE PLUS PROCHE
# Configure la manière dont sont gerées les requêtes SAP 'obtention
# du serveur le plus proche' (Get Nearest Fileserver).
# Syntaxe :
# 401 <drapeau>
# avec <drapeau> =
# 0 : désactive cette requête
# 1 : le fichier de stations liste les stations à exclure
# 2 : le fichier de stations liste les station à inclure
401 2
</verb></tscreen>
<tag>Démarrer le serveur</tag>
Si vous avez configuré le serveur de telle sorte que d'autres programmes
configurent le réseau et/ou fournissent les fonctions de routage, alors
vous devez lancer ces programmes avant de démarrer le serveur.
Si vous avez configuré le serveur pour qu'il configure vos interfaces
et fournisse des services de routage, alors pour démarrer le serveur,
il n'y a qu'à taper :
<tscreen><verb>
# nwserv
</verb></tscreen>
<tag>Tester le serveur</tag>
Pour tester le serveur vous devrez tout d'abord essayer de vous connecter et
entrer par login grâce à un client Netware sur votre réseau. Vous pouvez
alors faire un <tt>CAPTURE</tt> à partir de votre client et essayer
d'imprimer. Si ces
deux actions sont couronnées de succès, votre serveur fonctionne.
</descrip>
<sect1><heading>L'ensemble <bf><em>lwared</em></bf>
<p>
Ales Dryak <tt><A.Dryak@sh.cvut.cz></tt> a
développé <em>lwared</em> pour permettre à
Linux de fonctionner comme un serveur de fichiers basé sur NCP.
<p>
<em>Lwared</em> est l'abréviation de <em>LinWare Daemon</em>.
<sect2><heading>Possibilités offertes par <bf><em>lwared</em></bf>
<p>
Le serveur <em>lwared</em> est capable de fournir un sous-ensemble de
services d'un
serveur Novell NCP. Le système de messageries a été inclus mais il ne fournit pas
de facilités d'impression. De plus il ne fonctionne pas bien avec des clients
pour Windows 95 ou Windows NT. Ce serveur s'appuie sur des programmes
extérieurs pour construire et maintenir le routage IPX et les tables SAP. Le
mauvais comportement d'un client peut causer le "plantage" du serveur. Il est
aussi important de savoir que la retranscription des noms de fichiers
(minuscules/majuscules) n'a pas non plus été incluse.
<p>
Ce serveur fonctionne avec les shells Netware NETX et VLM.
<sect2><heading>Récupérer <bf><em>lwared</em></bf>
<p>
Le paquetage <em>lwared</em> peut être construit pour n'importe quel noyau
supérieur à la version <tt>1.2.0</tt>, je vous recommande
d'utiliser la version <tt>1.2.13</tt> pour laquelle aucun patch sur le noyau
n'est nécessaire. Certaines fonctionnalités ont changé avec
la version <tt>1.3.*</tt> du noyau, ce qui signifie que des patchs sont nécessaires
pour ces versions afin de faire fonctionner ce serveur de manière
correcte. Des patchs appropriés sont inclus pour les nouvelles versions de
noyau, ainsi si vous devez absolument utiliser un de ces noyaux, vous serez
toujours en mesure de faire fonctionner <em>lwared</em> correctement.
<p>
On trouve <em>lwared</em> sur
<url url="ftp://klokan.sh.cvut.cz/pub/linux/linware/"
name="klokan.sh.cvut.cz">,
<url url="ftp://metalab.unc.edu/pub/Linux/system/Network/daemons"
name="Metalab">,
ou sur un site miroir. La version à jour lors de l'écriture de ce document était :
<tt>lwared-0.95.tar.gz</tt>
<sect2><heading>Compiler et installer <bf><em>lwared</em></bf>
<p>
<descrip>
<tag>Décompresser l'ensemble <em>lwared</em></tag>
Ce qui devrait ressembler à :
<verb>
# cd /usr/src
# tar xvpfz lwared-0.95.tar.gz
</verb>
<tag>Compiler le noyau avec le support Ethernet et IPX</tag>
Si vous utilisez un noyau alpha <tt>1.3.*</tt> vous devriez essayer d'utiliser
la version <tt>1.3.17</tt> ou une plus récente car les patchs
fournis ont été faits
pour celles-là. Les noyaux <tt>1.3.*</tt> plus anciens que
<tt>1.3.17</tt> nécessiteront d'être
modifiés à la main pour pouvoir installer lwared (<em> quelques indications sur
la manière d'opérer ce genre de modifications sont données dans le fichier
<tt>INSTALL</tt> du paquetage</em>). Pour installer les patchs pour la
version <tt>1.3.17</tt> du
noyau ou plus récent, vous devrez essayer la commande suivante :
<verb>
# make patch
</verb>
<p>
La chose suivante que vous devrez faire après avoir appliqué le patch, le cas
échéant, sera de vérifier que votre noyau a bien été compilé avec le support
IPX actif. Dans la version <tt>1.2.13</tt>, vous n'aurez qu'à
répondre oui (<tt>Y</tt>) à la question
'<tt>The IPX protocol</tt>' de la manière suivante :
<verb>
...
...
Assume subnets are local (CONFIG_INET_SNARL) [y]
Disable NAGLE algorithm (normally enabled) (CONFIG_TCP_NAGLE_OFF) [n]
The IPX protocol (CONFIG_IPX) [n] y
*
* SCSI support
...
...
</verb>
Pour les noyaux plus récents, la question peut varier un peu, mais le
procédé reste fondamentalement le même.
<p>
Vous devrez également vous assurer du choix approprié du pilote de votre carte
Ethernet. Si vous ne savez pas comment procéder, je vous conseille vivement de
vous reporter à
<url url="Ethernet-HOWTO.html"
name="Ethernet-HOWTO">.
<p>
Vous pouvez maintenant procéder à la compilation de votre noyau. N'oubliez pas
de lancer <em>lilo</em> une fois la compilation finie, pour que le nouveau noyau soit
correctement installé.
<tag>Compiler et installer <em>lwared</em></tag>
Pour compiler <em>lwared</em> vous devez en premier lieu vérifier et éditer si
nécessaire le fichier <tt>server/config.h</tt>. Ce fichier contient les
éléments nécessaires pour piloter votre serveur et déterminer son
comportement lorsqu'il fonctionnera. Le fichier par défaut est
raisonnablement bien écrit mais vous pourrez tout de même vérifier si
les répertoires de fichiers de log et le fichier de configuration
conviennent à votre système.
<verb>
# make depend
# make
# make install
</verb>
Le '<tt>make depend</tt>' se plaint de ne pas trouver le fichier <tt>float.h</tt> sur
mon système mais cela semble fonctionner tout de même. J'ai aussi
découvert que lors des compilations avec gcc <tt>2.6.3</tt>, il fallait
modifier la ligne :
<verb>
#include <net/route.h>
</verb>
en
<verb>
#include <net/if_route.h>
</verb>
dans le fichier <tt>lib/ipxkern.c</tt>. Ceci étant dû au fait que le fichier
change parfois de nom.
<p>
Le '<tt>make install</tt>' tentera d'installer le serveur et les démons de
routage dans le répertoire <tt>/usr/sbin</tt>, le programme
<em>lwpasswd</em> dans le
répertoire <tt>/usr/bin</tt>, les programmes utilitaires IPX seront copiés dans
le répertoire <tt>/sbin</tt> et les pages de manuel dans la structure de
répertoire <tt>/usr/man</tt>. Si un de ces endroits ne correspond pas à votre
système, vous devrez éditer et modifier les fichiers
<tt>Makefile</tt> correspondants.
</descrip>
<sect2><heading>Configurer et utiliser <bf><em>lwared</em></bf>
<p>
Voici la partie la plus amusante !
<descrip>
<tag>Configurer le réseau IPX</tag>
La première chose à faire est de configurer vos cartes Ethernet
pour qu'elles puissent supporter les réseaux IPX connectés à votre
serveur. Vous devez connaître les adresses
des réseaux IPX pour chacun des segments du réseau, quel
périphérique Ethernet (<tt>eth0</tt>, <tt>eth1</tt>,
etc.) est en relation avec quel segment,
quel type de trame est utilisé pour chacun des segments (<tt>802.3</tt>,
<tt>EtherII</tt>, etc.) et quelle adresse de réseau interne votre serveur
doit utiliser (ce qui est vraiment nécessaire si votre serveur
doit fournir des services sur plusieurs segments). Par exemple, une
configuration plausible d'un serveur étant sur deux segments IPX
ayant pour adresse réseau <tt>23a91300</tt> et <tt>23a91301</tt> et ayant une adresse
de réseau interne <tt>bdefaced</tt> ressemblera à :
<verb>
# ipx_internal_net add BDEFACED 1
# ipx_interface add eth0 802.3 23a91300
# ipx_interface add eth1 etherii 23a91301
</verb>
<tag>Démarrer les démons de routage</tag>
Le logiciel du noyau permet de faire du renvoi de paquet
IPX comme il le fait pour les paquets IP, cependant le noyau
requiert un programme additionnel pour gérer la mise à jour des
tables de routage. Dans le cas d'IPX, deux démons sont
nécessaires et tous deux sont fournis avec <em>lwared</em> :
<em>ipxripd</em> gère l'information de routage IPX et
<em>ipxsapd</em> gère les
informations SAP. Pour faire démarrer les démons vous n'aurez
qu'à spécifier l'endroit où vous voulez qu'ils écrivent les
messages de log :
<verb>
# ipxripd /var/adm/ipxrip
# ipxsapd /var/adm/ipxsap
</verb>
<tag>Configurer le serveur <em>lwared</em></tag>
Deux fichiers sont à configurer manuellement pour que les
utilisateurs puissent se loguer sur votre serveur. Il s'agit de :
<p>
<descrip>
<tag><tt>/etc/lwpasswd</tt></tag>
Il s'agit du fichier dans lequel les informations sur les
comptes utilisateurs de LinWare sont gardées. Le programme
<em>lwpasswd</em>
permet de le maintenir à jour. Dans sa forme la plus simple, le
fichier <tt>/etc/lwpasswd</tt> ressemble à :
<verb>
ales:
terryd:
guest:
</verb>
Son format est une simple liste de noms de login suivis du
caractère ':' puis de la version encryptée du mot de passe de
login. Il faut cependant noter deux choses importantes : si les
mots de passe ne sont pas chiffrés cela signifie qu'il n'y a
pas de mot de passe. D'autre part, les utilisateurs de <em>LinWare</em>
doivent avoir un compte Linux, c'est-à-dire que chaque utilisateur
de <em>LinWare</em>
présent dans <tt>/etc/lwpasswd</tt> doit aussi être présent dans
<tt>/etc/passwd</tt>. Seul l'utilisateur <tt>root</tt> peut changer
le mot de
passe d'un autre utilisateur <em>LinWare</em>. Si vous êtes logué en tant
<tt>root</tt>, vous pourrez par exemple taper la commande suivante pour
changer le mot de passe d'un utilisateur :
<verb>
# lwpasswd rodg
Changing password for RODG
Enter new password:
Re-type new password:
Password changed.
</verb>
<tag><tt>/etc/lwvtab</tt></tag>
Il s'agit des tables des volumes LinWare où sont stockées les
informations sur les répertoires à partager entre les utilisateurs
de LinWare (ce fichier comporte des similitudes avec le fichier
<tt>/etc/exports</tt> pour NFS). Un exemple simple de son format est :
<verb>
SYS /lwfs/sys
DATA /lwfs/data
HOME /home
</verb>
Ce format est simple : nom du volume puis le répertoire Linux à
exporter séparés par le caractère espace. Vous devez avoir,
<bf>au moins</bf>,
une entrée dans ce fichier pour le volume <tt>SYS</tt> afin que le
serveur puisse démarrer. Si vous voulez que vos utilisateurs
DOS puissent accéder à votre serveur LinWare comme serveur primaire,
vous devrez installer une arborescence de volume <tt>SYS</tt> standard
sous le répertoire que vous exportez comme volume <tt>SYS</tt>.
Les
fichiers devant être présents dans ces répertoires sont ceux de
Novell et sont soumis à leurs copyrights. Vous devez avoir une licence
pour les utiliser. Si vos utilisateurs
utilisent un serveur de fichiers Novell comme serveur primaire,
vous n'aurez pas besoin du volume <tt>SYS</tt>.
</descrip>
<tag>Démarrer le serveur <em>lwared</em>
<verb>
# lwared
</verb>
Plutôt simple n'est-ce pas ? Mais il reste une question.
Quel est le nom du serveur de fichiers ? Si vous
avez démarré le serveur LinWare de la façon exposée ci-dessus, son
nom sera celui retourné par la commande <em>hostname</em> de Linux
(le nom d'hôte). Si vous voulez
un autre nom, il suffit de le spécifier dans
la ligne de lancement de lwared comme ci-dessous par exemple :
<verb>
# lwared -nlinux00
</verb>
Ici le nom du serveur LinWare sera <tt>linux00</tt>.
<tag>Tester le serveur <em>lwared</em></tag>
La première chose à faire est de vérifier que votre serveur LinWare
apparaît bien dans une <em>slist</em> d'un client DOS sur votre réseau. Le
programme <em>slist</em> est stocké dans le volume <tt>SYS</tt> d'un serveur de
fichier Novell donc il vous faudra réaliser cette opération à
partir d'une machine déjà loguée sur un serveur. Si ça ne marche pas,
vérifiez que
<em>ipxsapd</em> et <em>lwared</em> tournent en
même temps sur la machine Linux. Si la slist est bonne
vous pouvez essayer de connecter et de mapper un volume :
<verb>
C:> attach linux00/ales
...
...
C:> map l:=linux00/data:
C:> l:
</verb>
Vous devriez maintenant être en mesure d'utiliser le nouveau volume
comme tout autre volume Novell. Les permissions des fichiers sont
basées sur celles données par le serveur <em>Linux</em> en fonction de
votre compte utilisateur.
</descrip>
<sect><heading>Configurer votre machine Linux en client d'impression Novell
<p>
Le paquetage <em>ncpfs</em> inclut deux petits utilitaires qui vous permettent
d'imprimer depuis votre machine Linux sur une imprimante reliée à un serveur
d'impression Novell.
La commande <em>nprint</em> vous permet d'imprimer un fichier vers une
queue d'impression NetWare. La commande <em>pqlist</em> liste les queues
d'impression disponibles sur un serveur NetWare.
<p>
Pour obtenir et installer ces commandes, vous n'avez qu'à suivre les
instructions relatives au client NCP décrites précédemment.
<p>
Ces deux commandes nécessitent que vous fournissiez le nom d'utilisateur
et le mot de passe. Vous devriez normalement penser à écrire des
scripts pour simplifier les tâches d'impression.
<p>
Exemple :
<tscreen><verb>
# pqlist -S ACCT_FS01 -U guest -n
# nprint -S ACCT_FS01 -q LASER -U guest -n filename.txt
</verb></tscreen>
La syntaxe concernant le login est similaire à celle de la commande
<em>ncpmount</em>. Les exemples ci-dessus font l'hypothèse qu'un serveur
de fichiers <tt>ACCT_FS01</tt> a un compte <tt>guest</tt> sans mot de
passe, qu'une queue d'impression appelée <tt>LASER</tt> existe et que
<tt>guest</tt> a le droit d'imprimer dessus.
Sur mes machines Linux, j'ai un court script en shell pour chaque imprimante Novell.
Il peut alors être utilisé comme un filtre d'impression afin de pouvoir
imprimer en utilisant le spooler Linux standard.
<sect><heading>Configurer votre machine Linux en serveur d'impression Novell
<p>
Un programme permettant à votre machine Linux d'agir comme serveur d'impression
sur un réseau NetWare est inclus dans le paquetage <em>ncpfs</em>. Pour
l'installer et le compiler, se reporter à la section 'client NetWare'
au-dessus. Il y a également un autre support dans le paquetage <em/mars_nwe/.
<p>
<sect1><heading>Prérequis
<p>
La configuration est relativement simple mais vous devez avoir une imprimante
complètement configurée et fonctionnant sous Linux. Cette partie est couverte
dans le
<url url="Printing-HOWTO.html" name="Printing-HOWTO"> en détail.
<sect1><heading>Configuration
<p>
Une fois que vous avez une configuration imprimante qui fonctionne et que
vous avez compilé et installé l'utilitaire <em>pserver</em>, vous
devez ajouter des commandes dans vos fichiers <tt>rc</tt>.
<p>
La commande exacte à utiliser va dépendre de ce que vous voulez exactement
qu'il fasse, mais dans sa façon la plus simple, quelque chose comme cela
devrait fonctionner :
<tscreen><verb>
# pserver -S ACCT_01 -U LASER -P secret -q LASERJET
</verb></tscreen>
Cet exemple demande à l'utilitaire <em>pserver</em> de se loguer sur le
serveur <tt>ACCT_O1</tt> avec le nom <tt>LASER</tt> et le mot de passe
<tt>secret</tt> et de récupérer les travaux d'impression dans la queue
<tt>LASERJET</tt>. Lorsqu'un nouveau travail d'impression est reçu, la
commande d'impression par défaut de <em>lpr</em> sera utilisée pour
fournir ce travail d'impression au démon d'impression Linux.
La queue d'impression doit être déjà définie sur le serveur
de fichiers et le nom d'utilisateur doit avoir les privilèges du serveur
pour la queue.
<p>
Vous auriez pu, si vous aviez voulu, utiliser une autre commande Linux
pour accepter et imprimer les travaux d'impressions. l'argument <tt>-c</tt>
vous permet de spécifier la commande exacte à utiliser. Par exemple :
<tscreen><verb>
# pserver -S ACCT_01 -U LASER -P secret -q LASERJET -c "lpr -Plaserjet"
</verb></tscreen>
fera exactement la même chose que l'exemple précédent sauf qu'il enverra
le travail d'impression à la configuration <em>printcap</em> <tt>laserjet</tt>
au lieu de celle par défaut.
<sect><heading>Un aperçu des commandes utilisateur et d'administration de
<em>ncpfs</em>
<p>
Les dernières versions du paquetage <em>ncpfs</em> de Volker incluent toute
une série de commandes d'utilisation et d'administration que vous pourriez
avoir envie d'utiliser. Ces outils sont compilés et installés dans le
processus d'installation de <em>ncpfs</em>. Si vous ne l'avez pas encore
fait, suivez les instructions fournies dans la section sur le client Novell
au-dessus pour les compiler et les installer.
<p>
L'information détaillée est disponible dans les pages de <em>man</em>
fournies, mais voici un bref résumé des commandes.
<sect1><heading>Commandes utilisateur
<p>
<descrip>
<tag>ncopy</tag> Network Copy (copie réseau) - permet de copier efficacement
des fichiers en utilisant une fonction NetWare plutôt que de copier à travers
le réseau.
<tag>nprint</tag> Network Print (impression réseau) - permet d'imprimer un
fichier vers une queue d'impression Netware située sur un serveur Netware.
<tag>nsend</tag> Network Send (envoi réseau) - permet d'envoyer des messages
à d'autres utilisateurs connectés à un serveur NetWare.
<tag>nwbols</tag> List Bindery Objects (liste les objets de la bindery) - permet
de lister le contenu de la bindery d'un serveur NetWare.
<tag>nwboprops</tag> List properties of a Bindery Object (liste les propriétés
d'un objet de la bindery) - permet de voir les propriétés d'un objet de la
bindery
<tag>nwbpset</tag> Set Bindery Property (Configure des propriétés de bindery) -
permet de configurer les propriétés d'un objet de la bindery NetWare.
<tag>nwbpvalues</tag> Print Netware Bindery Objects Property Contents
(affiche le contenu propriété des Objets de la Bindery) - permet d'afficher
le contenu d'une propriété d'une bindery Netware.
<tag>nwfsinfo</tag> Fileserver Information (information sur le serveur de
fichiers) - affiche un résumé d'informations sur un serveur Netware.
<tag>nwpasswd</tag> NetWare Password (mot de passe NetWare) - permet de changer
le mot de passe d'un utilisateur NetWare.
<tag>nwrights</tag> NetWare Rights (permissions NetWare) - affiche les droits
associés à un fichier ou répertoire particulier.
<tag>nwuserlist</tag> User List (liste d'utilisateurs) - liste les utilisateurs
actuellement logués sur un serveur de fichiers NetWare.
<tag>pqlist</tag> Print Queue List (Liste de queue d'impression) - affiche le
contenu d'une queue d'impression NetWare.
<tag>slist</tag> Server List (liste de serveurs) - affiche une liste de serveurs
de fichiers NetWare connus.
</descrip>
<sect1><heading>Outils d'administration
<p>
<descrip>
<tag>nwbocreate</tag> Create a Bindery Object (créer un objet de la bindery) -
permet de créer un objet de la bindery.
<tag>nwborm</tag> Remove Bindery Object (enlever un objet de la bindery) - permet
d'effacer un objet de la bindery.
<tag>nwbpadd</tag> Add Bindery Property (ajouter une propriété à la bindery) -
permet de positionner la valeur d'une propriété existante d'un objet d'une
bindery Netware.
<tag>nwbpcreate</tag> Create Bindery Property (créer une propriété de bindery) -
permet de créer une nouvelle propriété pour un objet déjà existant dans une
bindery NetWare.
<tag>nwbprm</tag> Remove Bindery Property (enlever une propriété de bindery) -
permet d'enlever une propriété sur un objet d'une bindery NetWare.
<tag>nwgrant</tag> Grant Trustee Rights (attribuer les droits d'accès) - permet
d'assigner les droits d'accès à un répertoire sur un serveur de fichiers
NetWare.
<tag>nwrevoke</tag> Revoke Trustee Rights (retirer les droits d'accès) - permet
de retirer les droits d'accès à un répertoire sur un serveur de fichiers NetWare.
</descrip>
<sect><heading>Configurer PPP pour le support d'IPX
<p>
Les nouvelles versions du démon PPP <em>pppd</em> pour Linux permettent de
transporter des paquets IPX à travers une liaison série PPP. Il faut au moins
la version <tt>ppp-2.2.0d</tt> du démon. Voir le <url url="PPP-HOWTO.html"
name="PPP-HOWTO"> pour savoir où le trouver. Lorsque vous compilez <em>pppd</em>,
assurez-vous d'activer le support IPX en ajoutant les deux lignes suivantes au
fichier <tt>/usr/src/linux/pppd-2.2.0f/pppd/Makefile.linux</tt>
<tscreen><verb>
IPX_CHANGE = 1
USE_MS_DNS = 1
</verb></tscreen>
Le <tt>IPX_CHANGE</tt> est ce qui active le support d'IPX dans PPP. La définition
de <tt>USE_MS_DNS</tt> permet aux machines Microsoft Windows 95 de faire de
la recherche de nom (name lookup).
<p>
Le vrai truc pour arriver à le faire marcher, c'est de savoir le configurer.
<p>
Il y a plein de façons de faire mais je ne décrirai que les deux sur lesquelles
j'ai reçu des informations. Je n'ai encore jamais essayé, donc considérez cette
section comme expérimentale et si vous arrivez à faire marcher quelque chose,
faites-le moi savoir s'il vous plait.
<sect1><heading>Configurer un serveur IPX/PPP
<p>
La première chose à faire est de configurer votre machine Linux en serveur
IP/PPP. Pas de panique ! Ce n'est pas difficile. De nouveau, suivez les
instructions dans le <url url="PPP-HOWTO.html" name="PPP-HOWTO"> et ça
devrait aller. Une fois que vous avez fait ceci, il y a quelques modifications
pour faire fonctionner IPX avec la même configuration.
<sect2><heading>Première étape
<p>
Une des premières choses à faire est de configurer votre machine Linux en
routeur IPX de la façon décrite plus haut dans ce document. Vous n'avez pas
besoin d'utiliser la commande <em>ipx-route</em> pour l'interface <tt>PPP</tt>
car <em>pppd</em> les configure pour vous comme il le fait pour IP.
Lorsque le démon <em>ipxd</em> tourne, il détecte automatiquement toute
nouvelle interface IPX et propage les routes pour elle. Ainsi, vos machines
connectées en dialup seront vues par les autres machines automatiquement
lors de la connexion.
<sect2><heading>Conception
<p>
Lorsque l'on tourne en tant que serveur, c'est normalement de sa responsabilité
d'assigner des adresses réseau à chacune des liaisons PPP lorsqu'elles sont
établies. Ceci est un point important, chaque liaison PPP sera un réseau IPX
et aura une adresse réseau IPX unique. Cela signifie que vous devez
décider comment vous allez allouer les adresses et quelles adresses utiliser.
Une convention simple est d'allouer une adresse réseau IPX à chaque
périphérique série qui supporte IPX/PPP. Vous pourriez allouer une adresse
réseau IPX basée sur le login de l'utilisateur connecté, mais je ne vois
pas de raison particulière de faire ainsi.
<p>
Je vais supposer pour la suite que vous avez choisi la première convention
et qu'il y a deux périphériques réseau (modems) que nous utiliserons.
Les adresses utilisées dans cet exemple sont :
<tscreen><verb>
Periph. Adresse reseau IPX
------- -------------------
ttyS0 0xABCDEF00
ttyS1 0xABCDEF01
</verb></tscreen>
<sect2><heading>Configurer <em>pppd</em>
<p>
Configurez votre fichier <tt>/etc/ppp/options.ttyS0</tt> comme suit :
<tscreen><verb>
ipx-network 0xABCDEF00
ipx-node 2:0
ipxcp-accept-remote
</verb></tscreen>
et votre fichier <tt>/etc/ppp/options.ttyS1</tt> :
<tscreen><verb>
ipx-network 0xABCDEF01
ipx-node 3:0
ipxcp-accept-remote
</verb></tscreen>
Cela va demander à <em>pppd</em> d'allouer l'adresse réseau IPX appropriée
au lien lorsque la liaison est établie. Le numéro de noeud local sera
positionné à <tt>2</tt> ou <tt>3</tt> et le noeud distant pourra l'écraser
avec le numéro de noeud qu'il pense être le bon. Notez que toutes les
adresses sont en hexadécimal et que <tt>0x</tt> est obligatoire au début
de l'adresse réseau mais pas nécessaire au début de l'adresse de noeud.
<p>
Il y a d'autres endroits où l'on aurait pu stocker cette information.
Si vous avez seulement un modem pour les appels entrants, alors une
entrée aurait pu être ajoutée au fichier <tt>/etc/ppp/options</tt>. Cette
information aurait également pu être passée sur la ligne de commande de
<em>pppd</em>.
<sect2><heading>Tester la configuration du serveur
<p>
Pour tester la configuration, vous aurez besoin d'un client fonctionnant
correctement. Quand l'utilisateur appelle, se logue et que <em>pppd</em>
démarre, celui-ci va attribuer l'adresse réseau, avertir le client du
numéro de noeud du serveur et négocier le numéro de noeud du client.
Lorsque ceci est terminé et après que <em>ipxd</em> a détecté la
nouvelle interface, le client doit pouvoir établir des connexions
IPX avec des hôtes distants.
<sect1><heading>Configurer un client IPX/PPP
<p>
Dans une configuration client, le fait de configurer ou non votre machine
Linux en routeur IPX dépend de votre volonté d'agir en routeur IPX
sur le réseau local de la machine. Si vous avez une machine isolée qui se
connecte à un serveur IPX/PPP alors vous n'avez pas besoin d'utiliser
<em>ipxd</em>. En revanche, si vous avez un réseau local et souhaitez
que toutes les machines du réseau puissent utiliser la route IPX/PPP
alors vous devez configurer et faire tourner <em>ipxd</em> comme décrit.
Cette configuration est plus simple car vous n'avez qu'un seul
périphérique série à configurer.
<sect2><heading>Configurer <em>pppd</em>
<p>
La configuration la plus simple est celle qui permet au serveur de fournir
toute l'information sur la configuration du réseau IPX. Cette configuration
serait compatible avec la configuration du serveur décrite au-dessus.
<p>
Vous avez à nouveau besoin d'ajouter des options dans votre fichier
<tt>/etc/ppp/options</tt> :
<tscreen><verb>
ipxcp-accept-network
ipxcp-accept-remote
ipxcp-accept-local
</verb></tscreen>
Les options indiquent à <em>pppd</em> d'agir de manière complètement passive
et d'accepter tous les détails de configuration fournis par le serveur.
Vous pouvez fournir ici des valeurs par défaut pour les serveurs qui ne
fournissent pas ces détails en ajoutant des lignes <tt>ipx-network</tt>
et <tt>ipx-node</tt> similaires à la configuration du serveur.
<sect2><heading>Tester le client IPX/PPP
<p>
Pour tester le client, vous avez besoin d'un serveur à appeler connu pour
fonctionner correctement. Une fois que vous avez appelé et que <em>pppd</em>
a démarré, vous devriez voir les détails de votre configuration IPX sur
votre périphérique <tt>ppp0</tt> lorsque vous utilisez la commande
<em>ifconfig</em>. Vous devriez également être capable d'utiliser
<em>ncpmount</em>.
<p>
Je ne sais pas si vous devrez ajouter les routes IPX manuellement pour
atteindre des serveurs distants ou non. Il semblerait que oui. Si
quelqu'un qui a cette configuration pouvait me le dire, je lui en
serais reconnaissant.
<sect><heading>Tunnel IPX sur IP
<p>
Beaucoup d'entre vous doivent être dans la situation où deux réseaux
locaux IPX sont séparés par une simple connexion IP. Comment
pourra-t-on dans ce cas jouer un deathmatch à DOOM pour DOS dans cette
situation,
demanderiez-vous ? Andreas Godzinap <tt><ag@agsc.han.de></tt> a une
réponse pour vous avec <em>ipxtunnel</em>.
<p>
<em>ipxtunnel</em> fournit une sorte de pont pour IPX en permettant à des
paquets IPX d'être encapsulés dans des paquets de données TCP/IP de
manière à ce qu'ils soient transportés par une connexion TCP/IP. Ce
programme attend l'arrivée de paquets IPX et lors de leur arrivée, il
les enferme dans un paquet de données TCP/IP et le route vers l'adresse
IP distante que vous aurez spécifiée. Pour que cela fonctionne, la
machine qui reçoit le paquet de données
encapsulé doit, elle aussi, faire tourner une version identique
d'<em>ipxtunnel</em>.
<sect1><heading>Récupérer <em>ipxtunnel</em>
<p>
Vous pouvez obtenir <em>ipxtunnel</em> sur
<url url="ftp://metalab.unc.edu/pub/Linux/system/network/daemons"
name="Metalab"> ou sur un site miroir.
<sect1><heading>Compiler <em>ipxtunnel</em>
<p>
<em>ipxtunnel</em> se compile proprement chez moi en utilisant les commandes :
<tscreen><verb>
# cd /usr/src
# tar xvfz .../ipxtunnel.tgz
# cd ipxtunnel
# make
</verb></tscreen>
<sect1><heading>Configurer <em>ipxtunnel</em>
<p>
La configuration d'<em>ipxtunnel</em> est aisée. Admettons que la machine de
vos amis soit <tt>gau.somewhere.com</tt> et que votre machine soit appelée
<tt>gim.sw.edu</tt>. <em>ipxtunnel</em> utilise un fichier de configuration appelé
<tt>/etc/ipxtunnel.conf</tt>. Ce fichier vous permet de spécifier le port UDP par
défaut à utiliser pour la connexion TCP/IP par laquelle les données encapsulées
seront envoyées ainsi que l'interface locale où ipxtunnel doit écouter et
délivrer les paquets IPX.
<p>
Un simple fichier de configuration ressemblera à :
<tscreen><verb>
#
# /etc/ipxtunnel.conf pour gim.sw.edu
#
# Le port UDP à utiliser (par défaut 7666)
port 7777
#
# Le nom de la machine distante où les paquets IPX doivent être envoyés
remote gau.somewhere.com
#
# Les interfaces IPX locales à écouter (par défaut eth0)
interface eth0
interface eth1
</verb></tscreen>
Évidemment l'autre machine aura un fichier de configuration similaire
spécifiant votre machine comme hôte distant (<tt>remote</tt>).
<sect1><heading>Tester et utiliser <em>ipxtunnel</em>
<p>
<em>ipxtunnel</em> se comporte <bf>comme</bf> un pont IPX, ainsi les
réseaux IPX à chaque extrémité de la liaison TCP/IP doivent probablement
être les mêmes.
Andreas n'a jamais testé <em>ipxtunnel</em> dans un environnement qui utilise
réellement les serveurs de fichiers Novell, donc si vous l'essayez
dans un tel environnement, donnez-en le résultat à Andreas pour qu'il
sache si ça marche ou pas.
<p>
Si <em>ipxtunnel</em> fonctionne, vous devriez être en mesure de lancer DOOM
sur les machines à chaque bout de la connexion utilisée en mode IPX et
vous devriez vous voir l'un l'autre.
<p>
Andreas n'a testé ce logiciel que sur de bonnes lignes rapides et ne
garantit pas sa performance si votre liaison est à faible vitesse. Une
fois de plus, dites-lui ce qui marche et ne marche pas.
<sect><heading>Support commercial IPX pour Linux
<p>
<sect1><heading>Caldera's Network Desktop
<p>
Caldera Inc. commercialise une distribution Linux possèdant de
nombreuses fonctions et améliorations. Elle inclut un support
totalement fonctionnel d'un client Novell Netware. La distribution de
base est la respectée Red Hat Linux et Caldera y a ajouté son "Network
Desktop". Le support Netware inclut un client Novell Netware possédant
toutes les fonctionnalités requises, bâties sur une technologie
licenciée par Novell Corporation. Ce client fournit un accès total à
des serveurs de fichiers Novell 3.x et 4.5 et inclut des
fonctionnalités comme le "Netware Directoy Service" (NDS) et
l'encryptage RSA.
<p>
Vous pourrez obtenir plus d'informations et de détails sur le serveur
web
<url url="http://www.caldera.com/" name="Caldera Inc">.
<p>
Si vous travaillez dans un environnement Netware 4.x et/ou NDS, alors le
client Netware de Caldera est la seule solution disponible.
<p>
Si vous devez mettre en oeuvre une solution Novell pour Linux critique de
manière professionnelle, vous devriez regarder le produit de Caldera de près.
<sect><heading>Foire Aux Questions
<p>
<descrip>
<tag>Où puis-je trouver des logiciels IPX pour Linux fournis avec un support
commercial ?
</tag><em>Caldera Corp.</em> offre un client Netware 3.x et 4.x complètement
supporté avec une licence complète. Pour de plus amples informations, consultez
le site web de <url url="http://www.caldera.com/" name="Caldera Inc">.
<tag>Est-ce que les logiciels IPX fonctionnent avec Arcnet/Token Ring/etc. ?
</tag>Les logiciels IPX pour Linux fonctionnent avec les interfaces Arcnet et
Token Ring. Je n'ai encore entendu personne essayer avec AX.25 . La configuration
se passe de la même manière que pour l'Ethernet, sauf que vous devrez remplacer
'eth0' par le nom de périphérique approprié et mettre l'adresse matérielle
appropriée lorsque nécessaire.
<tag>Comment est-ce que je configure plus d'une interface IPX ?
</tag> Si vous avez plus d'une interface dans votre machine, vous devez utiliser
la commande <em>ipx_interface</em> pour configurer manuellement chacune d'entre
elles. Vous ne devez pas utiliser la configuration "plug'n'play".
<tag>Comment est-ce que je choisis les adresses IPX ?
</tag> Les réseaux IPX sont similaires mais non identiques aux réseaux IP.
Une différence majeure est la façon dont les adresses sont utilisées. IPX n'utilise
pas le concept de sous-réseau. Le lien entre les adresses réseau et les réseaux
est différent. Les règles sont relativement simples.
<itemize>
<item>Chaque adresse de réseau IPX doit être unique sur un réseau à grande échelle (WAN).
Ceci inclut les adresses de réseau internes. Beaucoup d'organisations utilisant IPX
sur des réseaux à grande échelle ont une politique d'adressage que vous devriez suivre.
<item>Chaque adresse d'hôte sur un réseau particulier doit être unique. Cela signifie
que tous les hôtes sur chaque réseau IPX doivent avoir une adresse assignée unique.
Dans le cas d'un réseau Ethernet, ce n'est pas difficile, car les cartes ont chacune
une adresse unique. Dans le cas d'IPX/PPP, cela signifie que vous devez vous assurer
d'allouer une adresse unique pour tous les hôtes du réseau, quel que soit le bout
de la (des) liaison(s) auquel ils sont connectés. Les adresses des hôtes n'ont pas
besoin d'être uniques à travers un WAN car l'adresse du réseau est combinée à
l'adresse de l'hôte pour identifier l'hôte de manière unique.
</itemize>
<tag>Quels sont les types de trame que je devrais utiliser?
</tag>Il y a plusieurs types de trames au-dessus desquelles vous pouvez faire fonctionner
IPX. Les plus utilisées sont décrites dans la section 'termes utilisés dans ce document'
(sous l'entrée <tt>'type de trame'</tt>).
<p>
Si vous installez votre machine sur un réseau existant, alors vous devrez utiliser ce
qui est déjà utilisé pour vous permettre de communiquer avec les autres machines du
réseau. En revanche, si vous installez un réseau tout neuf, il y a toute une variété
de protocoles pour transporter votre trafic IPX que vous pouvez utiliser. Si vous
installez un réseau tout neuf et que vous envisagez d'y faire passer de l'IPX et
de l'IP, je vous recommande des trames de type <tt>Ethernet_II</tt>.
<tag>Mes machines Windows95 brouillent la détection automatique du type de mes trames.
</tag>Apparement, ils y arrivent, ouais. Je pourrais faire des commentaires pas
gentils, mais à la place, je vous suggérerais de configurer manuellement le type
de trames plutôt que d'utiliser la configuration automatique. C'est probablement la
meilleure façon en tout cas.
<tag>Pourquoi est-ce que j'obtiens le message 'invalid argument' quand je configure
IPX ?
</tag>Vous n'avez probablement pas un noyau qui supporte IPX. Soit vous recompilez
votre noyau pour qu'il le fasse, soit vous vérifiez que vous avez bien utilisé
lilo pour installer et utiliser le nouveau noyau.
<tag>Pourquoi est-ce que j'obtiens le message 'package not installed' quand je
configure IPX ?
</tag>Vous n'avez probablement pas un noyau qui supporte IPX. Soit vous recompilez
votre noyau pour qu'il le fasse, soit vous vérifiez que vous avez bien utilisé
lilo pour installer et utiliser le nouveau noyau.
<tag>Pourquoi est-ce que <em>pppd</em> m'envoie le message 'IPX support
not in kernel' ?
</tag>Vous avez probablement compilé IPX comme un module et vous ne vous êtes pas
assuré qu'il était chargé avant de démarrer <em>pppd</em>.
<tag>Comment exporter en NFS un système de fichiers NCP monté ?
</tag>Pour utiliser NFS pour exporter un système de fichiers NCP, vous devez
le monter en utilisant l'option <tt>-v</tt> de <em>ncpmount</em>. Cette option
permet de monter un seul volume d'un serveur de fichiers au lieu de les monter
tous. Lorsque vous faîtes ainsi, le démon NFS vous permet d'exporter ce système
de fichiers de la manière habituelle.
<tag>Pourquoi est-ce que slist ne marche pas quand j'ai un réseau interne
avec <em>mars_nwe</em> ?
</tag>Vous devez avoir la requête 'get nearest server' activée. L'entrée 401
dans <tt>/etc/nwserv.conf</tt> doit être 0, à moins que vous ayez une raison
pour ne pas répondre à ces requêtes. Si vous voulez simplement que <em>slist</em>
fonctionne et ne pas répondre à chaque requête 'get nearest server', ajoutez
votre réseau interne et numéro de noeud dans <tt>/etc/nwserv.stations</tt>
et positionnez l'entrée 401 de <tt>/etc/nwserv.conf</tt> à 2.
<tag>Est-ce que le paquetage ncpfs fonctionne avec mars_nwe ?
</tag>Les codes de Martin et Volkers commencent lentement à converger. Les
versions récentes de <em>mars_nwe</em> ont une option pour lui permettre de
marcher avec <em>ncpfs</em>. Vous devez activer <tt>WITH_NAME_SPACE_CALLS</tt>
dans le fichier <tt>config.h</tt> de <em>mars_nwe</em>.
</descrip>
<sect><heading> Copyright
<p>
L'IPX-HOWTO est soumis au Copyright (c) 1995 Terry Dawson.
<p>
Cette documentation est libre, vous pouvez la redistribuer et/ou la
modifier selon les termes de la Licence Publique Générale GNU publiée
par la Free Software Foundation (version 2 ou bien toute autre
version ultérieure choisie par vous).
Cette documentation est distribuée car potentiellement utile, mais
<bF>SANS AUCUNE GARANTIE</bf>, ni explicite ni implicite, y compris
les garanties de <bf>commercialisation</bf> ou <bf>d'adaptation dans
un but spécifique</bf>. Reportez-vous à la Licence Publique Générale
GNU pour plus de détails.
Vous pouvez obtenir une copie de la Licence Publique Générale GNU en
écrivant à la <url url="http://www.fsf.org" name="Free Software
Foundation">, Inc., 675 Mass Ave, Cambridge, MA 02139, États-Unis.
Les marques déposées sont propriétés de leurs
propriétaires respectifs.
<sect><heading>Remerciements
<p>
Terry Dawson <tt/<terry@perf.no.itg.telstra.com.au>/ pour le document initial.
<p>
David E. Storey <tt><dave@tamos.gmu.edu></tt> et
Volker Lendecke <tt><lendecke@namu01.gwdg.de></tt>
qui m'ont assisté grandement en me fournissant
des informations pour ce document.
Gilbert Callaghan <tt><gilbert@pokey.inviso.com></tt>,
David Higgins <tt><dave@infra.com></tt> et
Chad Robinson <tt><chadr@brtgate.brttech.com></tt> pour leur
contribution sur la configuration de IPX/PPP.
Bennie Venter <tt/<bjv@Gil-galad.paradigm-sa.com>/ pour les informations
utiles sur les types de trames.
Christopher Wall <tt><vergil@idir.net></tt> pour ses suggestions utiles afin
d'améliorer la lecture et l'agencement de ce document.
Axel Boldt <tt/<boldt@math.ucsb.edu>/ pour ses suggestions utiles et le
retour d'informations.
Erik D. Olson <tt/<eriko@wrq.com>/ pour son retour d'informations utile
et ses informations pour la configuration de PPP pour IPX.
Brian King <tt/<root@brian.library.dal.ca>/ pour sa contribution à une
question de la section FAQ
<p>
"NetWare" est une marque déposée de <url url="http://www.novell.com/" name="Novell Corporation">.
<p>
"Caldera" est une marque déposée de <url url="http://www.caldera.com/" name="Caldera Corporation">.
<p>
<tt> Kevin Thorpe</tt>
<p>
<tt><kevin@pricetrak.com>
</tt>
</article>