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 ?
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 ?
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 ?
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).
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).
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).
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.
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.
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.
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
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
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
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.
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 ;)
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 :)
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.
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 ;)
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 :)
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.
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 ;)
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 :)