Forum Linux.général Routage sélectif

Posté par  .
Étiquettes : aucune
0
2
juin
2007
Salut à tous. J'essaye de faire du routage sélectif et impossible d'y arriver. Voila mon objectif :

Sur eth1 j'ai une connexion internet qui ne laisse passer que quelques ports (http(s), ssh, vpn, msn, ftp (exit jabber, jamendo, etc ... )). Pour pallier au problème j'ai un tunnel vpn, pas de chance, le débit du tunnel est bridé sur les ports vpn et msn et ce sont les deux seuls ports udp autorisés (vpn en tcp c'est pire). Je veux donc faire passer les ports autorisés directement via eth1 et les ports bloqués via le tunnel vpn et c'est là que ca blesse.

J'ai voulu laisser passer par défaut les connexions vers le tunnel et marquer les connexions qui passent grace à iptables pour les router directement vers l'extérieur.

Dans iptables j'ai fait :

iptables -A OUTPUT -p tcp -m tcp --dport 80 -j MARK --set-mark 0x01

et j'ai crée une table de routage :

ip rule add fwmark 1 table rt_direct

j'y j'ai définis tous les réseaux comme dans main sauf que "default" est via la passerelle extérieure via eth1

Avec cette manip les paquets qui ne sont pas marqués sont corectement traités, les paquets marqués sont routés vers la bonne interface (eth1) mais toujours avec l'ip du vpn. Forcément ca pose problème.


Pour forcer les paquets sortant par eth1 a avoir comme source l'ip d'eth1 J'ai mis un NAT/SNAT en sortie d'eth1. Lors d'une tentative de connexion tcp, j'envoie le SYN avec les bonnes adresses et je reçois le SYN,ACK du serveur mais je ne renvoie aucun paquet ACK nulle part.

C'est comme si linux ne captait pas que le SYN,ACK du serveur est la réponse à mon SYN et ne faisait rien. J'ai essayé en marquant les parquets avec connmark autant en entré qu'en sortie, j'ai essayé en marquant les paquets en entré avec MARK mais rien n'y fait.

Quelqu'un aurait il la solution ou une idée ? Merci beaucoup

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.