PPP-2.4.5

Introduction à PPP

Le paquetage PPP contient le démon pppd et le programme chat. Ils sont utilisés pour la connexion vers d'autres machines ; souvent pour se connecter à Internet via une connexion commutée ou via une connexion PPPoE vers un FAI.

Ce paquet est connu pour se construire et fonctionner correctement sur une plateforme LFS-7.0.

Package Information

Dépendancies de PPP

Facultatives

libpcap-1.1.1 (nécessare pour faire du du filtrage PPP) et Linux-PAM-1.1.5 (pour authentifier les appels entrant en utilisant PAM - exigé seulement par le FAIs).

Notes utilisateur : http://wiki.linuxfromscratch.org/blfs/wiki/PPP

Installation de PPP

[Note]

Note

Le support PPP (CONFIG_PPP), asynchronous line discipline (CONFIG_PPP_ASYNC), le pilote de votre périphérique de port série et/ou le pilote du protocole PPP over Ethernet (PPPoE) protocol driver (CONGIG_PPPOE) doivent être compilés dans le noyau ou être disponible comme un module du noyau. Udev ne charge pas automatiquement les modules ppp_generic et pppoe. Si vous les avez compilés en tant que modules, ils peuvent être chargés par le script de démarrage modules s'ils sont indiqués dans /etc/sysconfig/modules.

Créez (en tant que root) le groupe pour les utilisateurs qui peuvent lancer PPP :

groupadd -g 52 pppusers

Compilez PPP en lançant les commandes suivantes :

rm include/linux/if_pppol2tp.h &&
./configure --prefix=/usr &&
make

Ce paquet n'est pas fourni avec une suite de tests.

Maintenant, en tant qu'utilisateur root :

make install &&
install -d /etc/ppp/peers

Explication des commandes

rm include/linux/if_pppol2tp.h : ppp-2.4.5 contient une copie obsolète de l'en-tête linux/if_pppol2tp.h du noyau. Il faut la supprimer pour l'obliger à utiliser celui installé dans /usr. Si vous ne supprimez pas ce fichier, la construction réussira quand même grâce à un Makefile écrit à la hâte), mais elle ne parviendra pas à compiler les plugins openl2tp.so, pppol2tp.so et rp-pppoe.so :

install -d /etc/ppp/peers : Cette commande crée un répertoire pour les fichiers de configuration peer de PPP.

USE_PAM=y : Ajoute cet argument à la commande make pour compiler en dur le support pour PAM, généralement nécessaire pour l'authentification des appels inbound auprès d'une base de données centrale.

HAVE_INET6=y : Ajoute cet argument à la commande make pour compiler en dur le support d'IPv6.

CBCP=y : Ajoute cet argument à la commande make pour compiler en dur le support du protocole de contrôle des appels propriétaires de Microsoft.

Configurer PPP

Fichiers de configuration

