4. Configurer la liaison PPP vers l'extérieur

Il y a deux façons d'utiliser le programme ppp: en mode “Interactif” et en mode “Automatique”.

En mode Interactif, vous:

En mode Automatique, le programme ppp surveille silencieusement les opérations du système FreeBSD et se connecte et se déconnecte automagiquement à votre fournisseur d'accès selon le besoin, intégrant de façon transparente l'Internet à votre réseau.

4.1. Sauvegarder vos fichiers de configuration ppp d'origine

Avant de modifier les fichiers qu'utilise ppp, il est bon de sauvegarder les fichiers par défaut créés à l'installation de FreeBSD.

Ouvrez une session sous le compte “root”, et suivez la procédure ci-dessous:

Allez dans le répertoire /etc:

# cd etc

Faites un copie des fichiers d'origine du répertoire ppp:

# cp -R ppp ppp.ORIGINAL

Vous devriez maintenant avoir un répertoire ppp et un répertoire ppp.ORIGINAL dans le répertoire etc.

4.2. Créer vos propres fichiers de configuration de ppp

Par défaut, la procédure d'installation de FreeBSD crée un certain nombre de fichiers d'exemple dans le répertoire /etc/ppp. Prenez un peu de temps pour parcourir ces fichiers. Ce sont des exemples empruntés à des systèmes qui fonctionnent et ils illustrent les différentes possibilités du programme ppp.

Je vous encourage fortement à étudier ces exemples et à les adapter à votre configuration.

Pour plus d'informations sur le programme ppp, lisez les pages de manuel:

# man ppp

Pour plus d'informations sur le langage chat, utilisé par ppp pour établir la connexion, lisez les pages de manuel:

# man chat

La suite de ce chapitre décrit le contenu recommandé des fichiers de configurations de ppp.

4.2.1. Le fichier /etc/ppp/ppp.conf

Le fichier /etc/ppp/ppp.conf contient les informations et les paramètres nécessaires pour établir une connexion vers l'extérieur. Le Manuel FreeBSD décrit en détail le contenu et la syntaxe de ce fichier.

N'est décrite ici que la configuration minimale nécessaire pour arriver à établir une connexion.

Voici le fichier /etc/ppp/ppp.conf que nous utiliserons sur notre passerelle entre le réseau local et l'Internet:


####################################################################
# Fichier de Configuration de PPP ('/etc/ppp/ppp.conf')
#
# Paramètres par défaut: Ces commandes sont toujours exécutées
# quand PPP est appelé et s'appliquent à toutes les configurations
####################################################################
default:
set device /dev/cuaa0
set speed 57600
disable pred1
deny pred1
disable lqr
deny lqr
set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" ATE1Q0M0
OK-AT-OK\\dATDT\\T TIMEOUT 40 CONNECT"
set redial 3 10
#
#
####################################################################
#
# Configuration utilisée en mode interactif :
#
# appelée par: `ppp -alias interactive`
#
####################################################################
interactive:
set authname Your_User_ID_On_Remote_System
set authkey Your_Password_On_Remote_System
set phone 1-800-123-4567
set timeout 300
set openmode active
accept chap
#
####################################################################
#
# Configuration utilisée en mode à la demande ( automatique)
#
# appelée par: 'ppp -auto -alias demand'
#
####################################################################
demand:
set authname Your_User_ID_On_Remote_System
set authkey Your_Password_On_Remote_System
set phone 1-800-123-4567
set timeout 300
set openmode active
accept chap
set ifaddr 127.1.1.1/0 127.2.2.2/0 255.255.255.0
add 0 0 127.2.2.2
################################################################
# Fin de /etc/ppp/ppp.conf


Ce fichier, recopié tel quel d'un système opérationnel, comporte trois parties:

4.2.1.1. La section “default”

La section “default:” contient les informations et paramètres utilisés par toutes les autres sections du fichier. Cette section est donc implicitement ajoutée à toutes les autres.

C'est l'endroit idéal pour définir les valeurs par défaut qui s'appliquent à toutes les connexions vers l'extérieur; en particulier, la configuration du modem et le dialogue d'initialisation de la connexion, qui ne changent pas, quel que soit le système distant auquel vous vous connectez.

