Routage avancé

Le
Kevin Denis
Bonjour,

j'ai une machine avec 3 interfaces réseaux.
eth0 qui est connecté à internet, et ma route par défaut.
eth1 qui a un autre accès à internet.
eth2 qui est connecté sur un réseau local.

Je souhaite que le trafic réseau d'eth2 sorte par eth1.
Je souhaite que mon trafic local continue d'utiliser eth0 comme
interface de sortie.

Dans les faits, je devrais ajouter une route par défaut:
ip route add table 4 default via A.B.C.D
ip rule add fwmark 4 table 4
marquer les paquets correspondants:
iptables -t mangle -A PREROUTING -i eth2 -j MARK --set-mark 4
et les masquerader:
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

C'est OK?
Merci
--
Kevin
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Eric Belhomme
Le #26232852
Le Tue, 01 Jul 2014 09:47:41 +0000, Kevin Denis a écrit :


Dans les faits, je devrais ajouter une route par défaut:
ip route add table 4 default via A.B.C.D ip rule add fwmark 4 table 4
marquer les paquets correspondants:
iptables -t mangle -A PREROUTING -i eth2 -j MARK --set-mark 4 et les
masquerader:
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

C'est OK?




Oui

--
Rico
Pascal Hambourg
Le #26237872
Kevin Denis a écrit :

Je souhaite que le trafic réseau d'eth2 sorte par eth1.
Je souhaite que mon trafic local continue d'utiliser eth0 comme
interface de sortie.

Dans les faits, je devrais ajouter une route par défaut:
ip route add table 4 default via A.B.C.D
ip rule add fwmark 4 table 4
marquer les paquets correspondants:
iptables -t mangle -A PREROUTING -i eth2 -j MARK --set-mark 4
et les masquerader:
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE



Pas besoin de marquer avec iptables, il y a plus simple :

ip rule add iif eth2 table 4

iif NAME
select the incoming device to match. If the interface is loop-
back, the rule only matches packets originating from this host.
This means that you may create separate routing tables for for-
warded and local packets and, hence, completely segregate them.

Vérifier aussi que rp_filter est désactivé sur eth2 pour que le trafic
entrant ne soit pas bloqué.
Francois Lafont
Le #26238292
Bonsoir,

Le 02/07/2014 22:51, Pascal Hambourg a écrit :

Dans les faits, je devrais ajouter une route par défaut:
ip route add table 4 default via A.B.C.D
ip rule add fwmark 4 table 4
marquer les paquets correspondants:
iptables -t mangle -A PREROUTING -i eth2 -j MARK --set-mark 4
et les masquerader:
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE



Pas besoin de marquer avec iptables, il y a plus simple :

ip rule add iif eth2 table 4

iif NAME
select the incoming device to match. If the interface is loop-
back, the rule only matches packets originating from this host.
This means that you may create separate routing tables for for-
warded and local packets and, hence, completely segregate them.

Vérifier aussi que rp_filter est désactivé sur eth2 pour que le trafic
entrant ne soit pas bloqué.



Je me permets de poser deux petites questions par rapport à ce fil
car j'ai plus ou moins découvert les commandes ci-dessus (enfin les
options utilisées) en lisant ce post :

