Finalement ce n'est pas si simple. J'ai réussi à faire mon routage, j'arrive à acceder à internet. Mais lorsque j'applique la regle de masquerading ma connection se coupe.
Code :
- +--------------------+ _______
- | | / \------------- passerelle 1 (192.168.1.5)
- | LAN(192.168.1.0) |---|Serveur|(192.168.1.3)
- | | \_______/------------- passerelle 2 (192.168.1.6)
- +--------------------+ eth0 eth1
|
En fait les machines connectées au LAN et les passerelles appartiennent au meme réseau physique. Ces passerelles sont des livebox, freebox...(configurées en routeur). Pour l'instant n'importe quelle personne qui connait l'ip d'une passerelle peut se connecter à internet. Je souhaite cacher ces passerelles sur un autre plan d'IP (histoire que ce soit un peu plus long à découvrir la supercherie ), mais pour faire mes tests j'utilise le meme plan d'IP. Donc pour bien jouer le jeu il faut que chacunes des machines du LAN ne connaissent qu'une seule passerelle (le serveur). Celui ci devra donc rediriger les paquets à direction d'internet par une unique passerelle (livebox et compagnie).
Pour cela j'ai réussi a me depatouiller avec les règles suivantes:
partie routage:
- déclaration des tables:
cat /etc/iproute2/rt_tables
#
# reserved values
#
255 local
254 main
253 default
201 L4
200 L19
0 unspec
#
# local
#
- ajout des règles
ip rule add fwmark 1 table L19
ip rule add fwmark 2 table L4
- ajout des routes
ip route add default via 192.168.0.2 dev eth1 table L19
ip route add default via 192.168.0.3 dev eth1 table L4
partie iptables:
iptables -t mangle -A PREROUTING -i eth0 -d ! 192.168.1.2(IP du serveur coté LAN) -j MARK --set-mark 1 (ou 2)
la table forward accepte tout
Donc tout ceci marche correctement car les machines sont sur le meme plan d'IP et donc il n'y a pas de probleme pour le retour des paquets. Mais lorsque j'applique la règle de masquerading plus rien ne passe .