Linux PPP Howto
par Robert Hart,
[email protected]
Version 3.0, 31 mars 1997
(Adaptation francaise par Antoine Levavasseur
[email protected], le 22
octobre 1997). Ce document montre comment connecter votre PC Linux a
un serveur PPP, comment utiliser PPP pour relier deux reseaux locaux
ensemble, et fournit une methode pour configurer votre machine Linux
comme serveur PPP. Ce document fournit egalement une aide pour
deboguer les connections PPP qui ne fonctionnent pas.
CCooppyyrriigghhtt
Ce document est distribue sous les contraintes de la GPL (GNU Public
Licence).
DDiissttrriibbuuttiioonn
Le document original sera poste dans comp.os.linux.answers lorsque de
nouvelles versions du document arriveront. Il est egalement disponible
en HTML a :
+o Linux Howto Index <
http://sunsite.unc.edu/mdw/linux.html#howto>
+o PPP-HOWTO <
http://www.interweft.com.au/other/ppp-howto/ppp-
howto.html>
Les autres formats (SGML, ASCII, PostScript, DVI) sont disponibles a
Howtos - other formats
<
ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/other-formats>.
Comme sunsite.unc.edu est tres charge, vous etes encourages a utiliser
un miroir plus proche de chez vous. En particulier la version
francaise de ce HOWTO est poste regulierement dans
fr.comp.os.linux.annonce, et est disponible sur ftp.lip6.fr et
http://www.freenix.fr/.
RReemmeerrcciieemmeennttss
Un nombre important et croissant de personnes m'ont aide a preparer ce
document. Remerciements speciaux a Al Longyear pour l'aide sur PPP
lui-meme (si il y a des erreurs ici, ce sont les miennes et pas les
siennes), Greg Hankins (qui maintient les Howto Linux) et Debi Tackett
(de Maximum Access.com) pour ses nombreuses suggestions sur le style,
l'organisation du contenu, la logique et la clarte des explications.
Pour finir, je remercie les nombreuses personnes qui m'ont envoye
leurs commentaires par courrier electronique. Comme tous les auteurs
de HOWTO, la satisfaction d'aider est le seul salaire que nous
recevons, et cela nous suffit. En ecrivant ce HOWTO, je rembourse
d'une certaine facon la dette que je - et tous les autres utilisateurs
Linux - dois aux personnes qui ecrivent et maintiennent le systeme
d'exploitation que nous avons choisi.
TTrraadduuccttiioonn FFrraannccaaiissee ddee ccee ddooccuummeenntt
La traduction du present document PPP-Howto (et precedemment PPP-FAQ)
etait assuree par Rene Cougnenc. C'etait l'un des premiers (si ce
n'est le premier) utilisateur de Linux en France alors que ce n'etait
qu'un petit projet un peu fou lance par Linus Torvalds. Rene Cougnenc
a participe au developpement de Linux et a assure la traduction de
nombreux HOWTO et ouvrages sur Linux qui font encore reference. Si
vous utilisez Linux aujourd'hui c'est sans doute un peu grace a lui...
Prendre ses pas dans la traduction de ce HOWTO etait un peu delicat
car la barre etait placee haut, et j'espere que le lecteur que vous
etes ne sera pas decu par mon travail.
Et si Rene nous entends la-haut, je suis sur qu'il levera avec nous
son verre a la sante de notre systeme d'exploitation favori ! :-)
Enfin merci a Thomas Parmelan pour la relecture et les conseils sur la
forme de la version francaise de ce document.
11.. IInnttrroodduuccttiioonn
PPP (Point to Point Protocol) est un mecanisme qui permet de faire
fonctionner IP (Internet Procotol) et tous les autres protocoles
reseaux a travers une liaison serie - qui peut etre une connexion
serie directe (avec un cable null-modem), a travers une liaison par un
telnet, ou encore une liaison utilisant les modems et les lignes
telephoniques (et bien sur utilisant les lignes numeriques comme
RNIS).
Avec PPP, vous pouvez connecter votre PC sous Linux a un serveur PPP
et acceder aux ressources reseau aux quelles le serveur est connecte
(presque) comme si vous etiez directement connecte a ce reseau.
Vous pouvez egalement configurer votre PC Linux comme un serveur PPP,
de cette facon, d'autres ordinateurs peuvent appeler votre ordinateur
et acceder aux ressources de votre PC et/ou reseau local.
Comme PPP est un systeme qui marche dans les deux sens, vous pouvez
egalement utiliser PPP sur deux PC Linux pour relier ensemble deux
reseaux (ou un reseau local a Internet), creant ainsi un reseau a
large domaine (WAN : Wide Area Network).
Une difference majeure entre PPP et une connexion Ethernet est bien
entendu la vitesse - une connexion Ethernet standard offre a un debit
maximal theorique de 10 Mbs (Mega - millions de bits par seconde),
alors qu'une liaison analogique par modem offre un maximum de 56 Kbs
(kilo - millier de bits par seconde).
Par consequent, selon le type de votre connexion PPP, il y aura des
limitations sur l'utilisation des applications et des services.
11..11.. CClliieennttss eett SSeerrvveeuurrss
PPP est un protocole strictement symetrique; il n'y a (techniquement)
aucune difference entre la machine qui appelle et la machine qui est
appelee. Cependant, pour des raisons de clarte, il est interessant de
penser en terme de sseerrvveeuurr et cclliieenntt.
Quand vous appelez un site pour etablir une connexion PPP, vous etes
un cclliieenntt. La machine sur laquelle vous-vous connectez est le sseerrvveeuurr.
Quand vous configurez une machine Linux pour repondre aux appels pour
les connexion PPP, vous configurez un sseerrvveeuurr PPP.
Tous les PC Linux peuvent etre a la fois serveur et client PPP - meme
en meme temps si vous avez plus d'un port serie (et d'un modem si
necessaire). Comme decrit plus haut, il n'y a pas de reelle
difference entre les clients et les serveurs tant que l'on utilise PPP
et que la connexion est etablie.
Ce document reference la machine qui initie l'appel (qui le compose)
comme le CCLLIIEENNTT, alors que la machine qui repond au telephone, verifie
l'authentification de l'appel (en utilisant les noms utilisateurs, les
mots de passe et eventuellement d'autres mecanismes) est referencee
comme le SSEERRVVEEUURR.
L'utilisation de PPP comme client pour relier une ou plusieurs
machines a Internet est probablement celle qui interesse une majorite
de gens. Ils utiliseront alors leur PC Linux comme client.
La procedure exposee dans ce document va vous permettre d'etablir et
d'automatiser votre connexion a Internet.
Ce document va egalement vous offrir un guide pour permettre de
configurer un sseerrvveeuurr PPPPPP sur votre PC Linux et relier ensemble deux
reseaux (avec le routage complet) en utilisant PPP (cela est aussi
appele une liaison WAN - wide area network).
11..22.. DDiiffffeerreenncceess eennttrree lleess ddiissttrriibbuuttiioonnss LLiinnuuxx
Il y a de nombreuses distributions Linux differentes qui on leurs
propres idiosyncrasies et facons de faire les choses.
En particulier, il y a deux manieres differentes sur une machine Linux
(ou Unix) de demarrer, configurer ses interfaces et ainsi de suite.
Il y ll''iinniittiiaalliissaattiioonn BBSSDD et ll''iinniittiiaalliissaattiioonn SSyyssVV ssyysstteemm. Si vous
consultez certains forums de discussion Unix, vous trouverez de temps
en temps des guerres de religion entre les partisans de chacun des
deux systemes. Si ce genre de chose vous plait, allez donc les
rejoindre pour gacher de la bande passante avec eux !
Les distributions les plus utilisees sont sans doute :
+o Slackware
qui utilise une initialisation systeme BSD
+o Red Hat (et son precedent associe Caldera)
qui utilise une initialisation SysV system (bien qu'un peu
modifiee)
+o Debian
qui utilise une initialisation SysV system
Les initialisations de type BSD conservent typiquement ces fichiers
dans /etc/ et ces fichiers sont :
______________________________________________________________________
/etc/rc
/etc/rc.local
/etc/rc.serial
(et parfois d'autres fichiers)
______________________________________________________________________
Recemment, certaines initialisation systemes BSD se mettaient a
utiliser un repertoire /etc/rc.d/ contenant les fichiers de demarrage
plutot que de tout mettre dans /etc.
L'initialisation System V conserve ses fichiers d'initialisation dans
les repertoires /etc/ ou /etc/rc.d et un certain nombre de sous-
repertoires de ces derniers.
______________________________________________________________________
drwxr-xr-x 2 root root 1024 Jul 6 15:12 init.d
-rwxr-xr-x 1 root root 1776 Feb 9 05:01 rc
-rwxr-xr-x 1 root root 820 Jan 2 1996 rc.local
-rwxr-xr-x 1 root root 2567 Jul 5 20:30 rc.sysinit
drwxr-xr-x 2 root root 1024 Jul 6 15:12 rc0.d
drwxr-xr-x 2 root root 1024 Jul 6 15:12 rc1.d
drwxr-xr-x 2 root root 1024 Jul 6 15:12 rc2.d
drwxr-xr-x 2 root root 1024 Jul 18 18:07 rc3.d
drwxr-xr-x 2 root root 1024 May 27 1995 rc4.d
drwxr-xr-x 2 root root 1024 Jul 6 15:12 rc5.d
drwxr-xr-x 2 root root 1024 Jul 6 15:12 rc6.d
______________________________________________________________________
Si vous essayez de chercher ou votre interface et les routes reseau
associees sont configurees, vous devez parcourir tous les fichiers
pour parvenir a trouver ou sont les commandes correspondantes.
11..33.. OOuuttiillss ddee ccoonnffiigguurraattiioonn ssppeecciiffiiqquueess aauuxx ddiissttrriibbuuttiioonnss
Dans certaines installations (par exemple Red Hat et Caldera), il y a
un systeme de configuration des PPP sous X Window. Ce HOWTO ne traite
pas de ces outils specifiques aux distributions. Si vous avez des
problemes avec ceux-ci, contactez directement les distributeurs !
Pour les utilisateurs de Red Hat 4.x, il y a maintenant un Red Hat
PPP-TIP <
http://www.interweft.com.au/> dans la partie Linux ressources
et egalement chez Red Hat Software <
http://www.redhat.com/> dans la
partie support.
22.. AAddrreessssee IIPP
Tout materiel connecte a Internet doit avoir sa propre, et unique
adresse IP. Elle sont distribuees de facon centralisee par l'autorite
designee pour chaque pays.
Si vous etes connectes par un reseau local (LAN) a Internet, VVOOUUSS
DDEEVVEEZZ utiliser une adresse IP de votre propre domaine d'adresses qui
vous a ete assigne pour les ordinateurs et materiels de votre reseau
local. Vous NNEE DDEEVVEEZZ PPAASS prendre n'importe quelle adresse IP et
l'utiliser lorsque vous vous connectez avec un autre reseau local (et
a plus forte raison Internet). Au pire ca ne marchera pas du tout et
cela peut causer des ravages puisque votre adresse IP 'volee' va
interferer avec les communications d'un autre ordinateur qui utilise
deja l'adresse IP que vous avez prise au hasard.
Remarquez que les adresses IP de ce document appartiennent (a part
quelques exceptions) aux adresses de reseaux non connectes qui sont
reservees aux reseaux qui ne sont pas (encore) connectes a Internet.
(RFC1918)
Il y a des adresses IP qui sont specifiquement destinees aux reseaux
locaux qui ne sont pas connectes a Internet. Ces adresses IP sont :
+o Une Adresse Reseau de Classe A
10.0.0.0 (netmask 255.0.0.0)
+o 16 Adresses Reseau de Classe B
172.16.0.0 - 172.31.0.0 (netmask 255.255.0.0)
+o 256 Adresses Reseau de Classe C
192.168.0.0 - 192.168.255.0 (netmask 255.255.255.0)
Si vous avez un reseau pour lequel vous nn''aavveezz ppaass alloue d'adresse IP
aupres de l'autorite responsable de votre pays, vous devez utiliser
une des adresses reseau de la sequence precedente pour vos machines.
Ces adresses ne doivent jjaammaaiiss etre utilisees sur Internet.
Cependant, elles peuvent etre utilisees pour les reseaux locaux
Ethernet sur la machine qui est connectee a Internet. C'est parce que
les adresses IP sont en fait allouees aux interfaces reseau et non a
l'ordinateur. Ainsi, votre interface Ethernet peut utiliser 10.0.0.1
(par exemple), et quand vous vous connecterez a Internet en utilisant
PPP, votre interface PPP recuperera une autre adresse IP (valide) du
serveur. Votre PC sera connecte a Internet alors que les autres ne le
seront pas.
Cependant, en utilisant Linux, les capacites de IP Masquerading (aussi
appele NAT - Network Adress Translation) de Linux et du programme
iippffwwaaddmm, vous pouvez connecter votre reseau local a Internet (avec
quelques restrictions sur les services), meme si vous n'avez pas
d'adresse IP valide pour vos machines en Ethernet.
Pour plus d'informations sur le sujet, consulter le mini-HOWTO IP
Masquerade a Linux IP Masquerade mini HOWTO
<
http://sunsite.unc.edu/mdw/HOWTO/mini/IP-Masquerade>
Pour la plupart des utilisateurs, qui sont connectes avec une seule
machine a leur fournisseur d'acces Internet (FAI) par PPP, obtenir une
adresse IP (ou plus largement une adresse reseau) n'est pas
necessaire.
Si vous souhaitez connecter un petit reseau local a Internet, de
nombreux FAI peuvent vous fournir un sous-reseau dedie (une sequence
specifique d'adresses IP) sur leur espace d'adresses IP existant.
Alternativement, utilise IP masquerading.
Pour les utilisateurs qui connectent un seul PC a Internet, la plupart
des FAI utilise l'allocation ddyynnaammiiqquuee des adresses IP. C'est pendant
le processus de connexion que le service PPP que vous contactez va
indiquer a votre machine quelle adresse IP utiliser pour l'interface
PPP pendant la session en cours. Cette adresse ne sera pas forcement
la meme a chaque fois que vous vous connecterez a votre FAI.
Avec les adresses IP dynamiques, vous nn''aavveezz ppaass la meme adresse IP a
chaque fois que vous vous connectez. Cela a des repercussions sur les
applications de type serveur de votre machine Linux telles que
Sendmail, ftpd, httpd et d'autres. Ces services supposent que
l'ordinateur offrant le service soit accessible tout le temps a la
meme adresse IP (ou au moins au meme nom de domaine qualifie, et que
la resolution des noms par DNS du nom vers l'adresse IP est
disponible).
Les limitations de service dues aux allocations dynamiques d'adresses
IP (et les facons d'eviter cela, quand c'est possible) sont decrites
plus loin.
33.. BBuuttss ddee ccee ddooccuummeenntt
33..11.. MMeettttrree eenn ppllaaccee uunn cclliieenntt PPPPPP
Ce document fournit un guide aux personnes qui souhaitent utiliser
Linux et PPP pour appeler un Serveur PPP et configurer une connexion
IP avec PPP. Cela suppose que PPP ait ete compile et installe sur
votre machine Linux (mais une breve description de la
reconfiguration/recompilation de votre noyau avec le support PPP est
fournie).
Bien que dip (la maniere standard de creer des connexions SLIP) puisse
etre utilise pour mettre en place un connexion PPP, les scripts dip
sont generalement un peu complexes. Pour cette raison, ce document ne
traite pas l'utilisation de dip pour lancer une connexion PPP.
A la place, ce document decrit les programmes standard Linux/PPP
(chat/pppd).
33..22.. RReelliieerr ddeeuuxx RReesseeaauuxx llooccaauuxx oouu uunn rreesseeaauu llooccaall aa IInntteerrnneett ggrraaccee aa
PPPPPP
Ce document donne des informations (de base) pour relier deux reseaux
locaux entre eux ou un reseau local a Internet grace a PPP.
33..33.. CCoonnffiigguurreerr uunn sseerrvveeuurr PPPPPP
Ce document fournit un guide pour configurer votre PC Linux comme
serveur PPP (autorisant d'autres personnes a appeler votre PC Linux et
etablir une connexion PPP).
Notez qu'il y a un grand nombre de facons de configurer Linux comme
serveur PPP. Ce document donne une methode - qui est utilisee par
l'auteur pour configurer quelques petits serveurs PPP (chacun avec 16
modems).
Cette methode est connue pour fonctionner correctement. Cependant, ce
n'est pas forcement la meilleure methode.
33..44.. UUttiilliisseerr PPPPPP aavveecc uunnee ccoonnnneexxiioonn NNuullll--MMooddeemm ddiirreeccttee
Ce document offre un bref apercu d'utilisation de PPP pour relier deux
PC Linux avec un cable null modem. Il est possible de relier d'autres
Systemes d'exploitation a Linux de cette facon egalement. Pour ce
faire, utiliser la documentation du systeme d'exploitation pour lequel
vous etes interesse.
33..55.. PPoouurr llee mmoommeenntt ccee ddooccuummeenntt nnee ccoouuvvrree ppaass......
+o La compilation du daemon PPP
Regarder la documentation fournie avec la version de pppd que vous
utilisez.
+o Connecter et configurer un modem sous Linux (en detail)
Regarder le Serial-HOWTO et pour les initialisations specifiques au
modem, voir Modem Setup Information
<
http://www.in.net/info/modems/index.html> des informations qui
pourraient vous aider a configurer votre modem.
+o Utiliser dip pour faire des connexion PPP
utiliser chat a la place
+o Utiliser socks ou IP Masquerading
Il y a d'excellents documents qui couvrent deja ces paquetages.
+o Utiliser EQL pour regrouper deux modems pour une seule connexion
PPP.
+o Les methodes de connexion PPP specifiques aux distributions (comme
l'outil de configuration reseau de la Red Hat 4.x). Voir votre
distribution pour la documentation sur les methodes utilisees.
+o Le nombre croissant d'outils disponibles pour automatiser les
connexions PPP
Voir la documentation appropriee.
44.. VVeerrssiioonnss ddeess llooggiicciieellss ttrraaiitteess
Ce HOWTO suppose que vous utilisez un noyau Linux 1.2.X avec le
programme PPP 2.1.2 ou Linux 1.3.X/2.0.x et PPP 2.2.
Au moment de la redaction, la derniere version officielle de PPP
disponible est ppp-2.2.0f. La nouvelle version (ppp-2.3) est encore en
beta.
Il est possible d'utiliser PPP 2.2.0 avec le noyau 1.2.13. Cela
necessite des patchs pour le noyau. Il est recommande aux utilisateurs
du noyau 1.2.13 de passer a ppp-2.2 puisqu'il inclut quelques
extensions et corrections de bogues.
VVoouuss ddeevveezz eeggaalleemmeenntt eettrree ppaarrttiiccuulliieerreemmeenntt vviiggiillaanntt eett nnee ppaass uuttiilliisseerr
llee pprrooggrraammmmee PPPPPP 22..11..22 aavveecc uunn nnooyyaauu LLiinnuuxx 22..00..XX..
Veuillez remarquer que ce document nnee ttrraaiittee ppaass des problemes venant
de l'utilisation de modules chargeables pour votre noyau Linux 2.0.x.
Consulter le mini-HOWTO kerneld et la documentation kerneld/module
2.0.x (dans les sources de Linux 2.0.x a
/usr/src/linux/Documentation/..).
PPuuiissqquuee ccee ddooccuummeenntt eesstt ddeessttiinnee aa aaiiddeerr lleess nnoouuvveeaauuxx uuttiilliissaatteeuurrss,, iill
eesstt ffoorrtteemmeenntt rreeccoommmmaannddee dd''uuttiilliisseerr uunnee nnoouuvveellllee vveerrssiioonn dduu nnooyyaauu
LLiinnuuxx eett llaa vveerrssiioonn aapppprroopprriieeee ddee PPPPPP qquuii ssoonntt ccoonnnnuuss ppoouurr ffoonnccttiioonnnneerr
eennsseemmbbllee..
55.. DD''aauuttrreess ddooccuummeennttss uuttiilleess//iimmppoorrttaannttss
Je conseille aux utilisateurs de lire :
+o la documentation accompagnant le paquetage PPP;
+o les pages de manuel de pppd et chat;
(utiliser man chat et man pppd pour les lire)
+o La page de configuration des modems - voir Modem Setup Information
<
http://www.in.net/info/modems/index.html>
+o Les excellents livres Unix/Linux publies par O'Reilly and
Associates. (O'Reilly and Associates On-Line Catalogue <
http://www.ora.com/>). Si vous etes nouveau a Unix/Linux, ccoouurreezz
(ne marchez pas) au plus proche marchand de livres informatiques et
investissez dans un certain nombre d'entre eux immediatement !
+o La PPP-FAQ maintenue par Al Longyear, disponible sur Linux PPP-FAQ
<
ftp://sunsite.unc.edu/pub/Linux/docs/faqs>.
Elle contient un grand nombre d'informations utiles sous forme de
questions/reponses indispensable lorsque l'on cherche pourquoi PPP
ne fonctionne pas (correctement).
+o Le nombre croissant de livre Linux venant des differents editeurs
et auteurs;
Vous etes encourages a verifier la date de parution de ces livres.
Le developpement et la distribution de Linux tendent a etre plutot
rapides, alors que la mise a jour des livres est (generalement)
bien plus lente ! Acheter un excellent livre (et il y en a) qui
est deja depasse entraine une confusion et une frustration
considerable pour les nouveaux utilisateurs.
Le meilleur point de depart pour la documentation Linux est The Linux
Documentation Project Home Page <
http://sunsite.unc.edu/mdw/>. Les
HOWTO sont mis a jour raisonnablement regulierement.
Bien que vous puissiez utiliser ce document pour creer votre liaison
PPP sans lire aucun de ces documents, vous devriez avoir une bien
meilleure comprehension de ce qu'il se passe si vous le faites ! Vous
pouvez egalement exposer vous-meme vos problemes (ou du moins poser
les questions les plus intelligentes sur les groupes de discussion
comp.os.linux... ou fr.comp.os.linux/unix... ou les mailing list
Linux).
Ces documents (ainsi que quelques autres, comme les RFCs
correspondants) fournissent des explications complementaires et plus
detaillees que ce qui est possible dans les HOWTO.
Si vous connectez un reseau local a Internet avec PPP, vous avez
besoin de connaitre un certain nombre de choses sur les reseaux
TCP/IP. En complement des documents precedents, vous trouverez dans
les livres O'Reilly "TCP/IP Network Administration" et "Building
Internet Firewalls" un benefice considerable !
55..11.. LLeess MMaaiilliinngg LLiisstteess uuttiilleess
Il y a de nombreuses mailing listes (listes de diffusion) Linux qui
servent de moyen de communication entre les utilisateurs dans de
nombreux domaines. Souscrivez absolument a celles qui vous
interessent pour donner votre point de vue.
RReemmaarrqquueess ddee bboonn sseennss: certaines listes sont specifiquement destines
au utilisateurs "experts" et/ou a certains sujets specifiques. Meme si
personne ne se plaindra que vous soyez voyeur (souscrire sans poster
de messages), vous recevrez certainement des commentaires chauds
(voire des flammes) si vous postez des questions de debutant dans les
listes innappropriees.
Ce n'est pas parce que les utilisateurs gourous detestent les nouveau
utilisateurs, mais parce que ces listes sont la pour contenir des
remarques specifiques a un certain niveau de difficulte.
Vous etes largement encourages a souscrire librement a differentes
listes mais faites absolument des commentaires qui cadrent avec le
sujet (et le niveau) de la liste !
Un bon point de depart pour les mailing-list Linux est Linux Mailing
List Directory <
http://summer.snu.ac.kr/~djshin/linux/mail-
list/index.shtml>
66.. PPrreesseennttaattiioonn ddee ccee qquuii ddooiitt eettrree ffaaiitt ppoouurr ffaaiirree ffoonnccttiioonnnneerr PPPPPP
ccoommmmee cclliieenntt
Ce document contient un grand nombre d'informations - qui augmente a
chaque version !
Par consequent, cette section a pour but de fournir une presentation
concise des actions pour connecter votre systeme Linux comme client a
un serveur PPP.
66..11.. OObbtteenniirr//iinnssttaalllleerr lleess pprrooggrraammmmeess
Si votre distribution Linux ne contient pas les programmes PPP, vous
devez les obtenir sur the Linux PPP daemon
<
ftp://sunsite.unc.edu/pub/Linux/system/Network/serial/ppp/ppp-2.2.0f.tar.gz>
C'est la derniere version officielle lors de la redaction du document.
Cependant, prenez la derniere version disponible sur ce site (ppp-2.3
etait en beta lors de la redaction de ce document et devrait sortir
bientot).
Le paquetage PPP contient les instructions sur la facon de compiler et
d'installer le logiciel ddoonncc ccee HHOOWWTTOO nn''eenn ppaarrlleerraa ppaass. !
66..22.. CCoommppiilleerr llee ssuuppppoorrtt PPPPPP ddaannss llee nnooyyaauu
L'installation de PPP Linux se divise en deux parties
+o le daemon PPP mentionne ci-dessus
+o le support PPP dans le noyau
De nombreuses distributions semblent fournir un support PPP dans les
noyaux installes par defaut, mais certaines ne le font pas.
Si lors du boot, le noyau donne un message ressemblant a :
______________________________________________________________________
PPP Dynamic channel allocation code copyright 1995 Caldera, Inc.
PPP line discipline registered.
______________________________________________________________________
Votre noyau a le support PPP compile.
Toutefois, vous devez recompiler votre propre noyau quelque soit votre
distribution pour fournir l'utilisation la plus efficace possible des
ressources disponibles et de votre configuration materielle
personnelle. Il est bon de savoir que le noyau ne peut etre swappe
hors de la memoire. Avoir un noyau le plus petit possible est donc
interessant surtout pour une machine limitee en memoire.
Ce document fournit les instructions minimales pour la re-compilation
du noyau a la section ``Configurer votre noyau Linux''.
Pour plus de details, voir le Kernel-HOWTO a The Linux Kernel HOWTO
<
http://sunsite.unc.edu/mdw/HOWTO/Kernel-HOWTO.html>
66..33.. OObbtteenniirr lleess iinnffoorrmmaattiioonnss ppoouurr vvoottrree ffoouurrnniisssseeuurr dd''aacccceess aa IInntteerr--
nneett
Il y a presque une infinite de manieres de configurer un serveur PPP.
Pour se connecter chez votre fournisseur d'acces (ou un serveur PPP
pour acceder a votre intranet), vous devez obtenir des informations
sur la facon dont le serveur fonctionne.
Puisque vous utilisez Linux, vous pourriez avoir quelques difficultes
avec le support de certains FAI (et les serveurs Intranet
d'entreprise) qui ne connaissent que les clients MS-Windows.
Toutefois, un nombre croissant de FAI utilisent Linux pour offrir leur
service - et Linux penetre egalement l'environnement industriel, vous
devriez reduire ainsi les chances de rencontrer des problemes.
La section ``Fournir les informations dont vous avez besoin pour votre
serveur PPP'' vous explique ce dont vous devez savoir sur le serveur
PPP sur lequel vous vous connectez et comment obtenir les informations
dont vous avez besoin.
66..44.. CCoonnffiigguurreerr vvoottrree mmooddeemm eett vvoottrree ppoorrtt sseerriiee
Pour se connecter a un serveur PPP et obtenir le meilleur taux de
transfert possible, votre modem doit etre configure correctement.
De la meme facon, les ports serie de votre modem ainsi que votre
ordinateur doivent etre configures correctement.
La section ``Configurer votre modem et votre port serie'' fournit des
informations a ce sujet.
66..55.. MMeettttrree eenn ppllaaccee llaa rreessoolluuttiioonn ddee nnoommss ((DDNNSS))
En plus des fichiers qui lancent PPP et automatisent la connexion sur
le serveur PPP, il y a un grand nombre de fichiers de configuration
qui sont mis en place pour que votre ordinateur puisse resoudre les
noms comme www.interweft.com.au vers l'adresse IP qui est reellement
utilisee pour contacter cet ordinateur. Ces fichiers sont :
+o /etc/resolv.conf
+o /etc/host.conf
Voir la section ``Configurer la resolution de nom vers l'adresse''
pour une configuration detaillee de cela.
En particulier, vous nn''aavveezz ppaass bbeessooiinn de lancer un serveur de nom sur
votre PC Linux pour le connecter a Internet (sauf si vous le
souhaitez). Tout ce dont vous avez besoin est de connaitre l'adresse
IP d'au moins l'un des serveurs de noms que vous pouvez utiliser
(plutot celui de votre fournisseur d'acces).
66..66.. PPPPPP eett lleess pprriivviilleeggeess rroooott
Puisqu'etablir une liaison PPP entre votre ordinateur Linux et un
autre serveur PPP necessite la manipulation des peripheriques reseau
(l'interface PPP est une interface reseau) et des tables de routages
du noyau, pppd necessite les privileges rroooott.
Pour des details la-dessus, voir la section ``Utiliser PPP et les
privileges root''.
66..77.. VVeerriiffiieerr lleess ffiicchhiieerrss ddee vvoottrree ddiissttrriibbuuttiioonn PPPPPP eett ccoonnffiigguurreerr
lleess ooppttiioonnss ddee PPPPPP
Il y a un certain nombre de fichiers de configuration et d'appel qui
doivent etre configures pour rendre PPP operationnel. Des exemples
sont fournis avec la distribution de PPP et cette section montre quels
fichiers il doit y avoir :
______________________________________________________________________
/etc/ppp/options
/etc/ppp/scripts/ppp-on
/etc/ppp/scripts/ppp-on-dialer
/etc/ppp/options.tpl
______________________________________________________________________
Vous devrez creer des fichiers supplementaires en fonction de ce que
vous souhaitez exactement utiliser avec PPP :
______________________________________________________________________
/etc/ppp/options.ttyXX
/etc/ppp/ip-up
/etc/ppp/pap-secrets
/etc/ppp/chap-secrets
______________________________________________________________________
En plus, le daemon PPP peut traiter un grand nombre d'options en ligne
de commande et il est important d'utiliser les bonnes; ainsi cette
section montre les options standard de PPP et vous aide a choisir les
options que vous utiliserez.
Pour les details a ce sujet, voir en section ``Configurer les fichiers
de connexion de PPP''.
66..88.. SSii vvoottrree sseerrvveeuurr PPPPPP uuttiilliissee PPAAPP ((PPaasssswwoorrdd AAuutthheennttiiccaattiioonn PPrroottoo--
ccooll))
De nombreux fournisseurs d'acces et serveurs PPP utilisent PAP. Si
votre serveur nn''aa ppaass besoin d'utiliser PAP (si vous pouvez vous
connecter a la main et recevoir les messages textes de nom
utilisateur/mot de passe il n'utilise pas PAP), vous pouvez
tranquillement ignorer cette section.
Plutot que se connecter dans de tels serveurs en utilisant le nom
utilisateur et le mot de passe quand vous etes interroges par le
serveur pour les entrer, un serveur PPP utilisant PAP n'a pas besoin
de login base sur du texte.
Les informations d'authentification de l'utilisateur sont echangees a
la place comme partie prenante du protocole de controle de connexion
qui est la premiere partie de l'etablissement d'une liaison PPP.
La section ``Si votre serveur PPP utilise PAP (Password
Authentification Protocol)'' fournit des informations sur les fichiers
dont vous avez besoin pour etablir une connexion PPP en utilisant PAP.
66..99.. SSee ccoonnnneecctteerr aauu sseerrvveeuurr PPPPPP aa llaa mmaaiinn
Une fois les fichiers de base configures, c'est une bonne idee que
d'essayer ceux-ci en se connectant (avec minicom ou seyon) et de
lancer pppd sur votre PC Linux a la main.
Voir la section ``Configurer une connexion PPP a la main'' pour des
details complets.
66..1100.. AAuuttoommaattiisseerr vvoottrree ccoonnnneexxiioonn PPPPPP
Une fois que vous pouvez vous connecter a la main, vous allez
maintenant commencer a configurer les scripts qui vont automatiser la
mise en place de la connexion.
La section ``Automatiser votre connexion - Creer les scripts de
connexion'' couvre la configuration des fichiers necessaires, et la
mise en place des scripts et du processus de login avec le serveur
PPP, ainsi que des details complets sur chat.
Cette section traite des scripts d'authentification du nom
utilisateur/mot de passe ainsi que des scripts d'authentification pour
les serveurs PAP/CHAP.
66..1111.. TTeerrmmiinneerr llaa ccoonnnneexxiioonn
Une fois que votre connexion est activee et fonctionne, vous devez
pouvoir desactiver la liaison.
Consultez la section ``Terminer une connexion PPP''.
66..1122.. SSii vvoouuss aavveezz ddeess pprroobblleemmeess
De nombreuses personnes ont des problemes pour faire fonctionner PPP
directement. Les differences entre les serveurs PPP et la facon dont
il faut configurer la connexion sont enormes. De plus, PPP a de
nombreuses options - et certaines combinaisons d'entre elles ne
fonctionnent absolument pas ensemble.
En plus des problemes de journalisation et de demarrage du service
PPP, il y a des problemes lies aux modems et aux lignes de telephones
qui s'ajoutent !
La section ``Resoudre les problemes'' fournit des informations de base
au sujet des erreurs classiques, et la facon de les isoler et de les
corriger.
Elle nn''eesstt ttoouutteeffooiiss ppaass destinee a offrir plus que les informations
de base. Al Longyear maintient la PPP-FAQ qui contient bien plus
d'informations a ce sujet !
66..1133.. UUnnee ffooiiss qquuee llaa ccoonnnneexxiioonn eesstt llaanncceeee
Une fois que la liaison PPP est operationnelle (specifiquement, une
fois que les trames IP fonctionnent), pppd peut lancer automatiquement
(comme utilisateur root) un script pour accomplir n'importe quelle
fonction qu'un script peut accomplir.
La section ``Une fois que la connexion est lancee'' fournit des
informations sur le script /etc/ppp/ip-up, les parametres que PPP lui
envoie et comment l'utiliser pour recuperer votre courrier
electronique de votre compte de votre fournisseur d'acces, ou envoyer
les messages en attente de transmission sur votre machine.
66..1144.. PPrroobblleemmeess aavveecc lleess sseerrvviicceess IIPP ssttaannddaarrddss eett ll''aaddrreessssee IIPP
ddyynnaammiiqquuee ddee llaa lliiaaiissoonn PPPPPP..
Comme cela est mentionne dans l'introduction, les adresses IP
dynamiques affectent la capacite de votre PC Linux a agir comme un
serveur sur Internet.
La section ``Problemes avec les services IP standard et l'adresse IP
dynamique de la liaison PPP'' fournit des informations sur les
(principaux) services affectes et ce que vous pouvez faire (si c'est
possible) pour contourner cela.
77.. CCoonnffiigguurreerr vvoottrree nnooyyaauu LLiinnuuxx
Pour utiliser PPP, votre noyau Linux doit etre compile avec le support
PPP. Recuperez le code source de votre noyau Linux si vous ne l'avez
pas encore - il se situe dans /usr/src/linux dans un systeme de
fichiers Linux standard.
Verifiez ce repertoire - de nombreuses distributions installent les
sources (fichiers et repertoires) pendant leur processus
d'installation.
Au demarrage, votre noyau ecrit une grande quantitee d'informations.
Parmi elles, est indique si le noyau contient le support PPP. Pour
afficher ces informations, regardez votre fichier syslog, ou utilisez
dmesg | less pour afficher ces informations a l'ecran. Si votre noyau
contient le support PPP, vous verrez quelques lignes du genre
______________________________________________________________________
PPP Dynamic channel allocation code copyright 1995 Caldera, Inc.
PPP line discipline registered.
______________________________________________________________________
(pour les noyau Linux version 2.0.x)
Les sources du noyau Linux sont disponibles par ftp a sunsite.unc.edu
ou ses nombreux miroirs, en particulier ftp.lip6.fr.
77..11.. IInnssttaalllleerr lleess ssoouurrcceess dduu nnooyyaauu
La suite regroupe de breves instructions pour obtenir et installer les
sources du noyau Linux. Des informations completes sont disponibles a
The Linux Kernel HOWTO <
http://sunsite.unc.edu/mdw/HOWTO/Kernel-
HOWTO.html>.
Pour installer et compiler le noyau Linux vous devez etre root.
1. Changer de repertoire vers /usr/src/
cd /usr/src/
2. Verifier dans /usr/src/linux pour voir si les sources sont deja
installees.
3. Si vous n'avez pas les sources, recuperez les a Linux kernel source
directory <
ftp://sunsite.unc.edu/pub/Linux/kernel/v2.0> ou sur un
miroir plus proche comme ftp.lip6.fr.
Si vous cherchez une version plus ancienne du noyau (comme la
1.2.X), elles sont conservees dans Old Linux kernel source
directory <
ftp://sunsite.unc.edu/pub/Linux/kernel/old>.
4. Choisissez le noyau approprie - generalement le plus recent
disponible est le meilleur. Le recuperer et mettre le fichier tar
dans /usr/src.
RReemmaarrqquuee: un fichier 'tar' est une archive - parfois compressee
(comme le sont les fichiers tar des sources du noyau Linux) il
contient de nombreux fichiers repartis dans plusieurs repertoires.
C'est l'equivalent Linux des fichiers multi-repertoires sous MS-
DOS.
5. Si vous avez deja les sources de Linux installees, mais que vous
voulez les mettre a jour, il faut effacer les anciens fichiers.
Utiliser la commande
rm -rf /usr/src/linux
6. Maintenant decompresser et extraire les sources avec la commande
tar xzf linux-2.0.XX.tar.gz
7. Maintenant, cd /usr/usr/linux et lire le fichier README. Il
contient une excellente explication de la facon de faire pour
configurer et compiler un nouveau noyau. Lisez ce fichier (c'est
une bonne idee de l'imprimer pour en garder une copie sous la main
quand vous compilerez votre noyau jusqu'a ce que vous l'ayez fait
suffisamment pour vous debrouiller tout seul).
77..22.. CCoonnnnaaiittrree vvoottrree mmaatteerriieell
Vous DDEEVVEEZZ savoir quelles cartes/peripheriques vous avez dans votre PC
si vous commencer a recompiler votre noyau !!! Pour certains
peripheriques (comme les cartes sons) vous devez egalement connaitre
quelques parametres (comme les IRQ et les adresse I/O et des choses du
genre).
77..33.. CCoommppiillaattiioonn dduu nnooyyaauu -- llee nnooyyaauu LLiinnuuxx 11..22..1133
Pour commencer le processus de configuration, suivre les instructions
du fichier README pour installer les sources correctement. Vous lancez
le processus de configuration du noyau avec
make config
Pour utiliser PPP, vous devez configurer le noyau pour inclure le
support PPP (PPP a besoin DE pppd ET DU support de PPP dans le noyau).
______________________________________________________________________
PPP (point-to-point) support (CONFIG_PPP) [n] y
______________________________________________________________________
Repondre aux autres questions du make config en accord avec le
materiel de votre PC et les caracteristiques que vous souhaitez pour
votre systeme d'exploitation Linux. Continuer ensuite a suivre les
instructions de compilation et d'installation du README pour votre
nouveau noyau.
Le noyau 1.2.13 creait seulement 4 peripheriques PPP. Pour les cartes
series multiports, vous devez editer les sources du noyau PPP pour
avoir plus de ports. (Voir le fichier README.Linux accompagnant la
distribution de PPP-2.1.2 pour des details complets des editions
simples que vous devez faire).
Remarque : la configuration du noyau 1.2.13 ne permet pas de revenir
en arriere - si vous faites une erreur en repondant a une des
questions dans le make config quitter avec CTRL-C et recommencer.
77..44.. CCoommppiillaattiioonn dduu nnooyyaauu LLiinnuuxx 11..33..xx eett 22..00..xx
Pour Linux 1.3.x et 2.0.x, vous pouvez utiliser le meme processus que
pour Linux 1.2.13. De meme, suivez les instructions du fichier README
pour installer les sources correctement. Vous lancez la configuration
du noyau avec
make config
Cependant, vous pouvez aussi utiliser
make menuconfig
Qui fournit un systeme de configuration avec une aide en ligne et vous
pouvez avancer et reculer dans la configuration.
Il y a aussi l'interface de configuration sous X-Window chaudement
recommandee
make xconfig
Vous pouvez compiler le support PPP directement dans votre noyau ou
sous la forme d'un module chargeable dynamiquement.
Si vous utilisez PPP occasionnellement, alors compiler le support PPP
en module chargeable est recommande. Avec kerneld, votre noyau
chargera automatiquement le(s) module(s) necessaires pour fournir le
support PPP quand vous lancerez une liaison PPP. Cela permet
d'economiser une partie de l'espace memoire : le noyau ne peut etre
swappe, alors que les modules chargeables sont automatiquement enleves
si ils ne sont pas utilises.
Pour cela, vous devez activer le support des modules chargeables :
______________________________________________________________________
Enable loadable module support (CONFIG_MODULES) [Y/n/?] y
______________________________________________________________________
Pour ajouter le support PPP a votre noyau, repondre a la question
suivante :
______________________________________________________________________
PPP (point-to-point) support (CONFIG_PPP) [M/n/y/?]
______________________________________________________________________
Pour un module chargeable, repondre MM, sinon pour le compiler
directement dans le noyau, repondre YY.
A la difference du 1.2.13, le noyau 2.0.x cree les peripheriques PPP
au vol et selon les besoins, et il n'y a absolument pas besoin de
bricoler le source pour augmenter le nombre de peripheriques PPP.
77..55.. RReemmaarrqquuee ssuurr PPPPPP--22..22 eett //pprroocc//nneett//ddeevv
Si vous utilisez PPP-2.2, vous trouverez qu'un probleme de la creation
des peripheriques PPP 'au vol' est qu'aucun peripherique n'est trouve
dans le fichier /proc/net tant qu'un peripherique n'est pas cree avec
le lancement de pppd :
______________________________________________________________________
[hartr@archenland hartr]$ cat /proc/net/dev
Inter-| Receive | Transmit
face |packets errs drop fifo frame|packets errs drop fifo colls carrier
lo: 92792 0 0 0 0 92792 0 0 0 0 0
eth0: 621737 13 13 0 23 501621 0 0 0 1309 0
______________________________________________________________________
Une fois que vous avez un (ou plus) services ppp lances, vous verrez
des entrees comme celles-ci (sur un serveur PPP) :
______________________________________________________________________
[root@kepler /root]# cat /proc/net/dev
Inter-| Receive | Transmit
face |packets errs drop fifo frame|packets errs drop fifo colls carrier
lo: 428021 0 0 0 0 428021 0 0 0 0 0
eth0:4788257 648 648 319 650 1423836 0 0 0 4623 5
ppp0: 2103 3 3 0 0 2017 0 0 0 0 0
ppp1: 10008 0 0 0 0 8782 0 0 0 0 0
ppp2: 305 0 0 0 0 297 0 0 0 0 0
ppp3: 6720 7 7 0 0 7498 0 0 0 0 0
ppp4: 118231 725 725 0 0 117791 0 0 0 0 0
ppp5: 38915 5 5 0 0 28309 0 0 0 0 0
______________________________________________________________________
77..66.. CCoonnssiiddeerraattiioonnss ggeenneerraalleess ssuurr llaa ccoonnffiigguurraattiioonn dduu nnooyyaauu ppoouurr PPPPPP
Si vous configurez votre PC Linux comme un serveur PPP, vous devez
activer le support IP Forwarding. Il est egalement necessaire si vous
voulez utiliser Linux pour relier deux reseaux locaux entre eux ou un
reseau local a Internet.
Si vous reliez un reseau local a Internet (ou reliez deux reseaux
entre eux), vous devez etre concernes par la securite. Ajouter le
support pour IP firewall dans votre noyau est alors sans doute
obligatoire !
Vous aurez egalement besoin, d'utiliser IP Masquerade pour relier un
reseau local qui utilise les adresses IP non connectees mentionnees
plus haut.
Pour activer IP Masquerade et IP firewalling, vous DDEEVVEEZZ repondre Oui
a la premiere question de make config :
______________________________________________________________________
Prompt for developement and/or incomplete code/drivers (CONFIG_EXPERIMENTAL)?
______________________________________________________________________
Bien que cela puisse sembler un peu bizarre aux nouveaux utilisateurs,
je confirme que de nombreux utilisateurs utilisent les possibilites de
IP Masquerading et de IP firewalling du noyau Linux 2.0.X sans
problemes.
Une fois que vous avez installe et boote votre nouveau noyau, vous
pouvez commencer a configurer et a tester votre liaison PPP.
88.. FFoouurrnniirr lleess iinnffoorrmmaattiioonnss ddoonntt vvoouuss aavveezz bbeessooiinn ppoouurr vvoottrree sseerrvveeuurr
PPPPPP
Avant d'etablir la connexion PPP avec un serveur, vous devez obtenir
les informations suivantes (de l'administrateur systeme/support
utilisateur/ personnes gerant le serveur PPP) :
+o Le numero de telephone a composer pour le service
Si vous etes derriere un standard, vous avez aussi besoin du numero
qui vous permet de sortir a l'exterieur du standard - c'est
generalement le chiffre zero (0) ou neuf(9).
+o Est-ce que le serveur utilise des adresse IP DYNAMIQUES ou
STATIQUES ?
Si le serveur utilise des adresses IP STATIQUES, vous devez savoir
quelle adresse IP utiliser a la fin de la connexion PPP. Si votre
FAI vous fournit une adresse de sous-reseau valide, vous devez
connaitre le masque de sous-reseau a utiliser (netmask).
La plupart des FAI utilisent des adresses IP DYNAMIQUES. Comme cela
est mentionne plus haut, cela a des impliquations sur les services
que vous pouvez utiliser.
Cependant, meme si vous utilisez des adresses IP STATIQUES, la
plupart des serveurs PPP ne laisseront jamais (pour des raisons de
securite) les clients specifier leur adresse IP car c'est un risque
pour la securite. Vous ddeevveezz connaitre aussi cette information !
+o Quel sont les adresses IP des serveur de noms des fournisseurs
d'acces ?
Il doit y en avoir au moins deux, meme si un seul suffit.
Il peut y avoir un probleme a ce niveau. Le service PPP de MS
Windows 95 permet que l'adresse DNS soit transmise au client dans
le processus de connexion. Ainsi, votre fournisseur d'acces
pourrait vous repondre que vous n'avez pas besoin de l'adresse IP
du serveur DNS.
Avec Linux, vous ddeevveezz connaitre l'adresse d'au moins un DNS.
L'implementation PPP de Linux ne permet pas de configurer
dynamiquement a la connexion l'adresse du serveur DNS - et ne
pourra certainement jamais.
RReemmaarrqquuee: bien que Linux (comme client PPP) ne peut pas recevoir
d'adresse DNS du serveur, il peut, en tant que serveur, envoyer
l'information au client en utilisant l'option dns-addr de pppd.
+o Est-ce-que le serveur a besoin d'utiliser PAP/CHAP ?
Si tel est le cas, vous devez connaitre le id et le secret que vous
avez pour vous connecter. (c'est probablement votre nom utilisateur
et le mot de passe de votre fournisseur d'acces).
+o Le serveur est-il un systeme Microsoft Windows NT et, dans ce cas,
utilise-t-il le systeme PAP/CHAP ?
De nombreux fournisseurs d'acces semblent utiliser MS-Windows NT de
cette facon pour ameliorer la securite.
Attention a l'information suivante - elle risque d'etre utile !
99.. CCoonnffiigguurreerr vvoottrree mmooddeemm eett vvoottrree ppoorrtt sseerriiee
Vous devez vous assurer que votre modem est correctement configure et
que vous savez sur quel port serie il est branche.
SSee ssoouuvveenniirr qquuee :
+o DOS COM1: = Linux /dev/cua0 (et /dev/ttyS0)
+o DOS COM2: = Linux /dev/cua1 (et /dev/ttyS1)
etc.
Il est egalement bien de se souvenir que si vous avez 4 ports series,
la configuration standard d'un PC est d'avoir COM1 et COM3 partageant
IRQ4 et COM2 et COM4 partageant IRQ3.
Si vous avez des peripheriques sur vos ports series qui partagent une
IRQ avec votre modem vous allez avoir des problemes. Vous devez vous
assurer que le port serie de votre modem est sur sa propre et unique
IRQ. De nombreuses cartes series modernes (et les ports series des
cartes meres de bonne qualite) permettent de changer les IRQ des ports
serie.
Si vous utilisez le noyau Linux 2, vous pouvez afficher des IRQ
actuellement utilises avec cat /proc/interrupts, qui produira une
sortie ressemblant a :
______________________________________________________________________
0: 6766283 timer
1: 91545 keyboard
2: 0 cascade
4: 156944 + serial
7: 101764 WD8013
10: 134365 + BusLogic BT-958
13: 1 math error
15: 3671702 + serial
______________________________________________________________________
Cela montre que le le port serie en IRQ4 (une souris) et le port serie
en IRQ15 (un modem permanent base sur PPP pour une liaison Internet).
(Il y a egalement un port serie sur le port COM2, IRQ3 et COM4 est
dans l'IRQ14, mais comme ils ne sont pas utilises, ils ne sont pas
affiches).
Avertissement - vous devez vous rendre compte de ce que vous faites
lorsque vous voulez jouer avec vos IRQ ! Non seulement, vous devez
ouvrir votre ordinateur, retirer vos cartes et jouer avec les jumpers,
mais vous devez savoir ce qu'il y a sur chaque IRQ. Dans mon cas,
j'ai un PC totalement SCSI, et j'ai donc desactive les interfaces IDE
de la carte-mere qui utilisent normalement les IRQ14 et 15 !
Je tiens egalement a preciser que si votre PC utilise un autre systeme
d'exploitation, changer les IRQ pourrait bien signifier que votre OS
ne bootera plus correctement, ou plus du tout !
Si vous deplacez vos ports series vers des IRQ non-standard, vous
devez specifier a Linux quel IRQ utilise chaque port. setserial permet
de le faire, et de preference lors du processus de lancement dans
rc.local ou rc.serial qui est appele dans rc.local ou comme une partie
de l'initialisation SysV system. Pour la machine presentee ci-dessus,
les commandes utilisees sont
______________________________________________________________________
/bin/setserial -b /dev/ttyS2 IRQ 11
/bin/setserial -b /dev/ttyS3 IRQ 15
______________________________________________________________________
Toutefois, si vous utilisez le module serie charge dynamiquement au
besoin avec le processus kerneld, vous ne pouvez pas definir et perdre
les IRQ a chaque redemarrage. Si le module serie est efface, Linux
perds alors les configurations speciales.
Donc, si vous chargez le module serie a la demande, vous devez
reconfigurer les IRQ a chaque fois qu'il est charge.
99..11.. RReemmaarrqquuee aauu ssuujjeett ddeess ppoorrttss sseerriieess eett ddeess ccaappaacciittee ddee vviitteessssee
Si vous utilisez un modem haut debit (externe) (14.400 Bits par
seconde ou plus), votre port serie doit etre capable de suivre le
debit qu'un tel modem est capable de produire, en particulier si le
modem compresse les donnees.
Cela demande que votre port serie utilise un UART(Universal
Asynchronous Receiver Transmitter) moderne comme un 16550(A). Si vous
utilisez une vieille machine (ou une vieille carte serie), il est tout
a fait possible que votre port serie ait seulement un UART 8250, ce
qui amenera des problemes considerables avec un modem haute vitesse.
Utiliser la commande
setserial -a /dev/ttySx
Pour que Linux vous affiche le type d'UART que vous avez. Si vous
n'avez pas un UART de type 16550, acheter une nouvelle carte serie
(disponible pour moins de 300 F). Quand vous acheterez une nouvelle
carte, assurez vous que vous pouvez changer les IRQ !
Remarque : les premieres versions des puces UART 16550 avaient une
erreur. Elle a ete rapidement decouverte et une mise a jour de la puce
est sortie - l'UART 16550A. Un nombre relativement faible de puces
erronees ont cependant ete mises en circulation. Ca serait de la
malchance que d'un recuperer une, en particulier sur certaines cartes
d'occasion, mais il suffit de chercher la reponse qui s'appelle
16550A.
99..22.. NNoommss ddeess ppoorrttss sseerriiee
Historiquement, Linux utilise les peripheriques cuaX pour les appels
sortants et ttySx pour les appels entrants.
Le code du noyau a eu besoin de changer cela dans la version 2.0.x du
noyau, et vous devez maintenant utiliser ttySx pour les appels
entrants et sortants. Cela semble annoncer que les noms de
peripheriques cuaX devraient disparaitre dans les futures versions du
noyau.
99..33.. CCoonnffiigguurraattiioonn ddee vvoottrree mmooddeemm
Vous devez configurer votre modem correctement pour PPP - pour cela,
LLIISSEEZZ LLEE MMAANNUUEELL DDEE VVOOTTRREE MMOODDEEMM ! La plupart des modems ont uunnee
ccoonnffiigguurraattiioonn ppaarr ddeeffaauutt eenn uussiinnee avec les options requises par PPP.
La configuration minimale specifie :
+o Controle de flux materiel (RTS/CTS) (&K3 sur les modems Hayes)
Les autres parametres (en commandes Hayes standard) que vous devez
verifier sont :
+o La commande E1 Echo ON (necessaire pour que chat fonctionne)
+o S0=0 Auto Answer OFF (a moins que vous ne vouliez que votre modem
reponde au telephone)
+o &C1 Carrier Detect ON seulement apres la connexion
+o &S0 Data Set Ready (DSR) toujours ON
+o (variable) Data Terminal Ready
Un site fournit la configuration des modems pour une variete de
fabricants et de modeles de modems croissante a Modem setup
information <
http://www.in.net/info/modems/index.html> qui devrait
vous simplifier la configuration.
Il est aussi interessant de verifier comment fonctionne l'interface
serie entre votre ordinateur et votre modem. La plupart des modems
modernes vous permettent d'utiliser l'interface serie a une vitesse
FIXE permettant a l'interface avec la ligne telephonique de changer de
vitesse pour atteindre la plus haute vitesse que les deux modems
peuvent supporter.
Cela s'appelle l'operation de division de la vitesse. Si votre modem
le supporte, bloquer l'interface serie du modem a la vitesse
disponible la plus rapide (d'habitude 115.200 bauds mais parfois
38.400 pour les modems 14.400).
Utiliser les outils de communication (c.-a-d. minicom ou seyon) pour
acceder a la configuration de votre modem, et l'adapter a ce qui est
necessaire a PPP. De nombreux modems renvoient leurs reglages courants
apres la commande AT&V, mais vous devez consulter le manuel de votre
modem.
Si vous avez completement modifie les reglages, vous pouvez repartir
sur des bases saines (generalement) en envoyant AT&F - ca retourne aux
reglages usine. (Pour la majorite des modems que j'ai rencontre, les
reglages usine on tout ce qu'il faut pour faire du PPP - mais vous
devez verifier).
Un fois que vous avez la commande necessaire pour configurer votre
modem, ecrivez-la. Vous devez maintenant prendre une decision : vous
pouvez stocker ces parametres dans la memoire non-volatile de votre
modem, comme cela vous pourrez la relancer en envoyant une commande AT
appropriee. Alternativement, vous pouvez passer le parametrage correct
a votre modem lors du processus de connexion de PPP.
Si vous utilisez uniquement votre modem sous Linux pour appeler votre
FAI ou un serveur d'entreprise, la maniere la plus simple est de
sauver la configuration de votre modem dans la memoire non-volatile.
D'un autre cote, si votre modem est utilise par d'autres applications
et systemes d'exploitation, il est plus sur de passer ces informations
au modem a chaque appel que vous passez, comme cela, c'est sur que le
modem sera bien configure lors de l'appel. (Cela a aussi l'avantage de
conserver la ligne de configuration du modem au cas ou le modem
perdrait le contenu de sa NV-RAM, ce qui peut parfois arriver).
99..44.. RReemmaarrqquuee ssuurr llee ccoonnttrroollee ddee fflluuxx sseerriiee
Lorsque les donnees transitent sur les lignes de communication serie,
il peut arriver que les donnees arrivent plus vite que l'ordinateur ne
peut les traiter (l'ordinateur peut etre occupe a faire autre chose -
n'oubliez pas que Linux est un systeme Multi-taches Multi-
utilisateurs). Pour s'assurer que des donnees ne se sont pas perdues
(les donnees n'arrivent pas dans le tampon d'entree pour se perdre
ensuite), certaines methodes de controles sont necessaires.
Il y a deux facons de faire sur des lignes series :
+o Utiliser des signaux materiels (Clear To Send/Request To Send
CTS/RTS)
+o Utiliser des signaux logiciel (control S et control Q, aussi
appeles XON/XOFF).
Bien que le dernier soit correct pour les liaisons vers des
terminaux(texte), les donnees sur une liaison PPP utilisent les 8 bits
- et il est fort probable que quelque part dans les donnees, un octet
se traduis par un control S ou un control Q. Donc, si un modem est
configure pour utiliser le controle de flux, les choses vont
rapidement s'envenimer !
Pour les liaisons a haut debit utilisant PPP (avec l'utilisation des 8
bits de donnees) le controle de flux materiel est vital, et c'est la
raison pour laquelle vous devez utiliser le controle de flux materiel.
99..55.. TTeesstteerr vvoottrree mmooddeemm ppoouurr ccoommppoosseerr uunn nnuummeerroo
Maintenant que vous en avez termine avec la configuration du modem et
du port serie, il serait utile de verifier si cette configuration
marche vraiment en appelant votre fournisseur d'acces et voir si vous
pouvez vous connecter.
En utilisant le paquetage du terminal de communication (tel que
minicom), la commande d'initialisation de votre modem pour PPP,
appelez le serveur PPP sur lequel vous voulez vous connecter pour une
session PPP.
(Remarque : a ce niveau, nous nn''eessssaayyeerroonnss ppaass d'etablir la connexion
PPP - mais juste d'etre sur que nous pouvons composer un numero et
ainsi trouver eexxaacctteemmeenntt ce que le serveur nous envoie pour se
connecter et lancer PPP).
Pendant le processus, soit vous capturez (dans un fichier) la totalite
du processus de login soit vous notez attentivement (_t_r_e_s
_a_t_t_e_n_t_i_v_e_m_e_n_t) eexxaacctteemmeenntt ce que le serveur envoie pour savoir quand
est le moment d'entrer votre nom utilisateur et votre mot de passe (et
quelques autres commandes necessaires pour etablir la connexion PPP).
Si votre serveur utilise PAP, vous ne verrez pas de message de login,
mais vous verrez a la place la (representation texte) du protocole de
controle de liaison (une suite incoherente de caracteres) s'afficher
sur votre ecran.
Quelques mots d'avertissements :
+o certains serveurs sont relativement intelligents : vous pouvez vous
connecter en utilisant un nom utilisateur /mot de passe base sur du
texte OU en utilisant PAP. Ainsi, si votre fournisseur d'acces ou
votre serveur d'entreprise utilise PAP mais n'affiche pas le
message directement, cela ne signifie pas que vous avez fait une
erreur.
+o certains serveurs ont besoin que vous entriez du texte avant de
lancer _e_n_s_u_i_t_e la sequence PAP standard.
+o Certains serveurs PPP sont passifs - il attendent et n'envoient
rien tant que le client avec lequel il dialogue ne lui envoie un
paquet LCP valide. Si le serveur PPP sur lequel vous vous
connectez fonctionne en mode passif, vous ne verrez jamais de
message !
+o Certains serveurs ne lancent pas PPP tant que vous n'avez pas
presse ENTREE - essayez donc cela si vous etes connecte et ne voyez
pas de message !
Il est interessant de dialoguer au moins deux fois - certains serveurs
changent leur message d'accueil (c.-a-d. avec le temps !) chaque fois
que vous vous connectez. Les deux messages critiques que votre machine
Linux doit pouvoir identifier chaque fois que vous vous vous connectez
sont :
+o le message qui vous demande d'entrer votre nom utilisateur ;
+o le message qui vous demande d'entrer votre mot de passe ;
Si vous avez tape une commande pour lancer PPP sur le serveur, vous
devez aussi rechercher le message que le serveur vous envoie une fois
que vous etes connecte pour vous informer que vous pouvez entrer la
commande pour lancer ppp.
Si votre serveur lance automatiquement PPP, une fois que vous etes
connecte, vous allez voir des caracteres s'afficher sur votre ecran -
c'est le serveur PPP qui envoie a votre machine les informations pour
demarrer et configurer la connexion PPP.
Ca doit donner quelque chose comme ceci :
______________________________________________________________________
______________________________________________________________________
(et ca ne s'arrete pas !)
Sur certains systemes, PPP doit etre explicitement lance sur le
serveur. Cela vient generalement du fait que le serveur a ete
configure pour permettre aux connexions PPP et aux connexions Shell a
utiliser les memes paires nom utilisateur/mot de passe. Si c'est le
cas, envoyez cette commande lorsque vous etes connecte. Une nouvelle
fois vous verrez des caracteres que le serveur envoie a la fin du
lancement de la connexion PPP.
Si vous ne voyez pas directement apres la connexion (et le processus
de connexion et le lancement du serveur PPP si besoin), tapez EEnnttrreeee
pour voir si le serveur PPP demarre...
A ce niveau, vous pouvez raccrocher votre modem (generalement, taper
+++ rapidement et envoyer la commande ATHO une fois que votre modem
vous a repondu OK).
Si vous n'arrivez pas a faire fontionner votre modem, lisez le manuel
du modem, les pages de manuel des programmes de communication, et le
Serial HOWTO ! Une fois que vous aurez fait tout cela reprenez l'etape
precedente.
1100.. CCoonnffiigguurreerr llaa rreessoolluuttiioonn ddee nnoomm vveerrss ll''aaddrreessssee ((DDNNSS))
Alors que les humains aiment donner des noms aux choses, les
ordinateurs preferent les nombres. Sur un reseau TCP/IP (comme
Internet), nous appelons les machines avec un nom particulier et
chaque machine se trouve dans un "domaine" particulier. Par exemple,
ma station de travail Linux s'appelle aarrcchheennllaanndd et se trouve dans le
domaine iinntteerrwweefftt..ccoomm..aauu. Son adresse lisible par un humain est donc
archenland.interweft.com.au (qui s'appelle le FQDN - nom de domaine
totalement qualifie).
Cependant, pour que cette machine soit trouvee par les autres
ordinateurs sur Internet, elle est reellement connue par son adresse
IP lorsque les ordinateurs communiquent a travers Internet.
Traduire (resoudre) les noms de machines (et de domaine) en nombres
reellement utilises sur Internet est le travail de machines qui
offrent le DNS.
Ce qui se passe en fait :
+o Votre machine a besoin de savoir l'adresse IP d'un ordinateur
particulier. L'application qui a besoin de cette information
interroge le resolveur de votre PC Linux pour obtenir cette
information;
+o Le resolveur interroge le fichier local /etc/hosts et/ou les
serveurs de noms des domaines qu'il connait (le comportement exact
du resolveur est determine dans /etc/hosts.conf);
+o si la reponse se trouve dans le fichier hosts, la reponse est
renvoyee;
+o si un serveur de nom est specifie, votre PC interroge alors cette
machine
+o si la machine DNS connait deja l'adresse IP du nom demande, elle le
retourne. Si elle ne le connait pas, elle interroge un autre
serveur de noms sur Internet pour trouver l'information. Le serveur
de noms redescend alors les informations au resolveur qui les a
demande - qui les envoie a l'application qui l'a interroge.
Quand vous utilisez une connexion PPP, vous devez indiquer a votre
machine Linux ou elle peut recuperer l'adresse IP a partir du nom
(resolution des adresses), comme cela vvoouuss ppoouurrrreezz uuttiilliisseerr llee nnoomm ddeess
mmaacchhiinneess mais votre ordinateur pourra traduire ces derniers vers les
adresses IP dont il a besoin pour travailler.
Une solution est de rentrer tous les hotes avec qui vous voulez
dialoguer dans le fichier /etc/hosts (ce qui est en realite totalement
impossible si vous etes connecte a Internet); une autre facon est
d'utiliser les adresses IP plutot que les noms (une tache de
memorisation impossible sauf pour les petits reseaux).
La meilleure facon est de configurer Linux pour qu'il connaisse ou
recupere l'information de conversion des noms en adresses -
automatiquement. Ce service est fourni par le systeme DNS. La seule
chose a faire est d'entrer l'adresse IP des serveurs de noms dans le
fichier /etc/resolv.conf.
1100..11.. LLee ffiicchhiieerr //eettcc//rreessoollvv..ccoonnff
Le support client de votre serveur PPP doit vous fournir deux adresses
IP de DNS (un seul est necessaire - mais deux permettent une
redondance en cas d'echec).
Comme c'est mentionne plus haut, Linux ne peut pas definir l'adresse
IP de son serveur de noms comme MS Windows 95 le fait. Ainsi, vous
devez iinnssiisstteerr (poliment) aupres de votre FAI pour qu'il vous
fournisse cette information !
Votre /etc/resolv.conf doit ressembler a quelque chose comme :
______________________________________________________________________
domain votre.nom.de.domaine
nameserver 10.25.0.1
nameserver 10.25.1.2
______________________________________________________________________
Editer ce fichier (le creer si necessaire) pour contenir les
informations que votre FAI vous a donne. Il doit avoir les droits et
les permissions comme suit :
-rw-r--r-- 1 root root 73 Feb 19 01:46 /etc/resolv.conf
Si vous avez deja configure un /etc/resolv.conf car vous etes sur un
reseau local, ajoutez simplement les adresses IP du serveur DNS PPP
dans votre fichier existant.
1100..22.. LLee ffiicchhiieerr //eettcc//hhoossttss..ccoonnff
Vous devez egalement verifier que votre fichier /etc/hosts.conf est
correctement configure. Il doit ressembler a
______________________________________________________________________
order hosts,bind
multi on
______________________________________________________________________
Il indique au resolveur d'utiliser les informations du fichier host
avant d'envoyer les requetes pour une resolution DNS.
1111.. UUttiilliisseerr PPPPPP eett lleess pprriivviilleeggeess rroooott
Puisque PPP a besoin de configurer les peripheriques reseau, modifier
les tables de routage entre autres, il a besoin des privileges rroooott.
Si des utilisateurs autres que rroooott doivent lancer des connexions PPP,
le programme pppd doit avoir l'uid rroooott :
-rwsr-xr-x 1 root root 95225 Jul 11 00:27 /usr/sbin/pppd
Si /usr/sbin/pppd n'est pas defini comme cela, alors eenn eettaanntt rroooott
taper la commande :
chmod u+s /usr/sbin/pppd
Cela permet a pppd de fonctionner avec les privileges root mmeemmee i si
le programme est lance par un utilisateur ordinaire. Ainsi pppd a les
bons privileges pour configurer les interfaces reseau et les tables de
routage.
Les programmes qui utilisent le uid root sont autant de trous de
securite potentiels et vous devez etre extremement vigilant par
rapport aux programmes uid root. De nombreux programmes (comme pppd)
ont ete ecrits minutieusement pour minimiser le danger d'utiliser suit
root, vous devez donc etre tranquille avec celui-ci (mais sans
garanties totales).
Selon ce que vous voulez faire de votre systeme - particulierement si
vous voulez qu'un utilisateur puisse initialiser une liaison PPP, vous
devez mettre vos scripts ppp-on/off lisibles et executables par tout
le monde. (c'est sans doute genial si vous etes le SEUL utilisateur
du PC).
Cependant, si vous NE voulez PAS que n'importe qui puisse lancer une
connexion PPP (par exemple, votre enfant qui a un compte sur votre PC
Linux et que vous ne voulez pas qu'il se connecte a Internet sans
votre permission), vous devez faire un groupe PPP (en tant que root,
editer le fichier /etc/group) et :
+o Rendre pppd 'suid root', possede par l'utilisateur rroooott et le
groupe PPP, avec ces nouvelles permissions sur le fichier. Il doit
ressembler a
-rwsr-x--- 1 root PPP 95225 Jul 11 00:27 /usr/sbin/pppd
+o Mettre les scripts ppp-on/off possedes par l'utilisateur rroooott et le
groupe PPPPPP
+o Rendre le script ppp-on/off lisible/executable par le groupe PPP
-rwxr-x--- 1 root PPP 587 Mar 14 1995 /usr/sbin/ppp-on
-rwxr-x--- 1 root PPP 631 Mar 14 1995 /usr/sbin/ppp-off
+o Ajouter les utilisateurs qui utilisent PPP dans le groupe PPP dans
/etc/group
Meme si vous faites cela, les utilisateurs normaux ne pourront pas
fermer la connexion avec un programme ! Utiliser ppp-off necessite les
privileges rroooott. Meme si n'importe quel utilisateur peut eteindre le
modem (ou deconnecter la ligne telephonique sur un modem interne).
Un alternative (et une meilleure methode) de faire cela est d'utiliser
le programme sudo, qui offre une meilleure securite et vous permettra
de choisir quels utilisateurs (autorises) pourrons activer/desactiver
la liaison en utilisant des scripts. Utiliser sudo permet aux
utilisateurs autorises d'activer/desactiver la liaison PPP de facon
propre et securisee.
1122.. CCoonnffiigguurreerr lleess ffiicchhiieerrss ddee ccoonnnneexxiioonn ddee PPPPPP
Maintenant, vous devez etre connecte en tant que rroooott pour creer les
repertoires et editer les fichiers necessaires a la configuration de
PPP, meme si vous souhaitez que PPP soit utilisable par tous les
utilisateurs.
PPP utilise un certain nombre de fichiers pour configurer les
connexions. Ceux-ci different dans leur nom et les chemins entre PPP
2.1.2 et 2.2.
Pour PPP 2.1.2 les fichiers sont :
______________________________________________________________________
/usr/sbin/pppd # le programme PPP
/usr/sbin/ppp-on # le script d'appel/connexion
/usr/sbin/ppp-off # le script de deconnexion
/etc/ppp/options # les options utilisees pour toutes le connexions
/etc/ppp/options.ttyXX # les options specifiques pour ce connecter sur ce port
______________________________________________________________________
Pour PPP 2.2. les fichiers sont :
______________________________________________________________________
/usr/sbin/pppd # Le programme PPP
/etc/ppp/scripts/ppp-on # le script d'appel connexion
/etc/ppp/scripts/ppp-on-dialer # premiere partie du script d'appel
/etc/ppp/scripts/ppp-off # le script chat reel
/etc/ppp/options # options utilisees par pppd pour toutes les
# connexions
/etc/ppp/options.ttyXX # options specifiques pour se connecter sur ce
# port
______________________________________________________________________
Je rappelle aux utilisateurs de la RedHat Linux que dans
l'installation standard de la Red Hat 4.X les scripts sont places dans
/usr/doc/ppp-2.2.0f-2/scripts.
Dans votre repertoire /etc, il devrait y avoir un repertoire pppppp :
drwxrwxr-x 2 root root 1024 Oct 9 11:01 ppp
S'il n'existe pas - le creer avec ces possessions et permissions.
Si le repertoire existe deja, il devrait contenir un fichier d'options
modele appele ooppttiioonnss..ttppll. Ce fichier est inclus plus bas au cas ou il
n'existerait pas.
Imprimez-le il contient une explication de presque toutes les options
de PPP et c'est pratique de le lire en meme temps que les pages de
manuel de ppp). Meme si vous pouvez utiliser ce fichier comme base a
votre /etc/ppp/options, il est sans doute mieux de creer votre propre
fichier d'options qui ne contiendra pas tous les commentaires du
modele - il sera bien plus court, et plus facile a lire/maintenir.
Si vous avez une ligne serie/modems multiple (c'est typiquement le cas
des serveurs PPP), creer un fichier general /etc/ppp/options contenant
les options communes a tous les ports series dans lequel vous
supportez la composition et la reception d'appels et un fichier de
configuration individuel pour chaque ligne serie sur laquelle vous
etablirez la configuration individuelle necessaire pour chaque port.
Ces fichiers d'options specifiques aux ports sont appeles
options.ttyx1, options.ttyx2 et ainsi de suite (ou x est la lettre
appropriee pour votre port serie).
Toutefois, pour une connexion simple, vous pouvez tranquillement
utiliser le fichier /etc/ppp/options. Vous pouvez aussi mettre toutes
les options comme argument de la commande pppd elle-meme.
Il est plus simple de maintenir une configuration qui utilise les
fichiers /etc/ppp/options.ttySx. Si vous utilisez PPP sur differents
sites, vous pouvez creer un fichier d'options pour chaque site dans
/etc/ppp/options.site, et ainsi specifier le fichier d'options en
parametre a la commande PPP lorsque vous vous connectez (en utilisant
l'option file option-file de pppd dans la ligne de commande de pppd).
1122..11.. LLee ffiicchhiieerr ooppttiioonnss..ttppll ffoouurrnnii
Certaines distributions de PPP semblent avoir perdu le fichier
options.tpl, donc voici le fichier complet. Je suggere de NE PAS
editer ce fichier pour creer votre fichier(s) /etc/ppp/options. Copiez
plutot celui-ci dans un nouveau fichier et editez-le alors. Si vous
vous trompez dans votre edition, vous pourrez toujours revenir en
arriere en recommencant sur l'original.
______________________________________________________________________
# /etc/ppp/options -*- sh -*- fichiers d'options generales pour pppd
# cree le 13-Jul-1995 jmk
# autodate: 01-Aug-1995
# autotime: 19:45
# adaptation francaise par Antoine Levavasseur
[email protected]
# Utilise l'executable ou la commande shell specifiee pour configurer la ligne
# serie. Ce script va en fait utiliser le programme "chat" pour appeler le
# modem et le debut de la liaison distante ppp.
#connect "echo Vous devez installer une commande connect."
# Lance l'executable ou la commande shell specifie, une fois que ppp a termine
# la liaison. Ce script va, par exemple, envoyer les commandes au modem pour le
# faire raccrocher si les signaux de controles materiels ne sont pas
# disponibles.
#disconnect "chat -- \d+++\d\c OK ath0 OK"
# table de caractere async -- 32-bit hex; chacun des bit est un caractere qui
# doit etre echappe pour que pppd le recoive. 0x00000001 represente '\x01',
# et 0x80000000 represente '\x1f'.
#asyncmap 0
# Demande a votre correspondant de s'authentifier avant de pouvoir envoyer ou
# recevoir des paquets reseaux
#auth
# Utilise le controle de flux materiel (i.e. RTS/CTS) pour controler le flux
# de donnees du port serie
#crtscts
# Utilise le controle de flux logiciel (i.e. XON/XOFF) pour controler le flux
# de donnees du port serie.
#xonxoff
# Ajouter une route par defaut aux tables de routage systeme, pour utiliser
# votre correspondant comme gateway, lorsque la negociation ICP reussi. Cette
# entree est supprimee lorsque la connexion PPP se termine.
#defaultroute
# Specifie que certains caracteres doivent etre echapes sur la transmission
# (en fonction de la facon dont le client souhaite qu'ils soient echappes avec
# la table de controle async). Les caracteres qui sont echappes sont specifies
# comme une liste de nombres hexa separes par des guillemets. La plupart des
# caracteres peuvent etres specifies avec l'option escape, a moins que l'option
# asyncmap soit activee puisque dans ce cas seuls les caracteres de controle
# peuvent etres specifies. Les caracteres qui ne peuvent etre echapes ont les
# valeurs hexa 0x20 - 0x3f ou 0x5e.
#escape 11,13,ff
# Ne pas utiliser les lignes de controle du modem
#local
# Specifie que pppd doit utiliser un verouillage du peripherique serie style
# UUCP pour s'en assurer un acces exclusif.
#lock
# Utilise les lignes de controle du modem. Sur un Ultrix, cette option implique
# un controle de flux materiel, comme avec l'option crtscts. (Cette option
# n'est pas completement implementee.)
#modem
# Definit la valeur MRU [Unite de Reception Maximum] a n pour la negociation.
# pppd demandera alors de se faire renvoyer les paquets pour au plus <n> octets
# La valeur MRU minimale est de 128. La valeur par defaut est 1500. La valeur
# 296 est recommandee pour les liaisons lentes (40 octets pour l'entete TCP/IP
# + 256 octets de donnees).
#mru 542
# Definit le masque reseau avec <n> qui est un masque reseau 32 bit en
# "chiffres decimaux" note (e.g 255.255.255.0).
#netmask 255.255.255.0
# Desactive le comportement par defaut lorsque aucune adresse IP n'est
# specifiee, et qu'elle est determine (quand c'est possible) a partir du
# hostname. Avec cette option, votre correspondant devra vous fournir votre
# adresse IP locale pendant la negotiation IPCP (a moins que cela ne soit
# specifie explicitement dans la ligne de commande ou un fichier d'options)
#noipdefault
# Active l'option passive sur le LCP. Avec cette option, pppd, essayera
# d'initier la connexion; si aucune reponse n'est recue de votre correspondant,
# pppd attendra passivement un packet LCP (au lieu de s'arreter comme il fait
# sans cette option)
#passive
# Avec cette option, pppd ne va pas transmettre les paquets LCP pour
# initialiser la connexion tant qu'un paquet LCP valide n'est pas envoye
# par votre correspondant (comme avec l'option "passive" pour des versions
# plus anciennes de pppd).
#silent
# Ne requiert et ne permet pas de negociation pour n'importe quelle option de
# LCP et IPCP (utilise les valeurs par defaut).
#-all
# Desactive la negociation de la compression d'adresses/controle (utilise les
# reglages par defaut, i.e. le champ adresse/controle desactive)
#-ac
# Desactive la negociation asyncmap (utilise le reglage asyncmap par defaut,
# i.e. echappement de tout les caracteres de controle)
#-am
# Ne forke pas pour devenir un processus en tache de fond (sinon pppd le fera
# si un peripherique serie est specifie).
#-detach
# Desactive la negociation d'adresses IP (avec cette option, l'adresse IP
# distante doit etre specifiee avec une option en ligne de commande ou dans
# un fichier d'options).
#-ip
# Desactive la negociation des nombres magiques. Avec cette option, pppd ne
# peut pas detecter une ligne avec une boucle.
#-mn
# Desactive la negociation MRU [Unite de Reception Maximum] (utilise la valeur
# par defaut, i.e. 1500).
#-mru
# Desactive la negociation du protocole de compression par champ (utilise la
# valeur par defaut, i.e le protocole de compression par champs desactive)
#-pc
# Impose a votre corresondant de s'autentifier avec PAP. Cela necessite une
# authentification des DEUX COTES - NE PAS utiliser pour une liaison standard
# authentifiee par PAP vers un FAI puisqu'il faudra que la machine du FAI
# soit authentifie aupres de votre machine (et ce qu'elle ne pourra pas faire).
#+pap
# Refuse d'utiliser l'authentification avec PAP.
#-pap
# Oblige votre correspondant a s'authentifier avec une authentification
# CHAP [Cryptographic Handshake Authentication Protocol]
# Cela necessite une authentification des DEUX COTES - ne PAS utiliser pour une
# liaison avec un FAI puisqu'il faudra que la machine du FAI
# soit authentifie aupres de votre machine (et ce qu'elle ne pourra pas faire).
#+chap
# Refuse d'utiliser l'authentification avec CHAP.
#-chap
# Desactive la negociation de la compression de l'entete IP style Van Jacobson
# (utilise la valeur par defaut, i.e. pas de compression).
#-vj
# Augmente de niveau de deboguage (comme -d). Si cette option est passee, pppd
# enverra dans le log le contenu de tous les paquets de controle envoyes ou
# recus dans une forme lisible. Les paquets seront envoyes dans syslog avec les
# possibilites des daemons et du niveau de deboguage. Ces informations peuvent
# etre diriges dans un fichier en configurant /etc/syslog.conf correctement
# (voir syslog.conf(5)). (Si pppd est compile avec des options de deboguage
# supplementaires, il enverra les messages de log dans local2 au lieu du
# daemon).
#debug
# Ouvre le nom de domaine <d> pour permettre l'authentification de nom d'hote
# local. Par exemple, si gethostname() retourne le nom porsche,
# mais le nom de domaine qualifie est porsche.Quotron.COM, vous devriez
# utiliser l'option domain pour mettre le nom de domaine a Quotron.COM.
#domain <d>
# Active le code de deboguage du pilote PPP au niveau du noyau. L'argument n
# est un nombre qui est la somme des valeurs suivantes : 1 active les messages
# de deboguage generaux, 2 pour que le contenu des paquets recus soient
# affiches, et 4 pour que le contenu des paquets envoyes soient affiches.
#kdebug n
# Configure la valeur MTU [Unitee de Transmission Maximum] a <n>. A moins
# que votre correspondant ne demande une valeur plus petite lors de la
# negociation MRU, pppd demande que les codes reseaux du noyau envoie des
# paquets d'au plus n octets dans l'interface reseau PPP.
#mtu <n>
# Definit le nom du systeme local avec <n> dans un but d'authentification.
# Cela doit certainement avoir ete configure avec votre nom utilisateur de votre
# FAI si vous utilisez PAP/CHAP.
#name <n>
# Definit le nom utilisateur avec <u> pour l'authentification avec le
# correspondant utilisant PAP .
# Ne pas utiliser si vous utilisez le 'name' au-dessus !
#user <u>
# Force l'utilisation du nom d'hote comme nom du systeme local pour les
# authentification (masque l'option name).
#usehostname
# Configure le nom du systeme distant pour les authentifications a <n>.
#remotename <n>
# Ajoute une entree au systeme des tables ARP [Protocole de Resolution
# d'Adresses] avec l'adresse IP de votre correspondant et l'adresse Ethernet
# de ce syteme.
#proxyarp
# Utilise le systeme de base de donnes de mots de passe pour l'authentification
# de votre correspondant avec PAP.
#login
# Si cette option est passee, pppd va envoyer une requete-echo LCP a votre
# correspondant toutes les n secondes. Sous Linux, une requete-echo est envoyee
# lorsqu'aucun paquet n'a ete recu du correspondant depuis n secondes.
# Normalement, le correspondant doit repondre a la requete-echo en envoyant une
# reponse-echo. Cette option peut etre utilise avec l'option lcp-echo-failure
# pour detecter que le correspondant n'est plus connecte.
#lcp-echo-interval <n>
# Si cette option est passe, pppd va supposer que le correspondant est mort
# si n requetes-echo LCP sont envoyees sans recevoir de reponse-echo LCP
# valide. Si cela arrive, pppd va terminer la connexion. Utiliser cette option
# necessite une valeur non nulle pour le parametre lcp-echo-interval.
# Cette option peut etre utilisee pour permettre a pppd de terminer une fois
# qu'une connexion pppd ait ete cassee (c.-a-d. le modem a ete raccroche) dans
# les situations ou aucune ligne de controle materiel du modem n'est
# disponibles
#lcp-echo-failure <n>
# Definit l'intervale relance LCP (delay de retransmission) a <n> secondes
# (defaut 3).
#lcp-restart <n>
# Definit le nombre maximal de transmission de requete-fin de LCP a <n>
# (defaut 3).
#lcp-max-terminate <n>
# Definit la nombre maximum de transmission de requete-configure LCP a <n>
# (defaut 10).
# Certains serveurs PPP sont lents a demarrer. Vous devrez alors augmenter
# ceci si vous avez des erreurs 'serial line looped back' et que vous etes
# SUR que vous etes connecte correctement et que PPP doit demarrer sur le
# serveur.
#lcp-max-configure <n>
# Definit le nombre maximum de retours LCP configure-NAKs avant de commencer
# a envoyer des configure-Rejects a la place a <n> (defaut 10).
#lcp-max-failure <n>
# Definit l'intervale de relancce de IPCP (temps de retransmission) a <n>
# secondes (defaut 3).
#ipcp-restart <n>
# Definit le nombre maximum de transmission de requete-fin IPCP a <n>
# (defaut 3).
#ipcp-max-terminate <n>
# Definit la nombre maximum de transmission de requete-configure IPCP a <n>
# (defaut 10).
#ipcp-max-configure <n>
# Definit la nombre maximem de retour configure-NAKs IPCP avant de commencer
# a envoyer des configure-Rejects a la place a <n> (defaut 10).
#ipcp-max-failure <n>
# Definit l'intervalle de relance PAP (temps de retransmission) a <n> secondes
# (defaut 3).
#pap-restart <n>
# Definit le nombre maximum de transmission de requete-d'authentification PAP
# a n (defaut 10)
#pap-max-authreq <n>
# Definit les intervales de relance de CHAP (temps de retransmission) a <n>
# secondes (defaut 3).
#chap-restart <n>
# Definit le nombre maximal d'essai de transmission de CHAP a <n>
# (defaut 10).
#chap-max-challenge
# Si cette option est passee, pppd va relancer votre correspondant toutes les
# <n> secondes.
#chap-interval <n>
# Avec cette option, pppd va accepter la proposition de votre correspondant
# pour votre adresse IP locale, meme si l'adresse IP est specifiee en option.
#ipcp-accept-local
# Avec cette option, pppd va accepter la proposition d'adresse IP (distante),
# meme si l'adresse distante est specifiee en option.
#ipcp-accept-remote
______________________________________________________________________
1122..22.. QQuueelllleess ooppttiioonnss ddooiiss--jjee uuttiilliisseerr ?? ((SSaannss PPAAPP//CCHHAAPP))
En fait, comme toujours, ca depend. Les options specifiees ici
devraient marcher avec la plupart des serveurs.
Cependant, si ca NE fonctionne PAS LISEZ LE FICHIER MODELE
(/etc/ppp/options.tpl) eett les pages de manuel de pppd eett demandez a
votre administrateur/support client qui fait marcher le serveur sur
lequel vous vous connectez.
Je rappelle egalement que les scripts de connexion presentes ici
utilisent egalement des options en ligne de commande pour pppd et
rendre les choses plus facilement modifiables.
______________________________________________________________________
# /etc/ppp/options (NO PAP/CHAP)
#
# Empeche pppd de forker en tache de fond
-detach
#
# utilise les lignes de controle du modem
modem
# utilise les verrous style uucp pour assurer une utilisation exclusive du
# port serie
lock
# utilise le flux de controle materiel
crtscts
# creer une route par defaut pour cette connexion dans la table de routage
defaultroute
# ne configure aucune sequence de controle echapee
asyncmap 0
# utlise une taille maximale de paquet transmis de 552 octets
mtu 552
# utilise une taille maximale de paquets recus de 552 octets.
mru 552
#
#-------FIN D'EXEMPLE /etc/ppp/options (sans PAP/CHAP)
______________________________________________________________________
1133.. SSii vvoottrree sseerrvveeuurr PPPPPP uuttiilliissee PPAAPP ((PPaasssswwoorrdd AAuutthheennttiiffiiccaattiioonn PPrroo--
ttooccooll))
Si le serveur sur lequel vous vous connectez a besoin de
l'authentification PAP ou CHAP, vous avez un petit peu plus de
travail.
Pour les fichiers de configuration precedents, ajouter les lignes
suivantes :
______________________________________________________________________
#
# force pppd a utiliser le nom utilisateur de FAI comme 'nom d'hote' pendant
# le processus d'authentification
name <le nom de votre FAI> # vous devez editer cette ligne
#
# Si vous avez un *serveur* PPP vous devez forcer PAP ou CHAP en decommentant
# l'une des lignes suivantes. Ne pas les utiliser si vous etes un client qui
# se connecte sur un serveur PPP (meme s'il utilise PAP ou CHAP) puisque cela
# forcera le serveur a s'authentifier aupres de votre machine (alors que cela
# ne sera certainement pas possible - et la liaison echouera).
#+chap
#+pap
#
# Si vous utilisez des secrets ENCRYPTES dans le fichier /etc/ppp/pap-secrets,
# alors decommentez la ligne suivante.
# Remarque: ce n'est pas pareil que d'utiliser les mots de passe MS encryptes
# comme ils peuvent etres avec MS RAS sur Windows NT.
#+papcrypt
______________________________________________________________________
1133..11.. UUttiilliisseerr MMSSCCHHAAPP
Microsoft Windows NT RAS peut etre configure pour utiliser une
variation particuliere de CHAP (Challenge/Handshake Authentication
Protocol). Dans l'archive des sources de PPP, vous devriez trouver un
fichier appele README.MSCHAP80 qui parle de cela.
Vous pouvez determiner si le serveur demande une authentification
utilisant ce protocole en activant le deboguage dans pppd. Si le
serveur demande une authentification MS CHAP, vous devriez voir les
lignes
______________________________________________________________________
rcvd [LCP ConfReq id=0x2 <asyncmap 0x0> <auth chap 80> <magic 0x46a3>]
______________________________________________________________________
L'information critique ici est aauutthh cchhaapp 8800.
Pour utiliser MS CHAP, vous devez recompiler pppd. Veuillez consulter
les instructions dans le fichier README.MSCHAP80 des sources de PPP
pour obtenir les instructions sur la facon de compiler en utilisant
cette variante.
Vous devez remarquer que le code present supporte uniquement des
clients Linux PPP connectes sur un serveur MS Windows NT. Mais NE
supporte PAS la configuration d'un serveur PPP Linux pour utiliser
l'authentification MSCHAP80 pour les clients.
1133..22.. LLee ffiicchhiieerr ddee sseeccrreettss ddee PPAAPP//CCHHAAPP
Si vous utilisez l'authentification PAP ou CHAP, alors vous devez
creer les fichiers . Ce sont
______________________________________________________________________
/etc/ppp/pap-secrets
/etc/ppp/chap-secrets
______________________________________________________________________
Il doivent etre possedes par rroooott, le groupe rroooott et avoir les
permissions 740 pour la securite.
Le premier point a remarquer au sujet de PAP et CHAP est qu'ils sont
concus pour authentifier lleess oorrddiinnaatteeuurrss mais pas lleess uuttiilliissaatteeuurrss
"Humm? Qu'est ce que ca change ? " Me demandez vous.
He bien, une fois que l'ordinateur a etabli une connexion PPP avec le
serveur, nn''iimmppoorrttee qquueell utilisateur de votre systeme peut utiliser
cette connexion - pas seulement vous. C'est pourquoi vous pouvez
configurer un reseau a large domaine en reliant deux reseaux locaux
avec PPP.
PAP peut (et CHAP DDOOIITT) demander une authentification bbiiddiirreeccttiioonnnneellllee
- c'est un nom et un code secret qui est necessaire pour chaque
ordinateur avec lequel il est implique. Cependant, ce n'est pas la
facon dont tous les serveurs PPP fonctionnent pour offrir
l'authentification PAP des appels PPP.
Il a ete dit que votre FAI vous donnerait certainement un nom
utilisateur et un mot de passe pour vous permettre de vous connecter
sur son systeme et ensuite sur Internet. Votre FAI se fiche de
connaitre le nom de votre ordinateur, vous devrez donc utiliser votre
nom utilisateur chez votre FAI comme nom pour votre machine.
Cela est possible avec l'option name username de pppd. Donc, si vous
utilisez le nom donne par votre FAI, ajoutez la ligne
______________________________________________________________________
name votre_utilisateur nom_chez_votre_FAI
______________________________________________________________________
dans votre fichier /etc/ppp/options.
Techniquement, vous devrez utiliser user votre_utilisateur
nom_chez_votre_FAI pour PAP, mais pppd est suffisamment intelligent
pour interpreter l'option name comme user si necessaire pour utiliser
PAP. L'avantage d'utiliser l'option name est qu'elle est egalement
valide pour CHAP.
Puisque PAP permet d'authentifier les oorrddiinnaatteeuurrss, techniquement, vous
devez aussi specifier un nom d'ordinateur distant. Toutefois, comme de
nombreuses personnes ont plus d'un seul FAI, vous pouvez utiliser un
caractere generique (*) pour le nom d'ordinateur distant dans le
fichier de secrets.
Il est aussi interessant de remarquer que de nombreux FAI utilise des
banques de modems multiples connectes sur differents serveurs de
terminaux - tous ont un nom different, mais sont accessibles avec un
seul numero d'appel. Il peut alors etre difficile dans certaines
circonstances de savoir a l'avance quel est le nom de l'ordinateur
distant, puisque cela dependra du serveur de terminal sur lequel vous
vous connecterez !
1133..33.. LLee ffiicchhiieerr ddee sseeccrreettss ddee PPAAPP
Le fichier /etc/ppp/pap-secrets ressemble a
______________________________________________________________________
# Authentication Secrete avec PAP
# client serveur secret adresses_IP_locale_acceptable
______________________________________________________________________
Les quatre champs sont separes par des espaces et le dernier peut etre
omis (c'est l'adresse dynamique ou sans doute statique de votre FAI).
Supposons que votre FAI vous ait donne un nom utilisateur fred et un
mot de passe flintstone vous aurez l'option name fred dans
/etc/ppp/options[.ttySx] et vous configurerez votre /etc/ppp/pap-
secrets comme suit
______________________________________________________________________
# Authentication Secrete avec PAP
# client serveur secret adresses_IP_locale_acceptable
fred * flintstone
______________________________________________________________________
Cela signifie que pour une machine locale fred (pppd lui impose de
s'appeler comme cela meme si ca n'est pas son nom de machine reel) et
pour nn''iimmppoorrttee qquueell serveur, utiliser le mot de passe (secret)
"flintstone".
Remarquez que vous ne devez pas specifier d'adresse IP locale, a moins
que vous ne deviez FORCER une adresse locale statique particuliere.
Meme si vous essayez cette option, il y a peu de chances qu'elle
marche puisque la plupart des serveurs PPP (pour des raisons de
securite) ne permettent pas au systeme distant de configurer l'adresse
IP qu'ils recoivent.
1133..44.. LLee ffiicchhiieerr ddee sseeccrreettss ddee CCHHAAPP
Cette methode necessite une methode authentification mutuelle - c'est
a dire que vous devez permettre a votre machine d'authentifier le
serveur distant EETT le serveur distant d'authentifier votre machine.
Donc, si votre machine s'appelle fred et que le serveur distant
s'appelle barney il faut definir sur fred name fred remotename barney
et sur la machine distante name barney remotename fred dans les
fichiers /etc/ppp/options.ttySx respectifs.
Le fichier /etc/chap-secrets de fred ressemblera a
______________________________________________________________________
# Authentication Secrete avec CHAP
# client serveur secret adresses_IP_locale_acceptable
fred barney flintstone
barney fred wilma
______________________________________________________________________
et pour barney
______________________________________________________________________
# Authentication Secrete avec CHAP
# client serveur secret adresses_IP_locale_acceptable
barney fred flintstone
fred barney wilma
______________________________________________________________________
Remarquez en particulier que les deux machines doivent avoir des
entrees pour une authentification bidirectionnelle. Cela permet a la
machine locale d'authentifier elle-meme la machine distante EETT la
machine distante d'authentifier elle-meme la machine locale.
1133..55.. SSuuppppoorrtteerr pplluussiieeuurrss ccoonnnneexxiioonnss aauutthheennttiiffiieeeess aavveecc PPAAPP
Certains utilisateurs ont plus d'un serveur sur lesquels ils se
connectent en utilisant PAP. A partir du moment ou votre nom
utilisateur est different sur chacune des machines sur lesquelles vous
vous connectez, il n'y a pas de probleme.
Mais, nombreux sont les utilisateurs qui ont le meme nom utilisateur
sur deux (ou plus, voire meme tous les) systemes ou ils se connectent.
Le probleme revient donc a choisir la bonne ligne du fichier
/etc/ppp/pap-secrets.
Comme vous pouvez le supposer, PPP fournit un mecanisme pour regler
cela. PPP permet de definir un << pseudonyme >> pour le serveur
distant final de la connexion en utilisant l'option rreemmootteennaammee de
pppd.
Supposons que vous vous connectiez sur deux serveurs PPP utilisant le
meme nom utilisateur fred. Vous configurerez votre /etc/ppp/pap-
secrets avec
______________________________________________________________________
fred pppserveur1 barney
fred pppserveur2 wilma
______________________________________________________________________
Maintenant, pour se connecter sur pppserveur1 vous utiliserez name
fred remotename pppserver1 dans votre ppp-options et pour pppserveur2
name fred remotename pppserver2.
Puisque vous pouvez selectionner le fichier d'options a utiliser avec
pppd en utilisant l'option file filename, vous pouvez definir un
script pour se connecter sur chacun de vos serveurs PPP, qui choisira
le fichier d'options correct et mettra la bonne option remotename.
1144.. CCoonnffiigguurreerr uunnee ccoonnnneexxiioonn PPPPPP aa llaa mmaaiinn
Maintenant que vous avez cree les fichiers /etc/ppp/options et
/etc/resolv.conf (et si besoin le fichier /etc/ppp/pap/chap-secrets),
vous pouvez tester les parametres en etablissant une connexion PPP a
la main. (Une fois que la connexion manuelle marchera, nous
automatiserons le processus).
Pour ce faire, votre programme de communication doit pouvoir etre
quitte sans reinitialiser le modem. Minicom peut le faire avec Alt-Q
(ou dans les versions plus ancienne de minicom CTRL-A Q)
Verifiez que vous etes rroooott.
Lancez le programme de communication (minicom par exemple), appelez le
serveur PPP et connectez-vous comme d'habitude. Si vous avez besoin
d'envoyer une commande pour demarrer PPP sur le serveur, faites-le.
Vous devriez maintenant voir les messages que vous aviez deja vus.
Si vous utilisez PAP ou CHAP, se connecter simplement sur le systeme
distant devrait demarrer PPP et vous devriez voir des caracteres
s'afficher sans toutefois se connecter (meme si ca peut ne pas marcher
sur certains serveurs - essayez alors d'appuyer sur EEnnttrreeee et les
caracteres devraient s'afficher).
Maintenant quittez le programme de communication _s_a_n_s _i_n_i_t_i_a_l_i_s_e_r _l_e
_m_o_d_e_m (ALT-Q ou CTRL-A Q dans minicom) et au message d'accueil de
Linux (etant rroooott) tapez
______________________________________________________________________
pppd -d -detach /dev/ttySx 38400 &
______________________________________________________________________
L'option -d active le deboguage - la conversation de demarrage de la
connexion ppp sera retranscrite dans votre journal systeme - ce qui
est tres utile si des problemes apparaissent.
Les lumieres de votre modem devraient alors clignoter puisque la
connexion PPP est etablie. Cela peut prendre un peu de temps avant que
la connexion soit terminee.
A ce niveau, vous pouver afficher l'interface PPP en tapant la
commande :
______________________________________________________________________
ifconfig
______________________________________________________________________
En plus des eventuels peripheriques loopback et Ethernet, vous devriez
avoir quelque chose qui ressemble a :
______________________________________________________________________
ppp0 Link encap:Point-Point Protocol
inet addr:10.144.153.104 P-t-P:10.144.153.51 Mask:255.255.255.0
UP POINTOPOINT RUNNING MTU:552 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0
TX packets:0 errors:0 dropped:0 overruns:0
______________________________________________________________________
Ou
+o inet addr:10.144.153.10 est l'adresse IP de votre connexion.
+o P-t-P:10.144.153.5 est l'adresse IP du serveur.
(Naturellement, ifconfig ne renvoie pas ces nombres la, mais ceux qui
sont utilises par le serveur PPP.)
Remarque : ifconfig indique egalement que votre liaison fonctionne
correctement !
Si vous aucun peripherique PPP n'est affiche ou quelque chose du genre
______________________________________________________________________
ppp0 Link encap:Point-Point Protocol
inet addr:0.0.0.0 P-t-P:0.0.0.0 Mask:0.0.0.0
POINTOPOINT MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0
TX packets:0 errors:0 dropped:0 overruns:0
______________________________________________________________________
Votre liaison PPP n'est pas correcte... voir la section suivante sur
le debuggage !
Vous devez aussi pouvoir voir une route vers l'hote distant (et meme
plus). Pour cela, entrez la commande
______________________________________________________________________
route -n
______________________________________________________________________
Vous devriez obtenir quelque chose comme :
______________________________________________________________________
Kernel routing table
Destination Gateway Genmask Flags MSS Window Use Iface
10.144.153.3 * 255.255.255.255 UH 1500 0 1 ppp0
127.0.0.0 * 255.0.0.0 U 3584 0 11 lo
10.0.0.0 * 255.0.0.0 U 1500 0 35 eth0
default 10.144.153.3 * UG 1500 0 5 ppp0
______________________________________________________________________
Ce qui est important ici, c'est d'avoir DEUX entrees pointant vers
votre interface ppp.
La premiere est une route d'hote (indique par le drapeau H) et qui
permet de voir l'hote sur lequel vous etes connecte - mais pas plus.
La seconde est la route par defaut (etablie en donnant a pppd l'option
defaultroute). C'est cette route qui indique a votre PC Linux
d'envoyer tous les paquets qui ne sont pas destines a vos interfaces
Ethernet - vers lesquelles vous avez des routes reseau specifiques -
au serveur PPP lui-meme. Le serveur PPP est alors responsable de
router vos paquets vers Internet et de vous renvoyer les paquets chez
vous.
Si vous ne voyez pas une table de routage avec deux entrees, quelque
chose ne marche pas. En particulier si votre syslog contient des
messages indiquant que pppd ne remplace pas la route par defaut, vous
devez avoir une route par defaut qui pointe sur votre interface
Ethernet - qui DDOOIITT etre remplacee par une route reseau specifique :
VVOOUUSS NNEE PPOOUUVVEEZZ AAVVOOIIRR QQUU''UUNNEE SSEEUULLEE RROOUUTTEE PPAARR DDEEFFAAUUTT !!!!!!
Vous devez explorer vos fichiers d'initialisation de votre systeme
pour trouver ou est configure votre route par defaut (elle doit
utiliser la commande route add default...). Changer cette commande par
quelque chose du genre route add net ....
Maintenant testez la liaison en 'pingant' le serveur a l'adresse IP
affiche par ifconfig, comme suit :
______________________________________________________________________
ping 10.144.153.51
______________________________________________________________________
Vous devriez obtenir
______________________________________________________________________
PING 10.144.153.51 (10.144.153.51): 56 data bytes
64 bytes from 10.144.153.51: icmp_seq=0 ttl=255 time=328.3 ms
64 bytes from 10.144.153.51: icmp_seq=1 ttl=255 time=190.5 ms
64 bytes from 10.144.153.51: icmp_seq=2 ttl=255 time=187.5 ms
64 bytes from 10.144.153.51: icmp_seq=3 ttl=255 time=170.7 ms
______________________________________________________________________
Ce listing doit continuer sans jamais s'arreter - pour le stopper,
taper CTRL C, vous recevrez alors des informations complementaires :
______________________________________________________________________
--- 10.144.153.51 ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 170.7/219.2/328.3 ms
______________________________________________________________________
Jusqu'ici tout va bien, jusqu'ici tout va bien.
Maintenant, essayez de pinger un nom d'hote (pas le nom du serveur PPP
lui-meme) mais un hote d'un autre site dont vous SAVEZ qu'il y a de
tres fortes chances qu'il marche...). Par exemple
______________________________________________________________________
ping sunsite.unc.edu
______________________________________________________________________
_o_u _l_i_p_6_._f_r
Dans ce cas, il va y avoir une petite pause le temps que Linux
obtienne l'adresse IP du nom de hote que vous avez 'pinge' par le DNS
que vous avez specifie dans le /etc/resolv.conf - ne vous inquietez
pas (les lumieres de votre modem devraient clignoter). Rapidement,
vous devriez avoir l'affichage suivant
______________________________________________________________________
PING sunsite.unc.edu (152.2.254.81): 56 data bytes
64 bytes from 152.2.254.81: icmp_seq=0 ttl=254 time=190.1 ms
64 bytes from 152.2.254.81: icmp_seq=1 ttl=254 time=180.6 ms
64 bytes from 152.2.254.81: icmp_seq=2 ttl=254 time=169.8 ms
64 bytes from 152.2.254.81: icmp_seq=3 ttl=254 time=170.6 ms
64 bytes from 152.2.254.81: icmp_seq=4 ttl=254 time=170.6 ms
______________________________________________________________________
La encore, arretez le en tapant CTRL C pour obtenir les
statistiques...
______________________________________________________________________
--- sunsite.unc.edu ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max = 169.8/176.3/190.1 ms
______________________________________________________________________
Si vous n'avez pas de reponse, essayer de pinger l'adresse de votre
serveur DNS de votre FAI. Si vous n'avez pas de resultat, alors il
doit y avoir un probleme avec votre /etc/resolv.conf.
Si ca ne fonctionne pas, vous devez avoir un probleme de routage, ou
votre FAI a un probleme a vous renvoyer les paquets. Verifiez les
tables de routages presentees plus haut et si tout est OK, contacter
votre FAI. Si cela se trouve apres votre FAI, alors le probleme est de
votre cote.
Si tout marche correctement, fermez la connexion en tapant
______________________________________________________________________
ppp-off
______________________________________________________________________
Apres une courte pause, le modem devrait raccrocher.
Si ca ne marche pas, soit vous eteignez votre modem, soit vous lancez
votre programme de communication et vous interrompez votre modem avec
+++ puis vous raccrochez avec ATH0 quand vous recevez le message OK de
votre modem.
Vous devez egalement effacer le fichier cree par pppd
______________________________________________________________________
rm -f /var/lock/LCK..ttySx
______________________________________________________________________
1155.. AAuuttoommaattiisseerr vvoottrree ccoonnnneexxiioonn -- CCrreeeerr lleess ssccrriippttss ddee ccoonnnneexxiioonn
Meme si vous pouvez continuer a vous connecter a la main comme montre
ci-dessus il est plus sympa de faire quelques scripts pour automatiser
tout ca.
Quelques scripts vont automatiser la connexion et le lancement de PPP,
vous n'aurez alors plus qu'a envoyer une seule commande (en etant rroooott
ou membre du groupe PPP) pour lancer votre connexion.
1155..11.. SSccrriippttss ddee ccoonnnneexxiioonn ppoouurr ll''aauutthheennttiiffiiccaattiioonn nnoomm uuttiilliissaa--
tteeuurr//mmoott ddee ppaassssee
Si votre FAI n'a pas besoin d'utiliser PAP/CHAP, ces scripts sont
faits pour vous !
Si le paquetage ppp est correctement installe, vous devez avoir deux
fichiers d'exemple. Pour PPP 2.1.2 il sont dans /usr/sbin et pour PPP
2.2 il sont dans /etc/ppp/scripts. Ils s'appellent
pour PPP-2.1.2
ppp-on
ppp-off
et pour PPP 2.2
ppp-off
ppp-on
ppp-on-dialer
Maintenant, si vous utilisez PPP 2.1.2, je vous presse fermement de
detruire ces fichiers d'exemple. Il y a pleins de problemes potentiels
avec ceux-ci - et ne me dites pas qu'ils marchent correctement - je
les ai egalement utilise pendant des annees (et les recommandait meme
dans la premiere version de ce HOWTO) !
Pour les utilisateurs de PPP 2.1.2, voici de BIEN MEILLEURS modeles,
pris dans la distribution 2.2 de PPP. Je vous conseille de les copier
et d'utiliser ces scripts a la place des anciens de PPP-2.1.2.
1155..22.. LLee ssccrriipptt pppppp--oonn
C'est le premier des DEUX scripts qui lance la connexion.
______________________________________________________________________
#!/bin/sh
#
# Script pour initialiser une connexion PPP. C'est la premiere partie de deux
# scripts. Ce ne sont pas des scripts securises, puisque les codes sont
# visibles avec la commande 'ps'. Cependant ils sont simples.
#
# Ce sont des parametres a changer selon les besoins
TELEPHONE=555-1212 # Le numero de telephone de la connexion
ACCOUNT=george # Le nom du compte (comme dans 'George Burns')
PASSWORD=gracie # Le mot de passe du compte (et 'Gracie Allen')
LOCAL_IP=0.0.0.0 # L'adresse IP locale si elle est connue Dynamic = 0.0.0.0
REMOTE_IP=0.0.0.0 # Adresse IP distante. Normally 0.0.0.0
NETMASK=255.255.255.0 # Le masque reseau si besoin
#
# Les exporter pour qu'ils soit disponible avec 'ppp-on-dialer'
export TELEPHONE ACCOUNT PASSWORD
#
# C'est l'emplacement du script qui compose le numero et se connecte.
# Utilisez les noms de fichiers absolus, car la variable $PATH n'est pas
# utilisee avec l'option connect. (Faire ca en etant 'root' entraine un
# trou de securite.)
#
DIALER_SCRIPT=/etc/ppp/ppp-on-dialer
#
# Commencer la connexion
#
#
exec /usr/sbin/pppd debug /dev/ttySx 38400 \
$LOCAL_IP:$REMOTE_IP \
connect $DIALER_SCRIPT
______________________________________________________________________
Voici le script ppp-on-dialer :
______________________________________________________________________
#!/bin/sh
#
# C'est la deuxieme partie du script ppp-on. Il contient le protocole de
# connexion de la connexion desiree.
#
/usr/sbin/chat -v \
TIMEOUT 3 \
ABORT '\nBUSY\r' \
ABORT '\nNO ANSWER\r' \
ABORT '\nRINGING\r\n\r\nRINGING\r' \
'' \rAT \
'OK-+++\c-OK' ATH0 \
TIMEOUT 30 \
OK ATDT$TELEPHONE \
CONNECT '' \
ogin:--ogin: $ACCOUNT \
assword: $PASSWORD
______________________________________________________________________
Avec PPP-2.2, le script ppp-off ressemble a :
______________________________________________________________________
#!/bin/sh
######################################################################
#
# Determine le peripherique a terminer.
#
if [ "$1" = "" ]; then
DEVICE=ppp0
else
DEVICE=$1
fi
######################################################################
#
# Si le fichier pid ppp0 est present alors le programme est lance. Le stopper.
if [ -r /var/run/$DEVICE.pid ]; then
kill -INT `cat /var/run/$DEVICE.pid`
#
# Si le kill ne marche pas, alors il n'y a pas de processus lance pour ce pid.
# Cela peut signifier que le fichier de lock a ete laisse. Vous souhaitez
# peut-etre detruire le fichier de lock en meme temps.
if [ ! "$?" = "0" ]; then
rm -f /var/run/$DEVICE.pid
echo "ERROR: Removed stale pid file"
exit 1
fi
#
# Succes. pppd a enlever tout ce qu'il avait cree.
echo "PPP link to $DEVICE terminated."
exit 0
fi
#
# Le processus ppp ne marche pas pour ppp0
echo "ERROR: PPP link is not active on $DEVICE"
exit 1
______________________________________________________________________
1155..33.. EEddiitteerr lleess ssccrriippttss ddee ddeemmaarrrraaggee ddee PPPPPP ffoouurrnniiss
Puisque les nouveaux scripts sont en deux parties, nous allons les
editer chacun leur tour.
1155..33..11.. LLee ssccrriipptt pppppp--oonn
Vous devez editer ces fichiers pour contenir VOTRE nom utilisateur de
votre FAI, VOTRE mot de passe de votre FAI, et le numero de telephone
de votre FAI.
Chacune des lignes ressemblant a TELEPHONE= definissent une variable
du shell contenant les informations a droite du '=' (mise a part les
commentaires evidemment). Editer donc toutes les lignes de ce fichier
pour qu'il corresponde a votre FAI et votre connexion.
De plus, si vous configurez l'adresse IP (si vous avez besoin) dans le
fichier /etc/ppp/options, DETRUISEZ les lignes mentionnant
______________________________________________________________________
$LOCAL_IP:$REMOTE_IP \
______________________________________________________________________
Assurez-vous egalement que la variable shell DIALER_SCRIPT pointe sur
le chemin complet du script d'appel qui sera reellement utilise.
Ainsi, si vous deplacez ou renommez ce script, assurez-vous que vous
modifier correctement cette ligne dans le script ppp-on !
1155..33..22.. LLee ssccrriipptt pppppp--oonn--ddiiaalleerr
C'est le deuxieme des scripts qui lance votre liaison PPP.
Remarque : un script chat est normalement sur une ligne complete. Les
backslashs sont utilises pour permettre a la ligne de se repartir sur
plusieurs lignes physiques (pour une lisibilite plus humaine) et ne
font pas partie du script lui-meme.
Cependant, il est tres utile de le regarder en detail, comme cela nous
comprenons ce qu'il est reellement suppose faire !
1155..44.. CCee qquuee ssccrriipptt CChhaatt ssiiggnniiffiiee......
Un script chat est une sequence de paires de "chaines d'attentes" et
de "chaines d'envoi ". En particulier, remarquez que nous attendons
TTOOUUJJOOUURRSS quelque chose avant d'envoyer quoi que ce soit.
Si nous envoyons quelque chose SSAANNSS avoir rien recu avant, nous devons
attendre une chaine vide avant (indiquee par un "") Et de la meme
maniere attendre quelque chose sans avoir rien envoye ! Ainsi, si les
chaine consistent en quelques mots, (c.-a-d. NO CARRIER), vous devez
entourez les chaines par des quotes pour qu'elles soient vues comme
une seule entite par chat.
La ligne chat de notre modele est :
______________________________________________________________________
exec /usr/sbin/chat -v
______________________________________________________________________
Invoque chat, le -v indique a chat de mettre toutes ses entree/sorties
dans le journal systeme (generalement /var/log/messages). Une fois que
votre script chat marchera correctement, editez cette ligne et enlevez
le -v pour economiser des messages inutiles dans votre syslog.
______________________________________________________________________
TIMEOUT 3
______________________________________________________________________
Ca definit un temps d'attente de trois secondes avant la reception
d'une entree attendue. Vous devrez l'augmenter a 5 ou 10 secondes si
vous utilisez un modem extremement lent !
______________________________________________________________________
ABORT '\nBUSY\r'
______________________________________________________________________
Si la chaine BUSY est recue, abandonner l'operation.
M
______________________________________________________________________
ABORT '\nNO ANSWER\r'
______________________________________________________________________
Si la chaine NO ANSWER est recue, abandonner l'operation.
______________________________________________________________________
ABORT '\nRINGING\r\n\r\nRINGING\r'
______________________________________________________________________
Si la chaine RINGING est recue de maniere repetee, abandonner
l'operation. C'est parce que quelqu'un vous appelle !
______________________________________________________________________
" \rAT
______________________________________________________________________
Ne rien attendre du modem et envoyer la chaine AT.
______________________________________________________________________
OK-+++\c-OK ATH0
______________________________________________________________________
C'est un petit plus complique car cela utilise certaines capacites de
chat a recuperer les erreurs.
Ca veux dire...Expect OK, si on ne l'a pas recu (parce que le modem
n'est pas en ligne de commande) alors envoyer +++ (la chaine standard
des modems compatible Hayes pour retourner en ligne de commande) et
attendre OK. Ensuite envoyer ATH0 (la chaine pour raccrocher). Cela
permet au script de repondre a la situation ou votre modem avait
laisse la ligne decrochee !
______________________________________________________________________
TIMEOUT 30
______________________________________________________________________
Mettre le temps d'attente a 30 secondes pour le reste du script. Si
vous avez des soucis avec des abandons du script chat a cause de
timeout, augmentez cette valeur a 45 secondes ou plus.
______________________________________________________________________
OK ATDT$TELEPHONE
______________________________________________________________________
Attends un OK (la reponse du modem a la commande ATH0) et compose le
numero que nous voulez appeler.
______________________________________________________________________
CONNECT ''
______________________________________________________________________
Attendre CONNECT(ce que le modem nous envoie lorsque le modem distant
decroche) et n'envoie rien en reponse.
______________________________________________________________________
ogin:--ogin: $ACCOUNT
______________________________________________________________________
Une fois encore nous avons une recuperation d'erreur ici. Attendre le
message de login (...ogin:) mais si nous ne le recevons pas au bout
d'un certain temps, envoyer un retour chariot et attendre une nouvelle
fois le message de login. Lorsque le message est recu, envoyer le nom
utilisateur (stocke dans la variable shell $ACCOUNT).
______________________________________________________________________
assword: $PASSWORD
______________________________________________________________________
Attendre le message du mot de passe et envoyer le mot de passe (la
aussi stocke dans une variable shell).
Ce script chat a une capacite de recuperation d'erreurs resonnable.
Chat possede bien d'autres possibilites que celles detailles. Pour
plus d'informations, consulter la page de manuel de chat (man 8 chat).
1155..44..11.. DDeemmaarrrreerr PPPPPP ssuurr llee sseerrvveeuurr ffiinnaall
Bien que le script ppp-on-dialer soit parfait pour les serveurs qui
lancent automatiquement pppd sur le serveur final une fois que vous
etes connectes, certains serveurs necessitent que vous lanciez PPP
explicitement sur le serveur.
Si vous avez besoin d'envoyer une commande de lancement de PPP sur le
serveur, vous DEVEZ editer le script ppp-on-dialer.
A la fin du script (apres la ligne password) ajouter une paire aatttteennttee
eennvvooii en plus - elle cherchera un message de login (une suite de
caracteres qui ont une signification particuliere dans le shell Bourne
- comme $ et ou (les crochets ouverts et fermes).
Une fois que chat a obtenu le prompt du shell, chat doit envoyer la
commande de demarrage de ppp necessaire sur le serveur PPP de votre
FAI.
Pour ma part, mon serveur PPP utilise un prompt Bash standard
______________________________________________________________________
[hartr@kepler hartr]$
______________________________________________________________________
et necessite que je tapes
______________________________________________________________________
ppp
______________________________________________________________________
pour lancer ppp sur le serveur.
Une idee judicieuse peut etre d'ajouter un peu de recuperation
d'erreur, dans mon cas j'utilise
______________________________________________________________________
hartr--hartr ppp
______________________________________________________________________
Cela signifie que si je ne recois pas le prompt dans le temps imparti,
j'envoie un retour chariot et je recherche le prompt une nouvelle
fois.
Une fois que le message est recu, j'envoie la chaine ppp.
Remarque : n'oubliez pas d'ajouter un \ a la fin de la ligne
precedente pour que chat pense que le script de connexion de chat est
toujours sur une seule ligne !
Malheureusement, certains serveurs generent un nombre de messages tres
variable ! Vous aurez peut-etre besoin de vous connecter plusieurs
fois avec minicom pour comprendre comment ca marche et recuperer une
chaine "d'attente" stable.
1155..55.. UUnn ssccrriipptt cchhaatt ppoouurr lleess ccoonnnneeccttiioonnss aauutthheennttiiffiieeeess aavveecc PPAAPP//CCHHAAPP
Si votre FAI utilise PAP/CHAP, alors votre script chat est bien plus
simple. Tout ce que votre script chat doit faire est de composer le
numero, attendre la connexion et ensuite laisser pppd s'occuper du
processus de connexion !
______________________________________________________________________
#!/bin/sh
#
# C'est la deuxieme partie du script ppp-on. Il contient le protocole de
# connexion de la connexion desiree.
#
exec /usr/sbin/chat -v \
TIMEOUT 3 \
ABORT '\nBUSY\r' \
ABORT '\nNO ANSWER\r' \
ABORT '\nRINGING\r\n\r\nRINGING\r' \
'' \rAT \
'OK-+++\c-OK' ATH0 \
TIMEOUT 30 \
OK ATDT$TELEPHONE \
CONNECT '' \
______________________________________________________________________
1155..66.. LLeess ooppttiioonnss ddeebbuugg et file option_file de pppd
Comme nous l'avons deja vu, vous pouvez activer les informations de
debuggage avec l'option -d de pppd. L'option 'debug' est equivalente a
celle-ci.
Puisque vous etablissez la connexion avec un nouveau script, laissez
pour le moment les informations de debuggage. (Attention : si votre
espace disque est reduit, les echanges de connexion de pppd peuvent
rapidement augmenter votre fichier syslog et vous amener des problemes
- mais pour aller jusque la, il faut que vous essayez et vous echouiez
vos connexions un certain temps).
Une fois que tout marche correctement, vous pouvez alors enlever cette
option.
Si vous avez appele votre fichier d'options de ppp autrement que
/etc/ppp/options ou /etc/ppp/options.ttySx, specifiez le nom du
fichier avec l'option file de pppd :
______________________________________________________________________
exec /usr/sbin/pppd debug file options.myserver /dev/ttyS0 38400 \
______________________________________________________________________
1166.. TTeesstteezz vvoottrree ssccrriipptt ddee ccoonnnneexxiioonn
Ouvrez un nouveau Xterm rroooott (si vous etes sous X) ou ouvrez une
nouvelle console virtuelle et connectez vous comme rroooott.
Dans cette nouvelle session, tapez la commande
tail -f /var/log/messages
(ou l'endroit exact ou se trouve le fichier log).
Dans la premiere fenetre (ou console virtuelle), tapez la commande
ppp-on &
(ou le nom que vous avez donne a la nouvelle version de votre
/usr/sbin/ppp- on). Si vous ne mettez pas le script en tache de fond
en specifiant & en fin de commande, vous ne recupererez pas le prompt
de votre terminal avant que ppp se termine (ou que la liaison se
termine).
Maintenant revenez dans la fenetre ou vous affichez votre journal
systeme.
L'affichage devrait ressembler a ce qui suit (si vous avez specifie
l'option -vi a chat et -d a pppd )....c'est le deroulement du script
chat et des reponses envoyees dans le fichier journal systeme suivi
des informations de demarrage de pppd :
______________________________________________________________________
Oct 21 16:09:58 hwin chat[19868]: abort on (NO CARRIER)
Oct 21 16:09:59 hwin chat[19868]: abort on (BUSY)
Oct 21 16:09:59 hwin chat[19868]: send (ATZ^M)
Oct 21 16:09:59 hwin chat[19868]: expect (OK)
Oct 21 16:10:00 hwin chat[19868]: ATZ^M^M
Oct 21 16:10:00 hwin chat[19868]: OK -- got it
Oct 21 16:10:00 hwin chat[19868]: send (ATDT722298^M)
Oct 21 16:10:00 hwin chat[19868]: expect (CONNECT)
Oct 21 16:10:00 hwin chat[19868]: ^M
Oct 21 16:10:22 hwin chat[19868]: ATDT722298^M^M
Oct 21 16:10:22 hwin chat[19868]: CONNECT -- got it
Oct 21 16:10:22 hwin chat[19868]: send (^M)
Oct 21 16:10:22 hwin chat[19868]: expect (ogin:)
Oct 21 16:10:23 hwin chat[19868]: kepler login: -- got it
Oct 21 16:10:23 hwin chat[19868]: send (hartr^M)
Oct 21 16:10:23 hwin chat[19868]: expect (ssword:)
Oct 21 16:10:23 hwin chat[19868]: hartr^M
Oct 21 16:10:23 hwin chat[19868]: Password: -- got it
Oct 21 16:10:23 hwin chat[19868]: send (??????^M)
Oct 21 16:10:23 hwin chat[19868]: expect (hartr)
Oct 21 16:10:24 hwin chat[19868]: [hartr -- got it
Oct 21 16:10:24 hwin chat[19868]: send (ppp^M)
Oct 21 16:10:27 hwin pppd[19872]: pppd 2.1.2 started by root, uid 0
Oct 21 16:10:27 hwin pppd[19873]: Using interface ppp0
Oct 21 16:10:27 hwin pppd[19873]: Connect: ppp0 <--> /dev/cua1
Oct 21 16:10:27 hwin pppd[19873]: fsm_sdata(LCP): Sent code 1, id 1.
Oct 21 16:10:27 hwin pppd[19873]: LCP: sending Configure-Request, id 1
Oct 21 16:10:27 hwin pppd[19873]: fsm_rconfreq(LCP): Rcvd id 1.
Oct 21 16:10:27 hwin pppd[19873]: lcp_reqci: rcvd MRU
Oct 21 16:10:27 hwin pppd[19873]: (1500)
Oct 21 16:10:27 hwin pppd[19873]: (ACK)
Oct 21 16:10:27 hwin pppd[19873]: lcp_reqci: rcvd ASYNCMAP
Oct 21 16:10:27 hwin pppd[19873]: (0)
Oct 21 16:10:27 hwin pppd[19873]: (ACK)
Oct 21 16:10:27 hwin pppd[19873]: lcp_reqci: rcvd MAGICNUMBER
Oct 21 16:10:27 hwin pppd[19873]: (a098b898)
Oct 21 16:10:27 hwin pppd[19873]: (ACK)
Oct 21 16:10:27 hwin pppd[19873]: lcp_reqci: rcvd PCOMPRESSION
Oct 21 16:10:27 hwin pppd[19873]: (ACK)
Oct 21 16:10:27 hwin pppd[19873]: lcp_reqci: rcvd ACCOMPRESSION
Oct 21 16:10:27 hwin pppd[19873]: (ACK)
Oct 21 16:10:27 hwin pppd[19873]: lcp_reqci: returning CONFACK.
Oct 21 16:10:27 hwin pppd[19873]: fsm_sdata(LCP): Sent code 2, id 1.
Oct 21 16:10:27 hwin pppd[19873]: fsm_rconfack(LCP): Rcvd id 1.
Oct 21 16:10:27 hwin pppd[19873]: fsm_sdata(IPCP): Sent code 1, id 1.
Oct 21 16:10:27 hwin pppd[19873]: IPCP: sending Configure-Request, id 1
Oct 21 16:10:27 hwin pppd[19873]: fsm_rconfreq(IPCP): Rcvd id 1.
Oct 21 16:10:27 hwin pppd[19873]: ipcp: received ADDR
Oct 21 16:10:27 hwin pppd[19873]: (10.144.153.51)
Oct 21 16:10:27 hwin pppd[19873]: (ACK)
Oct 21 16:10:27 hwin pppd[19873]: ipcp: received COMPRESSTYPE
Oct 21 16:10:27 hwin pppd[19873]: (45)
Oct 21 16:10:27 hwin pppd[19873]: (ACK)
Oct 21 16:10:27 hwin pppd[19873]: ipcp: returning Configure-ACK
Oct 21 16:10:28 hwin pppd[19873]: fsm_sdata(IPCP): Sent code 2, id 1.
Oct 21 16:10:30 hwin pppd[19873]: fsm_sdata(IPCP): Sent code 1, id 1.
Oct 21 16:10:30 hwin pppd[19873]: IPCP: sending Configure-Request, id 1
Oct 21 16:10:30 hwin pppd[19873]: fsm_rconfreq(IPCP): Rcvd id 255.
Oct 21 16:10:31 hwin pppd[19873]: ipcp: received ADDR
Oct 21 16:10:31 hwin pppd[19873]: (10.144.153.51)
Oct 21 16:10:31 hwin pppd[19873]: (ACK)
Oct 21 16:10:31 hwin pppd[19873]: ipcp: received COMPRESSTYPE
Oct 21 16:10:31 hwin pppd[19873]: (45)
Oct 21 16:10:31 hwin pppd[19873]: (ACK)
Oct 21 16:10:31 hwin pppd[19873]: ipcp: returning Configure-ACK
Oct 21 16:10:31 hwin pppd[19873]: fsm_sdata(IPCP): Sent code 2, id 255.
Oct 21 16:10:31 hwin pppd[19873]: fsm_rconfack(IPCP): Rcvd id 1.
Oct 21 16:10:31 hwin pppd[19873]: ipcp: up
Oct 21 16:10:31 hwin pppd[19873]: local IP address 10.144.153.104
Oct 21 16:10:31 hwin pppd[19873]: remote IP address 10.144.153.51
______________________________________________________________________
(Remarque - j'utilise les adresses IP STATIQUES - ma machine l'envoie
au serveur PPP - vous ne verrez pas la meme chose si vous utilisez des
adresses IP DYNAMIQUES.) Ainsi, le server necessite une commande
specifique pour demarrer ppp a la fin.
Ca semble OK - alors testez comme avant avec des ping des adresses IP
et des noms des hotes.
Lancer votre navigateur web ou n'importe quoi d'autre et allez surfer
- vous etes connecte !
1177.. TTeerrmmiinneerr uunnee ccoonnnneexxiioonn PPPPPP
Quand vous en avez termine avec la liaison PPP, utilisez la commande
standard ppp-off pour la terminer (rappel - vous devez etre rroooott ou
membre du groupe PPP ! ).
Dans votre fichier journal de votre systeme, il devrait y avoir
quelque chose ressemblant a :
______________________________________________________________________
Oct 21 16:10:45 hwin pppd[19873]: Interrupt received: terminating link
Oct 21 16:10:45 hwin pppd[19873]: ipcp: down
Oct 21 16:10:45 hwin pppd[19873]: default route ioctl(SIOCDELRT): Bad address
Oct 21 16:10:45 hwin pppd[19873]: fsm_sdata(LCP): Sent code 5, id 2.
Oct 21 16:10:46 hwin pppd[19873]: fsm_rtermack(LCP).
Oct 21 16:10:46 hwin pppd[19873]: Connection terminated.
Oct 21 16:10:46 hwin pppd[19873]: Exit.
______________________________________________________________________
Ne pas s'inquieter du SIOCDELRT - c'est juste pppd qui indique qu'il
se termine, il n'y a pas a s'en inquieter.
1188.. RReessoouuddrree lleess pprroobblleemmeess
Il y a de nombreuses raisons pour que votre liaison ne fonctionne pas
- chat n'a pas reussi a aller jusqu'au bout, vous avez une mauvaise
ligne, etc. Regardez votre syslog pour avoir des indications.
1188..11.. JJ''aaii ccoommppiillee llee ssuuppppoorrtt PPPPPP ddaannss llee nnooyyaauu,, mmaaiiss......
Un probleme relativement courant est que les gens compilent le support
PPP dans leur noyau et apres, lorsqu'ils essayent de lancer pppd, le
noyau repond qu'il ne supporte pas ppp ! Un grand nombre de raisons
peuvent en etre la cause.
1188..11..11.. BBooootteezz--vvoouuss aavveecc llee bboonn nnooyyaauu ??
Meme si vous aavveezz recomplie votre support de ppp dans le noyau, vous
ne bootez pas sur le nouveau noyau. Cela peut arriver si vous n'avez
pas mis a jour /etc/lilo.conf et relance lilo.
Une bonne facon de verifier le noyau est d'envoyer la commande uname
-a, qui affiche la ligne ressemblant a
______________________________________________________________________
Linux archenland 2.0.28 #2 Thu Feb 13 12:31:37 EST 1997 i586
______________________________________________________________________
Cela donne la version du noyau et la date a laquelle il a ete compile
- ce qui vous donnera une bonne idee de ce qui se passe.
1188..11..22.. AAvveezz--vvoouuss ccoommppiillee llee ssuuppppoorrtt nnooyyaauu ddee pppppp ccoommmmee uunn mmoodduullee ??
Si vous avez compile le support de ppp comme un module, mais n'avez
pas fait d'installation des modules, alors vous pouvez avoir cette
erreur. Relisez le kernel-HOWTO et le fichier README de /usr/src/linux
!
Une autre possibilite concernant les modules est que vous supposez que
les modules sont charges automatiquement, alors que le daemon kerneld
n'est pas lance (il charge et decharge les modules au vol). Verifiez
le mini-HOWTO kerneld pour des informations sur la configuration de
kerneld.
1188..11..33.. UUttiilliisseezz--vvoouuss uunnee bboonnnnee vveerrssiioonn ddee PPPPPP ppoouurr vvoottrree nnooyyaauu ??
Vous ddeevveezz utiliser ppp-2.2 avec les versions 2.0.x du noyau. Vous
pouvez utiliser ppp-2.2 avec les versions 1.2.x du noyau (si vous le
patchez) sinon vous devez utiliser ppp-2.1.2.
1188..11..44.. LLaanncceezz vvoouuss ppppppdd eenn eettaanntt rroooott ??
Si vous ne lancez pas pppd en etant l'utilisateur rroooott (et que pppd
n'est pas suid vers rroooott), vous pourrez recevoir ce message.
1188..22.. MMoonn mmooddeemm ssee ccoonnnneeccttee mmaaiiss PPPPPP nnee ddeemmaarrrree jjaammaaiiss
Il y a d'innombrables possibilites avec ca (regardez dans
comp.os.linux....).
Une erreur EEXXTTRREEMMEEMMEENNTT frequente est que vous avez mal tape quelque
chose dans vos scripts. La seule chose a faire est de verifier que
vous avez la conversation entre votre PC Linux et le serveur rapporte
dans le syslog /var/log/message) allez ensuite dans celui-ci _l_i_g_n_e _p_a_r
_l_i_g_n_e. Vous aurez peut-etre besoin d'appeler votre serveur ppp a la
main pour reverifier tout ca.
Vous devez verifier les messages de logs reels tres attentivement - et
ayez a l'esprit que les hommes on tendance a lire ce qu'ils PENSENT
avoir tape - et non ce qu'ils ont sous leurs yeux !
1188..33.. LLee ssyysslloogg ccoonnttiieenntt ""sseerriiaall lliinnee iiss nnoott 88 bbiitt cclleeaann..."
Il y a plusieurs possibilites a cela - comme des retours sur la ligne
etc., qui peuvent etre la consequence d'une (ou plusieurs) choses.
Pour comprendre ce qui se passe, il est necessaire de chercher se qui
se passe en coulisses dans pppd lui-meme.
Lorsque pppd demarre, il envoie des paquets LCP (Link Control
Protocol) a la machine distante. Si il recoit une reponse valide il
passe ensuite a l'etape suivante (avec IPCP - les paquets de controle
IP) et c'est seulement une fois que cette negociation est terminee que
les trames IP reelles commencent et que vous pouvez utiliser la
liaison PPP.
Si il n'y a pas de serveur ppp fonctionnel a l'autre bout quand votre
PC envoie les paquets LCP, ceux-ci sont renvoyes par le processus de
login final. Comme ces paquets utilisent 8 bits, et sont reflechis
avec le 8eme bit (souvenez vous qu'ASCII est un code 7 bits). PPP s'en
apercoit et s'en plaint.
Il y a plusieurs possibilite pour qu'un reflexion arrive.
1188..33..11.. VVoouuss nn''eetteess ppaass ccoorrrreecctteemmeenntt ccoonnnneeccttee ssuurr llee sseerrvveeuurr
Lorsque le script chat se termine, pppd demarre sur votre PC.
Cependant, si vous n'avez pas termine le processus de connexion au
serveur (comme envoyer une commande necessaire a lancer PPP sur le
serveur), PPP ne se lancera pas.
Ainsi, le paquet LCP sera reflechi et vous aurez une erreur.
Vous devez verifier et corriger (si necessaire) attentivement votre
script chat (voir plus haut).
1188..33..22.. VVoouuss nn''aavveezz ppaass llaannccee PPPPPP ssuurr llee sseerrvveeuurr
Certains serveurs PPP necessitent que vous entriez une commande et/ou
un retour chariot apres avoir termine le processus de connexion et
avant que ppp soit lance a l'autre bout.
Verifiez votre script chat (voir plus haut).
Si vous vous connectez a la main et que vous vous rendez compte que
vous devez envoyer sur ENTREE apres avoir lance PPP, ajouter
simplement une paire attente/envoi vide a la fin de votre script chat
(un chaine vide envoie en fait ENTREE).
1188..44.. LLee pprroocceessssuuss PPPPPP ddiissttaanntt eesstt lloonngg aa ddeemmaarrrreerr
La c'est un peu delicat !
Par defaut, votre pppd Linux est compile pour envoyer un maximum de 10
requetes LCP de configuration. Si le serveur est un peu lent a
demarrer, la totalite des 10 requetes auront ete envoyees avant que le
serveur PPP distant n'ait eu le temps de les recevoir.
Sur votre machine, pppd voit la reflexion des 10 requetes (avec le
8eme bit inverse) et s'arrete.
Il y a deux facon de resoudre cela :
Ajouter lcp-max-configure 30 comme option de ppp. Cela augmentera le
nombre de packets de configuration LCP que pppd enverra avant
d'abandonner. Pour les serveurs vraiment lents, vous devez meme
mettre plus que ca.
Sinon, vous pouvez etre un peu malin de votre cote. Vous avez peut-
etre remarque que lorsque vous vous connectez a la main au serveur PPP
et que vous demarrez alors PPP, le pprreemmiieerr caractere que ppp envoie et
qui apparait est toujours le caractere tilda (~).
En savant cela, vous pouvez ajouter une nouvelle paire attente/envoi a
la fin de votre script chat qui attendra un tilda et n'enverra rien.
Cela ressemblera alors a :
______________________________________________________________________
\~ ''
______________________________________________________________________
Remarque : comme le caractere tilda a une signification particuliere
pour le shell, il doit etre echappe (en fait precede par un
backslash).
1188..55.. LLaa rroouuttee ppaarr ddeeffaauutt nn''eesstt ppaass ccoonnffiigguurreeee
Si pppd refuse de configurer la route par defaut, c'est parce que
(assez justement) il refuse de remplacer/supprimer une route par
defaut existante.
La raison habituelle lorsque cette erreur apparait est que certaines
distributions configurent une route par defaut pour votre carte
Ethernet au lieu de la configurer comme une route reseau specifique.
Voir le Linux NAG et le HOWTO Net2/3 pour des informations sur la
facon de configurer correctement votre carte Ethernet et les routes
associees.
Une alternative a cela est que votre reseau local utilise deja un
gateway/routeur et que votre table de routage est deja configuree pour
envoyer la route par defaut a cet endroit.
Resoudre cette situation peut necessiter quelques connaissances de
reseau IP qui sort du domaine de ce HOWTO. Il est suggere d'obtenir
l'avis d'un expert (par les groupes de news ou quelqu'un que vous
pouvez interroger pres de vous).
1188..66.. AAuuttrreess pprroobblleemmeess
Il y a des tas de raisons autres que celles-ci pour que ppp ne
parvienne pas a se connecter et/ou fonctionner correctement.
Lisez la FAQ PPP(qui est une serie de questions-reponses). C'est un
document tres didactique et les reponses y SONT ! De ma propre (et
triste) experience, si la reponse a votre probleme n'est pas dedans,
votre probleme N'est PAS de la faute de ppp ! Pour ma part,
j'utilisais un noyau ELF alors que je n'avais pas mis a jour les
modules du noyau. J'ai juste perdu 2 jours (et presque une nuit) a
chercher comment doit etre un serveur PPP parfait avant de faire
lumiere !
1199.. OObbtteenniirr ddee ll''aaiiddee qquuaanndd oonn eesstt ttoottaalleemmeenntt ppeerrdduu
Si vous n'arrivez pas a faire fonctionner votre liaison PPP, relisez
ce document et tout verifier - en conjonction avec les sorties de
"chat-v..." et "pppd -d" dans votre journal systeme.
Consultez egalement la documentation de PPP la FAQ et tout les
documents mentionnes ici !
Si vous etes encore bloque, essayez les groupes de news
comp.os.linux.misc et comp.os.linux.networking qui sont regulierement
parcourus par des gens capable de vous aider sur PPP ainsi que dans
comp.protocols.ppp
Vous pouvez essayer de m'envoyer personnellement un email, mais si
j'ai une journee (et meme une vie) charge, je ne garanti pas de
repondre rapidement (meme pas du tout) selon la quantite de travail en
cours et l'etat de ma vie privee !
En particulier - NNEE PPOOSSTTEEZZ PPAASS DDEESS PPAAGGEESS EETT DDEESS PPAAGGEESS DDEE SSOORRTTIIEE DDEE
DDEEBBUUGGGGAAGGEE DDAANNSS LLEESS NNEEWWSS GGRROOUUPPSS NNII MMEEMMEE AA MMOOII PPAARR EEMMAAIILL - c'est une
enorme perte de bande passante, et la majorite sera envoye dans
/dev/null (a moins qu'elle ne soit expressement demande).
2200.. PPrroobblleemmeess ccllaassssiiqquueess lloorrssqquuee llaa lliiaaiissoonn ffoonnccttiioonnnnee
Un des problemes que vous rencontrerez est que de nombreux
fournisseurs d'acces est qu'ils ne supporterons que les programmes de
connexions qu'ils distribuent avec les nouveaux comptes. Il sont
(habituellement) pour Microsoft Windows :-( - et la plupart des bureau
d'aide des fournisseurs d'acces ne sembleront rien savoir au sujet
d'Unix (ou Linux). Donc preparez vous a une assistance limite de leur
part !
Vous pouvez evidemment leur faire une faveur et leur apprendre ce
qu'est Linux (certaines personnes au support de votre fournisseur
d'acces seront relativement 'branche' avec le monde Internet est
auront une machine Linux chez eux - bien sur que ca existe ! )
2200..11.. JJee nn''aarrrriivvee ppaass aa vvooiirr aapprreess llee sseerrvveeuurr PPPPPP oouu jjee ssuuiiss ccoonnnneeccttee
OK - votre connexion PPP est lancee et fonctionne vous pouvez pinger
le serveur PPP avec son adresse IP (la deuxieme ou "remote" adresse IP
affichee par ifconfig ppp0), mais vous ne pouvez rien atteindre apres
cela.
Tout d'abord, essayez de pinger les adresses IP que vous avez specifie
dans /etc/resolv.conf comme serveur de noms. Si elles marchent, vous
ppoouuvveezz voir apres votre serveur PPP (en tout cas ce qui a une adresse
IP identique a ce que vous avez specifie). Maintenant essayez de
pinger l'adresse complete de votre fournisseur d'acces :
ping mon.fournisseur.internet.fr
Si ca ne marche pas, vous avez un probleme avec la resolution des
noms. C'est probablement a cause d'une faute de frappe dans votre
fichier /etc/resolv.conf. Verifiez ca attentivement a partir des
informations que vous aviez obtenues en appelant votre fournisseur
d'acces. Si ca semble correct, appelez votre fournisseur d'acces, et
verifiez que vous avez note l'adresse IP correctement.
Si ca ne marche TOUJOURS pas (et que votre fournisseur d'acces vous
confirme que le serveur de noms fonctionne correctement), vous devez
avoir un probleme ailleurs - et je vous suggere de verifier votre
installation de Linux (en particulier les permissions des fichiers).
Si vous ne pouvez TOUJOURS pas pinger le serveur de nom de votre
fournisseur d'acces par l'adresse IP, soit il est eteint (appelez les
par telephone et verifiez) soit il y a un probleme de routage du cote
de votre fournisseur d'acces. De meme appelez-les et demandez leur.
Un autre possibilite est qu'a l'autre bout le serveur PPP Linux n'ait
pas l'option IP forwarding d'activee dans le noyau !
Un bon test est d'essayer de se connecter avec le programme que votre
fournisseur d'acces vous a donne pour (oups) Microsoft Windows. Si
tout marche sur un autre systeme d'exploitation avec exactement le
meme compte, alors le probleme vient de votre machine Linux et NON de
votre fournisseur d'acces.
2200..22.. JJee ppeeuuxx eennvvooyyeerr dduu ccoouurrrriieerr mmaaiiss ppaass eenn rreecceevvooiirr
Si vous avez une adresse IP dynamique, c'est tout a fait normal. Voir
"Configurer les services" plus bas.
2200..33.. aavveecc mmaa mmaacchhiinnee ?? PPoouurrqquuooii lleess ggeennss nnee ppeeuuvveenntt ppaass ffaaiirree ddee
ffiinnggeerr,, WWWWWW,, ggoopphheerr,, ttaallkk eettcc
La aussi, si vous utilisez une adresse IP dynamique c'est tout a fait
normal. voir "Configurer les services" plus bas.
2211.. UUttiilliisseerr lleess sseerrvviicceess IInntteerrnneett aavveecc ddeess aaddrreesssseess IIPP ddyynnaammiiqquueess
Si vous utilisez une adresse IP dynamique (et tous les provideurs ne
vous donnerons qu'une adresse dynamique a moins que vous ne payez bien
plus pour votre connexion), vous devez accepter les limitations
qu'elle impose.
Tout d'abord, les requetes pour les services sortant fonctionneront
parfaitement. Cela signifie que vous pourrez envoyer du courrier avec
sendmail (si sendmail est configure correctement), les fichiers ftp
pour les sites distants, les fingers vers d'autres machines, surfer
sur le web etc.
En particulier, vous pourrez repondre au courrier que vous avez recu
meme si votre machine n'est plus connectee. Le courrier restera dans
votre queue de messages jusqu'a ce que vous appeliez votre FAI.
Cependant, votre machine N'est PAS connectee a Internet 24H/24, et en
plus elle n'a pas la meme adresse IP a chaque fois qu'elle se
connecte. Il est donc impossible de recevoir du courrier electronique
directement sur votre machine, et de creer un serveur web et ftp que
vos amis pourraient acceder ! A partir du moment ou ca concerne
Internet, votre machine n'est pas unique, ni accessible de maniere
permanente comme cela serait le cas avec une adresse IP unique (rappel
- les autres machines utilisent les adresses IP pour acceder a votre
machine).
Si vous configurez en serveur WWW (ou n'importe quoi d'autre), il est
totalement inconnu des utilisateurs d'Internet A MOINS QU'ils soient
au courant que votre machine est connectee et qu'ils connaissent votre
adresse IP courante. Il y a plusieurs facon de fournir cette
information, vous demander par telephone, leur envoyer un e-mail pour
leur dire, ou utiliser un fichier ".plan" sur le compte shell de votre
fournisseur d'acces (en partant du principe que votre fournisseur
d'acces permet les script shell et les finger).
Maintenant, pour la majorite des utilisateurs, ca n'est pas vraiment
un probleme - la plupart des gens veulent pouvoir envoyer et recevoir
leur email (sur le compte de leur fournisseur d'acces) et faire des
connexions sortantes vers WWW, ftp et d'autres services d'Internet. Si
vous AVEZ un besoin imperatif de connexion sortantes, vous feriez
mieux de prendre une adresse IP statique. Cependant, vous pouvez
aussi explorer les methodes astucieuses ci dessous...
2211..11.. CCoonnffiigguurreerr llee ccoouurrrriieerr eelleeccttrroonniiqquuee ((eemmaaiill))
Meme avec une adresse IP dynamique, vous devrez certainement
configurer sendmail sur votre machine pour envoyer le courrier que
vous ecrivez localement. La configuration de sendmail peut etre
obscure et difficile - ce document ne vous parleras pas de la facon de
faire. Cependant, vous aimeriez sans doute configurer sendmail pour
que votre fournisseur d'acces soit considere comme un hote "smart
relay" (l'options DDSS de sendmail). (Pour plus d'info sur la
configuration de sendmail, voir la documentation de sendmail - et
regardez la configuration de m4 fourni avec sendmail. Il y a forcement
quelque chose qui reponds a ce que vous cherchez).
Il y a un excellent livre sur Sendmail (une veritable 'bible' aux
editions O'Reilly and Associates), mais c'est certainement beaucoup
trop pour la plupart des utilisateurs !
Une fois que vous avez configure sendmail, vous avez probablement
envie que sendmail envoie les messages en attente des que la connexion
PPP est lancee. Pour cela, ajouter la commande
sendmail -q &
dans votre script /etc/ppp/ip-up (voir plus haut).
Les mails entrant sont problematique avec les adresses IP dynamiques.
La facon de les supporter est de :
+o configurer votre lecteur d'email pour que le courrier contiennent
un champ "reply to" dans lequel il y aura votre adresse
electronique chez votre fournisseur d'acces.
Si vous le pouvez, configurez egalement le champ FROM avec votre
adresse electronique chez votre FAI.
+o utiliser les programmes popclient, fetchmail pour recuperer le
courrier chez votre fournisseur d'acces. Ou bien, si votre FAI
utilise IMAP, utilisez un lecteur de courrier electronique ayant
IMAP d'active (comme pine).
Vous pouvez automatiser ce processus lors de l'appel en ajoutant la
commande necessaire dans le script /etc/ppp/ip-up (voir plus haut).
2211..22.. CCoonnffiigguurreerr uunn sseerrvveeuurr ddee nnoommss llooccaall
Meme si vous etes content d'utiliser le serveur de noms situe chez
votre fournisseur d'acces, vous pouvez en plus configurer un serveur
de nom local (secondaire) de cache uniquement qui serait lance avec le
script ip-up. L'avantage d'utiliser un serveur de noms local (cache
uniquement) est de gagner du temps (et de la bande passante) si vous
contactez souvent les meme sites pendant de longues sessions en ligne.
La configuration du DNS pour un serveur de cache seulement (qui
utilise une ligne 'forwarders' dans le fichier named.boot pointant sur
le DNS de votre FAI) est relativement simple. Le livre O'Reilly (DNS
et Bind) explique tout ce que vous devez savoir sur le sujet.
Il existe egalement un DNS-HOWTO.
Si un petit reseau local accede a Internet grace a votre PC Linux
(avec IP masquerading par exemple), c'est sans doute une excellente
idee d'utiliser un serveur de noms (avec la directive forwarders)
puisque cela reduira les delais et la bande passante utilisee pour la
resolution des noms.
Un point de la Netiquette : demandez la permission a votre fournisseur
d'acces avant de mettre en place un serveur de noms secondaire de
cache uniquement dans le domaine de votre FAI. Configure correctement,
il n'entrainera aucun probleme chez votre FAI, mais si il ne l'est
pas, il peut causer de nombreux problemes.
2222.. RReelliieerr ddeeuuxx rreesseeaauuxx llooccaauuxx aavveecc PPPPPP
Il y a fondamentalement aucune difference entre le fait de relier un
seul PC Linux avec PPP et relier deux reseaux locaux avec PPP et une
machine sur chaque reseau. Souvenez-vous PPP est un protocole
rreevveerrssiibbllee.
Cependant, vous devez RREEEELLLLEEMMEENNTT comprendre comment le routage se
deroule. Lisez le NET-2 HOWTO et le Guide d'administration Linux
(NAG). Vous trouverez egalement une aide inestimable dans le " TCP/IP
Network Administration" (publie par O'Reilly and Assoc - ISBN
0-937175-82-X)
Si vous utilisez une adresse de sous-reseau de chaque cote de la
liaison, le (brouillon) de mini-howto Linux sub networking pourra vous
etre utile. Il est disponible a Linux Sub networking mini-HOWTO
<
http://www.interweft.com.au/other/>.
Pour relier deux reseaux locaux, vous ddeevveezz utiliser des adresses IP
differentes (ou des sous-reseau d'adresses differentes) et vous devrez
utiliser des adresses IP statiques ou l'IP Masquerading. Si vous
voulez utiliser l'IP Masquerading, consultez le mini-howto IP
masquerade pour avoir des instructions sur la maniere de le
configurer.
2222..11.. CCoonnffiigguurreerr lleess aaddrreesssseess IIPP
Arrangez-vous avec l'administrateur systeme de l'autre reseau local
pour choisir les adresses IP qui seront utilises de chaque cote de
l'interface PPP. Si vous utilisez des adresses IP statiques, il sera
sans doute pratique d'appeler un numero de telephone dedie.
Maintenant, editez le fichier /etc/ppp/options[.ttyXX] approprie - il
est judicieux d'avoir un modem et un port dedie de chaque cote de la
connexion. Cela necessite quelques changements dans le fichier
/etc/ppp/options et la creation d'un fichier options.ttyXX approprie
pour les autres connexions !
Specifiez les adresses IP pour le cote de votre liaison PPP dans les
fichiers d'options appropries exactement comme cela est decris plus
haut pour les adresses IP statiques.
2222..22.. CCoonnffiigguurreerr llee rroouuttaaggee..
Vous devez vous occuper que les paquets du reseau local soit routes a
travers l'interface lorsque la liaison PPP est lancee. Ce processus se
fait en deux parties.
Tout d'abord, vous devez configurer une route partant de la machine
qui fait marcher la liaison PPP vers le reseau situe a l'autre bout.
Si cette liaison donne sur Internet, vous pouvez utilisez la route par
defaut mise en place par pppd lui-meme a la connexion avec l'option
defaultroute.
Si toutefois, la liaison relie seulement deux reseaux locaux, alors
une route reseau specifique doit etre ajoutee pour tous les reseaux
accessible par cette liaison. C'est la commande 'route' qui le fait
pour chaque reseau dans le script /etc/ppp/ip-up script (voir une fois
que la liaison fonctionne...) pour des instructions detaillees.
La seconde chose dont vous avez besoin est de prevenir les autres
ordinateurs que vous etes le gateway vers les reseaux situes a l'autre
bout de la liaison.
Bien sur, l'administrateur reseau de l'autre cote de la liaison doit
faire les meme choses ! Cependant, puisque qu'il route les paquets
vers votre reseau particulier, une rroouuttee rreesseeaauu ssppeecciiffiiqquuee est
indispensable, et non la route par defaut (a moins que le reseau situe
a l'autre bout se connecte chez vous pour acceder a Internet).
2222..33.. SSeeccuurriittee rreesseeaauu
Si vous reliez votre reseau local a Internet avec PPP - ou du moins
avec un reseau local "etranger", vous devez reflechir aux problemes de
securite. Je vous conseille fermement de penser a configurer un
firewall !
Vous devriez egalement parler a l'administrateur reseau de votre site
AAVVAANNTT de lancer une connexion vers un reseau local etranger voire vers
Internet ce cette maniere. Ne rien faire peut soit n'amener aucune
reaction soit de serieux problemes !
2233.. UUnnee ffooiiss qquuee llaa ccoonnnneexxiioonn ffoonnccttiioonnnnee -- llee ssccrriipptt //eettcc//pppppp//iipp--uupp
Une fois que la connexion est etablie, pppd cherche un /etc/ppp/ip-up.
Si ce script existe et est executable, le daemon PPP le lance. Cela
permet d'automatiser des commandes de routages speciales qui peuvent
etre necessaires et toutes les autres actions que vous souhaitez
lancer une fois que la liaison PPP est activee.
C'est un simple script shell qui fait uniquement ce qu'un script shell
peut faire (en fait quasiment tout ce que vous voulez).
Par exemple, vous pouvez demander a sendmail d'envoyer les messages en
attentes.
Il y a quelques restrictions avec /etc/ppp/ip-up:
+o Il fonctionne deliberemment dans un environnement reduit pour
augmenter la securite. Cela signifie que vous devez donner le
chemin complet des executables.
+o Techniquement, /etc/ppp/ip-up est un _p_r_o_g_r_a_m_m_e et non un script.
Cela signifie qu'il ne peut pas etre execute directement - meme si
il a besoin du (#!/bin/bash) magique au debut de la premiere ligne
et qu'il doit etre lisible est executable par root.
2233..11.. RRoouuttaaggeess ssppeecciiaauuxx
Si vous reliez deux reseaux locaux, vous devez configurer des routes
specifiques vers le reseau 'etranger'. Le script /etc/ppp/ip-up peut
le faire facilement. La seule difficulte est lorsque votre machine
supporte plusieurs liaisons PPP.
/etc/ppp/ip-up est utilise a chaque lancement de ppp, vous devez donc
etre extremement vigilant d'executer les commandes de routage
correctes pour la liaison qui demarre - et non lorsque n'importe
quelle liaison demarre !
2233..22.. SSuuppppoorrtt dduu ccoouurrrriieerr eelleeccttrroonniiqquuee eenn aatttteennttee
Lorsqu'une liaison entre deux reseaux locaux demarre, vous voudriez
vous assurez que le courrier en attente de chaque cote de la liaison
est bien envoye a son destinataire. Cela est possible en ajoutant un
appel correct a sendmail.
Utiliser la commande case du bash sur le bon parametre que passe pppd
au script permet cela. Par exemple, voici un script /etc/ppp/ip-up que
j'utilise pour mes liaisons entre l'entreprise et chez mon reseau
Ethernet (egalement connecte au meme serveur ppp).
2233..33.. UUnn eexxeemmppllee ddee ssccrriipptt //eettcc//pppppp//iipp--uupp
Le script suivant permet de nombreuses utilisations.
______________________________________________________________________
#!/bin/bash
#
# Script permettant de supporter les possiblites de routages necessaires a pppd
# Seule la liaison vers Newman necessite ce support.
#
# Quand la liaison ppp demarre, ce script est appele avec les parmetres
# suivants
# $1 le nom de l'interface utilisee par pppd (c.-a-d. ppp3)
# $2 le nom du peripherique tty
# $3 la vitesse du peripherique tty
# $4 l'adresse IP locale de l'interface
# $5 l'adresse IP distante
# $6 le parametre specifie par l'option 'ipparam' a pppd
#
case "$5" in
# Supporte le routage vers le serveur du Newman Campus
202.12.126.1)
/sbin/route add -net 202.12.126.0 gw 202.12.126.1
# et envoie les courriers en attente la-bas !
/usr/sbin/sendmail -q &
;;
139.130.177.2)
# Notre liaison Internet
# Lorsque notre liaison est lancee, demarre le serveur de temps et
# se synchronise avec le monde si il n'a pas encore bouge.
if [ ! -f /var/lock/subsys/xntpd ]; then
/etc/rc.d/init.d/xntpd.init start &
fi
# Demarre le serveur de news (si il ne marche pas encore)
if [ ! -f /var/lock/subsys/news ]; then
/etc/rc.d/init.d/news start &
fi
;;
203.18.8.104)
# Recupere le courrier electronique sur ma machine tant que la liaison
# fonctionne. Aucun routage n'est necessaire tant que mon reseau local
# Ethernet supporte IP masquerade et le routages proxyarp.
/usr/sbin/sendmail -q &
;;
*)
esac
exit 0
______________________________________________________________________
Le resultat du lancement de la liaison PPP vers notre campus Newman et
le demarrage de ce script, determine les entrees de la table de
routage (cette machine est aussi notre serveur PPP general ET supporte
nos liaisons Internet). J'ai ajoute des commentaires sur la sortie
pour expliquer a quoi correspond chaque entree) :
______________________________________________________________________
[root@kepler /root]# route -n
Kernel routing table
Destination Gateway Genmask Flags MSS Window Use Iface
# la route de l'HOTE de notre gateway internet
139.130.177.2 * 255.255.255.255 UH 1500 0 134 ppp4
# la route de l'HOTE vers le serveur Newman campus
202.12.126.1 * 255.255.255.255 UH 1500 0 82 ppp5
# la route de l'HOTE de mon reseau local ethernet
203.18.8.104 * 255.255.255.255 UH 1500 0 74 ppp3
# deux des lignes generales PPP
203.18.8.64 * 255.255.255.255 UH 552 0 0 ppp2
203.18.8.62 * 255.255.255.255 UH 552 0 1 ppp1
# la route reseau specifique vers le reseau Newman campus
202.12.126.0 202.12.126.1 255.255.255.0 UG 1500 0 0 ppp5
# la route de notre reseau local Ethernet (super-netting two adjacent C classes)
203.18.8.0 * 255.255.254.0 U 1500 0 1683 eth0
# la route vers le peripherique loop back
127.0.0.0 * 255.0.0.0 U 3584 0 483 lo
# la route par defaut vers Internet
default 139.130.177.2 * UG 1500 0 3633 ppp4
______________________________________________________________________
2233..44.. SSuuppppoorrtt dduu ccoouurrrriieerr eelleeccttrroonniiqquuee
La section precedente montrait comment supporter le mail sortant - en
envoyant simplement le courrier lorsque la liaison demarrait.
Si vous utilisez une liaison pour un reseau large, vous pouvez vous
arranger avec l'administrateur reseau du site distant pour qu'il fasse
exactement la meme chose. Par exemple, a l'autre bout de la liaison au
Newman Campus, le script /etc/ppp/ip-up ressemble a :
______________________________________________________________________
#!/bin/bash
#
# Script permettant de supporter les possiblites de routages necessaires a pppd
# Seule la liaison vers Hedland necessite ce support.
#
# Quand la liaison ppp demarre, ce script est appele avec les parmetres
# suivants
# $1 le nom de l'interface utilisee par pppd (c.-a-d. ppp3)
# $2 le nom du peripherique tty
# $3 la vitesse du peripherique tty
# $4 l'adresse IP locale de l'interface
# $5 l'adresse IP distante
# $6 le parametre specifie par l'option 'ipparam' a pppd
#
case "$5" in
203.18.8.4)
/usr/sbin/sendmail -q
;;
*)
esac
exit 0
______________________________________________________________________
Si toutefois, vous n'avez qu'une adresse IP dynamique chez votre FAI,
vous devrez recevoir votre courrier sur le compte de votre fournisseur
d'acces. Cela est generalement possible en utilisant POP (Post Office
Protocol). Ce processus peut etre supporte avec le programme
'popclient" - le script ip-up peut automatiser le processus pour vous
!
Creez simplement un script /etc/ppp/ip-up qui contient un appel
correct a popclient. Pour mon portable avec la RedHat Linux (que je
prends lorsque je voyage), j'ai
______________________________________________________________________
popclient -3 -c -u hartr -p <password> kepler.hedland.edu.au |formail -s procmail
______________________________________________________________________
Vous pouvez aussi utiliser slurp en quelque chose d'autre d'identique
pour les news, et d'autres trucs. Souvenez vous que le script ip-up
est un script bash standard et qui peut servir a automatiser TOUTES
les fonctions que vous devez accomplir chaque fois qu'une liaison PPP
correspondante demarre.
2244.. UUttiilliisseerr //eettcc//pppppp//iipp--ddoowwnn
Vous pouvez ecrire un script, qui sera execute a chaque fois qu'une
liaison se termine. Qui se situe dans /etc/ppp/ip-down. Il peut etre
utilise pour retirer ce que vous avez ajoutez de special avec le
script /etc/ppp/ip-up correspondant.
2255.. PPoossssiibbiilliittee ddee rroouuttaaggee ssuurr uunn rreesseeaauu llooccaall
Si vous etes connecte sur un reseau local et que vous voulez toujours
utiliser PPP avec votre machine Linux, vous devez definir les routes
que les packets doivent prendre pour atteindre le reseau local a
partir de votre machine (par l'interface Ethernet) et egalement le
serveur PPP distant voire plus loin.
Cette section ne pretend pas vous apprendre le routage - elle traite
seulement de cas simples et speciaux de routage (statique) !
Je vous recommande chaudement de lire de Guide d'administration Reseau
Linux si vous n'etes pas habitue avec le routage. De meme le livre
d'O'Reilly "TCP/IP Network Administration" couvre le sujet de maniere
tres abordable.
La regle de base du routage statique est que la route par DEFAUT
pointe a l'endroit ou il y le PLUS grand nombre d'adresse reseau. Pour
les autres reseau, entres des routes specifiques dans la table de
routage.
La SEULE situation que je couvre ici est lorsque votre machine Linux
est sur un reseau non connecte a Internet - et vous voulez vous
connectez a Internet pour une utilisation personnelle tout en restant
connecte au reseau local.
Tout d'abord, assurez-vous que votre route Ethernet est bien configure
comme une adresse reseau specifique disponible sur votre reseau local
- et PAS dans la route par defaut !
Verifiez cela en tapant la commande route, vous devriez avoir quelque
chose qui ressemble a ce qui suit :
[root@hwin /root]# route -n
Kernel routing table
Destination Gateway Genmask Flags MSS Window Use Iface
loopback * 255.255.255.0 U 1936 0 50 lo
10.0.0.0 * 255.255.255.0 U 1436 0 565 eth0
Si votre interface Ethernet (eth0) pointe vers la route par defaut,
(la premiere colonne contiendra un "default" dans la ligne eth0) vous
devez changer les scripts d'inititalisation d'Ethernet pour qu'ils
utilisent des adresses reseau specifiques plutot que la route par
defaut (consultez le HOWTO Net2 et le NAG).
Cela va permettre a pppd de configurer votre route par defaut comme
suit :
[root@hwin /root]# route -n
Kernel routing table
Destination Gateway Genmask Flags MSS Window Use Iface
10.144.153.51 * 255.255.255.255 UH 488 0 0 ppp0
127.0.0.0 * 255.255.255.0 U 1936 0 50 lo
10.1.0.0 * 255.255.255.0 U 1436 0 569 eth0
default 10.144.153.51 * UG 488 0 3 ppp0
Comme vous pouvez le voir, nous avons une route d'hote vers le serveur
PPP (10.144.153.51) par ppp0 qui est egalement la route par defaut
utilise par le serveur PPP comme gateway.
Si votre configuration est plus complique que cela, lisez les
documents concernant le routage cites plus haut, et consultez un
expert de votre site !
Si votre reseau local a aussi des routeurs, vous devez deja avoir des
gateways pour interconnecter les reseaux disponibles sur votre site.
Vous devez TOUJOURS mettre la route par defaut vers l'interface PPP -
et utiliser des routes specifiques pour les autres reseaux que vous
accedez.
2255..11.. RReemmaarrqquueess ssuurr llaa sseeccuurriittee
Lorsque vous configurez une machine Linux sur un reseau local existant
sur Internet, vous ouvrez potentiellement tout votre reseau local vers
Internet - ainsi que les pirates qui l'utilise. Avant de commencer, je
vous conseille vivement de consulter votre administrateur reseau et le
responsable de la securite de votre site. Si votre connexion PPP vers
Internet est utilise et permet d'attaquer votre site, vous serez dans
la plus mauvaise position face a la colere de vos collegues et votre
administrateur systeme et reseau. Vous pourriez vous-meme avoir de
serieux problemes !
Avant de connecter un reseau local sur Internet, vous devez prendre en
compte les problemes de securite meme avec une connexion DYNAMIQUE -
dans ce cas la reference la plus recente est le "Building Internet
Firewalls" d'O'Reilly !
2266.. CCoonnffiigguurreerr uunn sseerrvveeuurr PPPPPP
Comme c'est mentionne plus haut, il y a des tas de facons de faire. Ce
que je presente ici est la facon de faire une liaison tournante sur
plusieurs lignes telephoniques (avec une carte serie multi-ports
utilisant des Cyclades)
Si vous n'aimez pas la methode presentee ici, faites donc comme vous
preferez. J'aimerais toutefois ajouter des methodes supplementaires
dans les prochaines versions de ce HOWTO. Envoyez donc moi comment
vous faites !
Remarquez que cette section ne concerne que la configuration de Linux
comme serveur PPP. Je ne compte absolument pas donner d'informations
sur la facon de configurer des serveurs terminaux ou autre.
Meme si, j'ai deja experimente l'utilisation de shadow password (et
l'utilise de temps en temps). Les informations presentees ici
n'utiliserons toutefois pas ce mecanisme.
2266..11.. CCoommppiilleerr llee nnooyyaauu
Tous les commentaires precedent concernant la compilation du noyau et
les versions du noyau et de pppd sont encore valables. Cette section
considere que vous avez lu les sections precedentes du document !
Pour un serveur PPP, vous DDEEVVEEZZ ajouter le support de IP forwarding
dans votre noyau. Vous pouvez aussi inclure d'autres supports (comme
le IP fire walls, accounting etc etc).
Si vous utilisez une carte serie multi-port, vous devez bien entendu
inclure egalement les pilotes necessaires dans le noyau !
2266..22.. PPrreesseennttaattiioonn dduu ssyysstteemmee ddee sseerrvveeuurr
Nous offrons des comptes PPP (ou SLIP) et des comptes shell en
utilisant les memes paires nom utilisateur/ mot de passe. Cela permet
(pour nous) que les utilisateurs n'aient qu'un seul compte qu'ils
peuvent utiliser pour toutes les connexions.
Comme nous sommes une organisation educative, nous ne faisons pas
payer le personnel ni les etudiants pour leur acces, et nous n'avons
donc pas besoin de nous inquieter des problemes de payement.
Un firewall existe entre notre site et Internet, et cela limite les
acces des utilisateurs puisque les lignes d'appels sont sur notre
firewall Internet (pour certaines raisons evidentes, le details des
autres firewalls internes ne sera pas presente ici et serait de toute
facon inutile)
Le processus avec lequel un utilisateur etablit une liaison PPP avec
notre site (une fois qu'ils ont un compte bien sur) :
+o Appeler notre ligne d'appel groupe (qui est un numero de telephone
qui se connecte sur une banque de modems - le premier modem libre
est utilise).
+o Connexion avec une paire valide de nom utilisateur et mot de passe
+o Au prompt du shell, lancement de la commande ppp pour lancer PPP
sur le serveur.
+o Demarrer PPP sur le PC (il peut utiliser Windows, DOS, Linux, MAC
OS ou n'importe quoi d'autre - ce n'est pas un probleme).
Le serveur utilise un fichier /etc/ppp/options.ttyXX individuel pour
chacune des connexions sur le port ou est configure l'adresse IP
distante pour l'allocation des adresses IP dynamiques. Le serveur
utilisateur route les clients avec proxyarp (configure avec l'option
appropriee de pppd). Cela oblige la presence de routed ou gated.
Quand l'utilisateur raccroche de son cote, pppd le detecte et indique
au modem de raccrocher, fermant en meme temps la liaison PPP.
2266..33.. FFaaiirree mmaarrcchheerr lleess pprrooggrraammmmeess ttoouuss eennsseemmbbllee
Vous avez besoin des programmes suivants :
+o Linux, correctement compile avec les options necessaires
+o La version de pppd correspondant a votre noyau
+o Un programme 'getty' qui decroche intelligemment les communications
par modem.
Nous utilisons getty_ps2.0.7h, mais mgetty est aussi bien. Je sais
que mgetty peut s'apercevoir qu'un appel utiliser PAP/CHAP (PAP est
le standard pour Windows 95) et invoquer pppd automatiquement, mais
je dois encore explorer un peu ca.
+o Un serveur de nom (DNS) fonctionnel qui est accessible pour les
utilisateurs qui se connectent.
CCee hhoowwttoo nnee ccoouuvvrree ppaass ssaa ccoonnffiigguurraattiioonn.. RReeggaarrddeezz llaa ddooccuummeennttaattiioonn ddee
ggeettttyy ddee vvoottrree cchhooiixx oouu llee sseerriiaall HHOOWWTTOO ppoouurr pplluuss dd''iinnffoorrmmaattiioonnss ssuurr
llee ssuujjeett..
2266..44.. CCoonnffiigguurreerr lleess ffiicchhiieerrss dd''ooppttiioonnss
Vous avez besoin de configurer la totalite de /etc/ppp/options avec
les options standard pour les ports d'appel. Les options utiles sont :
______________________________________________________________________
asyncmap 0
netmask 255.255.254.0
proxyarp
lock
crtscts
modem
______________________________________________________________________
Remarque - nous n'utilisons AUCUN routage (direct) - et en particulier
il n'y a pas d'option defaultroute. La raison de cela est que tout ce
dont vous avez besoin (en tant que serveur PPP) a l'endroit ou router
les paquets vveennaanntt du client ppp vers votre reseau local ou Internet
et de router les paquets vveerrss le client ppp qui viennent du votre
reseau local ou d'Internet.
Tout ce dont vous avez besoin est la route hote de la machine client
et l'utilisation de l'option 'proxyarp' de pppd.
L'option 'proxyarp' configure (surprise) une entree proxy ARP dans la
table ARP du serveur qui signifie en substance 'envoie moi tous les
paquets destines au client'. C'est la maniere la plus simple de
configurer le routage vers un client PPP unique - mais elle ne peut
etre utilise pour le routage entre deux reseaux locaux - vous devez
alors utiliser les routes reseau reelles qui ne pourront pas utiliser
le proxy ARP.
Vous devez certainement avoir envie de fournir des adresses IP
dynamiques aux utilisateurs qui se connectent. Vous pouvez le faire en
associant une adresse IP dynamique sur chaque port d'appel. Creez
alors pour chaque port d'appel un /etc/ppp/options.ttyXX.
Dedans, mettez simplement l'adresse IP locale du serveur et l'adresse
IP qui doit etre utilise pour ce port. Par exemple
______________________________________________________________________
kepler:slip01
______________________________________________________________________
Remarquez en particulier que vous pouvez utiliser les noms d'hotes
valides dans ce fichier (je trouve que c'est la seule facon de se
souvenir des adresses IP des machines importantes de mon reseau, les
noms sont bien plus significatifs) !
2266..55.. CCoonnffiigguurreerr ppppppdd ppoouurr ppeerrmmeettttrree aauuxx uuttiilliissaatteeuurrss ddee llee llaanncceerr
Comme configurer une liaison ppp implique de configurer un
peripherique dans le noyau (une interface reseau) et de manipuler les
tables de routage, des privileges speciaux sont necessaires - en fait
la totalite des privileges root.
Heureusement, pppd est prevu pour marcher correctement avec set uid
root. Vous devez donc
______________________________________________________________________
chmod u+s /usr/sbin/pppd
______________________________________________________________________
Quand vous listez le fichier, il doit apparaitre comme cela
______________________________________________________________________
-rwsr-xr-x 1 root root 74224 Apr 28 07:17 /usr/sbin/pppd
______________________________________________________________________
Si vous n'avez pas ca, vous ne pourrez pas utiliser votre liaison ppp.
2266..66.. CCrreeeerr uunn aalliiaass gglloobbaall ppoouurr ppppppdd
Pour simplifier les choses pour les utilisateurs de notre connexion
PPP, nous creerons un alias global (dans /etc/bashrc) qui est en fait
une simple commande qui lancera ppp sur le serveur des qu'ils seront
connectes.
Cela nous donne
______________________________________________________________________
alias ppp="exec /usr/sbin/pppd -detach"
______________________________________________________________________
Et il fait ceci
+o exec : va remplacer le programme en cours (dans le cas d'un shell)
par le programme qui va etre lance.
+o pppd -detach : lance pppd et le laisse pas en tache de fond. Cela
assure que pppd existe et qu'il n'y a pas d'autres processus qui
trainent.
Quand un utilisateur se connecte comme cela, il va apparaitre apres un
'w'
______________________________________________________________________
6:24pm up 3 days, 7:00, 4 users, load average: 0.05, 0.03, 0.00
User tty login@ idle JCPU PCPU what
hartr ttyC0 3:05am 9:14 -
______________________________________________________________________
Et c'est tout... Je vous avais dit que c'etait simple un serveur PPP
de base !
2277.. UUttiilliisseerr PPPPPP aavveecc uunnee ccoonnnneexxiioonn nnuullll mmooddeemm
C'est tres simple - il n'y a pas de modem et ainsi les choses sont
bien plus facile.
Tout d'abord, choisissez une machine comme 'serveur', configurez getty
sur le port serie pour que vous testiez si vous avez une connectivite
en utilisant minicom sur le 'client'.
Une fois que ca fonctionne, vous pouvez enlever le getty A MOINS que
vous vouliez etre sur que la connexion permet d'utiliser les paires
nom utilisateur/ mot de passe pour les connexions entrantes. Comme
vous avez un 'controle physique' des deux machines, je pense que vous
n'avez pas besoin de ca.
Maintenant, sur le serveur, enlevez getty et assurez vous que les
ports serie sont configures correctement sur les deux machines avec
'setserial'.
Tout ce que vous avez besoin maintenant est de demarrer pppd sur les
deux systemes. Je suppose que les connexions utilise une connexion par
/dev/ttyS34. Ainsi sur les deux machines lancez la commande :
______________________________________________________________________
pppd -detach crtscts lock <local IP>:<remote IP> /dev/ttyS3 38400 &
______________________________________________________________________
Cela devrait lancer la connexion - mais pour le moment il n'y a aucun
routage de specifie. Vous pouvez tester la connexion en pingant
l'autre machine. Si ca marche, eteignez la liaison en tuant le
processus pppd
Le routage dont vous avez besoin depend de ce que vous voulez faire
exactement. Generalement, une des machines sera connecte sur un
reseau Ethernet (et meme plus) le routage necessaire est donc
exactement le meme qu'entre un serveur PPP et un client.
Sur la machine equipee d'Ethernet, la commande sera donc
______________________________________________________________________
pppd -detach crtscts lock proxyarp <local IP>:<remote IP> /dev/ttyS3 38400 &
______________________________________________________________________
et sur l'autre machine
______________________________________________________________________
pppd -detach crtscts lock defaultroute <local IP>:<remote IP> /dev/ttyS3 38400 &
______________________________________________________________________
Si vous reliez deux reseaux locaux (avec une liaison serie !) vous
aurez besoin d'un routage plus complexe, vous pouvez utiliser
/etc/ppp/ip-up exactement de la meme facon qu'il est decrit plus haut.
RRoobbeerrtt HHaarrtt
Port Hedland, Western Australia
Melbourne, Victoria, Australia August/October 1996 January/March 1997