Pédants Principes PPP
Précédent | Chapitre 3. Configurer la liaison PPP vers l'extérieur | Suivant

# 3.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 de configuration 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 cette section décrit le contenu recommandé des fichiers de configurations de `ppp`.

## 3.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:

### 3.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 57600 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 interpreté 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.

### 3.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:

- à Divers Shiva LanRovers,

- au réseau IBM (http://www.ibm.net),

- à AT&T WorlNet (http://www.att.com/worldnet),

- à Erol's (http://www.erols.com).

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''.

### 3.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é plus tôt, les exemples donnés dans cette section 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 ``à la volé'',

- 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.

## 3.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).

### 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.

Précédent | Sommaire | Suivant
Configurer la liaison PPP vers l'extérieur | Niveau supérieur | Alias IP

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>.