2 lignes ADSL et 1 linux
Voilà le topo: vous avez 2 lignes ADSL connecté à 1 linux. Vous aimeriez pouvoir vous connecter sur votre linux en utilisant l'une (A) ou l'autre (B) des IP publiques. Seulement voilà si vous ne faite rien de spéciale, l'une des 2 lignes (A) sera celle "par défaut". Toutes les connexions entrante sur (B) ne fonctionneront pas correctement. La cause est l'unique passerelle par défaut de votre système. Tous les paquets sortant vont sur la ligne (A) même si la connexion a été initié sur (B).
Je ne vais pas parler de load-balancing. Notre problème à régler sera de faire revenir les paquets réponses sur la même ligne que les paquets entrant grâce à iproute2. Cet outil est présent dans linux depuis la version 2.4. La commande route, que vous connaissez surement n'est qu'un wrapper simplifié de iproute2. Avec route vous ne gérer qu'une seule table de routage, celle par défaut. Nous allons créer une nouvelle table de routage qui accueillira
la 2 ième passerelle par défaut. Pour celà on rajoute une ligne dans /etc/iproute2/rt_tables :
$> echo "2 ligneB" >> /etc/iproute2/rt_tables
2: c'est la priorité. Les valeurs possibles vont de 1 à 252
ligneB: c'est un label
Il ne reste plus qu'à renseigner notre nouvelle table de routage:
$> ip route add default via passerelle_ligneB dev dev_ligneB table ligneB
exemple:
$> ip route add default via 81.27.34.254 dev eth1 table ligneB
Ensuite il faut indiquer au système d'utiliser cette table de routage pour les paquets qui concerne la ligne B:
$> ip rule add from ip_ligneB lookup ligneB prio 1000
1000: c'est une priorité. Vous pouvez voir les priorité de tables avec "ip rule". Nous devons inclure notre nouvelle table avant la table "main" qui a une priorité de 32766.
exemple:
$> ip rule add from 81.27.34.157 lookup ligneB prio 1000
Une dernière commande pour la route, il faut reconstruire le cache des routes:
$> ip route flush table cache
Vous pouvez maintenant vous connecter sur l'une ou autre des IP publiques. Tous les services locaux fonctionneront. Ceci n'est pas valable si vous faites des "port forwarding" sur des machines de votre LAN. De la même manière toutes les connexions sortantes utiliseront la ligne par défaut.
Enfin n'oubliez pas de mettre les 3 commandes dans /etc/rc.d/rc.local pour vous éviter de les taper à chaque redémarrage de la machine.
Je ne vais pas parler de load-balancing. Notre problème à régler sera de faire revenir les paquets réponses sur la même ligne que les paquets entrant grâce à iproute2. Cet outil est présent dans linux depuis la version 2.4. La commande route, que vous connaissez surement n'est qu'un wrapper simplifié de iproute2. Avec route vous ne gérer qu'une seule table de routage, celle par défaut. Nous allons créer une nouvelle table de routage qui accueillira
la 2 ième passerelle par défaut. Pour celà on rajoute une ligne dans /etc/iproute2/rt_tables :
$> echo "2 ligneB" >> /etc/iproute2/rt_tables
2: c'est la priorité. Les valeurs possibles vont de 1 à 252
ligneB: c'est un label
Il ne reste plus qu'à renseigner notre nouvelle table de routage:
$> ip route add default via passerelle_ligneB dev dev_ligneB table ligneB
exemple:
$> ip route add default via 81.27.34.254 dev eth1 table ligneB
Ensuite il faut indiquer au système d'utiliser cette table de routage pour les paquets qui concerne la ligne B:
$> ip rule add from ip_ligneB lookup ligneB prio 1000
1000: c'est une priorité. Vous pouvez voir les priorité de tables avec "ip rule". Nous devons inclure notre nouvelle table avant la table "main" qui a une priorité de 32766.
exemple:
$> ip rule add from 81.27.34.157 lookup ligneB prio 1000
Une dernière commande pour la route, il faut reconstruire le cache des routes:
$> ip route flush table cache
Vous pouvez maintenant vous connecter sur l'une ou autre des IP publiques. Tous les services locaux fonctionneront. Ceci n'est pas valable si vous faites des "port forwarding" sur des machines de votre LAN. De la même manière toutes les connexions sortantes utiliseront la ligne par défaut.
Enfin n'oubliez pas de mettre les 3 commandes dans /etc/rc.d/rc.local pour vous éviter de les taper à chaque redémarrage de la machine.


0 Comments:
Enregistrer un commentaire
<< Home