Le Réseau Numérique à Intégration de Service (RNIS) (en anglais ISDN: Integrated Services Digital Network) est une série de normes donnant les spécifications d'un réseau de données numériques à usage général. Un `appel' RNIS crée un service synchrone de données point à point vers la destination. RNIS est généralement délivré sur une ligne à haut débit divisée en un certain nombre de canaux discrets. Il y a deux types de canaux, les `canaux B' qui transportent effectivement les données utilisateurs, et un canal unique appelé `canal D' qui est utilisé pour envoyer les informations de contrôle pendant l'échange RNIS en vue d'établir des appels et autres fonctions. En Australie, par exemple, RNIS peut être fourni sur une liaison 2 Mps qui est divisée en 30 canaux B discrets de 64 kps et un canal D de 64 kps. N'importe quel nombre de canaux peuvent être utilisés en même temps et ceci dans toutes les combinaisons possibles. Vous pouvez par exemple établir 30 appels différents de 64 kps vers 30 destinations différentes, ou bien 15 appels de 128 kps chacun vers 15 destinations différentes (2 canaux utilisés par appel), ou seulement un petit nombre d'appels, le reste étant inactif. Un canal peut être utilisé pour des appels entrant ou sortant. Le but initial de RNIS était de permettre aux sociétés de Télécommunications de fournir un seul service de données pouvant délivrer soit le téléphone (avec une voix numérisée) ou bien des services de données vers votre domicile ou votre bureau sans avoir à effectuer de changements pour obtenir une configuration spéciale.
Il y a plusieurs façons de connecter votre ordinateur à un service RNIS. L'une consiste à utiliser un dispositif appelé `Adaptateur de Terminal' qui se branche sur l'unité de terminal réseau que votre opérateur de télécommunications a installé au moment de l'obtention de votre service RNIS, et qui présente des interfaces séries. L'une de ces interfaces est utilisée pour entrer les commandes pour établir les appels et la configuration, et les autres sont reliées aux périphériques réseau qui utiliseront les circuits de données quand la connexion sera faite. Linux peut travailler avec ce type de configuration sans modification, vous devez juste traiter le port de l'adaptateur de terminal comme vous traitez tout périphérique série. Une autre façon, qui est la raison d'être pour le support RNIS dans le noyau, vous permet d'installer une carte RNIS dans votre machine Linux et le logiciel Linux prend en charge les protocoles et fait les appels lui-même.
Options de compilation noyau :
ISDN subsystem --->
<*> ISDN support
[ ] Support synchronous PPP
[ ] Support audio via ISDN
< > ICN 2B and 4B support
< > PCBIT-D support
< > Teles/NICCY1016PC/Creatix support
L'implémentation Linux de RNIS supporte différents types de cartes internes RNIS. Il y a celles énumérées dans les options de configuration noyau :
Tous les détails pour configurer le support RNIS Linux se trouvent dans
le répertoire
/usr/src/linux/Documentation/isdn/
et un document FAQ
dédié à
isdn4linux est disponible sur
www.lrz-muenchen.de
(vous pouvez cliquer sur le drapeau anglais pour obtenir la version anglaise).
Note au sujet de PPP. L'ensemble des protocoles PPP peut travailler sur des lignes série synchrone ou asynchrone. Le démon PPP `pppd' couramment distribué pour Linux ne supporte que le mode asynchrone. Si vous désirez utiliser les protocoles PPP avec votre service RNIS vous aurez besoin d'une version spéciale. Les détails pour la trouver se trouvent dans la documentation mentionnée ci-dessus.
Les noms de périphériques PLIP sont `plip0
', `plip1
', `plip2
'.
Options de compilation du noyau :
Networking options --->
<*> PLIP (parallel port) support
PLIP (Parallel Line IP) est, comme SLIP, utilisé pour fournir une connexion réseau point à point entre deux machines, sauf qu'il est conçu pour utiliser les ports parallèles de votre machine au lieu des ports séries. Parce qu'il est possible de transmettre plus d'un bit en même temps avec un port parallèle, il est possible d'atteindre de plus hautes vitesses avec l'interface PLIP qu'avec une sortie série standard (un schéma de câblage est donné plus loin dans ce document). De plus, même le plus simple des ports parallèles, le port imprimante, peut être utilisé, au lieu d'acheter un UART 16550AFN relativement cher pour vos ports séries. PLIP utilise beaucoup de CPU en comparaison d'une liaison série et ce n'est sûrement pas un bon choix si vous avez la possibilité d'avoir des cartes éthernet pas chères, mais ça fonctionne lorsque rien d'autre n'est disponible, et ça fonctionne très bien.
Les pilotes PLIP entrent en compétition avec les autres pilotes du matériel branché sur le port parallèle. Si vous voulez utiliser les deux, vous devez alors les compiler en tant que modules pour pouvoir choisir quel port vous voulez utiliser pour PLIP et quel port pour l'imprimante. Voyez le document ``Modules-mini-HOWTO'' pour plus d'informations sur la configuration des modules noyau.
Attention, notez que certains portables utilisent des circuits qui ne peuvent pas fonctionner avec PLIP car ils n'autorisent pas certaines combinaisons dont PLIP a besoin et que les imprimantes n'utilisent pas.
L'interface Linux PLIP est compatible avec le Pilote PLIP Crynwyr Packet et ceci signifie que vous pouvez connecter votre machine Linux avec une machine DOS tournant avec n'importe quel logiciel TCP/IP via PLIP.
Dans la série des noyaux 2.0.* les pilotes de périphérique PLIP sont affectés aux ports e/s et IRQ comme suit :
device i/o addr IRQ
------ -------- -----
plip0 0x3BC 5
plip1 0x378 7
plip2 0x278 2
Si vos ports parallèles ne correspondent pas aux combinaisons
précédentes alors vous pouvez changer les IRQ en utilisant la
commande
ifconfig avec le paramètre
`irq
'. N'oubliez pas de valider les IRQ pour vos ports imprimantes dans
votre ROM BIOS s'il supporte cette option. Un autre moyen consiste à
spécifier les options ``io=
'' et ``irq=
'' sur la ligne de
commande de insmod
, si vous utilisez les modules. Par exemple :
root# insmod plip.o io=0x288 irq=5
Le fonctionnement de PLIP est contrôlé par deux temporisations de dépassement de temps, dont les valeurs par défaut devraient convenir la plupart du temps. Vous devrez peut-être les augmenter si vous avez un ordinateur particulièrement lent, auquel cas les valeurs devant être augmentées se trouvent sur l'autre ordinateur. Il existe un programme appelé plipconfig qui permet d'effectuer ces réglages sans recompiler le noyau. Il est fourni avec de nombreuses distributions Linux.
Pour configurer une interface plip, vous devez invoquer les commandes suivantes (ou les ajouter à vos scripts d'initialisation) :
root# /sbin/ifconfig plip1 localplip pointopoint remoteplip
root# /sbin/route add remoteplip plip1
Dans ce cas, le port utilisé est celui qui a l'adresse 0x378 ;
localplip et remoteplip sont les adresses IP utilisées
sur le câble PLIP. Je les mets personnellement dans la base de données
/etc/host
:
# entrées plip
192.168.3.1 localplip
192.168.3.2 remoteplip
Le paramètre pointopoint a la même signification que pour SLIP, c'est-à-dire qu'il spécifie l'adresse de la machine à l'autre bout de la liaison.
Dans la plupart des cas vous pouvez traiter l'interface PLIP comme si elle était une interface SLIP, sauf que ni dip ni slattach ne doivent, ou ne peuvent, être utilisés.
Plus d'information sur PLIP peut être obtenu avec le document ``PLIP-mini-HOWTO''.
Durant le développement des versions 2.1 du noyau, le support concernant les ports parallèles s'est amélioré.
Options de compilation du noyau :
General setup --->
[*] Parallel port support
Network device support --->
<*> PLIP (parallel port) support
Le nouveau code concernant PLIP se comporte comme l'ancien ( on utilise les mêmes commandes ifconfig et route comme dans le paragraphe précédent), mais l'initialisation du système est différente en raison du support port parallèle amélioré.
Le ``premier'' périphérique PLIP est toujours appelé ``plip0'', premier
signifiant celui qui est détecté en premier par le système, comme
pour les périphériques Ethernet. Le port parallèle utilisé de fait est
l'un de ceux qui sont disponibles, comme indiqué dans /proc/parport
.
Par exemple, si vous n'avez qu'un seul port parallèle, vous n'aurez qu'un seul
répertoire appelé /proc/parport/0
.
Si votre noyau ne détecte pas l'IRQ utilisée par votre port parallèle,
``insmod plip
'' échouera ; dans ce cas, vous écrivez juste le chiffre
adéquat dans /proc/parport/0/irq
et vous invoquez de nouveau
insmod.
Une information complète sur la gestion des ports parallèles est
disponible dans le fichier Documentation/parport.txt
, qui se
trouve dans les sources du noyau.
Les noms de périphériques PPP sont `ppp0
', `ppp1
', etc.
Les noms sont attribués séquentiellement, le premier
périphérique étant
`0
'.
Options de compilation du noyau :
Networking options --->
<*> PPP (point-to-point) support
La configuration de PPP est discutée en détail dans le PPP-HOWTO.
Si vous êtes suffisamment fortunés pour avoir une connexion semi-permanente avec le net et que vous vouliez que votre machine refasse la connexion PPP en cas de déconnexion, alors voici une astuce simple.
Configurer PPP de sorte qu'il soit démarré par l'utilisateur
root
en lançant la commande :
# pppd
Soyez certains d'avoir l'option `-detach
' dans le fichier
/etc/ppp/options
. Puis, insérez la ligne suivante dans votre
fichier
/etc/inittab
, avec les définitions des getty :
pd:23:respawn:/usr/sbin/pppd
Cela permettra au programme init de démarrer et de surveiller le
programme pppd , et de le redémarrer automatiquement s'il meurt.
Les fichiers de périphériques SLIP sont nommés
`sl0
', `sl1
', etc. Le premier configuré étant
`0
' et les autres s'incrémentant au fur et à mesure de leur configuration.
Options de compilation du noyau :
Network device support --->
[*] Network device support
<*> SLIP (serial line) support
[ ] CSLIP compressed headers
[ ] Keepalive and linefill
[ ] Six bit SLIP encapsulation
SLIP (Serial Line Internet Protocol) vous permet d'utiliser TCP/IP avec une ligne série, ce peut être un téléphone et un modem, ou tout autre ligne dédiée. Bien sûr pour utiliser SLIP vous devez avoir accès à un serveur SLIP dans votre entourage. Beaucoup d'universités et de sociétés fournissent des accès SLIP de par le monde.
SLIP utilise les ports séries de votre machine pour transporter les datagrammes IP. Pour cela il doit prendre le contrôle du périphérique série. Les noms de périphériques SLIP sont sl0, sl1, etc. Comment ceux-ci correspondent avec vos périphériques série ? Le code réseau utilise ce que l'on nomme un appel ioctl (i/o control) pour transformer les périphériques série en périphériques SLIP. Il y a deux programmes qui peuvent faire cela, ce sont dip et slattach.
dip (Dialup IP) est un programme élégant capable de régler la vitesse du dispositif série, de demander à votre modem d'appeler l'autre extrémité de la ligne, de vous connecter automatiquement au serveur distant, de chercher des messages qui vous ont été envoyés par le serveur et d'en extraire des informations telles que votre adresse IP et de faire le ioctl nécessaire pour basculer votre port série en mode SLIP. dip est très flexible quant à l'utilisation de scripts et grâce à ceci vous pouvez automatiser vos procédures de connexion.
On peut le trouver sur : metalab.unc.edu.
Pour l'installer faites :
user% tar xvfz dip337o-uri.tgz
user% cd dip-3.3.7o
user% vi Makefile
root# make install
Le fichier Makefile
suppose l'existence d'un groupe nommé
uucp,
mais vous pouvez le changer en dip ou SLIP, selon votre
configuration.
slattach au contraire de dip est un programme très simple, très facile à utiliser, mais qui n'a pas la sophistication de dip. Il n'a pas la possiblité d'accepter des scripts, tout ce qu'il fait étant de configurer votre périphérique série en périphérique SLIP. Il suppose que vous avez toutes les informations nécessaires et que la liaison série est établie avant de l'invoquer. slattach est idéal quand vous avez une liaison permanente avec votre serveur, comme un câble physique ou une ligne dédiée.
Vous devriez utiliser dip lorsque votre liaison vers la machine qui est votre serveur SLIP est un modem, ou tout autre lien intermittent. Vous devriez utiliser slattach quand vous avez une ligne dédiée, peut-être un câble, entre votre machine et le serveur et qu'il n'y a pas d'action spéciale nécessaire pour garder la ligne en activité. Voir la section `Connexion SLIP permanente' pour plus de détails.
Configurer SLIP est analogue à la configuration d'une interface Ethernet (voir la section `Configurer un périphérique Ethernet' ci-dessus). Cependant, il existe quelques différences.
Tout d'abord, les liens SLIP ne sont pas des réseaux Ethernet en ce sens qu'il n'y a que deux hôtes sur le réseau, un à chaque extrémité de la liaison. À la différence de l'Ethernet qui est disponible dès que vous êtes câblé, avec SLIP, en fonction du type de lien que vous avez, vous serez amené à initialiser votre connexion réseau d'une manière spéciale.
Si vous utilisez dip, alors cela ne sera pas fait au moment du démarrage de la machine, mais plus tard, quand vous serez prêt à utiliser la liaison. Il est possible d'automatiser la procédure. Si vous utilisez slattach vous voudrez probablement ajouter une section dans votre fichier rc.inet1. Ceci sera décrit bientôt.
Il y a deux types principaux de serveurs SLIP : serveurs avec adressage IP dynamique et serveurs avec adressage IP statique. Presque tous les serveurs SLIP vous demanderont à la connexion d'utiliser un nom d'utilisateur et un mot de passe quand vous composez le numéro. dip peut prendre en charge la connexion automatiquement.
Le serveur SLIP statique est celui qui vous fournit une adresse IP qui reste
exclusivement la vôtre. À chaque fois que vous vous connectez à ce
serveur, vous configurez votre port SLIP avec cette adresse. Le serveur SLIP
statique répond à votre appel par modem, vous demande probablement
un nom d'utilisateur et un mot de passe, et ensuite dirige tous
les datagrammes destinés à votre adresse au travers de
cette connexion. Si vous avez un serveur statique, alors vous mettez des
entrées pour votre nom d'hôte et votre adresse IP (puisque vous
savez ce qu'elle sera) dans votre fichier
/etc/hosts
. Vous devez aussi configurer d'autres fichiers
comme :
rc.inet2
, host.conf
, resolv.conf
,
/etc/HOSTNAME
et rc.local
. N'oubliez pas qu'en configurant
rc.inet1
, vous n'avez pas besoin d'ajouter de commandes
spéciales pendant la connexion SLIP puisque c'est
dip qui fait tout le dur labeur à votre place en configurant
votre interface. Vous avez besoin de donner à
dip les informations adéquates et il configure l'interface
pour vous après avoir demandé au modem d'établir
l'appel et de vous connecter au serveur.
Si votre serveur SLIP fonctionne comme cela alors vous pouvez directement aller à la section `Utiliser Dip' pour apprendre à configurer dip convenablement.
Le serveur SLIP dynamique vous alloue une adresse IP de manière aléatoire, à partir d'un groupe d'adresses, à chaque fois que vous vous connectez. Cela signifie qu'il n'y a aucune garantie d'avoir la même adresse à chaque fois, et que celle-ci peut être utilisée par quelqu'un d'autre après la déconnexion. L'administrateur réseau qui a configuré le serveur SLIP a assigné un groupe d'adresses que le serveur SLIP peut utiliser quand il reçoit un appel entrant. Il prend alors la première adresse inutilisée, guide l'appelant au travers du processus de connexion et envoie un message de bienvenue contenant l'adresse IP qu'il a allouée et continue d'utiliser cette adresse tout le temps de l'appel.
Configurer ce type de serveur revient à configurer un serveur statique, sauf que vous devez ajouter une étape pour obtenir l'adresse IP allouée par le serveur puis configurer le périphérique SLIP avec celle-ci.
Encore une fois, dip fait le sale boulot et les nouvelles versions sont suffisamment élégantes pour non seulement établir la connexion, mais aussi pour lire l'adresse IP inscrite dans le message de bienvenue et la stocker de telle sorte que vous puissiez configurer votre périphérique SLIP avec.
Si votre serveur SLIP fonctionne ainsi, alors vous pouvez aller à la section `Utiliser DIP' pour savoir comment configurer dip de manière adéquate.
Comme expliqué plus haut, dip est un programme puissant qui simplifie et automatise le processus de composition d'un numéro vers un serveur SLIP, se connecte dessus, démarre la connexion et configure les périphériques SLIP à l'aide des commandes ifconfig et route appropriées.
Essentiellement, pour utiliser dip vous écrivez un `script dip'
qui est tout simplement une liste de commandes que
dip comprend et qui lui dit
comment réaliser chacune des actions que vous voulez qu'il
fasse. Voyez le fichier
sample.dip
fourni avec dip pour avoir une idée de
la manière dont il travaille.
dip est vraiment un programme puissant, avec beaucoup d'options.
Au lieu de regarder chacune d'elles, il vaut mieux jeter un coup d'oeil dans
la page de manuel, le fichier README et les fichiers d'exemple qui sont fournis
avec votre version de dip.
Vous pouvez noter que le script sample.dip
suppose que vous utilisez
un serveur SLIP statique, aussi vous connaissez votre adresse IP à
l'avance. Pour les serveurs SLIP dynamiques, les nouvelles versions de
dip incluent une commande que vous pouvez utiliser pour lire
et configurer automatiquement votre périphérique SLIP avec
l'adresse IP donnée par le serveur dynamique. L'exemple suivant
est une version modifiée du fichier
sample.dip
fourni avec
dip337j-uri.tgz et qui est probablement un bon point de départ
pour vous. Vous pouvez le sauvegarder sous le nom de
/etc/dipscript
et l'éditer pour l'adapter à votre
configuration :
#
# sample.dip Programme de support pour connexion IP.
#
# Ce programme (devrait montrer) montre comment utiliser DIP
# Il devrait fonctionner avec des serveurs dynamiques de type Annex,
# et si vous utilsez un serveur avec adresse statique utilsez alors le
# fichier sample.dip livré avec le paquetage dip337-uri.tgz.
#
#
# Version: @(#)sample.dip 1.40 07/20/93
#
# Auteur: Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
#
main:
# Après, postionner l'adresse et le nom de l'hôte distant.
# Ma machine s'appelle 'xs4all.hacktic.nl' (== 193.78.33.42)
get $remote xs4all.hacktic.nl
# Positionne le masque de réseau sur sl0 à 255.255.255.0
netmask 255.255.255.0
# Règle le port série et la vitesse.
port cua02
speed 38400
# Reset le modem et la ligne de terminal.
# Cela semble poser problème à certains!
reset
# Notez! Valeurs "standards" prédéfinies de "errlevel":
# 0 - OK
# 1 - CONNECT
# 2 - ERROR
#
# Vous pouvez les changer en faisant un grep dans *.c avec "addchat()"...
# On se prépare pour numéroter.
send ATQ0V1E1X4\r
wait OK 2
if $errlvl != 0 goto modem_trouble
dial 555-1234567
if $errlvl != 1 goto modem_trouble
# Nous sommes connectés. Nous nous enregistrons sur le système.
login:
sleep 2
wait ogin: 20
if $errlvl != 0 goto login_trouble
send MYLOGIN\n
wait ord: 20
if $errlvl != 0 goto password_error
send MYPASSWD\n
loggedin:
# Maintenant nous sommes enregistrés.
wait SOMEPROMPT 30
if $errlvl != 0 goto prompt_error
# Demande au serveur de basculer en mode SLIP
send SLIP\n
wait SLIP 30
if $errlvl != 0 goto prompt_error
# Obtenir et ajuster notre adresse IP grâce au serveur.
# Ici nous supposons qu'après le basculement du serveur en mode SLIP, celui-ci
# nous donne l'adresse IP
# mode that it prints your IP address
get $locip remote 30
if $errlvl != 0 goto prompt_error
# réglage des paramètres SLIP.
get $mtu 296
# S'assurer que "route add -net default xs4all.hacktic.nl" sera fait
default
# Dire bonjour, et en avant!
done:
print CONNECTED $locip ---> $rmtip
mode CSLIP
goto exit
prompt_error:
print TIME-OUT waiting for sliplogin to fire up...
goto error
login_trouble:
print Trouble waiting for the Login: prompt...
goto error
password:error:
print Trouble waiting for the Password: prompt...
goto error
modem_trouble:
print Trouble occurred with the modem...
error:
print CONNECT FAILED to $remote
quit
exit:
exit
L'exemple précédent suppose que vous appeliez un serveur SLIP
dynamique ; si vous appelez un serveur SLIP
statique, alors le fichier sample.dip
founi avec
dip337j-uri.tgz devrait vous convenir.
Quand on donne à dip la commande get $local, il cherche dans le texte venant de l'extrémité de la ligne une chaîne de caractères ressemblant à une adresse IP, c'est à dire des ensembles de nombres séparés par des caractères `.'. Cette modification fut mise en place plus spécialement pour les serveurs SLIP dynamiques, afin que le processus de lecture de l'adresse IP fournie par le serveur soit automatisé.
L'exemple ci-dessus crée automatiquement une route par défaut via votre liaison SLIP, et si ce n'est pas ce que vous voulez, car vous avez une connexion Ethernet qui devrait être votre route par défaut, alors enlevez la commande default du script. Après que le script ait fini de tourner, tapez la commande ifconfig, et vous verrez que vous avez un périphérique sl0. C'est votre périphérique SLIP. Si le besoin s'en fait sentir, vous pouvez modifier manuellement sa configuration, après que la commande dip soit finie, en utilisant les commandes ifconfig et route.
Notez que dip vous permet de choisir parmi différents
protocoles en utilisant la commande mode
, l'exemple le plus
courant étant cSLIP pour utiliser SLIP avec compression.
Notez encore que les deux extrémités de la liaison doivent
être d'accord, aussi assurez-vous que ce que vous avez choisi est
en accord avec les réglages du serveur.
L'exemple montré ci-dessus est plutôt robuste et devrait faire face à la plupart des erreurs. Référez-vous à la page de manuel de dip pour plus d'informations. Naturellement, vous pouvez, par exemple, modifier le script pour réaliser des choses comme recomposer le numéro vers le serveur si la connexion n'a pas été faite au bout d'un certain temps, ou même essayer une série de serveurs si vous avez accès à plus d'un d'entre eux.
Si vous avez deux machines reliées par un câble, ou si vous êtes suffisamment riche pour avoir une ligne dédiée, ou un autre type de connexion permanente entre votre machine et une autre, alors vous n'avez pas besoin de vous casser la tête avec dip pour régler votre liaison série. slattach est un utilitaire très simple à utiliser et vous permet d'avoir les fonctionnalités juste nécessaires pour configurer votre connexion.
Puisque votre connexion est permanente, vous ajoutez quelques commandes
dans votre fichier rc.inet1
. Tout ce dont vous avez besoin pour
une connexion permanente est de vous assurer que vous avez configuré
votre périphérique série à la bonne vitesse et
basculer votre périphérique série en mode SLIP.
slattach vous permet de faire ceci avec une seule commande.
Ajoutez ce qui suit à votre fichier
rc.inet1
:
#
# Attache une connexion SLIP statique sur une ligne dédiée
#
# configure /dev/cua0 à la vitesse de 19.2kbps et cslip
/sbin/slattach -p cslip -s 19200 /dev/cua0 &
/sbin/ifconfig sl0 IPA.IPA.IPA.IPA pointopoint IPR.IPR.IPR.IPR up
#
# Fin de SLIP statique.
Où :
représente votre adresse IP.
représente l'adresse IP de l'hôte distant.
slattach alloue le premier périphérique SLIP disponible au périphérique série spécifié. slattach démarre avec sl0. Par conséquent la première commande slattach relie le périphérique sl0 au périphérique spécifé, puis sl1 la fois suivante, etc.
slattach vous permet de configurer un certain nombre de protocoles
grâce à l'argument -p
. Dans votre cas vous utilisez
soit SLIP soit cSLIP suivant que vous voulez utiliser la
compression ou non.
Note : les deux extrémités doivent être d'accord sur
l'utilisation de la compression.
Vous avez peut-être une machine connectée au réseau et vous aimeriez que d'autres personnes puissent s'y connecter pour y chercher des services de réseau, alors vous devez configurer votre machine comme serveur. Si vous voulez utiliser SLIP comme protocole de ligne série, vous avez trois possiblités pour configurer votre machine Linux comme serveur SLIP. Ma préférence est la première présentée, sliplogin, car elle semble la plus facile à configurer et à comprendre, mais je présenterai un résumé pour chacune, ainsi vous pourrez décider par vous-même.
sliplogin est un programme que vous pouvez utiliser à la place du shell normal de connexion pour les utilisateurs SLIP, et qui convertit la ligne terminal en ligne SLIP. Il vous permet de configurer votre machine Linux soit en serveur à adresse statique (les utilisateurs obtiennent toujours la même adresse à chaque connexion), soit en serveur à adresse dynamique (les utilisateurs obtiennent une adresse qui n'est pas forcément la même que lors de la connexion précédente).
L'appelant se connecte comme sur un terminal standard, en donnant son
nom d'utilisateur et son mot de passe, mais au lieu d'avoir une invite de
shell après la connexion, sliplogin est exécuté
et cherche dans son fichier de configuration une entrée dont le nom
correspond à celui de l'appelant. S'il en détecte
une, il configure la ligne avec 8 bits de données,
et utilise un appel ioctl pour basculer celle-ci en ligne SLIP.
Quand ce processus est fini, la dernière étape de la
configuration prend place, sliplogin invoquant un script qui configure
l'interface SLIP avec l'adresse IP adéquate, ainsi que le masque de
réseau et positionne le routage approprié. Ce script est
appelé habituellement /etc/slip.login
, mais tout comme
getty, si certains appelants nécessitent une initialisation
spéciale, alors vous pouvez créer des scripts de configuration
appelés /etc/slip.login.loginname
qui seront utilisés
à la place du script par défaut.
Il y a quelques fichiers que vous devez configurer pour que sliplogin travaille pour vous. Je décrirai comment et où obtenir les logiciels et comment chacun est configuré. Ces fichiers sont :
/etc/passwd
, pour l'acceptation des utilisateurs entrants;/etc/slip.hosts
, qui contient une information spécifique de chaque utilisateur entrant;/etc/slip.login
, qui s'occupe de la configuration du routage; /etc/slip.tty
, requis uniquement si vous configurez votre
serveur avec allocation d'adresse dynamique : il contient une
table des adresses à allouer./etc/slip.logout
, qui contient les commandes de `nettoyage'
après une déconnexion volontaire ou intempestive.
Votre distribution contient peut-être déjà le paquetage; si ce n'est pas le cas alors sliplogin peut être obtenu sur metalab.unc.edu. Le fichier tar contient à la fois les sources, les binaires précompilés et une page de manuel.
Pour s'assurer que seuls les utilisateurs autorisés pourront faire
tourner le programme sliplogin, vous devez ajouter une entrée
dans votre fichier /etc/group
similaire à la suivante :
..
slip::13:radio,fred
..
Lorsque vous installez le paquetage sliplogin, Makefile
change le groupe du programme sliplogin en slip
, et cela
signifie que seuls les utilisateurs qui appartiennent à ce groupe
pourront l'exécuter. L'exemple donné ci-dessus ne permet
qu'aux utilisateurs radio
et fred
de pouvoir faire tourner
le programme sliplogin.
Pour installer les binaires dans le répertoire /sbin
et les pages de manuel dans la section 8, faites :
root# cd /usr/src
root# gzip -dc .../sliplogin-2.1.1.tar.gz | tar xvf -
root# cd sliplogin-2.1.1
root# <..editez le Makefile si vous n'utilisez pas les shadow passwords..>
root# make install
Si vous voulez recompiler les binaires avant de les installer, faites
make clean
avant de faire make install
. Si vous voulez installer
les binaires autre part, vous devez éditer le fichier Makefile
et le modifier en conséquence.
Lisez les fichiers README
qui sont inclus dans le paquetage pour
plus d'informations.
/etc/passwd
pour utiliser SLIPNormalement vous devez créer des noms d'utilisateurs spéciaux,
pour ceux qui appellent avec SLIP, dans votre fichier /etc/passwd
.
Une convention souvent suivie est d'utiliser le nom d'utilisateur de
l'appelant préfixée avec la lettre capitale `S'.
Ainsi, par exemple, si l'appelant s'appelle radio
alors
vous pouvez créer une entrée dans le fichier /etc/passwd
ressemblant à ceci :
Sradio:FvKurok73:1427:1:radio SLIP login:/tmp:/sbin/sliplogin
Le nom du compte n'a pas réellement d'importance, du moment qu'il ait une signification pour vous.
Note : l'appelant n'a pas besoin de répertoire home spécial
car il n'utilisera pas de shell sur la machine, dès lors /tmp
est un bon choix. Notez bien que sliplogin est utilisé
à la place du shell de connexion normal.
/etc/slip.hosts
Le fichier /etc/slip.hosts
est le fichier où sliplogin
cherche les entrées correspondant au nom de connexion pour obtenir
les détails de configuration. C'est le fichier
où sont indiqués l'adresse IP et le masque de réseau qui
seront assignés à l'appelant et configurés pour leur
usage. Des exemples d'entrées pour deux utilisateurs, une
statique pour radio
et l'autre dynamique pour albert
ressemblent
à ceci :
#
Sradio 44.136.8.99 44.136.8.100 255.255.255.0 normal -1
Salbert 44.136.8.99 DYNAMIC 255.255.255.0 compressed 60
#
Les entrées du fichier /etc/slip.hosts
sont :
DYNAMIC
alors l'adresse IP sera allouée suivant les informations
contenues dans le fichier
/etc/slip.tty
décrit plus loin. Note :
vous devez utiliser au moins la version 1.3 de sliplogin pour que cela
fonctionne.normal
" et "compressed
".Note : Vous pouvez mettre soit les noms d'hôtes soit les adresses IP en
notation décimale pointée pour les champs 2 et3.
Si vous utilisez les noms d'hôtes, alors ces hôtes doivent
être résolubles, c'est à dire que votre machine
est capable de déterminer une adresse IP pour ces noms d'hôtes,
autrement le script échouera pendant l'appel. Vous pouvez le tester
en faisant telnet vers un nom d'hôte : si vous obtenez le message
`Trying nnn.nnn.nnn...' alors votre machine est capable de trouver une
adresse ip pour ce nom d'hôte. Si vous obtenez le message
`Unknown host', alors il n'en a pas. Dans ce cas essayez d'utiliser
l'adress IP en notation décimale pointée ; ou bien voyez
du côté de votre configuration de solveur de noms (voir
la section Résolution de noms
).
Les modes les plus courants de SLIP sont :
mode SLIP normal non compressé.
mode avec compression van Jacobsen des en-têtes (cSLIP)
Bien sûr ils sont mutuellement exclusifs, vous devez utiliser l'un ou l'autre. Pour plus d'informations sur les options disponibles, voir les pages de manuels.
/etc/slip.login
.Après que sliplogin ait exploré le fichier
/etc/slip.hosts
et ait trouvé une entrée qui
convient, il essaye d'exécuter le fichier
/etc/slip.login
pour effectivement configurer l'interface SLIP avec
son adresse IP et son masque de réseau.
L'exemple de fichier /etc/slip.login
fourni avec le paquetage
sliplogin ressemble à ceci :
#!/bin/sh -
#
# @(#)slip.login 5.1 (Berkeley) 7/1/90
#
# fichier générique de connexion pour une ligne SLIP. Invoqué par sliplogin
# avec les paramètres:
# $1 $2 $3 $4, $5, $6 ...
# unité SLIP vitesse pid arguments tirés de slip.host
#
/sbin/ifconfig $1 $5 pointopoint $6 mtu 1500 -trailers up
/sbin/route add $6
arp -s $6 <hw_addr> pub
exit 0
#
Notez que ce script utilise seulement les commandes ifconfig et route pour configurer le périphérique SLIP avec sa propre adresse IP, l'adresse IP de l'hôte distant , le masque de réseau puis crée une route vers l'adresse distante via le périphérique SLIP. C'est-à-dire la même chose que si vous utilisiez la commande slattach.
Notez aussi l'utilisation de Proxy ARP pour s'assurer que les
hôtes placés sur le même segment éthernet que la machine serveur
sauront comment atteindre l'hôte qui s'est connecté.
Le champ <hw_addr>
doit être l'adresse matérielle
de la carte Ethernet de la machine. Si votre machine serveur n'est pas sur un
réseau Ethernet, vous pouvez ignorer cette ligne.
/etc/slip.logout
Quand la connexion s'est arrêtée, assurez-vous que le
périphérique série soit revenu à son état
normal de telle sorte que les appelants suivants puissent se connecter
correctement. Ceci est accompli en utilisant le fichier
/etc/slip.logout
. Il est de format très simple et est
appelé avec le même argument que le fichier
/etc/slip.login
.
#!/bin/sh -
#
# slip.logout
#
/sbin/ifconfig $1 down
arp -d $6
exit 0
#
Tout ce qu'il fait est de `mettre à zéro' l'interface qui supprimera la route précédemment créée. Il utilise aussi la commande arp pour supprimer tout arp proxy en place, encore une fois vous n'avez pas besoin de la commande arp dans le script si votre machine serveur ne possède pas de port Ethernet.
/etc/slip.tty
Si vous utilisez une allocation d'adresse ip dynamique (tous les hôtes
configurés avec le mot-clé
DYNAMIC
dans le fichier /etc/slip.hosts
) alors vous devez
configurer le fichier
/etc/slip.tty
pour lister les adresses qui seront
assignées aux ports. Vous n'aurez besoin de ce fichier
que si vous voulez que votre serveur alloue des adresses aux utilisateurs
de manière dynamique.
Ce fichier est un tableau qui liste les périphériques tty supportant les connexions SLIP entrantes et l'adresse ip qui sera assignée aux utilisateurs se connectant à ceux-ci.
Son format est le suivant :
# slip.tty mappage d'adresses tty -> IP pour SLIP dynamique
# format: /dev/tty?? xxx.xxx.xxx.xxx
#
/dev/ttyS0 192.168.0.100
/dev/ttyS1 192.168.0.101
#
Ce que dit ce tableau est que les appelants qui se connectent sur le port
/dev/ttyS0
et dont le champ adresse dans le fichier
/etc/slip.hosts
vaut sur
DYNAMIC
auront l'adresse 192.168.0.100
.
De cette manière vous n'avez besoin d'allouer qu'une seule adresse par port pour tous les utilisateurs n'ayant pas besoin d'adresse fixe. Ceci vous permet d'avoir le nombre minimum d'adresses nécessaires pour éviter du gaspillage.
Tout d'abord laissez-moi dire que certaines informations ci-dessous proviennent des pages de manuel de dip, où la manière de faire tourner Linux comme serveur SLIP est brièvement décrite. Faites attention aussi que ce qui suit est fondé sur le paquetage dip337o-uri.tgz et ne s'applique vraisemblablement pas à d'autres versions de dip.
dip possède un mode de traitement des données
d'entrée qui permet de localiser automatiquement
un utilisateur entrant
et qui configure la ligne série comme lien SLIP
suivant les informations trouvées dans le fichier
/etc/diphosts
.
Ce mode est activé en invoquant dip
avec diplogin. Voilà donc comment utiliser dip comme
serveur SLIP, en créant des comptes spéciaux où
diplogin est utilisé comme shell de connexion.
La première chose à faire est de créer un lien symbolique comme suit :
# ln -sf /usr/sbin/dip /usr/sbin/diplogin
Ensuite vous devez ajouter des entrées à la fois dans vos
fichiers /etc/passwd
et
/etc/diphosts
. Les entrées que vous devez
y mettre sont formatées comme suit :
Pour configurer Linux comme serveur SLIP avec dip, vous devez créer quelques comptes SLIP spéciaux pour les utilisateurs, où dip (en mode d'entrée) est utilisé comme shell de connexion. Une convention suggérée est d'avoir tous les comptes SLIP commençant avec la lettre `S' majuscule, par exemple `Sfredm'.
Un exemple d'entrée dans /etc/passwd
pour un utilisateur
SLIP ressemble à ceci :
Sfredm:ij/SMxiTlGVCo:1004:10:Fred:/tmp:/usr/sbin/diplogin
^^ ^^ ^^ ^^ ^^ ^^ ^^
| | | | | | \__ diplogin comme shell de connexion
| | | | | \_______ Répertoire personnel
| | | | \____________ Nom complet d'utilisateur
| | | \_________________ GID
| | \_____________________ UID
| \_______________________________ Mot de passe chiffré
\__________________________________________ Nom de connexion Slip
Après la connexion de l'utilisateur, le programme login
(s'il trouve et accepte l'utilisateur) exécute la commande
diplogin. dip, lorsqu'il est invoqué en tant que
diplogin sait qu'il sera automatiquement
utilisé comme shell de connexion.
Quand il est démarré comme diplogin la
première chose qu'il fait est d'utiliser l'appel de la fonction
getuid() pour obtenir l'identificateur de l'utilisateur
appelant. Il regarde ensuite dans le fichier
/etc/diphosts
pour trouver la première entrée
qui corresponde soit à l'utilisateur soit au
périphérique tty où l'appel est entré
et se configure lui-même de manière appropriée.
Par un choix judicieux : soit de donner à l'utilisateur
une entrée dans le fichier
diphosts
, soit de laisser à l'utilisateur la
configuration par défaut, vous pouvez construire votre serveur de telle
manière que vous puissiez faire cohabiter des utilisateurs ayant
des adresses allouées statiquement ou dynamiquement.
dip ajoutera automatiquement une entrée `Proxy-ARP' si elle est invoquée en mode d'entrée, aussi vous n'avez pas à vous soucier d'ajouter de telles entrées manuellement.
/etc/diphosts
/etc/diphosts
est utilisé par dip pour
examiner des configurations préétablies concernant
des hôtes éloignés. Ceux-ci peuvent être des
hôtes se connectant sur votre machine, ou bien des machines sur
lesquelles vous vous connectez.
Le format général de /etc/diphosts
est :
..
Suwalt::145.71.34.1:145.71.34.2:255.255.255.0:SLIP uwalt:CSLIP,1006
ttyS1::145.71.34.3:145.71.34.2:255.255.255.0:Dynamic ttyS1:CSLIP,296
..
Les champs sont :
nom de connexion
: comme retourné par getpwuid(getuid())
ou bien le nom de tty.inutilisé
: pour compatibilité avec passwdAdresse distante
: adresse IP de l'appelant, soit
numérique soit nominativeAdresse locale
: adresse IP de cette machine, soit
numérique soit nominative.Masque de réseau
: en notation décimale
pointéeCommentaires
: vous y mettez ce que vous voulez.protocole
: Slip, CSlip, etc.MTU
: nombre décimalUn exemple d'entrée /etc/net/diphosts
pour un hôte
distant peut être :
Sfredm::145.71.34.1:145.71.34.2:255.255.255.0:SLIP uwalt:SLIP,296
qui spécifie une liaison SLIP avec une adresse distante de 145.71.34.1 et un MTU de 296, ou :
Sfredm::145.71.34.1:145.71.34.2:255.255.255.0:SLIP uwalt:CSLIP,1006
qui spécifie une liaison compatible cSLIP avec une adresse distante de 145.71.34.1 et un MTU de 1006.
Dès lors, tous les utilisateurs à qui vous permettez
d'avoir une connexion avec allocation d'adresse IP statique auront une
entrée dans /etc/diphosts
. Si vous voulez que des
utilisateurs qui appellent sur un port particulier aient leur adresse
allouée dynamiquement, vous devez avoir une entrée pour
le périphérique tty
, mais pas d'entrée
pour l'utilisateur lui-même. Vous devez vous souvenir de configurer
au moins une entrée pour chaque périphérique tty
que vos utilisateurs entrants utiliseront pour être sûrs
qu'une configuration adéquate soit disponible, indépendamment
du modem sur lequel ils se connectent.
Quand un utilisateur se connecte, il recevra une invite normal de login
et une demande de mot de passe, pour lesquels il devra entrer son
identificateur SLIP et son mot de passe. Si tout est correct, l'utilisateur
ne verra pas de message spécial, il devra juste basculer en mode SLIP
chez lui et ensuite il sera connecté et configuré avec
les paramètres contenus dans le fichier diphosts
.
Matt Dillon <dillon@apollo.west.oic.com>
a écrit
un paquetage qui permet des liaisons SLIP non seulement entrantes mais aussi
sortantes. Le paquetage de Matt est une combinaison de petits programmes
et de scripts qui prennent en charge les connexions à votre place.
Vous aurez besoin de tcsh car au moins l'un des scripts en a
besoin. Matt fournit une copie binaire de l'utilitaire expect
car il est aussi nécessaire pour l'un des scripts.
Il serait préférable
d'avoir une certaine expérience de expect pour que ce
paquetage soit utile pour vous, mais que cela ne vous décourage pas.
Matt a écrit une bonne procédure d'installation dans le fichier README, aussi je ne me fatiguerai pas à la répéter.
Vous pouvez récupérer le paquetage dSLIP sur son site d'origine :
apollo.west.oic.com
/pub/linux/dillon_src/dSLIP203.tgz
ou bien sur :
metalab.unc.edu
/pub/Linux/system/Network/serial/dSLIP203.tgz
Lisez le fichier README
et créez les entrées
/etc/passwd
et
/etc/group
avant de faire make install
.