OVH Cloud OVH Cloud

iptables...

2 réponses
Avatar
Jean-Louis Noel
Hello, All!

Je suis perdu dans les iptables!

Configuration :
eth0 -> réseau local
eth1 -> fai1 (ip1)
eth2 -> fai2 (ip2)

Actuellement tout est configuré/fonctionne
de/vers le fai2.

Je voudrais que ce que je "binde" sur eth1
soit vu de l'extérieur à partir de cette IP
(ca fonctionne) et que le traffic de sortie soit
renvoyé sur l'ip1 (ce qui n'est pas le cas).
Actuellement si je ping de l'extérieur l'ip1
les paquets sont renvoyés par l'ip2.

Une idée ou une piste (howto)?

Merci.

Bye,
Jean-Louis

2 réponses

Avatar
TiChou
Dans l'article news:3fa23bec$,
Jean-Louis Noel écrivait :

Hello, All!


Bonjour,

Je suis perdu dans les iptables!


Première chose, iptables est un outil qui permet de manipuler les règles
Netfilter du système. Ces règles ne permettent que de filtrer ou modifier
les paquets réseaux. En aucun cas elles indiquent la route à prendre pour un
paquet réseau.

Configuration :
eth0 -> réseau local
eth1 -> fai1 (ip1)
eth2 -> fai2 (ip2)

Actuellement tout est configuré/fonctionne
de/vers le fai2.

Je voudrais que ce que je "binde" sur eth1
soit vu de l'extérieur à partir de cette IP
(ca fonctionne) et que le traffic de sortie soit
renvoyé sur l'ip1 (ce qui n'est pas le cas).
Actuellement si je ping de l'extérieur l'ip1
les paquets sont renvoyés par l'ip2.

Une idée ou une piste (howto)?


Vos routes doivent agir en fonction de l'IP source, c'est ce qu'on appelle
faire du source routing. Toutes les informations utiles pourront être
trouvées dans le HowTo Linux Advanced Routing and Traffic Control,
http://lartc.org.

Un exemple de mise en pratique avec quelques règles en utilisant l'outil ip
du paquetage iproute2 :

# Création de la table de routage /etc/iproute2/rt_tables
echo -e "101 fai1">/etc/iproute2/rt_tables
echo -e "102 fai2">>/etc/iproute2/rt_tables
echo -e "103 lan">>/etc/iproute2/rt_tables

# Définition des règles de source routing

# Le routage local utilise la table principale
ip rule add from 192.168.0.0/24 to 192.168.0.0/24 table main pref 100

# Le routage du traffic venant d'Internet vers le réseau Interne
# utilise la table 'lan'
ip rule add from ip1 to 192.168.0.0/24 table lan pref 300
ip rule add from ip2 to 192.168.0.0/24 table lan pref 300

# Le routage du traffic Internet local vers l'extérieur
# utilise les tables correspondantes
ip rule add from ip1 to 0/0 table fai1 pref 400
ip rule add from ip2 to 0/0 table fai2 pref 400

# Le routage du traffic des machines suivantes vers Internet
# utilise la table 'fai1'
MACHINES="192.168.0.2 192.168.0.3"
for machine in $MACHINES
do
ip rule add from $machine/32 to 0/0 table fai1 pref 200
done

# Le routage du traffic des machines suivantes vers Internet
# utilise la table 'fai2'
MACHINES="192.168.0.4 192.168.0.5"
for machine in $MACHINES
do
ip rule add from $machine/32 to 0/0 table fai2 pref 200
done

# Définition des routes à emprunter pour chacune des tables
ip route add table fai1 via ip1 dev eth1
ip route add table fai2 via ip2 dev eth2
ip route add table lan via 192.168.0.1 dev eth0

A adapter en fonction de votre configuration.

--
TiChou

Avatar
Jean-Louis Noel
Bonjour TiChou,

TiChou écrivait le Fri, 31 Oct 2003 12:22:34 +0100:

JN>> Je voudrais que ce que je "binde" sur eth1
JN>> soit vu de l'extérieur à partir de cette IP

Le problème est que la source pour eth1 est sa propre ip!

T> # Le routage du trafic venant d'Internet vers le réseau Interne
T> # utilise la table 'lan'
T> ip rule add from ip1 to 192.168.0.0/24 table lan pref 300
devient :
ip rule add from ip1 to ip1 table lan pref 300

T> ip rule add from $machine/32 to 0/0 table fai1 pref 200
ip rule add from ip1 to 0/0 table fai1 pref 200

Bye,
Jean-Louis