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

nat possile?

13 réponses
Avatar
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

3 réponses

1 2
Avatar
Yannick
"Yannick" a écrit dans le message de news:
409ad95d$0$21080$
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" 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.




Avatar
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



Avatar
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

1 2