1. Au niveau de l'ID de la table (4 en l'occurrence ici), on est
d'accord que ça pourrait parfaitement être une autre valeur que 4,
ie n'importe quelle valeur entre 1 et 2^31 autre que 0, 253, 254 et
255 (si j'ai bien lu le man) et que notamment il n'y a aucune raison
particulière pour que cet ID coïncide avec la valeur de l'option
--set-mark ?

2. Au niveau de la valeur de l'option --set-mark, là aussi, n'importe
quelle autre valeur de 1 à 32 ferait parfaitement l'affaire ?

J'ai bon ?
Merci d'avance.

--
François Lafont
Pascal Hambourg
Le #26240862
Francois Lafont a écrit :

1. Au niveau de l'ID de la table (4 en l'occurrence ici), on est
d'accord que ça pourrait parfaitement être une autre valeur que 4,
ie n'importe quelle valeur entre 1 et 2^31 autre que 0, 253, 254 et
255 (si j'ai bien lu le man) et que notamment il n'y a aucune raison
particulière pour que cet ID coïncide avec la valeur de l'option
--set-mark ?

2. Au niveau de la valeur de l'option --set-mark, là aussi, n'importe
quelle autre valeur de 1 à 32 ferait parfaitement l'affaire ?

J'ai bon ?



Oui, sauf que la marque est sur 32 bits et n'est donc pas limitée aux
valeurs entre1 et 32. Faire coïncider la marque et la table est juste
une facilité pour s'y retrouver.
Francois Lafont
Le #26241362
Bonsoir,

Le 03/07/2014 21:00, Pascal Hambourg a écrit :

1. Au niveau de l'ID de la table (4 en l'occurrence ici), on est
d'accord que ça pourrait parfaitement être une autre valeur que 4,
ie n'importe quelle valeur entre 1 et 2^31 autre que 0, 253, 254 et
255 (si j'ai bien lu le man) et que notamment il n'y a aucune raison
particulière pour que cet ID coïncide avec la valeur de l'option
--set-mark ?

2. Au niveau de la valeur de l'option --set-mark, là aussi, n'importe
quelle autre valeur de 1 à 32 ferait parfaitement l'affaire ?

J'ai bon ?



Oui, sauf que la marque est sur 32 bits et n'est donc pas limitée aux
valeurs entre1 et 32.



Même en lisant le man, j'ai pas trop compris les valeurs qu'on
peut indiquer à --set-mark. C'est un entier allant de 1 à 2^32
(qu'on peut écrire en décimal ou en hexadécimal avec 0x...) ?

Par ailleurs, cette marque, « concrètement », ça correspond à
quoi ? Au départ, l'idée de "marque" m'incitait à penser que
c'était une zone de l'entête du paquet IP qui était carrément
modifiée. Mais j'ai des doutes. Ou alors c'est une valeur
« externe » qui n'est pas inscrite dans le paquet IP lui-même
mais qui est stockée par le noyau et associée au paquet durant
son parcours dans le noyau ?

Faire coïncider la marque et la table est juste
une facilité pour s'y retrouver.



Ok. Merci de m'avoir confirmé ce que je soupçonnais.

--
François Lafont
Pascal Hambourg
Le #26244392
Francois Lafont a écrit :

Même en lisant le man, j'ai pas trop compris les valeurs qu'on
peut indiquer à --set-mark. C'est un entier allant de 1 à 2^32
(qu'on peut écrire en décimal ou en hexadécimal avec 0x...) ?



Oui.

Par ailleurs, cette marque, « concrètement », ça correspond à
quoi ? Au départ, l'idée de "marque" m'incitait à penser que
c'était une zone de l'entête du paquet IP qui était carrément
modifiée.



Non.

Ou alors c'est une valeur
« externe » qui n'est pas inscrite dans le paquet IP lui-même
mais qui est stockée par le noyau et associée au paquet durant
son parcours dans le noyau ?



Oui.
Francois Lafont
Le #26244652
Le 04/07/2014 21:09, Pascal Hambourg a écrit :

Même en lisant le man, j'ai pas trop compris les valeurs qu'on
peut indiquer à --set-mark. C'est un entier allant de 1 à 2^32
(qu'on peut écrire en décimal ou en hexadécimal avec 0x...) ?



Oui.

Par ailleurs, cette marque, « concrètement », ça correspond à
quoi ? Au départ, l'idée de "marque" m'incitait à penser que
c'était une zone de l'entête du paquet IP qui était carrément
modifiée.



Non.

Ou alors c'est une valeur
« externe » qui n'est pas inscrite dans le paquet IP lui-même
mais qui est stockée par le noyau et associée au paquet durant
son parcours dans le noyau ?



Oui.



Ok, merci. ;)


--
François Lafont
Publicité
Poster une réponse
Anonyme