Ce qui suit décrit une manière de configurer une machine FreeBSD pour utiliser SLIP sur un réseau où les noms de machine sont statiques. Si le nom de machine est affecté dynamiquement (votre adresse change à chaque connexion), vous devrez probablement utiliser une méthode plus sophistiquée.
Tout d'abord, déterminez sur quel port série
votre modem est connecté. De nombreuses personnes
utilisent un lien symbolique, comme
/dev/modem
, pour pointer vers le nom
réel du périphérique,
/dev/cuaaN
(ou
/dev/cuadN
sous FreeBSD 6.X). Ceci
vous permet de faire abstraction du véritable nom du
périphérique même si vous déplacez
le modem vers un autre port. Cela évite le
côté pénible de devoir modifier un certain
nombre de fichiers dans le répertoire /etc
et les fichiers
.kermrc
pour l'ensemble du
système!
/dev/cuaa0
(ou
/dev/cuad0
sous FreeBSD 6.X)
représente COM1
,
cuaa1
(ou
/dev/cuad1
)
COM2
, etc.
Assurez-vous d'avoir dans votre fichier de configuration du noyau ce qui suit:
Sous FreeBSD 4.X, utilisez à la place la ligne suivante:
Cette configuration fait partie du noyau
GENERIC
, aussi cela ne devrait pas
être un problème à moins que vous ne
l'ayez effacée.
Ajoutez votre machine, la passerelle et les serveurs
de noms de domaines à votre fichier
/etc/hosts
. Le notre ressemble
à ceci:
Assurez-vous que hosts
apparaît avant bind
dans votre
fichier /etc/host.conf
sous les
versions de FreeBSD antérieures à 5.0. Depuis
FreeBSD 5.0, le système utilise à la place
le fichier /etc/nsswitch.conf
,
vérifiez que files
est avant
dns
dans la ligne
hosts
de ce fichier. Sans ces
paramètres, il peut se passer des choses
bizarres.
Editez le fichier
/etc/rc.conf
.
Définissez votre nom de machine en éditant la ligne:
Le nom Internet complet de la machine doit être utilisé ici.
Ajoutez sl0
à la
liste des interfaces réseau en modifiant la
ligne:
en:
Définissez les paramètres de
configuration de sl0
en
ajoutant une ligne:
Indiquez la passerelle par défaut en modifiant la ligne:
en:
Créez un fichier
/etc/resolv.conf
qui contient:
Comme vous pouvez le voir, ceci définit les serveurs de noms de domaines. Bien entendu, les noms de domaines et les adresses dépendront de votre environnement.
Donnez des mots de passe pour les utilisateurs
root
et toor
(et à tous les autres comptes qui n'auraient pas
de mot de passe).
Redémarrez votre machine et vérifiez qu'elle a bien le nom voulu.
Téléphonez, tapez
slip
à l'invite, puis entrez
votre nom de machine et votre mot de passe. Ce que vous
devez entrer dépend de votre environnement. Si
vous utilisez Kermit, vous
pouvez essayer une procédure comme celle-ci:
Vous devez, bien évidemment, remplacer le nom
d'utilisateur et le mot de passe par les votre.
Après cela vous pouvez alors entrer simplement
slip
à l'invite de
Kermit pour vous
connecter.
Conserver votre mot de passe en clair dans un fichier quelconque est en général une mauvaise idée. Faites-le à vos risques et périls.
Laissez ensuite Kermit
tel quel (vous pouvez le mettre en arrière-plan
avec
Ctrl+z) et en tant que root
,
tapez:
#
slattach -h -c -s 115200 /dev/modem
Si vous êtes en mesure d'envoyer un
ping
vers des machines situées
de l'autre côté du routeur, c'est que vous
êtes connecté! Si cela ne fonctionne pas,
vous pouvez essayer l'option -a
au lieu
de -c
en argument de
slattach
.
Effectuez ceci:
#
kill -INT `cat /var/run/slattach.modem.pid`
pour tuer slattach
. Gardez à
l'esprit que vous devez avoir les droits du
super-utilisateur pour faire cela. Revenez ensuite sous
kermit
(en tapant fg
si l'avez mis en tâche de fond) et quittez-le
(q).
La page de manuel de slattach(8) dit que vous devez
employer la commande ifconfig sl0 down
pour indiquer que l'interface n'est plus active, mais cela
ne change apparemment rien (les diagnostics donnés
par la commande ifconfig sl0
restent
identiques).
Il arrive que parfois que votre modem refuse de
raccrocher. Dans ce cas, relancez kermit
et quittez-le de nouveau. Cela fonctionne en
général à la seconde tentative.
Si cela ne fonctionne pas, n'hésitez pas à contacter la liste de diffusion freebsd-net. Voici les problèmes que certains ont rencontré jusqu'ici:
Ne pas utiliser l'option -c
ou
-a
avec slattach
(Cela
ne devrait pas poser de problème, mais des
utilisateurs ont signalé que l'utilisation de cet
indicateur a résolu leur problème).
Utiliser s10
au lieu de
sl0
(avec certaines polices de
caractères, il est parfois difficile de faire la
différence).
Essayez ifconfig sl0
pour
connaître la configuration de votre interface.
Vous obtiendrez, par exemple:
#
ifconfig sl0
sl0: flags=10<POINTOPOINT>
inet 136.152.64.181 --> 136.152.64.1 netmask ffffff00Si vous obtenez le message d'erreur no
route to host lors de l'utilisation de
ping(8), il se peut qu'il y ait un problème
avec votre table de routage. Vous pouvez utiliser la
commande netstat -r
pour afficher les
routes actives:
#
netstat -r
Routing tables
Destination Gateway Flags Refs Use IfaceMTU Rtt Netmasks:
(root node)
(root node)
Route Tree for Protocol Family inet:
(root node) =>
default inr-3.Example.EDU UG 8 224515 sl0 - -
localhost.Exampl localhost.Example. UH 5 42127 lo0 - 0.438
inr-3.Example.ED water.CS.Example.E UH 1 0 sl0 - -
water.CS.Example localhost.Example. UGH 34 47641234 lo0 - 0.438
(root node)Les exemples précédents proviennent d'un système relativement chargé. La valeurs sur votre système varieront en fonction de l'activité réseau.
Ce document donne des indications pour la mise en oeuvre d'un serveur SLIP sur un système FreeBSD, ce qui signifie généralement configurer votre système pour ouvrir automatiquement une connexion à l'ouverture d'une session depuis un client SLIP distant.
Cette section est très technique, il vous faut donc quelques connaissances de base. On supposera que vous connaissez le protocole réseau TCP/IP et, en particulier, l'adressage des réseaux et des noeuds, les masques de sous-réseau, les sous-réseaux, le routage et les protocoles de routage tels que RIP. Ce sont les concepts que vous devez maîtriser pour configurer les services SLIP sur un serveur de connexions, et si ce n'est pas le cas, veuillez lire TCP/IP Network Administration de Craig Hunt chez O'Reilly & Associates, Inc. (ISBN 0-937175-82-X), ou les ouvrages de Douglas Comer sur le protocole TCP/IP.
On suppose également que vous avez
déjà installé vos modems et
configuré les fichiers systèmes
appropriés pour permettre l'ouverture de session via
vos modems. Si vous ne l'avez pas encore fait reportez-vous
à la Section 25.4, « Dial-in Service » pour des informations sur
la configuration des connexions entrantes. Vous pouvez aussi
consulter les pages de manuel de sio(4) pour plus
d'information sur le pilote du port série et
ttys(5), gettytab(5), getty(8), & et
init(8) en ce qui concerne la configuration du
système pour qu'il autorise les connexions en
provenance de modems, et peut-être la page de manuel
stty(1) pour des informations sur le paramétrage
des ports série (comme clocal
pour
les interfaces série directement
connectées).
Une configuration typique d'utilisation de FreeBSD comme
serveur SLIP fonctionne de la manière suivante: un
utilisateur SLIP appelle votre serveur SLIP FreeBSD et ouvre
une session sous un identifiant utilisateur SLIP particulier
qui lance /usr/sbin/sliplogin
comme
interpréteur de commandes. Le programme
sliplogin
consulte le fichier
/etc/sliphome/slip.hosts
à la
recherche d'une ligne correspondant à cet utilisateur
particulier, et s'il la trouve, connecte la ligne
série à une interface SLIP disponible et lance
ensuite la procédure
/etc/sliphome/slip.login
pour
configurer cette interface SLIP.
Par exemple, si Shelmerg
était un identifiant utilisateur SLIP,
l'entrée pour Shelmerg
ressemblerait à ceci:
Quand Shelmerg
ouvre une session,
sliplogin
consulte
/etc/sliphome/slip.hosts
à la
recherche d'une ligne correspondant à l'identifiant
de l'utilisateur correspondant; par exemple, il peut y
avoir dans le fichier
/etc/sliphome/slip.hosts
la
ligne:
sliplogin
trouvera alors cette
ligne, affectera la ligne série à
l'interface SLIP suivante,et ensuite exécutera
/etc/sliphome/slip.login
avec les
arguments suivants:
Si tous se passe bien,
/etc/sliphome/slip.login
exécutera un ifconfig
sur
l'interface SLIP que s'est attribué
sliplogin
(l'interface SLIP 0, dans
l'exemple ci-dessus, qui est le premier paramètre
passé à slip.login
)
pour définir l'adresse IP locale
(dc-slip
), l'adresse IP de la machine
distante (sl-helmer
), le masque de
sous-réseau de l'interface SLIP (0xfffffc00
), et tout autre
indicateur supplémentaire
(autocomp
). Si quelque chose se passe
mal, sliplogin
fournit en
général des messages d'information via la
fonctionnalité de trace du
« démon »
syslogd, qui les enregistre
habituellement dans le fichier
/var/log/messages
(reportez-vous au
pages de manuel de syslogd(8) et syslog.conf(5)
et consultez peut-être aussi le fichier
/etc/syslog.conf
pour voir ce que
trace syslogd et où il
enregistre ces messages.).
Le noyau par défaut de FreeBSD
(GENERIC
) fourni le support SLIP
(sl(4)); dans le cas d'un noyau personnalisé,
vous devez ajouter la ligne suivante à votre fichier
de configuration du noyau:
Sous FreeBSD 4.X, utilisez la ligne suivante:
Le chiffre en fin de ligne représente le nombre maximum de connexions SLIP qui peuvent cohexister. Depuis FreeBSD 5.0, le pilote sl(4) est capable d'« auto-clonage ».
Par défaut, votre machine FreeBSD ne transmettra pas
les paquets. Si vous désirez que votre serveur SLIP
FreeBSD agisse en routeur, vous devez éditer le fichier
/etc/rc.conf
et positionner la variable
gateway_enable
à
YES
.
Vous devrez ensuite redémarrer pour que les nouveaux paramètres prennent effet.
Veuillez vous référer à la Chapitre 8, Configurer le noyau de FreeBSD sur la configuration du noyau pour de l'aide sur ce sujet.
Comme indiqué plus haut, il y a trois fichiers
dans le répertoire /etc/sliphome
qui servent
à la configuration de
/usr/sbin/sliplogin
(voyez
sliplogin(8) pour avoir la page de manuel de
sliplogin
):
slip.hosts
, définit les
utilisateurs SLIP et les adresses IP qui leur sont
associées, slip.login
, qui ne
fait en général que configurer l'interface
SLIP, et (facultatif) slip.logout
, qui
effectue le travail inverse de
slip.login
quand la connexion
série est terminée.
/etc/sliphome/slip.hosts
contient
des lignes avec au moins quatre champs
séparés par des espaces:
L'identifiant (ID) d'utilisateur SLIP;
L'adresse locale (locale au serveur SLIP) de la liaison SLIP;
L'adresse de l'autre extrémité de la liaison SLIP;
Le masque de sous-réseau.
Les adresses locales et distantes peuvent être
des noms de machines (qui seront convertis en adresses IP
via /etc/hosts
ou par le service de
noms de domaines, en fonction de ce que contient le
fichier /etc/nsswitch.conf
, ou
/etc/host.conf
si vous utilisez
FreeBSD 4.X), et le masque de sous-réseau peut
être un nom qui sera converti en consultant le
fichier /etc/networks
. Par exemple,
/etc/sliphome/slip.hosts
contiendra:
La ligne se termine par une ou plusieurs options:
normal
— pas de compression
des en-têtes;
compress
— compression des
en-têtes;
autocomp
— compression des
en-têtes si la machine distante l'autorise;
noicmp
— interdit les
paquets ICMP (de sorte que les paquets
« ping » seront ignorés au lieu de
consommer votre bande passante).
Le choix des adresses pour les deux extrémités des liaisons SLIP dépend du fait que vous leur dédiez un sous-réseau TCP/IP ou que vous comptiez utiliser un « proxy ARP » sur votre serveur SLIP (ce n'est pas un « vrai » proxy ARP, mais c'est la terminologie que nous utiliserons dans ce document pour le désigner). Si vous n'êtes pas sûr de la méthode à choisir ou de la façon d'assigner les adresses IP, référez-vous aux ouvrages sur le TCP/IP mentionnés à section sur les prérequis (Section 26.6.2.1, « Prérequis ») et/ou consultez l'administrateur de votre réseau IP.
Si vous comptez utiliser un sous-réseau IP séparé pour vos clients SLIP, vous devrez définir l'adresse de sous-réseau à partir de votre réseau IP et attribuer à chacun de vos clients SLIP une adresse IP sur ce sous-réseau. Ensuite, vous devrez probablement configurer sur votre routeur IP le plus proche une route statique vers votre sous-réseau SLIP via votre serveur SLIP.
Sinon, si vous avez l'intention d'utiliser la
méthode du « proxy ARP », vous devrez
assigner à vos clients SLIP des adresses IP en
provenance du sous-réseau Ethernet de votre serveur
SLIP, et vous devrez également adapter vos
procédures
/etc/sliphome/slip.login
et
/etc/sliphome/slip.logout
pour qu'elles
utilisent arp(8) pour gérer les entrées
proxy ARP dans la table ARP de votre serveur SLIP.
Le fichier
/etc/sliphome/slip.login
ressemble
généralement à ceci:
Ce fichier slip.login
ne fait
qu'exécuter ifconfig
sur
l'interface SLIP appropriée avec comme
paramètres les adresses locales et distantes et le
masque de sous-réseau de l'interface SLIP.
Si vous avez choisi d'utiliser la méthode du
« proxy ARP » (au lieu d'affecter un
sous-réseau distinct à vos clients SLIP),
votre fichier
/etc/sliphome/slip.login
devra
ressembler à ceci:
La ligne supplémentaire dans ce fichier
slip.login
, arp -s $5
00:11:22:33:44:55 pub
, crée une
entrée ARP dans la table ARP du serveur SLIP.
Cette entrée ARP fait que le serveur SLIP
répond avec sa propre adresse MAC lorsqu'un autre
noeud IP du réseau Ethernet demande à
dialoguer avec le client SLIP qui possède cette
adresse IP.
Dans l'exemple donné ci-dessus, remplacez
l'adresse MAC Ethernet (00:11:22:33:44:55
) avec l'adresse MAC de
la carte Ethernet de votre système, ou sinon votre
« proxy ARP » ne fonctionnera jamais! Vous
pouvez déterminer l'adresse MAC de votre serveur SLIP
en examinant le résultat de la commande
netstat -i
; la seconde ligne doit
ressembler à ce qui suit:
Cela indique que l'adresse MAC Ethernet de ce
système est 00:02:c1:28:5f:4a
— les points
dans les adresses MAC que donne netstat
-i
doivent être remplacés par des
« : » et il faut ajouter un zéro devant
chaque valeur hexadécimale donnée sur un
seul digit pour obtenir des adresses dans le format requis
par arp(8); consultez la page de manuel d'arp(8)
pour avoir des informations complètes sur ces
conventions.
Quand vous créez les fichiers
/etc/sliphome/slip.login
et
/etc/sliphome/slip.logout
, le bit
« exécutable » (i.e., chmod
755 /etc/sliphome/slip.login
/etc/sliphome/slip.logout
) doit être
positionné, ou sinon sliplogin
sera incapable d'exécuter la
procédure.
/etc/sliphome/slip.logout
n'est pas strictement indispensable (à moins que
vous n'implémentiez un « proxy ARP »),
mais si vous décidez de la créer, voici un
exemple de procédure
slip.logout
élémentaire:
Si vous utilisez la méthode « proxy
ARP », vous voudrez que
/etc/sliphome/slip.logout
supprime
l'entrée ARP pour le client SLIP:
La commande arp -d $5
supprime
l'entrée ARP que la procédure
slip.login
pour le « proxy
ARP » a ajouté quand le client SLIP a ouvert
la session.
Il n'est pas inutile de répéter:
assurez-vous que le bit « exécutable »
de la procédure
/etc/sliphome/slip.logout
a
été positionné après que vous
l'ayez créée (i.e., chmod 755
/etc/sliphome/slip.logout
).
Si vous n'utilisez pas « proxy ARP » pour router les paquets entre vos clients SLIP et le reste de votre réseau (et peut-être l'Internet), vous devrez probablement ajouter des routes statiques vers le(s) routeur(s) par défaut le(s) plus proche(s) pour router le sous-réseau de vos clients SLIP via votre serveur SLIP.
Ajouter des routes statiques vers vos routeurs les plus proches peut être problématique (voire impossible si vous n'avez pas les autorisations pour...). Si vous avez un réseau avec plusieurs routeurs, certains d'entre eux, tels que les Cisco et les Proteon, devront non seulement être configurés pour la route statique vers le sous-réseau SLIP, mais devront aussi savoir quelles routes statiques ils doivent annoncer aux autres routeurs, donc quelques compétences, un peu de dépannage ou de « bidouille » pourront être nécessaire pour que vos routes statiques fonctionnent.
GateD® est désormais un logiciel propriétaire et les sources ne seront donc plus disponibles (plus d'information sur le site Web de GateD®). Cette section existe uniquement pour des raisons de compatibilité pour ceux qui utilisent encore une ancienne version.
Une alternative aux maux de tête que provoquent
les routes statiques est d'installer
GateD® sur votre serveur SLIP
FreeBSD et de le configurer pour qu'il utilise les protocoles
de routage appropriés (RIP/OSPF/BGP/EGP) pour
annoncer aux autres routeurs votre sous-réseau
SLIP. Vous aurez besoin de créer un fichier
/etc/gated.conf
pour configurer
GateD®; voici un exemple,
semblable à celui que l'auteur a utilisé sur
un serveur SLIP FreeBSD:
xxx.xxx.yy
mask 255.255.252.0 metric 1; # SLIP connections
} ;
} ;
#
# Accepter les routes de RIP via les interfaces Ethernet "ed"
import proto rip interface ed {
all ;
} ;L'exemple de fichier gated.conf
ci-dessus diffuse l'information de routage concernant le
sous-réseau SLIP
xxx.xxx.yy
via RIP sur
l'interface Ethernet; si vous utilisez un pilote de
périphérique Ethernet différent du
pilote ed
, vous devrez modifier en
conséquence les références à
l'interface ed
. Ce fichier
d'exemple active également les journaux sur
/var/tmp/gated.output
pour pouvoir
déboguer le fonctionnement de
GateD®; vous pouvez
désactiver ces options de trace si
GateD® fonctionne correctement
pour vous. Vous devrez remplacer
xxx.xxx.yy
par l'adresse
réseau de votre propre sous-réseau SLIP
(assurez-vous de remplacer également le masque de
sous-réseau dans la clause proto
direct
).
Une fois que vous avez installé et
configuré GateD® sur
votre système, vous devrez indiquer aux
procédures de démarrage de FreeBSD de lancer
GateD® à la place de
routed. La manière la
plus simple de faire cela est de positionner les variables
router
et
router_flags
dans le fichier
/etc/rc.conf
. Veuillez consulter la
page de manuel de GateD® pour
des informations sur les paramètres en ligne de
commande.
Ce document, ainsi que d'autres peut être téléchargé sur ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/
Pour toutes questions à propos de FreeBSD, lisez la
documentation avant de contacter
<questions@FreeBSD.org>.
Pour les questions sur cette documentation, contactez
<doc@FreeBSD.org>.