OVH Cloud OVH Cloud

SNAT avec IPTABLES

25 réponses
Avatar
Mardaga Stephan
Bonjour,

je n'arrive pas à faire fonctionner un serveur Debian Woody 2.4.18-bf2 en
SNAT.

Le ping envoyé du PC2 (192.168.1.2) vers le PC1 (192.168.0.1), passe bien à
travers le serveur mais l'adresse source reste la même (vérifier avec
sniffer) et donc le ping ne reçoit pas de réponse.

Ce que je ne comprends pas : dans la table nat, la destination reste
0.0.0.0/0 que je mette dans la commande iptables -o eth0 ou -o 192.168.0.50.

Y a un truc que je ne dois pas saisir et j'ai besoin de votre aide.

merci d'avance,

Stephan


Voici la config :
1. ip_forward = 1
2. lsmod :
Module Size Used by Not tainted
ipt_MASQUERADE 1216 1 (autoclean)
iptable_nat 12660 1 [ipt_MASQUERADE]
ip_conntrack 12684 1 [ipt_MASQUERADE iptable_nat]
ip_tables 10432 4 [ipt_MASQUERADE iptable_nat]
3. la commande :
/sbin/iptables -A POSTROUTING -t nat -s 192.168.1.0/24 -o eth0 -j MASQUERADE
4. la table NAT :
Chain PREROUTING (policy ACCEPT)
target prot opt source destination

Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- 192.168.1.0/24 0.0.0.0/0

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

La plate-forme :

---- PC 1---- 192.168.0.x ----Eth0 DEBIAN Eth1------ 192.168.1.x ------ PC
2

Ifconfig de la Debian:
eth0 Link encap:Ethernet HWaddr 00:A0:24:AC:EC:32
inet addr:192.168.0.50 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:263 errors:0 dropped:0 overruns:0 frame:0
TX packets:354 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:28988 (28.3 KiB) TX bytes:32801 (32.0 KiB)
Interrupt:11 Base address:0xc000

eth1 Link encap:Ethernet HWaddr 00:60:8C:00:5B:BE
inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:172 errors:0 dropped:0 overruns:0 frame:0
TX packets:11 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:18222 (17.7 KiB) TX bytes:1746 (1.7 KiB)
Interrupt:10 Base address:0x300



--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org

10 réponses

1 2 3
Avatar
David Dumortier
Bonsoir,

Le Tue Aug 24 2004 à 10:42:29PM +0200, Mardaga Stephan dit :
Bonjour,




[...]

Voici la config :
1. ip_forward = 1



OK

2. lsmod :
Module Size Used by Not tainted
ipt_MASQUERADE 1216 1 (autoclean)
iptable_nat 12660 1 [ipt_MASQUERADE]
ip_conntrack 12684 1 [ipt_MASQUERADE iptable_nat]
ip_tables 10432 4 [ipt_MASQUERADE iptable_nat]



OK

3. la commande :
/sbin/iptables -A POSTROUTING -t nat -s 192.168.1.0/24 -o eth0 -j MASQUERADE
4. la table NAT :



[...]

Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- 192.168.1.0/24 0.0.0.0/0



Tu veux faire de la "Masquerade" donc ?

La plate-forme :



[...]

eth0 Link encap:Ethernet HWaddr 00:A0:24:AC:EC:32
inet addr:192.168.0.50 Bcast:192.168.0.255 Mask:255.255.255.0



[...]

eth1 Link encap:Ethernet HWaddr 00:60:8C:00:5B:BE
inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0



[...]

Tes deux adresses IP ne sont pas dans le même sous-réseau.
Soit tu étends ton réseau en /16 (255.255.0.0 pour le netmask), soit tu
passes tout en 192.168.1.0/24 (mieux je pense).

--
David Dumortier



--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Annie D.
David Dumortier wrote:

> eth0 Link encap:Ethernet HWaddr 00:A0:24:AC:EC:32
> inet addr:192.168.0.50 Bcast:192.168.0.255 Mask:255.255.255.0

[...]

> eth1 Link encap:Ethernet HWaddr 00:60:8C:00:5B:BE
> inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0

[...]

Tes deux adresses IP ne sont pas dans le même sous-réseau.



Encore heureux.