Voici le détail de chacune des lignes de la section “default:” du fichier /etc/ppp/ppp.conf:


set device /dev/cuaa0


Cette instruction dit au programme ppp d'utiliser le premier port série. Sous FreeBSD, le périphérique “/dev/cuaa0” correspond au port appelé “COM1:” de DOS, Windows, Windows 95, etc.

Si votre modem est sur le port “COM2”: vous devrez mettre “/dev/cuaa1”. “/dev/cuaa2” serait le port “COM3:”.


set speed 57600


Cette ligne indique au programme ppp la vitesse en émission et en réception entre le port série et le modem. Bien que le modem de notre configuration fonctionne à 28.8 Kbps, donner la valeur 56000 permet à la liaison série de fonctionner suffisamment vite pour gérer la compression de données intégrée aux modems les plus récents.

Si vous avez des problèmes pour dialoguer avec votre modem à cette vitesse, descendez à une valeur inférieure: 38400, voir aussi faible que 19200.


disable pred1
deny pred1


Ces deux lignes désactivent la compression “CCP/Predictor 1” dont est capable le programme ppp. La version actuelle de ppp supporte la compression de données selon la définition provisoire des standards Internet. Malheureusement, de nombreux fournisseurs d'accès ont des équipements qui n'offrent pas cette possibilité. Comme la plupart des modems récents sont capables de compression à la volée, vous ne perdrez probablement pas grand-chose en termes de performances en désactivant cette possibilité sur votre machine FreeBSD et en interdisant au site distant de vous la réclamer.


disable lqr
deny lqr


Ces deux lignes contrôlent l'“audit de la qualité de la liaison (Link Quality Reporting)” qui est partie intégrante des spécifications du protocole PPP. (Voyez la RFC-1989 pour plus de détails.)

La première ligne, “disable lqr” instruit le programme ppp de ne pas émettre de demandes de contrôle de la qualité de la liaison à la machine distante.

La seconde ligne, “deny lqr” instruit le progamme ppp de ne pas accepter de demandes de contrôle de la qualité de la liaison de la machine distante.

Comme la plupart des modems ont des procédures intégrées de détection et de correction d'erreur et que l'audit LQR est rarement intégralement implémentée par les constructeurs, il vaut en général mieux ne pas utiliser cette possibilité.


set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" ATE1Q0M0 OK-AT-OK\\dATADT\\T TIMEOUT 40 CONNECT"


Note : (Cette instruction doit être écrite sur une seule ligne; ne tenez pas compte du formatage sur deux lignes, si elle se présente ainsi dans ce document.)

Cette ligne décrit le dialogue entre le programme ppp et le modem qui doit permettre d'établir la connexion et fournit des instructions rudimentaires sur la marche à suivre:

  • Une tentative d'appel échoue si le modem renvoie le code d'erreur “BUSY (occupé)”,

    Une tentative d'appel échoue aussi si le modem renvoie le code d'erreur “NO CARRIER (pas de porteuse),”,

    Le programme ppp doit constater, avec un délai maximum de cinq secondes entre chaque événement, la séquence d'événements suivants:

    • Initialement, le programme ppp n'attend pas de réponse du modem (c'est le sens de la chaîne \"\" dans l'instruction),

    • Le programme enverra au modem la chaîne “ATE1Q0M0” et attendra la réponse “OK”. Si cette réponse n'arrive pas, il enverra la commande d'interrogation “AT” et attendra à nouveau une réponse “OK”,

    • Le programme devra attendre une seconde (c'est le sens de la chaîne “\\d” dans l'instruction), et envoyer la séquence d'appel au modem. Le préfixe “ATDT” est la commande d'appel standard pour les lignes téléphoniques à fréquences vocales. Si vous n'avez pas de ligne à fréquence vocale, remplacez “ATDT” par “ATDP”. La chaîne “\\T” sera remplacée par le numéro de téléphone réel (qui sera défini plus loin par la ligne “set dial”).

  • Pour finir, avec un délai d'attente de quarante secondes au maximum, le programme ppp doit recevoir un code d'acquittement “CONNECT” du modem.

Un échec à une phase quelconque de ce dialogue sera interprété comme un échec d'appel et la connexion ne sera pas établie.

