En gros je voudrias faire des regle nat & ipchains qui translate les
demandes des PC passant par le serveur vers un des routeurs en fonction du
port, de l'adresse source...
les PC du réseau ont l'ip du serveur en gateway par defaut.
Avez vous une idée si c'est possible, et comment.
j'ai essayé déjà mais je suis surement pas très doué.
$ ip route add table router1 via 192.168.1.1 dev eth0 $ ip route add table router2 via 192.168.1.2 dev eth0
Ca tout est OK.
Ensuite je fais
ip rule add from 192.168.1.52 table router2 pref 200
Hop le poste 52 redirige très bien.
Ensuite je fais
ip rule delete from 192.168.1.52 table router2 pref 200
et
ip rule add from 192.168.1.52 table router1 pref 200
La redirection reste sur routeur2 et ne prend pas en compte la nouvelle rule.
Y'a t il quelque chose à faire à "ip" pour prendre en compte les nouvelles rule, car si je dois redémarrer le PC à chaque fois ca prendra legerement du
temps.
Idem avec ip rule add fwmark 1 table router3 pref 100 et un mangle avec iptables.
Merci pour votre aide présieuse.
"TiChou" a écrit dans le message de news:
Dans le message <news:40992e34$0$16531$,
*Yannick* tapota sur f.c.r.ethernet,f.c.r.ip :
Oui, peut être, mais il faudrait une topologie plus précise de votre réseau (comment sont reliés les différents routeurs, leur rôle, le plan d'adressage IP, etc), voir des cas concrets de ce que vous voulez faire, car ça n'est pas très clair je trouve.
tout est relié ensemble (physiquement) je peux séparer les routeurs dans des sous réseaux différents ou les mettre dans le meme sous-reseau (192.168.1.1 pour le routeur 1 192.168.1.2
pour le 2...) c'est comme je veux !
Pour la partie théorique, je vous renvois aux sites cités par T0t0 en particulier le LARTC HowTo. En pratique, cela ressemblerait à ça :
Création de la liste des noms des tables de routage dans le fichier /etc/iproute2/rc_tables :
$ cat /etc/iproute2/rc_tables 0 unspec
101 router1 102 router2 103 router3
252 lan
253 default 254 main 255 local
Définition des routes par défaut à emprunter pour chaque table :
$ ip route add table router1 via 192.168.1.1 dev eth0 $ ip route add table router2 via 192.168.1.2 dev eth0 $ ip route add table router3 via 192.168.1.3 dev eth0
Définition des différentes règles de routage :
Par exemple tout le trafic de la machine 192.168.1.64 devra être routé vers
le router 1 à l'exception des connexions vers le réseau 172.16.0.0/16 :
$ ip rule add from 192.168.1.64 to 172.16.0.0/16 table router1 pref 200 $ ip rule add from 192.168.1.64 to 0.0.0.0/0 table router1 pref 200
Tout le traffic des machines du réseau 192.168.1.128/29 devra être routé vers le router 2 :
$ ip rule add from 192.168.1.128/29 to 0.0.0.0/0 table router2 pref 200
Les paquets marqués à 1 devront être routés vers le router 3 :
ip rule add fwmark 1 table router3 pref 100
par exemple le trafic DNS :
iptables -t mangle -A PREROUTING -i eth1 -p udp --dport 53 -j MARK --set-mark 1
Les paquets dont le type de service (TOS) est prioritaire devront être aussi
routés vers le router 3 :
ip rule add tos 0x10 table router3 pref 100
Les règles sont assez simples à mettre en oeuvre, mais c'est la cohérence
de
l'ensemble qui est plus difficile à mettre en place. Faire attention aussi au filtrage du spoofing définit dans /proc/sys/net/ipv4/conf/*/rp_filter.
En espérant vous avoir mis sur la bonne voie.
-- TiChou
en fait ca marche, c'est les site d'affichage d'ip qui sont pas trop trop "bon" quand on change d'ip souvent.
Merci.
"Yannick" <yannick@webcafe71.net> a écrit dans le message de news:
409ad95d$0$21080$626a14ce@news.free.fr...
Bonjour,
Je viens de tester votre methode ca marche très bien
aussi bien router tous les pacquets grace à ip rule add from...
que router que certains port grace au pre-marking.
le seul leger problème est que ---vous devez me prendre pour un pied--- ca
marche que si j'ai rebooté la machine.
$ ip route add table router1 via 192.168.1.1 dev eth0
$ ip route add table router2 via 192.168.1.2 dev eth0
Ca tout est OK.
Ensuite je fais
ip rule add from 192.168.1.52 table router2 pref 200
Hop le poste 52 redirige très bien.
Ensuite je fais
ip rule delete from 192.168.1.52 table router2 pref 200
et
ip rule add from 192.168.1.52 table router1 pref 200
La redirection reste sur routeur2 et ne prend pas en compte la nouvelle
rule.
Y'a t il quelque chose à faire à "ip" pour prendre en compte les nouvelles
rule, car si je dois redémarrer le PC à chaque fois ca prendra legerement
du
temps.
Idem avec ip rule add fwmark 1 table router3 pref 100
et un mangle avec iptables.
Merci pour votre aide présieuse.
"TiChou" <gro.uohcit@uohcit> a écrit dans le message de news:
bzium.20040506144748@florizarre.tichou.org...
Dans le message
<news:40992e34$0$16531$79c14f64@nan-newsreader-01.noos.net>,
*Yannick* tapota sur f.c.r.ethernet,f.c.r.ip :
Oui, peut être, mais il faudrait une topologie plus précise de votre
réseau (comment sont reliés les différents routeurs, leur rôle, le
plan d'adressage IP, etc), voir des cas concrets de ce que vous
voulez faire, car ça n'est pas très clair je trouve.
tout est relié ensemble (physiquement)
je peux séparer les routeurs dans des sous réseaux différents ou les
mettre dans le meme sous-reseau (192.168.1.1 pour le routeur 1
192.168.1.2
pour le 2...)
c'est comme je veux !
Pour la partie théorique, je vous renvois aux sites cités par T0t0 en
particulier le LARTC HowTo.
En pratique, cela ressemblerait à ça :
Création de la liste des noms des tables de routage dans le fichier
/etc/iproute2/rc_tables :
$ cat /etc/iproute2/rc_tables
0 unspec
101 router1
102 router2
103 router3
252 lan
253 default
254 main
255 local
Définition des routes par défaut à emprunter pour chaque table :
$ ip route add table router1 via 192.168.1.1 dev eth0
$ ip route add table router2 via 192.168.1.2 dev eth0
$ ip route add table router3 via 192.168.1.3 dev eth0
Définition des différentes règles de routage :
Par exemple tout le trafic de la machine 192.168.1.64 devra être routé
vers
le router 1 à l'exception des connexions vers le réseau 172.16.0.0/16 :
$ ip rule add from 192.168.1.64 to 172.16.0.0/16 table router1 pref 200
$ ip rule add from 192.168.1.64 to 0.0.0.0/0 table router1 pref 200
Tout le traffic des machines du réseau 192.168.1.128/29 devra être routé
vers le router 2 :
$ ip rule add from 192.168.1.128/29 to 0.0.0.0/0 table router2 pref 200
Les paquets marqués à 1 devront être routés vers le router 3 :
ip rule add fwmark 1 table router3 pref 100
par exemple le trafic DNS :
iptables -t mangle -A PREROUTING -i eth1 -p udp --dport 53
-j MARK --set-mark 1
Les paquets dont le type de service (TOS) est prioritaire devront être
aussi
routés vers le router 3 :
ip rule add tos 0x10 table router3 pref 100
Les règles sont assez simples à mettre en oeuvre, mais c'est la
cohérence
de
l'ensemble qui est plus difficile à mettre en place.
Faire attention aussi au filtrage du spoofing définit dans
/proc/sys/net/ipv4/conf/*/rp_filter.
En espérant vous avoir mis sur la bonne voie.
--
TiChou
en fait ca marche, c'est les site d'affichage d'ip qui sont pas trop trop
"bon" quand on change d'ip souvent.
$ ip route add table router1 via 192.168.1.1 dev eth0 $ ip route add table router2 via 192.168.1.2 dev eth0
Ca tout est OK.
Ensuite je fais
ip rule add from 192.168.1.52 table router2 pref 200
Hop le poste 52 redirige très bien.
Ensuite je fais
ip rule delete from 192.168.1.52 table router2 pref 200
et
ip rule add from 192.168.1.52 table router1 pref 200
La redirection reste sur routeur2 et ne prend pas en compte la nouvelle rule.
Y'a t il quelque chose à faire à "ip" pour prendre en compte les nouvelles rule, car si je dois redémarrer le PC à chaque fois ca prendra legerement du
temps.
Idem avec ip rule add fwmark 1 table router3 pref 100 et un mangle avec iptables.
Merci pour votre aide présieuse.
"TiChou" a écrit dans le message de news:
Dans le message <news:40992e34$0$16531$,
*Yannick* tapota sur f.c.r.ethernet,f.c.r.ip :
Oui, peut être, mais il faudrait une topologie plus précise de votre réseau (comment sont reliés les différents routeurs, leur rôle, le plan d'adressage IP, etc), voir des cas concrets de ce que vous voulez faire, car ça n'est pas très clair je trouve.
tout est relié ensemble (physiquement) je peux séparer les routeurs dans des sous réseaux différents ou les mettre dans le meme sous-reseau (192.168.1.1 pour le routeur 1 192.168.1.2
pour le 2...) c'est comme je veux !
Pour la partie théorique, je vous renvois aux sites cités par T0t0 en particulier le LARTC HowTo. En pratique, cela ressemblerait à ça :
Création de la liste des noms des tables de routage dans le fichier /etc/iproute2/rc_tables :
$ cat /etc/iproute2/rc_tables 0 unspec
101 router1 102 router2 103 router3
252 lan
253 default 254 main 255 local
Définition des routes par défaut à emprunter pour chaque table :
$ ip route add table router1 via 192.168.1.1 dev eth0 $ ip route add table router2 via 192.168.1.2 dev eth0 $ ip route add table router3 via 192.168.1.3 dev eth0
Définition des différentes règles de routage :
Par exemple tout le trafic de la machine 192.168.1.64 devra être routé vers
le router 1 à l'exception des connexions vers le réseau 172.16.0.0/16 :
$ ip rule add from 192.168.1.64 to 172.16.0.0/16 table router1 pref 200 $ ip rule add from 192.168.1.64 to 0.0.0.0/0 table router1 pref 200
Tout le traffic des machines du réseau 192.168.1.128/29 devra être routé vers le router 2 :
$ ip rule add from 192.168.1.128/29 to 0.0.0.0/0 table router2 pref 200
Les paquets marqués à 1 devront être routés vers le router 3 :
ip rule add fwmark 1 table router3 pref 100
par exemple le trafic DNS :
iptables -t mangle -A PREROUTING -i eth1 -p udp --dport 53 -j MARK --set-mark 1
Les paquets dont le type de service (TOS) est prioritaire devront être aussi
routés vers le router 3 :
ip rule add tos 0x10 table router3 pref 100
Les règles sont assez simples à mettre en oeuvre, mais c'est la cohérence
de
l'ensemble qui est plus difficile à mettre en place. Faire attention aussi au filtrage du spoofing définit dans /proc/sys/net/ipv4/conf/*/rp_filter.
En espérant vous avoir mis sur la bonne voie.
-- TiChou
en fait ca marche, c'est les site d'affichage d'ip qui sont pas trop trop "bon" quand on change d'ip souvent.
Merci.
Marc Hamelin
salut,
merci pour la netetiquette je ne savais pas que ca existait.
TiChou wrote:
<snip>
Oui et effectivement cela fonctionne très bien et les possibilités sont nombreuses, comme router les paquets non seulement en fonction de l'adresse IP source, mais aussi en fonction du protocole, des services, etc. Associer avec iptables et la cible MARK, on augmente aussi les possibilités de router les paquets en fonction d'autres critères.
voilà on y arrive : "en fonction de l'adresse source". Ca ce n'est pas du "source-routing" mais du routage. Le source routing c'est mettre en dur dans le paquet IP l'ensemble des routeurs par lesquels on veut passer pour atteindre un e destination. Autant dire que ce type de commande est désactiver sur l'ensemble de la planète sauf peut-être pour des appli très très spécifique. Autant dire nul. Dans le ca de ce qui interesse notre internaute, il fait du routage.
Voir ici pour une explication détaillée: <http://lartc.org/howto/index.html>
La référence.
ce que tu fait n'est pas du source-routing.
Si.
non, voir plus haut.
Je dis donc et je le répète chaque chose à sa place
Ça a sa place sur la passerelle Linux.
et je déconseille de faire du source routing.
Pouvez-vous nous dire une fois pour toute pourquoi vous déconseillez de faire du source routing quand celui est le seul à pouvoir faire ce qui est demandé ici ?
parceque c'est une mauvaise méthode pour un problème commun et néanmoins très intéréssant.
Le routage est bien là pour cela (comme tu l'explique d'ailleurs avec iproute2).
Parce que le source routing n'est pas du routage ?
oui et non car on squize le routeur dans sa fonction de routage "dynamique". Enfin on essaye... :-) Du coup ca reste effectivement une fonction de niveau 3 (cuoche routage), mais on essaye d'éviter les mécanismes automatique.
Cordialement, Marc
salut,
merci pour la netetiquette je ne savais pas que ca existait.
TiChou wrote:
<snip>
Oui et effectivement cela fonctionne très bien et les possibilités sont
nombreuses, comme router les paquets non seulement en fonction de
l'adresse IP source, mais aussi en fonction du protocole, des services,
etc. Associer avec iptables et la cible MARK, on augmente aussi les
possibilités de router les paquets en fonction d'autres critères.
voilà on y arrive : "en fonction de l'adresse source". Ca ce n'est pas du
"source-routing" mais du routage. Le source routing c'est mettre en dur
dans le paquet IP l'ensemble des routeurs par lesquels on veut passer pour
atteindre un e destination. Autant dire que ce type de commande est
désactiver sur l'ensemble de la planète sauf peut-être pour des appli très
très spécifique. Autant dire nul. Dans le ca de ce qui interesse notre
internaute, il fait du routage.
Voir ici pour une explication détaillée:
<http://lartc.org/howto/index.html>
La référence.
ce que tu fait n'est pas du source-routing.
Si.
non, voir plus haut.
Je dis donc et je le répète chaque chose à sa place
Ça a sa place sur la passerelle Linux.
et je déconseille de faire du source routing.
Pouvez-vous nous dire une fois pour toute pourquoi vous déconseillez de
faire du source routing quand celui est le seul à pouvoir faire ce qui est
demandé ici ?
parceque c'est une mauvaise méthode pour un problème commun et néanmoins
très intéréssant.
Le routage est bien là pour cela (comme tu l'explique d'ailleurs
avec iproute2).
Parce que le source routing n'est pas du routage ?
oui et non car on squize le routeur dans sa fonction de routage "dynamique".
Enfin on essaye... :-) Du coup ca reste effectivement une fonction de
niveau 3 (cuoche routage), mais on essaye d'éviter les mécanismes
automatique.
merci pour la netetiquette je ne savais pas que ca existait.
TiChou wrote:
<snip>
Oui et effectivement cela fonctionne très bien et les possibilités sont nombreuses, comme router les paquets non seulement en fonction de l'adresse IP source, mais aussi en fonction du protocole, des services, etc. Associer avec iptables et la cible MARK, on augmente aussi les possibilités de router les paquets en fonction d'autres critères.
voilà on y arrive : "en fonction de l'adresse source". Ca ce n'est pas du "source-routing" mais du routage. Le source routing c'est mettre en dur dans le paquet IP l'ensemble des routeurs par lesquels on veut passer pour atteindre un e destination. Autant dire que ce type de commande est désactiver sur l'ensemble de la planète sauf peut-être pour des appli très très spécifique. Autant dire nul. Dans le ca de ce qui interesse notre internaute, il fait du routage.
Voir ici pour une explication détaillée: <http://lartc.org/howto/index.html>
La référence.
ce que tu fait n'est pas du source-routing.
Si.
non, voir plus haut.
Je dis donc et je le répète chaque chose à sa place
Ça a sa place sur la passerelle Linux.
et je déconseille de faire du source routing.
Pouvez-vous nous dire une fois pour toute pourquoi vous déconseillez de faire du source routing quand celui est le seul à pouvoir faire ce qui est demandé ici ?
parceque c'est une mauvaise méthode pour un problème commun et néanmoins très intéréssant.
Le routage est bien là pour cela (comme tu l'explique d'ailleurs avec iproute2).
Parce que le source routing n'est pas du routage ?
oui et non car on squize le routeur dans sa fonction de routage "dynamique". Enfin on essaye... :-) Du coup ca reste effectivement une fonction de niveau 3 (cuoche routage), mais on essaye d'éviter les mécanismes automatique.
Cordialement, Marc
TiChou
Dans le message <news:409ad95d$0$21080$, *Yannick* tapota sur f.c.r.ethernet,f.c.r.ip :
Bonjour,
Bonsoir,
SVP, répondez comme il faut en répondant en dessous des messages et en ne citant que les parties utiles des messages.
http://www.giromini.org/usenet-fr/repondre.html
Je viens de tester votre methode ca marche très bien aussi bien router tous les pacquets grace à ip rule add from... que router que certains port grace au pre-marking.
J'en suis ravi.
le seul leger problème est que ---vous devez me prendre pour un pied--- ca marche que si j'ai rebooté la machine.
[...]
Ensuite je fais
ip rule add from 192.168.1.52 table router2 pref 200
Hop le poste 52 redirige très bien.
Ensuite je fais
ip rule delete from 192.168.1.52 table router2 pref 200
et
ip rule add from 192.168.1.52 table router1 pref 200
La redirection reste sur routeur2 et ne prend pas en compte la nouvelle rule.
Parce que le noyau a gardé dans son cache l'ancienne route et se réfère à celle-ci aulieu d'utiliser la nouvelle route.
Y'a t il quelque chose à faire à "ip" pour prendre en compte les nouvelles rule, car si je dois redémarrer le PC à chaque fois ca prendra legerement du temps.
Il faut vider le cache des routes du noyau. Ce qui peut être fait avec la commande suivante :
$ ip route flush cache
Vous pouvez à tout moment visualiser les routes qui sont en cache avec la commande suivante :
$ ip route show cache
Merci pour votre aide présieuse.
De rien.
-- TiChou
Dans le message <news:409ad95d$0$21080$626a14ce@news.free.fr>,
*Yannick* tapota sur f.c.r.ethernet,f.c.r.ip :
Bonjour,
Bonsoir,
SVP, répondez comme il faut en répondant en dessous des messages et en ne
citant que les parties utiles des messages.
http://www.giromini.org/usenet-fr/repondre.html
Je viens de tester votre methode ca marche très bien
aussi bien router tous les pacquets grace à ip rule add from...
que router que certains port grace au pre-marking.
J'en suis ravi.
le seul leger problème est que ---vous devez me prendre pour un pied---
ca marche que si j'ai rebooté la machine.
[...]
Ensuite je fais
ip rule add from 192.168.1.52 table router2 pref 200
Hop le poste 52 redirige très bien.
Ensuite je fais
ip rule delete from 192.168.1.52 table router2 pref 200
et
ip rule add from 192.168.1.52 table router1 pref 200
La redirection reste sur routeur2 et ne prend pas en compte la nouvelle
rule.
Parce que le noyau a gardé dans son cache l'ancienne route et se réfère à
celle-ci aulieu d'utiliser la nouvelle route.
Y'a t il quelque chose à faire à "ip" pour prendre en compte les
nouvelles rule, car si je dois redémarrer le PC à chaque fois ca
prendra legerement du temps.
Il faut vider le cache des routes du noyau. Ce qui peut être fait avec la
commande suivante :
$ ip route flush cache
Vous pouvez à tout moment visualiser les routes qui sont en cache avec la
commande suivante :
Dans le message <news:409ad95d$0$21080$, *Yannick* tapota sur f.c.r.ethernet,f.c.r.ip :
Bonjour,
Bonsoir,
SVP, répondez comme il faut en répondant en dessous des messages et en ne citant que les parties utiles des messages.
http://www.giromini.org/usenet-fr/repondre.html
Je viens de tester votre methode ca marche très bien aussi bien router tous les pacquets grace à ip rule add from... que router que certains port grace au pre-marking.
J'en suis ravi.
le seul leger problème est que ---vous devez me prendre pour un pied--- ca marche que si j'ai rebooté la machine.
[...]
Ensuite je fais
ip rule add from 192.168.1.52 table router2 pref 200
Hop le poste 52 redirige très bien.
Ensuite je fais
ip rule delete from 192.168.1.52 table router2 pref 200
et
ip rule add from 192.168.1.52 table router1 pref 200
La redirection reste sur routeur2 et ne prend pas en compte la nouvelle rule.
Parce que le noyau a gardé dans son cache l'ancienne route et se réfère à celle-ci aulieu d'utiliser la nouvelle route.
Y'a t il quelque chose à faire à "ip" pour prendre en compte les nouvelles rule, car si je dois redémarrer le PC à chaque fois ca prendra legerement du temps.
Il faut vider le cache des routes du noyau. Ce qui peut être fait avec la commande suivante :
$ ip route flush cache
Vous pouvez à tout moment visualiser les routes qui sont en cache avec la commande suivante :