Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Nommage des interfaces ppp

5 réponses
Avatar
Guillaume Leccese
Bonjour,

J'ai un serveur avec deux connexions PPP. L'ordre est tres important, une étant
la principale, l'autre la secondaire. Les DNS pointent sur la principal, et mes
rêgles de firewall n'autorisent le trafic que sur la principale, la seconde
étant là pour l'administration de secours.

La première n'a pas l'air tres stable malheureusement ... et ca m'arrangerais
pas mal qu'elle soit toujours nommée ppp0, et que ca ne depende pas de l'ordre
de lancement de pppd. Sinon je dois passer par des manips via les routes par
défaut, c'est pas pratique et pas du tout idéal. Si au moins la connexion de
secours était toujours en ppp1 voir autre chose, ca serait plus pratique.

Y a-t-il un moyen de faire cela ?

Merci d'avance.

Guillaume.


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org

5 réponses

Avatar
Pascal
Salut,

Guillaume Leccese a écrit :

J'ai un serveur avec deux connexions PPP. L'ordre est tres important,
une étant la principale, l'autre la secondaire. Les DNS pointent sur la
principal, et mes rêgles de firewall n'autorisent le trafic que sur la
principale, la seconde étant là pour l'administration de secours.

La première n'a pas l'air tres stable malheureusement ... et ca
m'arrangerais pas mal qu'elle soit toujours nommée ppp0, et que ca ne
depende pas de l'ordre de lancement de pppd. Sinon je dois passer par
des manips via les routes par défaut, c'est pas pratique et pas du tout
idéal. Si au moins la connexion de secours était toujours en ppp1 voir
autre chose, ca serait plus pratique.

Y a-t-il un moyen de faire cela ?



Je ne connais pas de moyen de forcer a priori ou changer a posteriori le
nom d'une interface PPP créée par pppd. Ma passerelle est elle aussi
susceptible de gérer plusieurs interfaces PPP montées dans n'importe
quel ordre et dont le nommage est par conséquent imprévisible. J'utilise
des scripts placés dans /etc/ppp/ip-up.d/ (resp. /etc/ppp/ipv6-up.d/)
que pppd lance après l'établissement de la liaison IP (resp. IPv6) en
leur passant diverses variables d'environnement comme le nom de
l'interface, l'adresse IP locale, l'adresse IP du pair, la valeur de
l'option 'ipparam', pour créer les règles iptables et les routes liées à
chaque connexion, ou pour relancer ou envoyer un signal à un démon pour
qu'il prenne l'interface en compte. J'utilise la valeur de l'option
'ipparam' dans les fichiers d'options de pppd pour différencier les
connexions.

Exemple fictif :

===================================================== #!/bin/sh
# Variables d'environnement :
# Variable Name Example
# PPP_IFACE Interface name ppp0
# PPP_TTY The tty ttyS1
# PPP_SPEED The link speed 38400
# PPP_LOCAL Local IP number 12.34.56.78
# PPP_REMOTE Peer IP number 12.34.56.99
# PPP_IPPARAM Optional "ipparam" value foo

# actions apres debut ou fin d'une connexion PPP en IPv4
# creation ou suppression des regles iptables liees aux interfaces PPP

if [ $PPP_IPPARAM == "connexion1" ]
then
iptables -A INPUT -i $PPP_IFACE -d $PPP_LOCAL -j ACCEPT
iptables -t nat -A POSTROUTING -o $PPP_IFACE -j MASQUERADE
route add default gw $PPP_REMOTE dev $PPP_IFACE
kill -HUP `cat /var/run/mon_demon.pid`

elif [ $PPP_IPPARAM == "connexion2" ]
then
iptables -A INPUT -i $PPP_IFACE -d $PPP_LOCAL -j ACCEPT
route add -net 192.168.7.0/24 gw $PPP_REMOTE dev $PPP_IFACE
fi
=====================================================
Réciproquement j'utilise des scripts placés dans /etc/ppp/ip-down.d/
(resp. /etc/ppp/ipv6-down.d/) que pppd lance après la fermeture de la
liaison IP (resp. IPv6) avec les mêmes arguments pour nettoyer les
règles iptables obsolètes (normalement les routes liées à l'interface
qui tombe sont automatiquement nettoyées).

Rappel : ces scripts sont lancés par run-parts et doivent remplir des
conditions sur le nom et la mention de l'interpréteur en début de script
(cf. man run-parts).


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Guillaume Leccese
Salut,

Merci pour les infos, ca semble etre effectivement ce qu'il me faut.

Le probleme c'est qu'a terme, j'aurais une ppp et une dhcp, le probleme ne se
posera plus. L'utilisation des scripts résoudra mon probleme, mais c'est un
serveur en prod et je n'ai pas le temps de faire des tests.

Je pensais qu'il y avait un moyen simple de dire a pppd qu'une interface doit
etre ppp0 et l'autre ppp1 mais effectivement ce n'est pas possible.

Merci pour ta réponse, je la garde sous le coude car tres interessante :)

A+

wrote:
Salut,

Guillaume Leccese a écrit :

J'ai un serveur avec deux connexions PPP. L'ordre est tres important,
une étant la principale, l'autre la secondaire. Les DNS pointent sur
la principal, et mes rêgles de firewall n'autorisent le trafic que sur
la principale, la seconde étant là pour l'administration de secours.

La première n'a pas l'air tres stable malheureusement ... et ca
m'arrangerais pas mal qu'elle soit toujours nommée ppp0, et que ca ne
depende pas de l'ordre de lancement de pppd. Sinon je dois passer par
des manips via les routes par défaut, c'est pas pratique et pas du
tout idéal. Si au moins la connexion de secours était toujours en ppp1
voir autre chose, ca serait plus pratique.

