Le protocole Point-a-Point | PPP
8.7 Options de conguration IP
IPCP est utilise pour negocier deux parametres IP au moment de la conguration. Generalement, chaque c^ote envoie un paquet IPCP de requ^ete de conguration, indi- quant les valeurs qu'il desire au lieu de celles par defaut. Le correspondant examine chaque option a son tour et acquitte ou rejette la demande.
Avec pppd, vous disposez d'un contr^ole presque total des options IPCP qu'il tentera de negocier. Vous pouvez les ajuster par dierentes commandes que nous allons presenter ci-dessous.
8.7.1 Choix des adresses IP
Dans l'exemple ci-dessus, pppd appelait
pabo
et etablissait une liaison IP. Aucune precaution n'etait prise quant au choix d'adresses IP particulieres de chaque c^ote de la liaison. Nous avions simplement pris l'adresse dekro
comme adresse IP locale, et laissepabo
indiquer la sienne. Quelquefois neanmoins, il est necessaire d'avoir un contr^ole sur les adresses mises en jeu; pour cela pppd propose plusieurs options. Pour demander une adresse particuliere, il sut en principe de l'indiquer a pppd par l'option suivante:adresse locale:adresse distante
Vous pouvez utiliser pouradresse localeetadresse distante, aussi bien des noms
de machines que des adresses IP en notation sur 4 octets6. Avec cette option, pppd
tentera d'utiliser la premiere adresse comme sa propre adresse IP, et la seconde pour la machine distante. Si cette derniere rejette l'une ou l'autre pendant la negociation IPCP, aucune liaison IP ne sera etablie7.
Si vous ne desirez assigner que l'adresse locale et accepter toute adresse distante que l'autre c^ote annoncera, il vous sut de ne rien mettre a l'emplacement de la variable
adresse distante. Par exemple, pour que
kro
utilise l'adresse130.83.4.27
au lieude la sienne, vous passeriez l'option 130.83.4.27:sur la ligne de commandes. De
m^eme, pour n'assigner que l'adresse distante, vous laisseriez le champadresse locale
en blanc. Par defaut, pppd utilisera alors l'adresse associee au nom de la machine. Certains serveurs PPP gerant beaucoup de connexions assignent les adresses de ma- niere dynamique: elles sont choisies lorsqu'un systeme se connecte, et liberees a la deconnexion. Lors de l'appel de tels services, vous devez vous assurer que pppd ne demande aucune adresse IP particuliere au serveur, mais qu'au contraire il est pr^et a accepter celles qui lui seront imposees. Cela signie que vous ne devez pas specier d'argument adresse locale, pour le moins. De plus, vous devrez utiliser l'option noipdefault, qui indique au programme d'attendre que l'autre c^ote lui indique son
adresse IP au lieu de prendre celle de la machine locale.
6:L'utilisation de noms de machines avec cette option a certaines consequences sur l'authenti-
cation CHAP. Consultez la section correspondante dans ce chapitre.
7:Vous pouvez autoriser la machine distante a vous imposer une adresse IP malgre tout
par l'option ipcp-accept-local, et vous pouvez accepter l'adresse qu'elle desire pour elle par ipcp-accept-remote. Consultez la page de manuel pour plus de details.
8.7.2 Routage via une liaison PPP
Apres avoir initialise l'interface reseau, pppd positionne generalement une route, uni- quement vers l'h^ote distant. Si celui-ci est sur un reseau, vous voudrez sans doute avoir la possibilite de vous connecter a des machines((derriere))lui; c'est-a-dire qu'il
faudra une route vers un reseau.
Nous avons deja vu plus haut que pppd peut ^etre parametre pour positionner une route par defaut gr^ace a l'optiondefaultroute, qui est tres utile si le serveur PPP
que vous avez appele est cense ^etre votre passerelle vers l'Internet.
Le cas inverse, ou votre systeme agit comme une passerelle pour un simple h^ote, est aussi relativement simple a realiser. Prenons par exemple un employe de l'entreprise
(( La biere virtuelle)), dont l'ordinateur domestique s'appelle
houblon
. Lorsqu'il seconnecte a
kro
par PPP, il utilise une adresse appartenant au sous-reseau des bras- seurs. Surkro
, nous pouvons alors passer l'optionproxyarpa pppd, qui installera uneentree proxy ARP pour
houblon
. Cela rendra automatiquementhoublon
accessible depuis toutes les machines du reseau des brasseurs, et de celui des viticulteurs. Toutefois, les choses ne sont pas toujours aussi simples que ca, par exemple lorsque l'on relie deux reseaux locaux. En principe, cela demande l'ajout d'une route reseau specique, car chacun peut avoir sa propre route par defaut. Par-dessus le marche, si les deux bouts utilisaient le lien PPP comme route par defaut, cela genererait une boucle, et les paquets a destination inconnue feraient des aller et retour entre chaque bout de la liaison jusqu'a ce que leur ttl expire.Comme exemple, supposons que((La biere virtuelle))installe une succursale dans une
autre ville. Celle-ci possede un reseau Ethernet qui lui est propre, possedant l'adresse reseau IP
172.16.3.0
, c'est-a-dire le sous-reseau 3 du reseau de classe B des brasseurs. Cette succursale veut se connecter au reseau principal du siege par PPP pour mettre a jour leurs chiers clients et les tarifs, etc. La encore,kro
joue le r^ole de passerelle; son correspondant s'appelle, disons,province
et son adresse IP vaut172.16.3.1
. Lorsqueprovince
se connecte akro
, il positionne la route par defaut verskro
, comme de coutume. Sur la machinekro
, toutefois, nous devrons installer une route reseau pour le sous-reseau 3, qui passera parprovince
. Pour cela, nous allons employer une possibilite de pppd dont nous n'avons pas encore parle: la commande ip-up. Il s'agit d'un shell-script ou d'un programme situe dans le repertoire /etc/ppp, qui est execute apres que l'interface PPP a ete conguree. Lorsque ce chier existe, il est appele automatiquement par pppd avec les parametres suivants:ip-up interface peripherique vitesse adresse locale adresse distante
Le parametreinterfaceindique l'interface reseau utilisee,peripheriqueest le che-
min d'acces au port serie (/dev/tty s'il s'agit de stdin/stdout), et vitesse corres-
pond a la vitesse d'utilisation de ce port serie. Bien entendu, adresse locale et adresse distantecorrespondent aux adresses IP de chaque c^ote de la liaison et sont
exprimees en notation sur 4 octets. Dans notre cas, le script ip-up pourrait contenir, entre autres lignes de code, celles-ci:
#!/bin/sh case $5 in
172.16.3.1) # La machine province route add -net 172.16.3.0 gw 172.16.3.1; ...
esac exit 0
De la m^eme facon, /etc/ppp/ip-down est appele pour annuler toutes les actions de ip-uplorsque la liaison est interrompue.
Toutefois, ce schema de routage n'est pas encore complet. Nous avons positionne des entrees dans la table de routage de chaque h^ote PPP, mais, pour l'instant, aucune autre machine de l'un ou l'autre des reseaux n'est au courant de cette liaison PPP. Ce n'est pas un gros probleme si tous les h^otes de la succursale ont leur route par defaut pointant vers