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

2 routes par défaut avec iproute

11 réponses
Avatar
rantamplan
Bonjour,


Je ne comprends pas ce que fiche google: J'avais posté une question il y
a quelques mois pour savoir comment avoir deux routes par défaut vers
lesquels les paquets sont envoyés en fonction de leur origine, et je ne
retrouve rien.
La question:

1 passerelle avec les paquets IP (route addr et tuti)
1 réseau local et une dmz accrochés à la passerelle.
2 connexions dsl accrochées à la passerelle

Je veux que le
192.168.0.0/25 sorte par la passerelle FAI1
192.168.0.129/25 sorte par la passerelle FAI2
que la DMZ sorte par la passerelle FAI2

Et donc quelqu'un ici m'avait gentiment glissé les commandes iproute à
mettre en script sur notre passerelle debian, mais google ne me permet
pas de le retrouver.

quelqu'un sait/se souvient?

--
rantamplan

10 réponses

1 2
Avatar
xg
Bonjour,


Je ne comprends pas ce que fiche google: J'avais posté une question il y
a quelques mois pour savoir comment avoir deux routes par défaut vers
lesquels les paquets sont envoyés en fonction de leur origine, et je ne
retrouve rien.
La question:

1 passerelle avec les paquets IP (route addr et tuti)
1 réseau local et une dmz accrochés à la passerelle.
2 connexions dsl accrochées à la passerelle

Je veux que le
192.168.0.0/25 sorte par la passerelle FAI1
192.168.0.129/25 sorte par la passerelle FAI2
que la DMZ sorte par la passerelle FAI2

Et donc quelqu'un ici m'avait gentiment glissé les commandes iproute à
mettre en script sur notre passerelle debian, mais google ne me permet
pas de le retrouver.

quelqu'un sait/se souvient?



Bonjour,

Une solution a tester serait de faire une table fai1.

Tu creer une table fai1:
vi /etc/iproute2/rt_tables

200 fai1

#Tu creer une regle forcant les paquets marques 6e de passer par la
table fai1.
ip rule add fwmark 6e table fai1
# verifie si c est bien cree
ip rule list
# tu marques avec "6e"tous les paquets ayant pour source les ip
192.168.0.0/25.
iptables -t mangle -A PREROUTING -i eth0 -s 192.168.0.0/25 -j MARK
--set-mark 0x6e
# tu crees la route par defautl de fai1
ip route add default via <IP_FAI1> dev eth0 table fai1
# tu verifies si tout marche
ip route table fai1

Avatar
Pascal Hambourg
Salut,


Je ne comprends pas ce que fiche google: J'avais posté une question il y
a quelques mois pour savoir comment avoir deux routes par défaut vers
lesquels les paquets sont envoyés en fonction de leur origine, et je ne
retrouve rien.
La question:

1 passerelle avec les paquets IP (route addr et tuti)
1 réseau local et une dmz accrochés à la passerelle.
2 connexions dsl accrochées à la passerelle

Je veux que le
192.168.0.0/25 sorte par la passerelle FAI1
192.168.0.129/25 sorte par la passerelle FAI2



Pas valide, ce préfixe. Plutôt 192.168.0.128/25.

que la DMZ sorte par la passerelle FAI2

Et donc quelqu'un ici m'avait gentiment glissé les commandes iproute à
mettre en script sur notre passerelle debian, mais google ne me permet
pas de le retrouver.

quelqu'un sait/se souvient?



Je me souviens de cette discussion, que j'ai retrouvée. Mais à part
qu'il fallait utiliser iproute2, aucun détail de mise en oeuvre n'avait
été donné.

Une solution a tester serait de faire une table fai1.

Tu creer une table fai1:
vi /etc/iproute2/rt_tables

200 fai1

#Tu creer une regle forcant les paquets marques 6e de passer par la table fai1.
ip rule add fwmark 6e table fai1
# tu marques avec "6e"tous les paquets ayant pour source les ip
192.168.0.0/25.
iptables -t mangle -A PREROUTING -i eth0 -s 192.168.0.0/25 -j MARK
--set-mark 0x6e
# tu crees la route par defautl de fai1
ip route add default via <IP_FAI1> dev eth0 table fai1