Y a-t-il un moyen de faire cela ?



Je ne connais pas de moyen de forcer a priori ou changer a posteriori le
nom d'une interface PPP créée par pppd. Ma passerelle est elle aussi
susceptible de gérer plusieurs interfaces PPP montées dans n'importe
quel ordre et dont le nommage est par conséquent imprévisible. J'utilise
des scripts placés dans /etc/ppp/ip-up.d/ (resp. /etc/ppp/ipv6-up.d/)
que pppd lance après l'établissement de la liaison IP (resp. IPv6) en
leur passant diverses variables d'environnement comme le nom de
l'interface, l'adresse IP locale, l'adresse IP du pair, la valeur de
l'option 'ipparam', pour créer les règles iptables et les routes liées à
chaque connexion, ou pour relancer ou envoyer un signal à un démon pour
qu'il prenne l'interface en compte. J'utilise la valeur de l'option
'ipparam' dans les fichiers d'options de pppd pour différencier les
connexions.

Exemple fictif :

===================================================== > #!/bin/sh
# Variables d'environnement :
# Variable Name Example
# PPP_IFACE Interface name ppp0
# PPP_TTY The tty ttyS1
# PPP_SPEED The link speed 38400
# PPP_LOCAL Local IP number 12.34.56.78
# PPP_REMOTE Peer IP number 12.34.56.99
# PPP_IPPARAM Optional "ipparam" value foo

# actions apres debut ou fin d'une connexion PPP en IPv4
# creation ou suppression des regles iptables liees aux interfaces PPP

if [ $PPP_IPPARAM == "connexion1" ]
then
iptables -A INPUT -i $PPP_IFACE -d $PPP_LOCAL -j ACCEPT
iptables -t nat -A POSTROUTING -o $PPP_IFACE -j MASQUERADE
route add default gw $PPP_REMOTE dev $PPP_IFACE
kill -HUP `cat /var/run/mon_demon.pid`

elif [ $PPP_IPPARAM == "connexion2" ]
then
iptables -A INPUT -i $PPP_IFACE -d $PPP_LOCAL -j ACCEPT
route add -net 192.168.7.0/24 gw $PPP_REMOTE dev $PPP_IFACE
fi
===================================================== >
Réciproquement j'utilise des scripts placés dans /etc/ppp/ip-down.d/
(resp. /etc/ppp/ipv6-down.d/) que pppd lance après la fermeture de la
liaison IP (resp. IPv6) avec les mêmes arguments pour nettoyer les
règles iptables obsolètes (normalement les routes liées à l'interface
qui tombe sont automatiquement nettoyées).

Rappel : ces scripts sont lancés par run-parts et doivent remplir des
conditions sur le nom et la mention de l'interpréteur en début de script
(cf. man run-parts).






--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Pascal
Guillaume Leccese a écrit :

Le probleme c'est qu'a terme, j'aurais une ppp et une dhcp, le probleme
ne se posera plus. L'utilisation des scripts résoudra mon probleme,
mais c'est un serveur en prod et je n'ai pas le temps de faire des tests.



Même avec une seule connexion PPP, je reste convaincu que l'utilisation
de ces scripts reste la seule méthode vraiment "propre", et que supposer
a priori que l'interface sera toujours nommée 'ppp0' est risqué. J'ai
déjà vu des cas particuliers où une nouvelle instance de l'unique
connexion est relancée alors que l'interface 'ppp0' de l'instance
précédente existe encore. La nouvelle instance prend alors 'ppp1' comme
nom d'interface.

Je pensais qu'il y avait un moyen simple de dire a pppd qu'une interface
doit etre ppp0 et l'autre ppp1 mais effectivement ce n'est pas possible.



C'est vrai que c'est une option qui aurait pu être prévue.


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Pascal
Antoine Delaporte a écrit :

Afin de forcer une interface ppp, n'hesitez pas a rajouter dans le
/etc/ppp/peers/MACNX la douce ligne :
unit 100

Cela creera donc une interface ppp100



Ah oui tiens, c'est décrit dans le man de pppd 2.4.2 de Sarge. Je ne
connaissais pas, utilisant encore Woody avec pppd 2.4.1 sur ma
passerelle. Merci de l'info.

Toutefois, cette option n'est utilisable que pour les connexions PPP
sortantes (ce qui entre dans le cadre de la demande initiale).


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Pascal
Antoine Delaporte a écrit :

Antoine Delaporte a écrit :

Afin de forcer une interface ppp, n'hesitez pas a rajouter dans le
/etc/ppp/peers/MACNX la douce ligne :
unit 100

Cela creera donc une interface ppp100



Ah oui tiens, c'est décrit dans le man de pppd 2.4.2 de Sarge. Je ne
connaissais pas, utilisant encore Woody avec pppd 2.4.1 sur ma
passerelle. Merci de l'info.





Correction : Sarge contient pppd 2.4.3.

Je sais, j'ai du la lire entierement cette man page, dans une autre
autre autre vie... :) ainsi que tt le code src :/

Mais rassure toi, en woody ca fonctionne deja ;)



Effectivement, je viens de tester... On ne me dit jamais rien à moi :'(

Toutefois, cette option n'est utilisable que pour les connexions PPP
sortantes (ce qui entre dans le cadre de la demande initiale).



oui, oui, forcement :)



Pour préciser, l'option est aussi prise en compte pour une connexion
entrante (je vois mal comment pppd pourrait faire la différence) mais je
suppose que ça va coincer quand une seconde demande de connexion arrivera.


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact