Probleme de partage de connexion et nat

voilà j’ai un réseau 192.168.100.0 connecté à internet sous windows,
j’ai installé debian etch sur un pc avec 2 cartes réseaux. Sur ce pc j’arrive à surfer sur internet.

voici le schéma:

eth1(192.168.100.210)–>debian<–eth0(192.168.10.1)—switch—pc1(windows:192.168.10.2),pc2 (windows:192.168.10.3)

les problèmes:

-j’arrive pas à connecter les pcs pc1,pc2 sur internet
-sur pc1, j’arrive à pinger les 2 interfaces réseaux de debian mais pas un ordinateur sur le réseau 192.168.100.0

voici les règles iptables que j’ai mis au demarrage pour le partage de connexion:

#iptables -t nat -A POSTROUTING -s 192.168.10.0/255.255.255.0 -o 192.168.100.210/255.255.255.0 -j MASQUERADE
#echo 1 > /proc/sys/nat/ipv4/ip_forward

un peu d’aide ne serais pas de refus. merci bcp.

OS: debian sarge etch
version du noyau: 2.6.18-6-686

une petite faute de frappe, c’est

echo 1 > /proc/sys/net/ipv4/ip_forward

:smt003

Personnellement je fais le NAT de cette façon sur ma passerelle :

echo 1 > /proc/sys/net/ipv4/ip_forward iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

Ainsi, les paquets qui sortent de l’interface eth1 porteront l’ip de l’interface et non celle de celui qui envoie le paquet.

Salut aina,

sur les postes clients tu as mis quelle config ?

Tu arrives a pinger l’@IP de la debian en 192.168.100.1
210 ? A tu ajouté comme passerelle l’@IP de la pate de ton debian, par exemple ici 192.168.10.1 pour préciser aux machines qu’elles peuvent sortir en passant par la passerelle définie ?

Pour le nat, je fais comme le mangeur de yaourt au chocolat :slightly_smiling:

merci à vous tous pour les réponses.

salut grigric,

sur 192.168.10.2, j’arrive pas à pinger sur 192.168.100.1, ni un ordinateur du réseau 192.168.100.0 alors que j’arrive à pinger les interfaces du routeur debian.

voici le fichier /etc/network/interfaces

auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.100.210
netmask 255.255.255.0
network 192.168.100.0
broadcast 192.168.100.255
gateway 192.168.100.250

dns-nameservers 192.168.100.252

auto eth1
iface eth1 inet static
address 192.168.10.1
netmask 255.255.255.0
network 192.168.10.0
broadcast 192.168.10.255

voici le statistic ping www.google.com sur pc1

envoi d’une requete ping www.l.google.com (64.233.183.104) avec 32 octets
delai d’attente de la demande depassé
perte 100%

je crois qu’il y a quelque chose qui cloche car il arrive à trouver l’adresse ip de www.google.com mais ??? je sais pas.

alors que si je bascule le routeur sous windows, j’arrive à le partager.

:blush:

oui j’ai mis comme passerelle et serveur dns des clients l’adresse ip du premier interface (192.168.10.1)

[quote=“themorice”]Personnellement je fais le NAT de cette façon sur ma passerelle :

echo 1 > /proc/sys/net/ipv4/ip_forward iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

Ainsi, les paquets qui sortent de l’interface eth1 porteront l’ip de l’interface et non celle de celui qui envoie le paquet.[/quote]

ça donne quoi en faisant ça ?

merci themorice, j vais essayé de ce pas.

themorice,

toujours le même problème, ce que je n’arrive pas à comprendre c’est que pourquoi j’arrive pas à pinger un pc du réseau 192.168.100.0

En fait, j’ai l’impression qu’une machine du réseau 192.168.100.0 ne sait pas aller sur le réseau 192.168.10.0.
Il faut ajouter la route 192.168.10.0 aux machines du réseau 192.168.100.0. Ce qui se traduit sous Linux par # route add -net 192.168.10.0 netmask 255.255.255.0 gw 192.168.10.1. À Toit de trouver l’équivalent sous windows car il te faudra traduire cette commande pour ta machine windows. À moins que certions d’entre nous ce rappelle comment il faut faire sur Windows.

pmassol.net/lm/zebrastat.html un petit tour sur ce site te fera comprendre ton problème.

Si le NAT en sortie est bien effectif, pas besoin de route sur la machine cible du ping sur le réseau 100. En effet, le paquet arrive avec l’ip du routeur (si je ne dis pas de connerie). Après pour déboguer il faut utiliser des outils de capture de paquet comme Ethereal ou tcpdump pour voir ce qui se passe réellement.

Boulette de ma part.

alors qu’est ce que vous me suggérez?

Peux-tu nous mettre la sortie des commandes :

  • “route” et “iptables -L” sur la debian
  • “route PRINT” sur les windows
    ??

#route

Destination Passerelle Genmask Indic Metric Ref Use Iface
localnet * 255.255.255.0 U 0 0 0 eth0

192.168.10.0 * 255.255.255.0 U 0 0 0 eth1
default 192.168.100.250 0.0.0.0 UG 0 0 0 eth0

#iptables -L

Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT 0 – anywhere anywhere
ACCEPT icmp – anywhere anywhere
ACCEPT igmp – anywhere anywhere
ACCEPT 0 – anywhere anywhere state RELATED, ESTABLISHED
ACCEPT TCP – anywhere anywhere tcp dpt:ftp-data
ACCEPT TCP – anywhere anywhere tcp dpt:ftp
ACCEPT TCP – anywhere anywhere tcp dpt:ssh
ACCEPT TCP – anywhere anywhere tcp dpt:www

Chain FORWARD (policy ACCEPT)
target prot opt source destination
TCPMSS TCP – anywhere anywhere tcp flag:SYN,RST/SYN TCPMSS clamp to PMTU

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

#iptables -L -t nat

chain PREROUTING (policy ACCEPT)
target prot opt source destination
DNAT tcp – anywhere anywhere tcp dpt:www to 192.168.10.1:80

chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE 0 – 192.168.10.0/24 anywhere

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

c’est tout
:question:

et pour le noyau, a t-on besoin de le recompiler???

Non

merci!

et puis kel commande je dois faire pour connecter deux réseaux eth0 et eth1 sur une debian pour qu’une machine du réseau eth0 puisses voir une machine du réseau eth1??

si il n’y a pas de règles iptables, un simple :

Cela active juste le routage des paquets.