Soit tu étends ton réseau en /16 (255.255.0.0 pour le netmask), soit tu
passes tout en 192.168.1.0/24 (mieux je pense).



Pourquoi diable ?


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Mardaga Stephan
> Bonsoir,

Le Tue Aug 24 2004 à 10:42:29PM +0200, Mardaga Stephan dit :
> Bonjour,
>

[...]

> Voici la config :
> 1. ip_forward = 1

OK

> 2. lsmod :
> Module Size Used by Not tainted
> ipt_MASQUERADE 1216 1 (autoclean)
> iptable_nat 12660 1 [ipt_MASQUERADE]
> ip_conntrack 12684 1 [ipt_MASQUERADE iptable_nat]
> ip_tables 10432 4 [ipt_MASQUERADE iptable_nat]

OK

> 3. la commande :
> /sbin/iptables -A POSTROUTING -t nat -s 192.168.1.0/24 -o eth0 -j


MASQUERADE
> 4. la table NAT :

[...]

> Chain POSTROUTING (policy ACCEPT)
> target prot opt source destination
> MASQUERADE all -- 192.168.1.0/24 0.0.0.0/0

Tu veux faire de la "Masquerade" donc ?

> La plate-forme :

[...]

> eth0 Link encap:Ethernet HWaddr 00:A0:24:AC:EC:32
> inet addr:192.168.0.50 Bcast:192.168.0.255


Mask:255.255.255.0

[...]

> eth1 Link encap:Ethernet HWaddr 00:60:8C:00:5B:BE
> inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0

[...]

Tes deux adresses IP ne sont pas dans le même sous-réseau.
Soit tu étends ton réseau en /16 (255.255.0.0 pour le netmask), soit tu
passes tout en 192.168.1.0/24 (mieux je pense).




Masquerade parce que l'interface eth0 reçoit son adresse IP par un serveur
DHCP (celui de PC1) dans le réseau 192.168.0.0/24.

Les deux adresses IP ne sont pas dans le même réseau car :
1. ce sont deux interfaces différents
2. ce serveur sera connecté sur Internet en eth0 et en local sur eth1

Stephan







--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Bertrand Delepine
On Tue, Aug 24, 2004 at 10:42:29PM +0200, Mardaga Stephan wrote :
Bonjour,


Bonjour

je n'arrive pas à faire fonctionner un serveur Debian Woody 2.4.18-bf2 en
SNAT.

Le ping envoyé du PC2 (192.168.1.2) vers le PC1 (192.168.0.1), passe bien à
travers le serveur mais l'adresse source reste la même (vérifier avec
sniffer) et donc le ping ne reçoit pas de réponse.

Ce que je ne comprends pas : dans la table nat, la destination reste
0.0.0.0/0 que je mette dans la commande iptables -o eth0 ou -o 192.168.0.50.

Y a un truc que je ne dois pas saisir et j'ai besoin de votre aide.

merci d'avance,

Stephan


Voici la config :
1. ip_forward = 1


Correct.

2. lsmod :
Module Size Used by Not tainted
ipt_MASQUERADE 1216 1 (autoclean)
iptable_nat 12660 1 [ipt_MASQUERADE]
ip_conntrack 12684 1 [ipt_MASQUERADE iptable_nat]
ip_tables 10432 4 [ipt_MASQUERADE iptable_nat]


Correct.

3. la commande :
/sbin/iptables -A POSTROUTING -t nat -s 192.168.1.0/24 -o eth0 -j MASQUERADE


Je suggére plutot :
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -d 192.168.0.0/24 -j
SNAT --to-source 192.168.2.1

Bonne journée.

--
Bertrand Delepine



--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
David Dumortier
bonjour,

Le Wed Aug 25 2004 à 09:09:33AM +0200, Mardaga Stephan dit :

[...]

Les deux adresses IP ne sont pas dans le même réseau car :
1. ce sont deux interfaces différents
2. ce serveur sera connecté sur Internet en eth0 et en local sur eth1



Oups c'est la même machine ... autant pour moi, mais la notation PC0 PC1 me
faisait penser à 2 machines.

Tu tentes ton ping depuis la passerelle ou depuis le sous réseau ?

Est-ce que tu as bien la règle FORWARD adéquate ? Si tu essayes :
iptables -P FORWARD ACCEPT
(ouh c'est pas bô, et désolé si tu l'a déja fait).

