Les nouvelles versions du démon PPP pppd pour Linux permettent de
transporter des paquets IPX à travers une liaison série PPP. Il faut au moins
la version ppp-2.2.0d
du démon. Voir le
PPP-HOWTO pour savoir où le trouver. Lorsque vous compilez pppd,
assurez-vous d'activer le support IPX en ajoutant les deux lignes suivantes au
fichier /usr/src/linux/pppd-2.2.0f/pppd/Makefile.linux
IPX_CHANGE = 1
USE_MS_DNS = 1
Le IPX_CHANGE
est ce qui active le support d'IPX dans PPP. La définition
de USE_MS_DNS
permet aux machines Microsoft Windows 95 de faire de
la recherche de nom (name lookup).
Le vrai truc pour arriver à le faire marcher, c'est de savoir le configurer.
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.
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 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.
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 ipx-route pour l'interface PPP
car pppd les configure pour vous comme il le fait pour IP.
Lorsque le démon ipxd 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.
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.
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 :
Periph. Adresse reseau IPX
------- -------------------
ttyS0 0xABCDEF00
ttyS1 0xABCDEF01
Configurez votre fichier /etc/ppp/options.ttyS0
comme suit :
ipx-network 0xABCDEF00
ipx-node 2:0
ipxcp-accept-remote
et votre fichier /etc/ppp/options.ttyS1
:
ipx-network 0xABCDEF01
ipx-node 3:0
ipxcp-accept-remote
Cela va demander à pppd d'allouer l'adresse réseau IPX appropriée
au lien lorsque la liaison est établie. Le numéro de noeud local sera
positionné à 2
ou 3
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 0x
est obligatoire au début
de l'adresse réseau mais pas nécessaire au début de l'adresse de noeud.
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 /etc/ppp/options
. Cette
information aurait également pu être passée sur la ligne de commande de
pppd.
Pour tester la configuration, vous aurez besoin d'un client fonctionnant correctement. Quand l'utilisateur appelle, se logue et que pppd 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 ipxd a détecté la nouvelle interface, le client doit pouvoir établir des connexions IPX avec des hôtes distants.
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 ipxd. 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 ipxd comme décrit. Cette configuration est plus simple car vous n'avez qu'un seul périphérique série à configurer.
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.
Vous avez à nouveau besoin d'ajouter des options dans votre fichier
/etc/ppp/options
:
ipxcp-accept-network
ipxcp-accept-remote
ipxcp-accept-local
Les options indiquent à pppd 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 ipx-network
et ipx-node
similaires à la configuration du serveur.
Pour tester le client, vous avez besoin d'un serveur à appeler connu pour
fonctionner correctement. Une fois que vous avez appelé et que pppd
a démarré, vous devriez voir les détails de votre configuration IPX sur
votre périphérique ppp0
lorsque vous utilisez la commande
ifconfig. Vous devriez également être capable d'utiliser
ncpmount.
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.