Sep 072009
 

Une fonction sympa avec linux, c’est qu’en faire un routeur fait partie des fonctions de base.
Par contre, si vous avez plusieurs lignes internet, il peut être intéressant de router sur l’une ou l’autre non pas en fonction de destinations comme le permet la table de routage « normale » mais en fonction du service demandé.

Par exemple, vous pouvez aiguiller le SSH sur la connexion lente mais peu utilisée et donc très réactive. et aiguiller le gros FTP lourdingue sur la grosse connexion rapide où passent déjà vos gros downloads de films X vos documents volumineux.

L’astuce, c’est d’employer la fonction « policy routing » du noyau et d’employer la marque netfilter pour aiguiller le trafic.

Vous n’aurez ensuite qu’a ajouter des règles de ce genre dans la table mangle

/sbin/iptables --table mangle \
               --append PREROUTING $RegleDeFiltrage \
               --jump MARK --set-mark $Direction

(bien evidemment en remplaçant $RegleDeFiltrage par quelque chose de potable et $Direction par un chiffre.)

Concernant les routes, on les crées de cette façon là.

ip rule add fwmark 1 table ADSL1
ip rule add fwmark 2 table ADSL2
ip rule add fwmark 3 table ADSL3

ip route add default via $GW_EXTERNE_ADSL1 table ADSL1
ip route add default via $GW_EXTERNE_ADSL2 table ADSL2
ip route add default via $GW_EXTERNE_ADSL3 table ADSL3
ip route add default via $GW_EXTERNE_ADSL1

Attention cependant il il y une limitation de taille !!!!
Vous ne POUVEZ pas faire conjointement du NAT « Masquerade » sur les 3 connexions.
Ca ne marchera pas.
Vous ne pouvez faire de nat et en particulier de connexion tracking que sur la route par defaut.

Dans mon exemple précédent, il faudra donc que le trafic à destination des ADSL 2 et 3 soit simplement routé et naté par la machine suivante (n’importe quelle box ADSL)

Sorry, the comment form is closed at this time.