Sur une machine passerelle linux avec iptable, je souhaite connecter
deux fournisseurs d'accès différents, et je voudrais que suivant le
réseau IP d'origine, les paquets soient redirigés vers telle ou telle
passerelle par défaut.
exemple:
192.168.0.0/25 a la passerelle linux comme default GW
192.168.0.129/25 a aussi la passerelle comme default GW
Tout paquet arrivant sur la passerelle depuis 192.168.0.0/25 par chez colt
Tout paquet arrivant sur la passerelle depuis 192.168.0.129/25 par chez
oleane
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
JKB
Le 09-11-2006, à propos de 1 route par défaut par réseau machine d'origine, rantamplan écrivait dans fr.comp.reseaux.ip :
Bonjour,
Bonsoir,
Sur une machine passerelle linux avec iptable, je souhaite connecter deux fournisseurs d'accès différents, et je voudrais que suivant le réseau IP d'origine, les paquets soient redirigés vers telle ou telle passerelle par défaut. exemple: 192.168.0.0/25 a la passerelle linux comme default GW 192.168.0.129/25 a aussi la passerelle comme default GW Tout paquet arrivant sur la passerelle depuis 192.168.0.0/25 par chez colt Tout paquet arrivant sur la passerelle depuis 192.168.0.129/25 par chez oleane
C'est possible, avec seulement iptable?
Non, mais avec une couche d'iproute2 et le patch ROUTE du noyau, ça le fait (les autres solutions testées avec mark et autres ne fonctionnent pas sur les sparc que j'utilise).
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.
Le 09-11-2006, à propos de
1 route par défaut par réseau machine d'origine,
rantamplan écrivait dans fr.comp.reseaux.ip :
Bonjour,
Bonsoir,
Sur une machine passerelle linux avec iptable, je souhaite connecter
deux fournisseurs d'accès différents, et je voudrais que suivant le
réseau IP d'origine, les paquets soient redirigés vers telle ou telle
passerelle par défaut.
exemple:
192.168.0.0/25 a la passerelle linux comme default GW
192.168.0.129/25 a aussi la passerelle comme default GW
Tout paquet arrivant sur la passerelle depuis 192.168.0.0/25 par chez colt
Tout paquet arrivant sur la passerelle depuis 192.168.0.129/25 par chez
oleane
C'est possible, avec seulement iptable?
Non, mais avec une couche d'iproute2 et le patch ROUTE du noyau, ça
le fait (les autres solutions testées avec mark et autres ne
fonctionnent pas sur les sparc que j'utilise).
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.
Le 09-11-2006, à propos de 1 route par défaut par réseau machine d'origine, rantamplan écrivait dans fr.comp.reseaux.ip :
Bonjour,
Bonsoir,
Sur une machine passerelle linux avec iptable, je souhaite connecter deux fournisseurs d'accès différents, et je voudrais que suivant le réseau IP d'origine, les paquets soient redirigés vers telle ou telle passerelle par défaut. exemple: 192.168.0.0/25 a la passerelle linux comme default GW 192.168.0.129/25 a aussi la passerelle comme default GW Tout paquet arrivant sur la passerelle depuis 192.168.0.0/25 par chez colt Tout paquet arrivant sur la passerelle depuis 192.168.0.129/25 par chez oleane
C'est possible, avec seulement iptable?
Non, mais avec une couche d'iproute2 et le patch ROUTE du noyau, ça le fait (les autres solutions testées avec mark et autres ne fonctionnent pas sur les sparc que j'utilise).
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.
Pascal Hambourg
Salut,
rantamplan écrivait dans fr.comp.reseaux.ip :
Sur une machine passerelle linux avec iptable, je souhaite connecter deux fournisseurs d'accès différents, et je voudrais que suivant le réseau IP d'origine, les paquets soient redirigés vers telle ou telle passerelle par défaut. [...]
C'est possible, avec seulement iptable?
Non, mais avec une couche d'iproute2 et le patch ROUTE du noyau, ça le fait (les autres solutions testées avec mark et autres ne fonctionnent pas sur les sparc que j'utilise).
Si je me rappelle bien, c'était un bug spécifique (en tout cas non constaté sur x86) affectant la reconnaissance d'une marque posée avec la cible MARK d'iptables par l'option fwmark d'ip rule. Ici, si j'ai bien compris, il s'agit de faire du routage en fonction de l'adresse source, donc je pense que le couple ip rule + ip route d'iproute2 seul devrait suffire pour le routage proprement dit.
Petit détail pour rantamplan : si la passerelle fait aussi le NAT source, préférer SNAT à MASQUERADE car ce dernier peut avoir des ratés avec le routage avancé.
Salut,
rantamplan écrivait dans fr.comp.reseaux.ip :
Sur une machine passerelle linux avec iptable, je souhaite connecter
deux fournisseurs d'accès différents, et je voudrais que suivant le
réseau IP d'origine, les paquets soient redirigés vers telle ou telle
passerelle par défaut.
[...]
C'est possible, avec seulement iptable?
Non, mais avec une couche d'iproute2 et le patch ROUTE du noyau, ça
le fait (les autres solutions testées avec mark et autres ne
fonctionnent pas sur les sparc que j'utilise).
Si je me rappelle bien, c'était un bug spécifique (en tout cas non
constaté sur x86) affectant la reconnaissance d'une marque posée avec la
cible MARK d'iptables par l'option fwmark d'ip rule. Ici, si j'ai bien
compris, il s'agit de faire du routage en fonction de l'adresse source,
donc je pense que le couple ip rule + ip route d'iproute2 seul devrait
suffire pour le routage proprement dit.
Petit détail pour rantamplan : si la passerelle fait aussi le NAT
source, préférer SNAT à MASQUERADE car ce dernier peut avoir des ratés
avec le routage avancé.
Sur une machine passerelle linux avec iptable, je souhaite connecter deux fournisseurs d'accès différents, et je voudrais que suivant le réseau IP d'origine, les paquets soient redirigés vers telle ou telle passerelle par défaut. [...]
C'est possible, avec seulement iptable?
Non, mais avec une couche d'iproute2 et le patch ROUTE du noyau, ça le fait (les autres solutions testées avec mark et autres ne fonctionnent pas sur les sparc que j'utilise).
Si je me rappelle bien, c'était un bug spécifique (en tout cas non constaté sur x86) affectant la reconnaissance d'une marque posée avec la cible MARK d'iptables par l'option fwmark d'ip rule. Ici, si j'ai bien compris, il s'agit de faire du routage en fonction de l'adresse source, donc je pense que le couple ip rule + ip route d'iproute2 seul devrait suffire pour le routage proprement dit.
Petit détail pour rantamplan : si la passerelle fait aussi le NAT source, préférer SNAT à MASQUERADE car ce dernier peut avoir des ratés avec le routage avancé.
rantamplan
Pascal Hambourg wrote:
Salut,
rantamplan écrivait dans fr.comp.reseaux.ip :
Sur une machine passerelle linux avec iptable, je souhaite connecter deux fournisseurs d'accès différents, et je voudrais que suivant le réseau IP d'origine, les paquets soient redirigés vers telle ou telle passerelle par défaut.
[...]
C'est possible, avec seulement iptable?
Non, mais avec une couche d'iproute2 et le patch ROUTE du noyau, ça le fait (les autres solutions testées avec mark et autres ne fonctionnent pas sur les sparc que j'utilise).
Si je me rappelle bien, c'était un bug spécifique (en tout cas non constaté sur x86) affectant la reconnaissance d'une marque posée avec la cible MARK d'iptables par l'option fwmark d'ip rule. Ici, si j'ai bien compris, il s'agit de faire du routage en fonction de l'adresse source, donc je pense que le couple ip rule + ip route d'iproute2 seul devrait suffire pour le routage proprement dit.
Petit détail pour rantamplan : si la passerelle fait aussi le NAT source, préférer SNAT à MASQUERADE car ce dernier peut avoir des ratés avec le routage avancé.
Oui. La passerelle fait du DNAT et du SNAT. Donc. Si j'ai bien compris, et que ma mémoire est bonne. Sur la debian, télécharger le paque iproute2, chercher dans la doc d'iproute2 et dans le script iptable, remplacer les rêgles MASQUERADE par des règles SNAT, c'est ça?
-- rantamplan
Pascal Hambourg wrote:
Salut,
rantamplan écrivait dans fr.comp.reseaux.ip :
Sur une machine passerelle linux avec iptable, je souhaite connecter
deux fournisseurs d'accès différents, et je voudrais que suivant le
réseau IP d'origine, les paquets soient redirigés vers telle ou telle
passerelle par défaut.
[...]
C'est possible, avec seulement iptable?
Non, mais avec une couche d'iproute2 et le patch ROUTE du noyau, ça
le fait (les autres solutions testées avec mark et autres ne
fonctionnent pas sur les sparc que j'utilise).
Si je me rappelle bien, c'était un bug spécifique (en tout cas non
constaté sur x86) affectant la reconnaissance d'une marque posée avec la
cible MARK d'iptables par l'option fwmark d'ip rule. Ici, si j'ai bien
compris, il s'agit de faire du routage en fonction de l'adresse source,
donc je pense que le couple ip rule + ip route d'iproute2 seul devrait
suffire pour le routage proprement dit.
Petit détail pour rantamplan : si la passerelle fait aussi le NAT
source, préférer SNAT à MASQUERADE car ce dernier peut avoir des ratés
avec le routage avancé.
Oui. La passerelle fait du DNAT et du SNAT.
Donc. Si j'ai bien compris, et que ma mémoire est bonne. Sur la debian,
télécharger le paque iproute2, chercher dans la doc d'iproute2 et dans
le script iptable, remplacer les rêgles MASQUERADE par des règles SNAT,
c'est ça?
Sur une machine passerelle linux avec iptable, je souhaite connecter deux fournisseurs d'accès différents, et je voudrais que suivant le réseau IP d'origine, les paquets soient redirigés vers telle ou telle passerelle par défaut.
[...]
C'est possible, avec seulement iptable?
Non, mais avec une couche d'iproute2 et le patch ROUTE du noyau, ça le fait (les autres solutions testées avec mark et autres ne fonctionnent pas sur les sparc que j'utilise).
Si je me rappelle bien, c'était un bug spécifique (en tout cas non constaté sur x86) affectant la reconnaissance d'une marque posée avec la cible MARK d'iptables par l'option fwmark d'ip rule. Ici, si j'ai bien compris, il s'agit de faire du routage en fonction de l'adresse source, donc je pense que le couple ip rule + ip route d'iproute2 seul devrait suffire pour le routage proprement dit.
Petit détail pour rantamplan : si la passerelle fait aussi le NAT source, préférer SNAT à MASQUERADE car ce dernier peut avoir des ratés avec le routage avancé.
Oui. La passerelle fait du DNAT et du SNAT. Donc. Si j'ai bien compris, et que ma mémoire est bonne. Sur la debian, télécharger le paque iproute2, chercher dans la doc d'iproute2 et dans le script iptable, remplacer les rêgles MASQUERADE par des règles SNAT, c'est ça?
-- rantamplan
Pascal Hambourg
Pascal Hambourg wrote:
Petit détail pour rantamplan : si la passerelle fait aussi le NAT source, préférer SNAT à MASQUERADE car ce dernier peut avoir des ratés avec le routage avancé.
Brève explication : MASQUERADE ne se base pas sur l'interface de sortie pour choisir la nouvelle adresse source mais sur l'adresse de destination, en fonction de la table de routage. Le problème est que contrairement à une vraie décision de routage, ce choix ne semble tenir compte ni de l'adresse source originelle (ce qui se comprend, le but étant de déterminer une adresse source) ni d'une éventuelle marque posée avec la cible MARK.
Oui. La passerelle fait du DNAT et du SNAT. Donc. Si j'ai bien compris, et que ma mémoire est bonne. Sur la debian, télécharger le paque iproute2, chercher dans la doc d'iproute2 et dans le script iptable, remplacer les rêgles MASQUERADE par des règles SNAT, c'est ça?
En gros, oui. Dans Debian, le paquetage s'appelle iproute, pas iproute2. Si tu ne connais pas, "man ip" risque d'être un peu... rugueux, alors je te suggère la lecture du LARTC-howto (Linux Advanced Routing and Traffic Control) dont on peut trouver une copie sur plusieurs sites.
Attention quand même, remplacer MASQUERADE par SNAT sur une interface qui a une adresse dynamique peut poser des problèmes et nécessite des précautions.
Pascal Hambourg wrote:
Petit détail pour rantamplan : si la passerelle fait aussi le NAT
source, préférer SNAT à MASQUERADE car ce dernier peut avoir des ratés
avec le routage avancé.
Brève explication : MASQUERADE ne se base pas sur l'interface de sortie
pour choisir la nouvelle adresse source mais sur l'adresse de
destination, en fonction de la table de routage. Le problème est que
contrairement à une vraie décision de routage, ce choix ne semble tenir
compte ni de l'adresse source originelle (ce qui se comprend, le but
étant de déterminer une adresse source) ni d'une éventuelle marque posée
avec la cible MARK.
Oui. La passerelle fait du DNAT et du SNAT.
Donc. Si j'ai bien compris, et que ma mémoire est bonne. Sur la debian,
télécharger le paque iproute2, chercher dans la doc d'iproute2 et dans
le script iptable, remplacer les rêgles MASQUERADE par des règles SNAT,
c'est ça?
En gros, oui. Dans Debian, le paquetage s'appelle iproute, pas iproute2.
Si tu ne connais pas, "man ip" risque d'être un peu... rugueux, alors je
te suggère la lecture du LARTC-howto (Linux Advanced Routing and Traffic
Control) dont on peut trouver une copie sur plusieurs sites.
Attention quand même, remplacer MASQUERADE par SNAT sur une interface
qui a une adresse dynamique peut poser des problèmes et nécessite des
précautions.
Petit détail pour rantamplan : si la passerelle fait aussi le NAT source, préférer SNAT à MASQUERADE car ce dernier peut avoir des ratés avec le routage avancé.
Brève explication : MASQUERADE ne se base pas sur l'interface de sortie pour choisir la nouvelle adresse source mais sur l'adresse de destination, en fonction de la table de routage. Le problème est que contrairement à une vraie décision de routage, ce choix ne semble tenir compte ni de l'adresse source originelle (ce qui se comprend, le but étant de déterminer une adresse source) ni d'une éventuelle marque posée avec la cible MARK.
Oui. La passerelle fait du DNAT et du SNAT. Donc. Si j'ai bien compris, et que ma mémoire est bonne. Sur la debian, télécharger le paque iproute2, chercher dans la doc d'iproute2 et dans le script iptable, remplacer les rêgles MASQUERADE par des règles SNAT, c'est ça?
En gros, oui. Dans Debian, le paquetage s'appelle iproute, pas iproute2. Si tu ne connais pas, "man ip" risque d'être un peu... rugueux, alors je te suggère la lecture du LARTC-howto (Linux Advanced Routing and Traffic Control) dont on peut trouver une copie sur plusieurs sites.
Attention quand même, remplacer MASQUERADE par SNAT sur une interface qui a une adresse dynamique peut poser des problèmes et nécessite des précautions.
JKB
Le 09-11-2006, à propos de Re: 1 route par défaut par réseau machine d'origine, Pascal Hambourg écrivait dans fr.comp.reseaux.ip :
Salut,
rantamplan écrivait dans fr.comp.reseaux.ip :
Sur une machine passerelle linux avec iptable, je souhaite connecter deux fournisseurs d'accès différents, et je voudrais que suivant le réseau IP d'origine, les paquets soient redirigés vers telle ou telle passerelle par défaut. [...]
C'est possible, avec seulement iptable?
Non, mais avec une couche d'iproute2 et le patch ROUTE du noyau, ça le fait (les autres solutions testées avec mark et autres ne fonctionnent pas sur les sparc que j'utilise).
Si je me rappelle bien, c'était un bug spécifique (en tout cas non constaté sur x86) affectant la reconnaissance d'une marque posée avec la cible MARK d'iptables par l'option fwmark d'ip rule. Ici, si j'ai bien compris, il s'agit de faire du routage en fonction de l'adresse source, donc je pense que le couple ip rule + ip route d'iproute2 seul devrait suffire pour le routage proprement dit.
J'avais compris qu'il y avait alors deux routes par défaut en fonction du routage. C'est pour cela que je parlais de ROUTE...
Cordialement,
JKB
Le 09-11-2006, à propos de
Re: 1 route par défaut par réseau machine d'origine,
Pascal Hambourg écrivait dans fr.comp.reseaux.ip :
Salut,
rantamplan écrivait dans fr.comp.reseaux.ip :
Sur une machine passerelle linux avec iptable, je souhaite connecter
deux fournisseurs d'accès différents, et je voudrais que suivant le
réseau IP d'origine, les paquets soient redirigés vers telle ou telle
passerelle par défaut.
[...]
C'est possible, avec seulement iptable?
Non, mais avec une couche d'iproute2 et le patch ROUTE du noyau, ça
le fait (les autres solutions testées avec mark et autres ne
fonctionnent pas sur les sparc que j'utilise).
Si je me rappelle bien, c'était un bug spécifique (en tout cas non
constaté sur x86) affectant la reconnaissance d'une marque posée avec la
cible MARK d'iptables par l'option fwmark d'ip rule. Ici, si j'ai bien
compris, il s'agit de faire du routage en fonction de l'adresse source,
donc je pense que le couple ip rule + ip route d'iproute2 seul devrait
suffire pour le routage proprement dit.
J'avais compris qu'il y avait alors deux routes par défaut en
fonction du routage. C'est pour cela que je parlais de ROUTE...
Le 09-11-2006, à propos de Re: 1 route par défaut par réseau machine d'origine, Pascal Hambourg écrivait dans fr.comp.reseaux.ip :
Salut,
rantamplan écrivait dans fr.comp.reseaux.ip :
Sur une machine passerelle linux avec iptable, je souhaite connecter deux fournisseurs d'accès différents, et je voudrais que suivant le réseau IP d'origine, les paquets soient redirigés vers telle ou telle passerelle par défaut. [...]
C'est possible, avec seulement iptable?
Non, mais avec une couche d'iproute2 et le patch ROUTE du noyau, ça le fait (les autres solutions testées avec mark et autres ne fonctionnent pas sur les sparc que j'utilise).
Si je me rappelle bien, c'était un bug spécifique (en tout cas non constaté sur x86) affectant la reconnaissance d'une marque posée avec la cible MARK d'iptables par l'option fwmark d'ip rule. Ici, si j'ai bien compris, il s'agit de faire du routage en fonction de l'adresse source, donc je pense que le couple ip rule + ip route d'iproute2 seul devrait suffire pour le routage proprement dit.
J'avais compris qu'il y avait alors deux routes par défaut en fonction du routage. C'est pour cela que je parlais de ROUTE...
Cordialement,
JKB
Pascal Hambourg
Pascal Hambourg écrivait dans fr.comp.reseaux.ip :
Ici, si j'ai bien compris, il s'agit de faire du routage en fonction de l'adresse source, donc je pense que le couple ip rule + ip route d'iproute2 seul devrait suffire pour le routage proprement dit.
J'avais compris qu'il y avait alors deux routes par défaut en fonction du routage. C'est pour cela que je parlais de ROUTE...
C'est bien ça : deux routes par défaut différentes en fonction de l'adresse source. Mais je ne vois pas pourquoi faire intervenir ROUTE.
Pascal Hambourg écrivait dans fr.comp.reseaux.ip :
Ici, si j'ai bien
compris, il s'agit de faire du routage en fonction de l'adresse source,
donc je pense que le couple ip rule + ip route d'iproute2 seul devrait
suffire pour le routage proprement dit.
J'avais compris qu'il y avait alors deux routes par défaut en
fonction du routage. C'est pour cela que je parlais de ROUTE...
C'est bien ça : deux routes par défaut différentes en fonction de
l'adresse source. Mais je ne vois pas pourquoi faire intervenir ROUTE.
Pascal Hambourg écrivait dans fr.comp.reseaux.ip :
Ici, si j'ai bien compris, il s'agit de faire du routage en fonction de l'adresse source, donc je pense que le couple ip rule + ip route d'iproute2 seul devrait suffire pour le routage proprement dit.
J'avais compris qu'il y avait alors deux routes par défaut en fonction du routage. C'est pour cela que je parlais de ROUTE...
C'est bien ça : deux routes par défaut différentes en fonction de l'adresse source. Mais je ne vois pas pourquoi faire intervenir ROUTE.
JKB
Le 11-11-2006, à propos de Re: 1 route par défaut par réseau machine d'origine, Pascal Hambourg écrivait dans fr.comp.reseaux.ip :
Pascal Hambourg écrivait dans fr.comp.reseaux.ip :
Ici, si j'ai bien compris, il s'agit de faire du routage en fonction de l'adresse source, donc je pense que le couple ip rule + ip route d'iproute2 seul devrait suffire pour le routage proprement dit.
J'avais compris qu'il y avait alors deux routes par défaut en fonction du routage. C'est pour cela que je parlais de ROUTE...
C'est bien ça : deux routes par défaut différentes en fonction de l'adresse source. Mais je ne vois pas pourquoi faire intervenir ROUTE.
Parce que j'ai essayé de faire la même chose sous Linux et sur des architectures pas standard en lisant les howtos et en bidouillant durant plusieurs mois pour en arriver à la conclusion que la seule chose portable était un coup de patch ROUTE avec un iproute2 car les paquets marqués par fwmark ne sont pas vus correctement par iproute2 et réciproquement sur un certain nombre d'architectures (problèmes petit/grand boutistes). Donc plutôt que marquer les paquets en fonction de l'adresse source et router en fonction de cette marque, il est souvent plus simple de rajouter une règle iproute2 pour indiquer une passerelle autre que celle par défaut du système et de traiter le truc au niveau de iptable par une règle sur la cible route avec un --continue.
Ex:
La route par défaut est sur eth0. Le LAN est sur eth1, je cherche à router les paquets provenant de l'adresse 192.168.0.130 (ports 3000 et 3001) par eth2 avec la passerelle 192.168.1.254.
THIBON2.168.1.1 ACHARD2.168.1.254 ip rule add from $THIBON lookup intranet priority 100 ip route add default via $ACHARD dev eth2 table intranet echo 0 > /proc/sys/net/ipv4/conf/eth2/rp_filter # Ne pas oublier la ligne précédente, sans ça... iptables -A FORWARD -i eth2 -o eth1 -p tcp -m tcp --dport 3000 -j ACCEPT iptables -A FORWARD -i eth2 -o eth1 -p tcp -m tcp --dport 3001 -j ACCEPT iptables -t mangle -A POSTROUTING -s 192.168.0.130 -p tcp -m tcp --sport 3000:3001 -j ROUTE --oif eth2 --gw 192.168.1.254 --continue
Dans ce mécanisme, je gère à la main les paquets entrants et la réponse... Aucun autre truc ne daignait fonctionner. Pour information, l'architecture en question était une Sparc64.
Cordialement,
JKB
Le 11-11-2006, à propos de
Re: 1 route par défaut par réseau machine d'origine,
Pascal Hambourg écrivait dans fr.comp.reseaux.ip :
Pascal Hambourg écrivait dans fr.comp.reseaux.ip :
Ici, si j'ai bien
compris, il s'agit de faire du routage en fonction de l'adresse source,
donc je pense que le couple ip rule + ip route d'iproute2 seul devrait
suffire pour le routage proprement dit.
J'avais compris qu'il y avait alors deux routes par défaut en
fonction du routage. C'est pour cela que je parlais de ROUTE...
C'est bien ça : deux routes par défaut différentes en fonction de
l'adresse source. Mais je ne vois pas pourquoi faire intervenir ROUTE.
Parce que j'ai essayé de faire la même chose sous Linux et sur des
architectures pas standard en lisant les howtos et en bidouillant
durant plusieurs mois pour en arriver à la conclusion que la seule
chose portable était un coup de patch ROUTE avec un iproute2 car les
paquets marqués par fwmark ne sont pas vus correctement par iproute2
et réciproquement sur un certain nombre d'architectures (problèmes
petit/grand boutistes). Donc plutôt que marquer les paquets en
fonction de l'adresse source et router en fonction de cette marque,
il est souvent plus simple de rajouter une règle iproute2 pour
indiquer une passerelle autre que celle par défaut du système et de
traiter le truc au niveau de iptable par une règle sur la cible
route avec un --continue.
Ex:
La route par défaut est sur eth0. Le LAN est sur eth1, je cherche à
router les paquets provenant de l'adresse 192.168.0.130 (ports 3000
et 3001) par eth2 avec la passerelle 192.168.1.254.
THIBON2.168.1.1
ACHARD2.168.1.254
ip rule add from $THIBON lookup intranet priority 100
ip route add default via $ACHARD dev eth2 table intranet
echo 0 > /proc/sys/net/ipv4/conf/eth2/rp_filter
# Ne pas oublier la ligne précédente, sans ça...
iptables -A FORWARD -i eth2 -o eth1 -p tcp -m tcp --dport 3000 -j ACCEPT
iptables -A FORWARD -i eth2 -o eth1 -p tcp -m tcp --dport 3001 -j ACCEPT
iptables -t mangle -A POSTROUTING -s 192.168.0.130 -p tcp -m tcp
--sport 3000:3001 -j ROUTE --oif eth2 --gw 192.168.1.254 --continue
Dans ce mécanisme, je gère à la main les paquets entrants et la
réponse... Aucun autre truc ne daignait fonctionner. Pour
information, l'architecture en question était une Sparc64.
Le 11-11-2006, à propos de Re: 1 route par défaut par réseau machine d'origine, Pascal Hambourg écrivait dans fr.comp.reseaux.ip :
Pascal Hambourg écrivait dans fr.comp.reseaux.ip :
Ici, si j'ai bien compris, il s'agit de faire du routage en fonction de l'adresse source, donc je pense que le couple ip rule + ip route d'iproute2 seul devrait suffire pour le routage proprement dit.
J'avais compris qu'il y avait alors deux routes par défaut en fonction du routage. C'est pour cela que je parlais de ROUTE...
C'est bien ça : deux routes par défaut différentes en fonction de l'adresse source. Mais je ne vois pas pourquoi faire intervenir ROUTE.
Parce que j'ai essayé de faire la même chose sous Linux et sur des architectures pas standard en lisant les howtos et en bidouillant durant plusieurs mois pour en arriver à la conclusion que la seule chose portable était un coup de patch ROUTE avec un iproute2 car les paquets marqués par fwmark ne sont pas vus correctement par iproute2 et réciproquement sur un certain nombre d'architectures (problèmes petit/grand boutistes). Donc plutôt que marquer les paquets en fonction de l'adresse source et router en fonction de cette marque, il est souvent plus simple de rajouter une règle iproute2 pour indiquer une passerelle autre que celle par défaut du système et de traiter le truc au niveau de iptable par une règle sur la cible route avec un --continue.
Ex:
La route par défaut est sur eth0. Le LAN est sur eth1, je cherche à router les paquets provenant de l'adresse 192.168.0.130 (ports 3000 et 3001) par eth2 avec la passerelle 192.168.1.254.
THIBON2.168.1.1 ACHARD2.168.1.254 ip rule add from $THIBON lookup intranet priority 100 ip route add default via $ACHARD dev eth2 table intranet echo 0 > /proc/sys/net/ipv4/conf/eth2/rp_filter # Ne pas oublier la ligne précédente, sans ça... iptables -A FORWARD -i eth2 -o eth1 -p tcp -m tcp --dport 3000 -j ACCEPT iptables -A FORWARD -i eth2 -o eth1 -p tcp -m tcp --dport 3001 -j ACCEPT iptables -t mangle -A POSTROUTING -s 192.168.0.130 -p tcp -m tcp --sport 3000:3001 -j ROUTE --oif eth2 --gw 192.168.1.254 --continue
Dans ce mécanisme, je gère à la main les paquets entrants et la réponse... Aucun autre truc ne daignait fonctionner. Pour information, l'architecture en question était une Sparc64.
Cordialement,
JKB
Sébastien Monbrun aka TiChou
Dans le message <news:, *JKB* tapota sur f.c.r.ip :
C'est bien ça : deux routes par défaut différentes en fonction de l'adresse source. Mais je ne vois pas pourquoi faire intervenir ROUTE.
Parce que j'ai essayé de faire la même chose sous Linux et sur des architectures pas standard en lisant les howtos et en bidouillant durant plusieurs mois pour en arriver à la conclusion que la seule chose portable était un coup de patch ROUTE avec un iproute2 car les paquets marqués par fwmark ne sont pas vus correctement par iproute2
Oui, mais ici il n'y a nullement besoin de marquer les paquets pour faire ce qui est demandé par l'OP.
-- Sébastien Monbrun aka TiChou
Dans le message <news:slrnelf5ua.93q.knatschke@schroedinger.systella.fr>,
*JKB* tapota sur f.c.r.ip :
C'est bien ça : deux routes par défaut différentes en fonction de
l'adresse source. Mais je ne vois pas pourquoi faire intervenir ROUTE.
Parce que j'ai essayé de faire la même chose sous Linux et sur des
architectures pas standard en lisant les howtos et en bidouillant
durant plusieurs mois pour en arriver à la conclusion que la seule
chose portable était un coup de patch ROUTE avec un iproute2 car les
paquets marqués par fwmark ne sont pas vus correctement par iproute2
Oui, mais ici il n'y a nullement besoin de marquer les paquets pour faire ce
qui est demandé par l'OP.
Dans le message <news:, *JKB* tapota sur f.c.r.ip :
C'est bien ça : deux routes par défaut différentes en fonction de l'adresse source. Mais je ne vois pas pourquoi faire intervenir ROUTE.
Parce que j'ai essayé de faire la même chose sous Linux et sur des architectures pas standard en lisant les howtos et en bidouillant durant plusieurs mois pour en arriver à la conclusion que la seule chose portable était un coup de patch ROUTE avec un iproute2 car les paquets marqués par fwmark ne sont pas vus correctement par iproute2
Oui, mais ici il n'y a nullement besoin de marquer les paquets pour faire ce qui est demandé par l'OP.