J'ai un gros doute que l'interface vers FAI1 soit celle par laquelle les
paquets du LAN sont arrivés. ;-)

Note : il n'est pas nécessaire de marquer les paquets avec iptables car
iproute2 permet de faire du routage basé sur l'adresse source.
Par exemple, si eth0 est l'interface LAN :

ip rule add from 192.168.0.0/25 iif eth0 table fai1

Et le cas échéant ne pas oublier de désactiver rp_filter sur l'interface
vers FAI1 (je doute que la vérification d'adresse source prenne en
compte l'adresse destination et le routage avancé).


Avatar
rantamplan
Pascal Hambourg wrote:
Salut,



Merci pour vos débuts de réponse.
Je les examine le plus vite possible, et j'en rediscutte.

Avatar
rantamplan
rantamplan wrote:

Bon. Je crois que j'ai trouvé la doc qu'il me faut:


Bon.je crois que j'ai trouvé ce qu'il me faut:

http://www.linux-france.org/prj/inetdoc/guides/Advanced-routing-Howto/lartc.rpdb.html#lartc.rpdb.simple

Merci aux p'tits gars de l'abul (lug de Bordeaux) pour le lien, et à
vous de vous être décarcassé.


--
Fabrice
Avatar
JKB
Le 02-05-2007, à propos de
Re: 2 routes par défaut avec iproute,
rantamplan écrivait dans fr.comp.reseaux.ip :
rantamplan wrote:

Bon. Je crois que j'ai trouvé la doc qu'il me faut:


Bon.je crois que j'ai trouvé ce qu'il me faut:

http://www.linux-france.org/prj/inetdoc/guides/Advanced-routing-Howto/lartc.rpdb.html#lartc.rpdb.simple

Merci aux p'tits gars de l'abul (lug de Bordeaux) pour le lien, et à
vous de vous être décarcassé.


Bonjour,

Je remobdis un peu sur le sujet. Lorsqu'on a une machine en routeur,
c'est facile à faire (et je sais faire). Mais comment avoir deux
routes par défaut sur une machine linux avec un trafic généré
_localement_ ? J'ai déjà essayé des tas de trucs avec des règles
iptables bizarres sans succès...

Cordialement,

JKB

--
Le cerveau, c'est un véritable scandale écologique. Il représente 2% de notre
masse corporelle, mais disperse à lui seul 25% de l'énergie que nous
consommons tous les jours.

Avatar
Julien Salgado
JKB a écrit :
Bonjour,


Salut,


Je remobdis un peu sur le sujet. Lorsqu'on a une machine en routeur,
c'est facile à faire (et je sais faire). Mais comment avoir deux
routes par défaut sur une machine linux avec un trafic généré
_localement_ ? J'ai déjà essayé des tas de trucs avec des règles
iptables bizarres sans succès...


En fait, il y avait un petit bug dans plusieurs version de noyau qui
faisait que l'IP source prise lors d'un création de socket n'était pas
forcément la bonne et donc il fallait faire des SNAT dans tous les sens.

Normalement j'avais cru voir que c'était réglé par contre les conf que
j'ai sous la main ne me permettent pas de dire si ça marche (le pire cas
que j'ai concerne du traffic d'un serveur avec plusieurs routes...)


Cordialement,

JKB




--
Julien

Avatar
JKB
Le 02-05-2007, à propos de
Re: 2 routes par défaut avec iproute,
Julien Salgado écrivait dans fr.comp.reseaux.ip :
JKB a écrit :
Bonjour,


Salut,


Je remobdis un peu sur le sujet. Lorsqu'on a une machine en routeur,
c'est facile à faire (et je sais faire). Mais comment avoir deux
routes par défaut sur une machine linux avec un trafic généré
_localement_ ? J'ai déjà essayé des tas de trucs avec des règles
iptables bizarres sans succès...


