PB Load Balancing et routage/iptable

Debian Lenny 2.6.26-2-686. ip route 2, iptables 142.

Bonjour,

J’ai sur ma passerelle une interface iB sur laquel sont branchés deux routeurs RNIS de même classe IP (10.X.Y.Z/248).
Tout les paquets provenant du reseau A interface iA est marqué x0001 puis routé par rules sur une table de routage TROUTE1.

LAN A---|((iA---FORWARD--iB)---TROUTE1----|--routeur1
LAN C---|((iC/                            |--routeur2

je balance les connexion de l’un à l’autre via:

ip rule 
----------
from iA fwmark 0x2 lookup TROUTE1
ip route
----------
ip route default table TROUTE1 nexthop via ROUTEUR1 dev iB weight 1 nexthop via ROUTEUR2 dev iB weight 1

Evidement les connexion tcp du style 443 pose de sérieux problèmes puisque le suivit de connexion ne dure pas assez longtemps. le client finit par changer d’ip extérieur et bye bye la connexion sécurisé.

QUESTION:
J’aurais aimer être corrigé sur une commande iptables, et sur sa faisabilité. En effet je souhaite rediriger tout les paquets provenant de iA, et de ports de destination tcp 21,443 directement vers un routeur choisi du style routeur2.

Aussi, je souhaiterais savoir si quelqu’un connaitrais suffisamment ipables pour savoir si la commande suivante est susceptible de fonctionné ou si il faut certaines conditions.

iptables -t mangle -A PREROUTING -s iA -p tcp -m multiport --destination-ports 21,443 -j ROUTE --gw ROUTEUR1

-------- ou encore -----
iptables -t mangle -A PREROUTING -s iA -p tcp -m multiport --destination-ports 21,443 -j CONNMARK --set-mark 2 
->>>> OK
iptables -t mangle -A OUTPUT -m connmark --mark 2 -j ROUTE --gw ROUTEUR1 --continue
->>>>   :013 
iptables v1.4.2: Unknown arg `(null)'
Try `iptables -h' or 'iptables --help' for more information.

OUé! :doh: HELP please!

PS: (j’aurais souhaité me passer de creer encore une table ip route, et une rule pour ca).
PPS:(le serveur étant en prod je préférerai que ca marche du premier coup.)
PPPS: (jai verifié, y a pas CONFIG_IP_ROUTE_FWMARK comme paramètre du noyau… c’est grave docteur?)

merci d’avance…

bha tant pis, j’ai créer un table iproute, et une rule pour redirriger les paquets vers un routeur precis…et du rebooté le serveur…ca n’a pas plus aux personnes connectés…Ca fait un peux bricolage mais bon… Ca marche. si vous avez quand même des réponses n’hésitez pas… ca m’interresse.

Quel genre de problèmes ?
Qu’est-ce que le suivi de connexion vient faire là-dedans ? Tu ne veux pas plutôt parler de la durée de vie du cache de routage ?

Concernant les règles que tu proposes,

La cible ROUTE n’a jamais été incluse dans le noyau standard. Son principe de fonctionnement est désapprouvé par les développeurs eux-même, qui recommandent l’utilisation du routage avancé à la place (marquage de paquets).

Tu as écris plus haut que iA est une interface réseau mais tu l’utilises dans les options from d’ip rule et -s d’iptables qui attendent toutes les deux des adresses ou préfixes IP. Ce n’est pas cohérent.

Le trafic routé par une machine Linux ne passe pas par les chaînes OUTPUT. Il ne passe que par les chaînes PREROUTING, FORWARD et POSTROUTING.

Désolé mais je crains que tu n’aies pas trop le choix…

Non, ce n’est pas grave. Cette option n’existe plus depuis le noyau 2.6.20, la fonction correspondante étant désormais activée inconditionnellement.
URL vers le patch

PS : Il n’était pas nécessaire de rebooter la machine. Au pire un vidage du cache de routage (ip route flush cache) aurait suffi.

exacte,

je ma planté sur la ligne ip rule,
c’est plutôt:

cela dit

m’est aussi nécessaire apparemment. car j’utilise squid pour accélérer les connexions, et j’utilise l’option tcp_outgoing pour spécifier vers quelle interface squid dois vomir toute ses requêtes. cette règle impose donc que les paquets déchargés sur l’interface iB viennent directement se conformer au routage de TROUTE1 afin d’être dirigé vers les bon routeurs dédié à ce squid.

Je fais ceci par ce que en réalité j’ai deux squid, qui tournent chacun dans une prison sur la même machine, chaque squid/squidguard est dédié à un LAN interne précis et partage leurs cache en interne via ICP, et chaque LAN dispose sur la débian d’un interface et de deux routeurs RNIS dédiés. ici je n’en ai parlé que de 1 (d’ou l’iC qui sert à rien).

merci beaucoup pour les infos.