Stephan



--
David Dumortier



--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Mardaga Stephan
>
Tu tentes ton ping depuis la passerelle ou depuis le sous réseau ?


Depuis le sous-réseau 192.168.1.0/24
Le ping est lancé depuis PC2 (192.168.1.2) vers PC1 (192.168.0.1)
Le PC2 est connecté au serveur à Eth1 (192.168.1.1)
Le PC1 (192.168.0.1) est connecté au serveur à eth0 (192.168.0.50)
Le PC1 reçoit les paquets icmp echo avec IP source addresse 192.168.1.2
Donc le SNAT ne fonctionne pas.



Est-ce que tu as bien la règle FORWARD adéquate ? Si tu essayes :
iptables -P FORWARD ACCEPT
(ouh c'est pas bô, et désolé si tu l'a déja fait).



Essayer sans amélioration.


Une question : quand on effectue un changement dans iptables doit-on faire
un networking restart ?


> Stephan





--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Mardaga Stephan
Bonjour,

> 3. la commande :
> /sbin/iptables -A POSTROUTING -t nat -s 192.168.1.0/24 -o eth0 -j


MASQUERADE
Je suggére plutot :
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -d 192.168.0.0/24 -j
SNAT --to-source 192.168.2.1




J'ai changé le type de eth0 du serveur de DHCP en Static avec l'adress
192.168.0.50 afin de ne plus faire du Masquerade mais bien du SNAT

La commande que tu propose a été entrée avec un networking restart fait mais
tjrs pas de résultat excompté.

Voici la table nat :
Chain PREROUTING (policy ACCEPT)
target prot opt source destination

Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
SNAT all -- 192.168.1.0/24 0.0.0.0/0 to:192.168.2.1

Chain OUTPUT (policy ACCEPT)
target prot opt source destination


J'ai essayé la commande suivante et sans résultat également :
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 192.168.0.50
qui est plus cohérent car l'add --to-source doit être l'address qui
remplacera l'addr source.

Je pense plutôt à un problème de manip :
suffit-il de faire la commande iptables blabla pour que le serveur fasse du
snat ?

Bonne journée.



merci également



Stephan


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Baptiste Mathus
Quoting Mardaga Stephan :
Une question : quand on effectue un changement dans iptables doit-on faire
un networking restart ?


Ben, ça dépend ou tu fais tes appels d'iptables : si tu les fais à la ligne de
commande, ils sont immédiatement actifs, s'ils sont dans un fichier, il faut
exécuter ce fichier.

Attention à ne pas avoir une config "bancale" : sauvegarde toutes les règles que
tu veux positionner et avant de les essayer, vide bien toutes les tables pour
vérifier que ça fonctionne correctement.

@++

--
Baptiste <Batmat> Mathus
Baptiste at Mathus point org
http://batmat.net
---------
You want to use GNU/Linux or Windows ?
You want to spend time or money ?


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Charles Plessy
> > je n'arrive pas à faire fonctionner un serveur Debian Woody 2.4.18-bf2 en
> SNAT.
>
> Le ping envoyé du PC2 (192.168.1.2) vers le PC1 (192.168.0.1), passe bien à
> travers le serveur mais l'adresse source reste la même (vérifier avec
> sniffer) et donc le ping ne reçoit pas de réponse.



Un truc que je ne comprend pas : pourquoi faire du NAT, alors qu'un
simple routage semblerait suffire?

--
Charles


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Mardaga Stephan
From: "Baptiste Mathus"
> Une question : quand on effectue un changement dans iptables doit-on


faire
> un networking restart ?
Ben, ça dépend ou tu fais tes appels d'iptables : si tu les fais à la


ligne de
commande, ils sont immédiatement actifs, s'ils sont dans un fichier, il


faut
exécuter ce fichier.

Attention à ne pas avoir une config "bancale" : sauvegarde toutes les


règles que
tu veux positionner et avant de les essayer, vide bien toutes les tables


pour
vérifier que ça fonctionne correctement.




Oui je vide bien la table et fait un networking restart.
Par ailleurs, il y a la commande iptables-save : serait-ce le moyen de
sauver la config qui sera lue à chaque démarrage du serveur ?
Les configs décrites sur le net parlent de script à faire soi-même.

Stef




--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
1 2 3