(Pour avoir une description détaillée du mini-langage de commande utilisé par ppp, reportez-vous aux pages de manuel de chat.)


set redial 3 10


Cette ligne indique au programme ppp qu'en cas d'échec, il peut faire jusqu'à trois nouvelles tentatives avec un temps d'attente de dix secondes entre chaque nouvel appel.

4.2.1.2. La section “interactive”

La section “interactive:” contient les valeurs et les paramètres utilisés par les connexions PPP interactives avec un système distant particulier. Les lignes de la section “default:” sont automatiquement incluses dans cette section.

L'exemple donné ci-dessous suppose que vous vous connectiez à un système qui sait identifier un utilisateur sans avoir à utiliser une série de commandes baroques. Nous supposerons que le protocole CHAP est utilisé pour initialiser la session.

A priori, si un système Windows 95 peut établir la connexion d'un simple clic sur le bouton “Connecter”, la configuration donnée en exemple devrait fonctionner.

Si, à l'inverse, quand vous vous connectez chez votre fournisseur d'accès avec les utilitaires de Microsoft Windows 95, vous devez utiliser l'option “Utiliser des procédures de connexion”[1]. il vous faudra alors lire les pages de manuel de ppp pour trouver des exemples de fichiers de configuration de PPP comportant des procédures “expect / reponse” pour établir votre connexion et vous devrez utiliser la commande “set login” à cet effet.

Ou mieux, trouvez-vous un fournisseur d'accès qui offre l'authentification par PAP ou CHAP!

La configuration donnée en exemple a été utilisée avec succès pour se connecter:

Voici la description de chacune des lignes de la section “interactive:” du fichier /etc/ppp/ppp.conf de l'exemple:


set authname Votre_Nom_d_Utilisateur_du_Système_Distant


Cette ligne définit avec quel nom d'utilisateur vous vous connectez au système distant.


set authkey Votre_Mot_de_Passe_Utilisateur_du_Système_Distant


Cette ligne définit le mot de passe que vous utilisez pour vous connecter au système distant.


set phone 012345678789


C'est le numéro de téléphone avec lequel vous joignez le système distant.


set timeout 300


Cette ligne indique au programme ppp de couper la ligne s'il n'y a aucun échange pendant cinq minutes (300 secondes). Vous pouvez adapter cette ligne à votre besoin particulier.


set openmode active


Cette ligne dit au programme ppp de négocier la connexion dès que la liaison entre les modems est établie. Certains sites distants le font automatiquement, d'autres non. Cette instruction permet à votre site d'initialiser la négociation.


accept chap


Cette ligne dit au programme ppp d'utiliser le protocole CHAP “Challenge Handsake Autentification Protocole (protocole d'authentification par poignée de main avec défi de décryptage)” pour vous authentifier. Les valeurs échangées entre le système local et le système distant pour transmettre le nom d'utilisateur et le mot de passe sont définies par les lignes “authname” et “authkey”.

4.2.1.3. La section “demand”

La section “demand:” contient les valeurs et les paramètres utilisés par les connexions PPP automatiques avec un système distant particulier. Les lignes de la section “default:” sont automatiquement incluses dans cette section.

A l'exception des deux dernières lignes, cette section est identique à la section qui définit la configuration “interactive”.

Comme indiqué au paragraphe La section “interactive”, l'exemple donné ci-dessous suppose que vous vous connectiez à un système qui comprenne le protocole CHAP pour initialiser la session.

Voici la description de chacune des lignes de la section “demand:” du fichier /etc/ppp/ppp.conf de l'exemple:


set authname Votre_Nom_d_Utilisateur_du_Système_Distant


Cette ligne définit avec quel nom d'utilisateur vous vous connectez au système distant.


set authkey Votre_Mot_de_Passe_Utilisateur_du_Système_Distant


Cette ligne définit le mot de passe que vous utilisez pour vous connecter au système distant.


set phone 012345678789


C'est le numéro de téléphone avec lequel vous joignez le système distant.


set timeout 300


Cette ligne indique au programme ppp de couper la ligne s'il n'y a aucun échange pendant cinq minutes (300 secondes). Vous pouvez adapter cette ligne à votre besoin particulier.


set openmode active


