nat possile?

Le
Yannick
Bonjour,

Je cherche à partir de NAT & iptables (linux) de rediriger certains paquet
sur un routeur ou un autre.

schema :

************ @routeur1
*reseau de pc* -- SERVEUR nat @routeur2
************ @ routeur3

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é.

Merci
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Marc Hamelin
Le #33584
bonjour,

en fait, c'est la machine @routeur2 qui va faire ce travail de routage.
la machine "Serveur Nat" ne peut pas faire ce travail à moins que tu fasse
du source routing, ce qui n'est pas du tout conseillé. Chaque chose à sa
place.
Par contre sur le @routeur2, si tu peux activer quelque chose qui ressemble
à du route-map (CISCO), alors rien ne t'empeche en fonction d'une ACL de
dirigé tes paquet ou tu veux...
A+,
Marc


Yannick wrote:

Bonjour,

Je cherche à partir de NAT & iptables (linux) de rediriger certains paquet
sur un routeur ou un autre.

schema :

************ @routeur1
*reseau de pc* ----- SERVEUR nat ------ @routeur2
************ @ routeur3

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é.

Merci


T0t0
Le #33087
"Marc Hamelin" news:c79vhg$il9$
en fait, c'est la machine @routeur2 qui va faire ce travail de routage.
la machine "Serveur Nat" ne peut pas faire ce travail à moins que tu fasse
du source routing, ce qui n'est pas du tout conseillé. Chaque chose à sa
place.


Pourquoi donc ?
Je le fais avec iproute2 et ca marche très bien.

Voir ici pour une explication détaillée:

ou là pour une mise en place plus simple:




--
Posted via Mailgate.ORG Server - http://www.Mailgate.ORG

TiChou
Le #32599
Dans le message *Yannick* tapota sur f.c.r.ethernet,f.c.r.ip :

Bonjour,


Bonjour,

Je cherche à partir de NAT & iptables (linux) de rediriger certains paquet
sur un routeur ou un autre.

schema :

************ @routeur1
*reseau de pc* ----- SERVEUR nat ------ @routeur2
************ @ routeur3

En gros je voudrias faire des regle nat & ipchains


ipchains ou iptables ?

qui translate les
demandes des PC passant par le serveur vers un des routeurs en fonction du
port, de l'adresse source...


J'ai plutôt l'impression qu'il ne s'agit pas de Nat mais de routage.

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.


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.

j'ai essayé déjà mais je suis surement pas très doué.

Merci


Pas de quoi.

--
TiChou

Yannick
Le #32590
"TiChou"
Dans le message *Yannick* tapota sur f.c.r.ethernet,f.c.r.ip :

Bonjour,


Bonjour,

Je cherche à partir de NAT & iptables (linux) de rediriger certains
paquet


sur un routeur ou un autre.

schema :

************ @routeur1
*reseau de pc* ----- SERVEUR nat ------ @routeur2
************ @ routeur3

En gros je voudrias faire des regle nat & ipchains


ipchains ou iptables ?

qui translate les
demandes des PC passant par le serveur vers un des routeurs en fonction
du


port, de l'adresse source...


J'ai plutôt l'impression qu'il ne s'agit pas de Nat mais de routage.

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.


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.

j'ai essayé déjà mais je suis surement pas très doué.

Merci


Pas de quoi.

--
TiChou





ipchains ou iptables ?
iptables pardon !


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 !


Annie D.
Le #32109
Yannick wrote:

Bonjour,

Je cherche à partir de NAT & iptables (linux) de rediriger certains paquet
sur un routeur ou un autre.

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...


Indiquez-nous la finalité et un exemple *concret* de ce que vous voulez
faire, avec le cheminement du paquet et ses éventuelles modifications
d'adresse source et/ou destination étape par étape, sinon on ne s'en
sortira pas.

[Suivi dans fr.comp.reseaux.ip seulement]

Marc Hamelin
Le #32107
salut,

ce que tu fait n'est pas du source-routing. Je dis donc et je le répète
chaque chose à sa place et je déconseille de faire du source routing. Le
routage est bien là pour cela (comme tu l'explique d'ailleurs avec
iproute2).
Marc

T0t0 wrote:

"Marc Hamelin" news:c79vhg$il9$
en fait, c'est la machine @routeur2 qui va faire ce travail de
routage. la machine "Serveur Nat" ne peut pas faire ce travail à
moins que tu fasse
du source routing, ce qui n'est pas du tout conseillé. Chaque chose à sa
place.


Pourquoi donc ?
Je le fais avec iproute2 et ca marche très bien.

Voir ici pour une explication détaillée:

ou là pour une mise en place plus simple:







TiChou
Le #530559
Dans le message *Marc Hamelin* tapota sur f.c.r.ethernet,f.c.r.ip :

salut,


Bonjour,

Pour la clareté de la discussion, il serait bien de répondre en dessous des
messages cités et ne citer que les parties auxquelles vous répondez.
Je vous renvois au site suivant sur la manière de faire :

http://www.giromini.org/usenet-fr/repondre.html

T0t0 wrote:
Marc Hamelin wrote:
en fait, c'est la machine @routeur2 qui va faire ce travail de
routage. la machine "Serveur Nat" ne peut pas faire ce travail à
moins que tu fasse
du source routing, ce qui n'est pas du tout conseillé. Chaque chose à sa
place.


Pourquoi donc ?
Je le fais avec iproute2 et ca marche très bien.



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.

Voir ici pour une explication détaillée:



La référence.

ce que tu fait n'est pas du source-routing.


Si.

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 ?

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 ?

--
TiChou



TiChou
Le #32103
Dans le message *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


Yannick
Le #31611
Merci pour cet exemple très concret.

Sinon, pensez vous qu'il serait plut simple de prendre un linux dédié avec
des modem PCI adsl et généré ca en Direct.

Car le problème est que je voudrais aussi faire un proxy.

Pour l'instant je vais apporfondir ce que vous m'avez dis, mais serrait-ce
possible d'avoiur ce shema là :

internet ip_publique1 - #ppp0 ###############
internet ip_publique2 - -- #ppp1 Serveur l + proxy # ---- Réseau LAN
internet ip_publique3 -/ #ppp2 ###############

Ou :

internet ip_publique1 - #ppp0 ########
internet ip_publique2 - -- #ppp1 Serveur l # ---- #PROXY#--- Réseau LAN
internet ip_publique3 -/ #ppp2 ########

Merci.

"TiChou"
Dans le message

*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





Yannick
Le #31608
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.

Disons, je démarre la machine.

CODE #########################
101 router1
102 router2
CODE #########################

est bien dans /etc/iproute2/rt_tables

ensuite je fais

$ 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"
Dans le message

*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





Publicité
Poster une réponse
Anonyme