Bonjour,
Disclaimer : Je ne suis pas spécialiste réseau, je débute, donc si je dis des bêtises, vous pouvez me corriger. :)
Voilà mon cas de figure :
Je suis sur un réseau local divisé en plusieurs sous-réseaux, et qui m'impose donc une passerelle pour pouvoir naviguer entre les différents sous-réseaux.
Un pc sur ce réseau est connecté à internet, et je souhaite que ce serveur ma partage sa connection. Du fait de l'architecture du réseau, point de nat. Jusqu'ici, on a procédé par proxy, ce qui marche très bien, mais est pas mal limité, comparé au nat.
Donc, mon but est de mettre en place une liaison vpn entre ce serveur et mon pc, ce qui me permettra d'accéder directement à internet sans passer par le proxy. J'utilise poptop comme server sous linux, et, pour l'instant, j'utilise le client par défaut de winXP.
Après pas mal de bidouillages, j'arrive à établir une liaison vpn, avec les ip 192.168.1.3 pour le client, 192.168.1.1 pour le server, et un masque de sous-réseau de 255.255.255.255 (ce qui me convient tout à fait, puisqu'il n'y a qu'un seul client pour l'instant), l'interface étant nommée ppp0.
Je souhaiterais maintenant configurer le routage des paquets.
J'ai lancé la commande (eth1 est connecté à internet, eth0 au réseau local):
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
Et j'ai :
DaVinci:/home/rdelmas# route
Table de routage IP du noyau
Destination Passerelle Genmask Indic Metric Ref Use Iface
192.168.1.3 * 255.255.255.255 UH 0 0 0 ppp0
10.207.0.0 * 255.255.0.0 U 0 0 0 eth0
192.0.0.0 * 255.0.0.0 U 0 0 0 eth1
default 192.168.0.100 0.0.0.0 UG 0 0 0 eth1
et :
DaVinci:/home/rdelmas# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Tout ceci me semble plutôt pas mal, mais voilà : ça ne marche pas. Cependant, quand j'essaye, depuis le client, de pinger www.yahoo.fr, par exemple, le résultat de la commande me dit qu'il effectue bien la résolution des noms, puisqu'il essaye de se connecter à www.euro.yahoo.akadns.net. Mais les paquets ne sont, semble-t-il, pas transmis, soit dans un sens, soit dans l'autre (soit les deux...).
Voilà, je sens que la solution est proche, mais j'aimerais un peu d'aide, 2 jours que je galère... ;)
Merci d'avance!
# pourquoi
Posté par Simon Morvan (site web personnel) . Évalué à 1.
> serveur ma partage sa connection. Du fait de l'architecture du réseau,
> point de nat. Jusqu'ici, on a procédé par proxy, ce qui marche très
> bien, mais est pas mal limité, comparé au nat.
pourquoi point de NAT ?
[^] # Re: pourquoi
Posté par Remuz . Évalué à 1.
J'ai envie de dire que c'est parce que je suis obligé de spécifier une passerelle qui n'est pas le serveur, pour pouvoir me ballader sur le réseau local. C'est peut-être une bêtise, mais, ce qui est certain, c'est que le nat n'est pas utilisable dans ce cas précis.
# pb de route côté client
Posté par laurentm . Évalué à 1.
Sinon, tu as essayé de regarder le traffic avec un logiciel comme Ethereal ?
[^] # Re: pb de route côté client
Posté par Remuz . Évalué à 1.
(laissez tomber tout ce qui est associé à la certe Gigabit ethernet, elle n'est pas utilisée)
[^] # Re: pb de route côté client
Posté par laurentm . Évalué à 1.
Le problème, c'est qu'en changant la route par défaut tu risques de perdre les routes vers les autres sous-réseaux. Il faut alors les ajouter à la main.
Peux-tu donner les adresses IPs, masques et réseaux de ta machine et de ton serveur (pas ceux du vpn) ?
Sinon, il faut également que tu fasses du NAT sur ton serveur vpn :
iptables -t nat -A POSTROUTING -o eth1 -i ppp0 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
Je ne suis pas sûr de la commande iptables (surtout pour le "-i ppp0"), si qqun pouvait vérifier.
[^] # Re: pb de route côté client
Posté par Remuz . Évalué à 1.
En fait, il faudrait pourvoir spécifier une autre passerelle pour le réseau vpn.
Mes ip, en réseau local:
Le client : 10.207.11.25
Le serveur : 10.207.16.7
Masque de sous-réseau : 255.255.0.0
Passerelle : 10.207.0.254
En vpn :
Client : 192.168.1.3
Serveur : 192.168.1.1
Sinon, quand j'exécute la commande donnée plus haut, je me retrouve avec :
iptables v1.2.11: Can't use -i with POSTROUTING
Merci pour l'aide, en tout cas!
[^] # Re: pb de route côté client
Posté par laurentm . Évalué à 1.
Le but, c'est d'envoyer tout le traffic à travers ton vpn, sauf ce qui est à destination de ton réseau local. D'après ce que j'ai vu, en local tu as le réseau 10.207.0.0 (où sont branchés ta machine et ton serveur) et un réseau 224.0.0.0 (avec un masque à la con :) ).
Ce que je ferais...
sur le client :
- passerelle par défaut : 192.168.1.1
- définir des routes statics vers les réseaux locaux
sur le serveur :
- configurer le NAT, essaie la commande
iptables -t nat -A POSTROUTING -o ton_interface_pour_aller_sur_le_net -s 192.168.1.0/24 -j MASQUERADE
En gros, tout ce sort par ton_interface_pour_aller_sur_le_net, qui vient du réseau 192.168.1.0 doit subir un masquage d'adresse.
Mais je ne suis pas sûr pour la partie iptables, google est ton ami. Je te conseille quand même d'aller faire un tour sur ce site [1], il explique pas mal de chose sur le NAT.
[1] http://christian.caleca.free.fr/(...)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.