Cette ligne dit au programme ppp de négocier la connexion dès que la liaison entre les modems est établie. Certains sites distants le font automatiquement, d'autres non. Cette instruction permet à votre site d'initialiser la négociation.


accept chap


Cette ligne dit au programme ppp d'utiliser le protocole CHAP “Challenge Handsake Autentification Protocole (protocole d'authentification par poignée de main avec défi de décryptage)” pour vous authentifier. Les valeurs échangées entre le système local et le système distant pour transmettre le nom d'utilisateur et le mot de passe sont définies par les lignes “authname” et “authkey”


set ifaddr 127.1.1.1/0 127.2.2.2/0 255.255.255.0


Cette commande définit une paire d'adresses IP fictives pour les deux extrémités de la liaison point-à-point. Elle dit au programme ppp d'utiliser l'adresse 127.1.1.1 pour l'extrémité locale de la liaison gérée par le pilote de périphérique “tun0 (tunnel)”(Reportez-vous au manuel FreeBSD pour une description de ce pilote) et l'adresse 127.2.2.2 pour l'extrémité distante. Le “/0” qui les suit précise le nombre de digits significatifs de ces adresses, qui peuvent, (et doivent en fait) être négociées entre les deux systèmes une fois la liaison établie. 255.255.255.0 est le masque de sous-réseau qui s'applique à ces deux pseudo-interfaces.

Rappelez-vous, nous avons supposé que votre fournisseur d'accès vous assigne les adresses des deux extrémités de la ligne! Si votre fournisseur vous a donné une adresse particulière, vous pouvez la mentionner sur cette ligne à la place de l'adresse 127.1.1.1.

Inversement, si votre fournisseur vous a donné une adresse particulière pour son côté de la liaison, vous pouvez la mentionner sur cette ligne à la place de l'adresse 127.2.2.2.

Dans les deux cas, il vaut mieux conserver le “/0” après les deux adresses. Cela laisse la possibilité au programme ppp de changer d'adresse(s) s'il en a besoin.


add 0 0 127.2.2.2


Cette dernière ligne dit au programme ppp d'ajouter une route par défaut pour le trafic vers l'adresse (fictive) 127.2.2.2 du fournisseur d'accès.

Note : Si vous avez donnée l'adresse que vous a indiqué votre fournisseur d'accès à la place de l'adresse 127.2.2.2 à la ligne “set ifaddr”, vous devez utiliser la même adresse ici, à la place de 127.2.2.2.

En ajoutant cette route “fictive” pour le trafic IP, le programme ppp peut, successivement, avant et au moment d'établir la liaison:

  • Accepter des paquets que FreeBSD ne sait pas encore comment rediriger,

  • Etablir la connexion avec votre fournisseur d'accès,

  • Reconfigurer les adresses IP des deux côtés de la ligne,

  • Transmettre les paquets entre votre sytème local et votre fournisseur d'accès,

automatiquement!

Une fois le nombre de secondes défini par l'instruction “timeout” de la section “default” écoulé sans trafic TCP/IP, le programme ppp coupe automatiquement la connexion, et le processus peut recommencer.

4.2.2. Le fichier /etc/ppp/ppp.linkup

L'autre fichier nécessaire à la configuration de ppp est /etc/ppp/ppp.linkup. Ce fichier contient les instructions qui définissent ce que ppp doit faire une fois que la connexion est établie.

Dans le cas d'une connexion à la demande, le programme ppp doit supprimer la route par défaut vers l'adresse IP fictive du système distant (127.2.2.2 dans notre exemple plus haut) et définir une nouvelle route vers l'adresse IP réelle de ce système (obtenue à l'établissement de la connexion).

Voici un bon exemple de fichier /etc/ppp/ppp.linkup:


#########################################################################=
#
# Fichier PPP Link Up ('/etc/ppp/ppp.linkup')
#
#  Ce fichier est consulté une fois que PPP a établi une connexion
#
#  Ce fichier est lu dans l'ordre suivant :
#
#  1) En premier, l'adresse IP qui nous a été assignée est recherchée
#     et la/les commande(s) associée(s) exécutée(s)
#
#  2) Si l'adresse IP n'est pas trouvée, alors l'étiquette donnée au
#     démarrage de PPP est recherchée, et la/les commande(s) associée(s)
#     exécutée(s)
#
#  3) Si ni l'une ni l'autre n'ont été trouvées, les commandes associées
#     à l'étiquette 'MYADDR:' sont exécutées.
#
#########################################################################=