/etc/ppp/*

Informations de configuration

Ajoutez les utilisateurs qui peuvent lancer PPP au groupe pppusers :

usermod -a -G pppusers <username>

La plupart des fournisseurs d'accès à Internet qui utilisent ppp vous donnent un nom d'utilisateur et un mot de passe pour vous authentifier lorsque vous vous connectez à leurs serveurs. Ces secrets sont contenus dans les fichiers /etc/ppp/pap-secrets ou /etc/ppp/chap-secrets. Si vous ne savez pas si votre fournisseur d'accès utilise CHAP ou PAP, créez les deux fichiers et mettez dedans le même contenu.

Si vous avez plus d'un compte chez un fournisseur d'accès, la deuxième colonne (remotename) sert à différencier les noms d'utilisateur et les mots de passe de chaque FAI. Si vous n'avez qu'un compte chez un FAI, une astérisque ira très bien dans la deuxième colonne.

Dans cet exemple le nom d'utilisateur donné par le FAI est « jdoe », le mot de passe est « guessit », le FAI utilise PAP et l'utilisateur veut donner à son compte le nom distant « dialup » pour le différencier des autres comptes PPP :

cat >>/etc/ppp/pap-secrets <<"EOF"
# username      remotename    password
jdoe            dialup        guessit
EOF
chmod 600 /etc/ppp/pap-secrets
Configuration du serveur DNS

Si vous ne lancez pas votre propre serveur de DNS (comme BIND-9.8.1-P1), pppd peut demander à votre FAI ses serveurs de nom de domaine pour les mettre dans /etc/ppp/resolv.conf. Si vous voulez utiliser leurs serveurs de noms de domaine :

mv /etc/resolv.conf{,.orig}
ln -s ppp/resolv.conf /etc
connexions PPPoE

Afin de configurer une connexion PPoE, créez un fichier peer qui contient les détails de connexion :

cat >/etc/ppp/peers/peername <<"EOF"
plugin rp-pppoe.so eth0

# Votre nom d'utilisateur auprès du FAI. C'est le même que la première
# colonne dans /etc/ppp/*-secrets:
user "jdoe"

# remotename n'est pas nécessaire si vous n'avez qu'un compte chez un FAI, d'où
# l'astérisque dans la seconde colonne dans pap or chap-secrets:
# remotename "adsl"

# Si cela ne fonctionne pas et si vous voulez que pppd soit plus verbeux
# dans /var/log/sys.log, ajoutez debug:
# debug

# Si vous avez une adresse IP statique(comme, 12.34.56.78) vous l'indiquer
# en la faisant suivre de deux-points:
# 12.34.56.78:

# Sinon acceptez n'importe quelle adresse IP donnée par votre FAI:
noipdefault

# Les paramètres ci-dessous ne sont en principe pas à changer
noauth
hide-password
updetach
defaultroute
# créez /etc/ppp/resolv.conf:
usepeerdns

### Pour plus de détails (et plus d'options)
### lisez le man pppd
EOF
chmod 600 /etc/ppp/peers/peername
Connexions PPPoATM

Les connexions PPPoA ressemblent beaucoup à PPPoE, les principales différences sont que vous utilisez le plugin pppoatm.so au lieu de rp-pppoe.so, vous n'indiquez pas d'interface ethernet (elle utilise ppp0) et vous devez VP/VC des numéros utilisés par votre FAI (il existe une liste des numéros VP/VC ici )

cat >/etc/ppp/peers/peername <<"EOF"
plugin pppoatm.so

# Vos numéros VP/VC, par exemple en Grande-Bretagne, c'est 0.38, ien
# France on utilise 8.35. Google est votre ami :)
0.38

# Votre nom d'utilisateur auprès du FAI. C'est le même que la première colonne
# dans /etc/ppp/*-secrets:
user "jdoe"

# remotename n'est pas utile si vous n'avez qu'un compte auprès d'un FAI, d'où
# l'astérisque dans la deuxième colonne de pap ou chap-secrets:
# remotename "adsl"

# Si cela ne fonctionne pas et si vous voulez que pppd soit plus verbeux
# dans /var/log/sys.log, ajoutez debug:
# debug


# Si vous avez une adresse IP statique(comme, 12.34.56.78) vous l'indiquer
# en la faisant suivre de deux-points:
# 12.34.56.78:

# Sinon acceptez n'importe quelle adresse IP donnée par votre FAI:
noipdefault

# Les paramètres ci-dessous ne sont en principe pas à changer
noauth
hide-password
updetach
defaultroute
# créez /etc/ppp/resolv.conf:
usepeerdns

### Pour plus de détails (et plus d'options)
### read man pppd
EOF
chmod 600 /etc/ppp/peers/peername
Connexion par un modem Dialup

Les connexions Dialup sont établies à l'aide d'un modem connecté à un ordinateur et à la ligne téléphonique. Le modem compose un numéro de téléphone du modem du FAI et ils échangent des données en utilisant les fréquences de signal 300-4000 Hz. En principe, la vitesse de transfert est de 40-50 kilo-octets par seconde, et le temps de ping de la passerelle (latency) est de plus de 300-400 ms. Afin de configurer la connexion dialup, il faut connaître le numéro de téléphone du modem du FAI, le nom d'utilisateur et le mot de passe.

Pour configurer une connexion dialup, vous devez créer deux fichiers : un script chat qui automatise la procédure de connexion (commun à tous les comptes dialup), et un fichier peer qui fournit les informations de configuration concernant une connexion particulière à pppd :

cat >/etc/ppp/dialup.chat <<"EOF"
ABORT BUSY ABORT 'NO CARRIER' ABORT VOICE ABORT 'NO DIALTONE'
ABORT 'NO DIAL TONE' ABORT 'NO ANSWER' ABORT DELAYED
ABORT ERROR ABORT BLACKLISTED

TIMEOUT 5
'' AT
# \T est le numéro de téléphone passé depuis
# /etc/ppp/peers/dialup
OK-+++\dATH0-OK ATD\T
TIMEOUT 75
CONNECT \d\c
EOF

cat >/etc/ppp/peers/dialup <<"EOF"
# Your username at the ISP
user "jdoe"
# Ce qui devrait être dans la deuxième colonnedans /etc/ppp/*-secrets
remotename "dialup"
# Remplacez TTTTTTT par le numéro de
# téléphone du FAI
connect "/usr/sbin/chat -T TTTTTTT -f /etc/ppp/dialup.chat"

# Spécifiez le port série de votre modem et sa vitesse ci-dessous
/dev/ttyS0
115200

# Vous n'avezn général pas à modifier les paramètres ci-dessous
updetach
noauth
hide-password
debug
lock
defaultroute
noipdefault
usepeerdns
EOF

Les trois premières lignes du fihier /etc/ppp/dialup.chat tuent le sc!ipt lorsqu'il reçoit du modem l'indication d'une erreur. Puis le temps d'attente est fixé à 5 secondes et le script vérifie que le modem répond à la commande dummy AT. Sinon, des mesures sont prises pour le débloquer (en interrompant le transfert de données et en continuant le script). Puis, on compose le numéro de téléphone et le script attend la réponse pendant 75 secondes. La connexion série est considérée comme établie quand le modem envoie la chaîne CONNECT.

Connexions GPRS et EDGE

Les connexions GPRS et EDGE sont établies à l'aide d'un téléphone mobile connecté à un ordinateur en port série, USB ou Bluetooth. Le téléphone échange des paquets de données avec le centre de base le plus proche, jusqu'à 35 kilomètres. La vitesse de transfert de données maximale est de 170 kilo-octets par seconde pour GPRS et de 474 kilo-octets par seconde pour EDGE, mais beaucoup d'opérateurs de téléphonie mobile posent des limites plus faibles, comme 64 kilo-bits par seconde. Le temps de réponse de la passerelle est de 900 ms pour GPRS, ce qui rend impossible de jouer à beaucoup de jeux en ligne et peu fiable la connexion à ICQ. Afin de configurer une connexion GPRS et EDGE, il faut connaître le nom du point d'accès (APN) et, rarement, le nom d'utilisateur et le mot de passe. Dans la plupart des cas, la facturation se fonde sur le numéro de téléphone et le couple nom d'utilisateur/mot de passe n'est pas nécessaire, comme le suppose l'exemple ci-dessous.

Afin de configurer une connexion GPRS, vous devez créer deux fichiers : un script chat qui automatise la procédure de connexion (commun à tous les comptes GPRS), et un fichier peer qui fournit des informations de configuration sur une connexion particulière à pppd :

cat >/etc/ppp/gprs.chat <<"EOF"
ABORT BUSY ABORT 'NO CARRIER' ABORT VOICE ABORT 'NO DIALTONE'
ABORT 'NO DIAL TONE' ABORT 'NO ANSWER' ABORT DELAYED
ABORT ERROR ABORT BLACKLISTED

TIMEOUT 5
'' AT
OK-+++\dATH0-OK ATZ
# \T est l'APN, passé depuis /etc/ppp/peers/gprs
# Cet exemple conserve l'APN en tant que profile #1 dans le téléphone.
# Le "numéro de téléphone", *99***<profile_number>#, est toujours
# le même.
# Si vous voulez conserver cela en tant que profile #2, modifiez 1 en 2 
# dans les deux lignes suivantes.
OK AT+CGDCONT=1,"IP","\T"
OK "ATD*99***1#"
CONNECT \d\c
EOF

cat >/etc/ppp/peers/gprs <<"EOF"
# Replace inet.example.com with the proper APN for your provider
connect "/usr/sbin/chat -T inet.example.com -f /etc/ppp/gprs.chat"

# Spécifiez le port série de votre mobile et sa vitesse ci-dessous
# Remarque: vous devez envoyer manuellement des commandes AT spécifiques au
# fabricant pour certains vieux téléphones mobiles (tel que le
# Sony-Ericsson T200) afin de réaliser une connexion de vitesse supérieure à
# 9600 octets par seconde.
/dev/ttyS1
115200

# Vous n'avez en général pas besoin de modifier les paramètres ci-dessous

noccp
noauth
updetach
debug
lock
defaultroute
noipdefault
usepeerdns
EOF
Etablir manuellement la connexion

Afin d'établir une connexion PPP, décrite par le fichier /etc/ppp/peers/peername lancez (en tant que root ou en tant que membre du groupe pppusers) :

pppd call peername

Afin d'arrêter la connexion, lancez :

killall pppd

Écrire un script de démarrage qui active la connexion lors du processus de démarrage est un exercice que nous donnons au lecteur ;)

Contenu

Programmes installés: chat, pppd, pppdump, pppoe-discovery et pppstats
Bibliothèques installées: Plusieurs modules de plugin installés dans /usr/lib/pppd/2.4.5
Répertoires installés: /etc/ppp, /usr/include/pppd and /usr/lib/pppd

Descriptions courtes

chat

définit une échange de conversation entre l'ordinateur et le modem. Son but primaire est d'établir la connexion entre le Point-to-Point Protocol Daemon (PPPD) et le processus pppd distant.

pppd

est le démon du protocole point à point.

pppdump

est utilisé pour convertir les fichiers d'enregistrement de PPP en format lisible.

pppoe-discovery

effectue le même processus de recherche que le plugin pppoe, mais n'initialise pas de session PPP.

pppstats

est utilisé pour afficher les statistiques de PPP.

Last updated on 2011-11-17 18:27:16 +0100