En fait, il y avait un petit bug dans plusieurs version de noyau qui
faisait que l'IP source prise lors d'un création de socket n'était pas
forcément la bonne et donc il fallait faire des SNAT dans tous les sens.

Normalement j'avais cru voir que c'était réglé par contre les conf que
j'ai sous la main ne me permettent pas de dire si ça marche (le pire cas
que j'ai concerne du traffic d'un serveur avec plusieurs routes...)


Merci de l'info. Je vais regarder si cela fonctionne. Une idée de la
manière de faire ? Personnellement, je marquais les paquets dans un
PREROUTING mais il y avait un problème. Le paquet partait de la
bonne interface, mais l'adresse de retour était l'interface
principale de la machine sur une autre patte, ce qui fait que les
connexions échouaient à chaque fois...

Cordialement,

JKB

--
Le cerveau, c'est un véritable scandale écologique. Il représente 2% de notre
masse corporelle, mais disperse à lui seul 25% de l'énergie que nous
consommons tous les jours.


Avatar
Pascal Hambourg

Je remobdis un peu sur le sujet. Lorsqu'on a une machine en routeur,
c'est facile à faire (et je sais faire). Mais comment avoir deux
routes par défaut sur une machine linux avec un trafic généré
_localement_ ? J'ai déjà essayé des tas de trucs avec des règles
iptables bizarres sans succès...



Par définition il ne peut pas y avoir plusieurs routes /par défaut/
actives en même temps. Ce serait comme avoir plusieurs 'default' dans un
'switch' en C. Si tu veux dire faire du routage avancé avec les marques
d'iptables sur les paquets émis localement, il faut mettre les règles
iptables dans la chaîne OUTPUT au lieu de PREROUTING.

En fait, il y avait un petit bug dans plusieurs version de noyau qui
faisait que l'IP source prise lors d'un création de socket n'était pas
forcément la bonne et donc il fallait faire des SNAT dans tous les sens.


C'est normal si le routage avancé est basé sur les marques d'iptables.
Le choix de l'adresse IP source par défaut est effectué par la première
décision de routage en sortie, qui a lieu avant la traversée des chaînes
OUTPUT. Donc le marquage arrive trop tard.

Normalement j'avais cru voir que c'était réglé


Si on parle bien de la même chose, je ne vois pas comment ça pourrait
être réglé vu que c'est par conception.


Avatar
Pascal Hambourg

Personnellement, je marquais les paquets dans un PREROUTING


Dans OUTPUT, tu veux dire ? Les paquets émis localement ne traversent
pas PREROUTING (sauf ceux émis sur l'interface de loopback évidemment).

mais il y avait un problème. Le paquet partait de la
bonne interface, mais l'adresse de retour était l'interface
principale de la machine sur une autre patte, ce qui fait que les
connexions échouaient à chaque fois...


Qu'entends-tu par "adresse de retour" ? L'adresse source des paquets
émis localement ?

Avatar
JKB
Le 06-05-2007, à propos de
Re: 2 routes par défaut avec iproute,
Pascal Hambourg écrivait dans fr.comp.reseaux.ip :

Personnellement, je marquais les paquets dans un PREROUTING


Dans OUTPUT, tu veux dire ? Les paquets émis localement ne traversent
pas PREROUTING (sauf ceux émis sur l'interface de loopback évidemment).


Dans OUTPUT, effectivement.

mais il y avait un problème. Le paquet partait de la
bonne interface, mais l'adresse de retour était l'interface
principale de la machine sur une autre patte, ce qui fait que les
connexions échouaient à chaque fois...


Qu'entends-tu par "adresse de retour" ? L'adresse source des paquets
émis localement ?


J'obtenais des paquets émis sur eth1 (défaut en eth0) mais portant
comme adresse source l'adresse IP de eth0 et non celle de eth1.

JKB

--
Le cerveau, c'est un véritable scandale écologique. Il représente 2% de notre
masse corporelle, mais disperse à lui seul 25% de l'énergie que nous
consommons tous les jours.


1 2