#
# Cette section correspond à la configuration "demand" de
#    /etc/ppp/ppp.conf:
demand:
delete ALL
add 0 0 HISADDR
#
# Toutes les autres configurations de /etc/ppp/ppp.conf utilisent
#    ce qui suit:
#
MYADDR:
add 0 0 HISADDR
########################################################################
# Fin de /etc/ppp/ppp.linkup


Remarquez qu'une section de ce fichier s'appelle “demand:”, tout comme dans le fichier /etc/ppp/ppp.conf. Cette section dit au programme ppp ce qu'il doit faire, une fois la connexion à la demande établie:

  1. Supprimer toutes les informations de routage qu'il a déjà créées,

  2. Ajouter une route par défaut vers l'adresse réelle de la machine distante.

Il est capital que les configurations définies dans le fichier /etc/ppp/ppp.conf et qui comportent les lignes “set ifaddr” et “add 0 0” (i.e.: les configurations de connexion à la demande) exécutent les instructions “delete ALL” et “add 0 0 HISADDR” du fichier /etc/ppp/ppp.linkup.

C'est le mécanisme qui contrôle la configuration de la liaison dans le cas d'une connexion à la demande.

Toutes les configurations qui ne sont pas explicitement définies dans le fichier /etc/ppp/ppp.linkup utiliseront les commandes listées dans la section “MYADDR:” de ce fichier. C'est ce que feront les connexions manuelles (comme dans notre exemple “interactive:”). Cette section ajoute simplement une route par défaut vers l'adresse IP du fournisseur d'accès (à l'autre extrémité de la ligne).

4.3. Alias IP

Toutes les étapes précédentes s'appliquent à un systeme FreeBSD utilisé pour se connecter à la demande à un fournisseur d'accès Internet.

Si vous cherchez simplement, en lisant ce guide, à connecter votre systeme FreeBSD à l'Internet, vous pouvez passer directement au chapitre Tester le réseau.

Une possibilité très intéressante du programme ppp en mode “connexion à la demande” est sa capacité à aiguiller automatiquement le trafic vers les autres systèmes du réseau local. On donne à cela des noms divers “alias IP (IP Aliasing)”, “traduction d'adresse réseau (Network Adress Translation)”, “mascarade d'adresse (Adress Masquerading)” ou “mandatement transparent (Transparent Proxying)”.

Quelle que soit la terminologie employée, ce fonctionnement n'est cependant pas automatique. Si le programme ppp est démarré de façon habituelle, il ne fera pas transiter de paquets entre l'interface avec le réseau local et la liaison vers l'extérieur. En effet, seul le système FreeBSD est connecté à l'Internet; les autres systèmes ne peuvent pas partager la même connexion.

Par exemple, si le programme ppp est lancé par:

# ppp interactive

ou:

# ppp -auto demand

correspondant respectivement aux modes manuel et automatique, alors il établira une connexion à l'Internet pour la seule machine FreeBSD.

Pour démarrer le programme ppp pour l'utiliser comme passerelle entre le réseau local et l'Internet, il faut utiliser l'une des commandes suivantes:

# ppp -alias interactive

ou:

# ppp -auto -alias demand

Alternativement, vous pouvez utiliser l'instruction “alias enable yes” dans votre fichier de configuration de ppp (Reportez-vous aux pages de manuel pour plus de détails).

Gardez cela présent à l'esprit si vous passez maintenant au chapitre Configurer les systèmes Windows.

Notes

[1]

N.d.T: ne disposant du matériel nécessaire au contrôle de certains de ces libellés dans les versions françisées de Windows, ils ont été traduits du document en langue anglaise. En cas d'inexactitude, le lecteur voudra bien rectifier de lui-même.

Ce document, ainsi que d'autres peut être téléchargé sur ftp.FreeBSD.org/pub/FreeBSD/doc/.

Pour toutes questions à propos de FreeBSD, lisez la documentation avant de contacter <questions@FreeBSD.org>.
Pour les questions sur cette documentation, contactez <doc@FreeBSD.org>.