Routage Avancé sous linux – Politique de routage

Hello,

Comme je vais devoir jouer pas mal sur du réseau avec des machines linux prochainement, attendez vous à trouver quelques articles sur la gestion du réseau sous linux.

Lorsque l’on commence à jouer avec de nombreux réseaux (ou des configurations plus sioux) sur une seule et même machine, il devient intéressant d’utiliser des « Routing Policy ».

Cela vous permettra aussi de comprendre ce vieille article, sur lequel on me pose encore des questions sur l’utilisation des tables de routage (le but était d’utiliser les tables de routage pour choisir entre le VPN ou le FAI pour visiter le net en fonctions des ip sur lesquels on allait).

Création d’une table de routage

Tout commence avec une table de routage spécifique :

echo 200 maroute >> /etc/iproute2/rt_tables

Ici on a crée une route nommé « maroute » avec pour numéro 200, le numéro permet d’identifier notre route dans le système, il se doit donc d’être unique sur votre machine, sinon, vous aurez des problèmes.
!!! -> La modification précédente est persistente.

Création d’une Routing Policy

Une politique de routage est nécessaire pour faire passer du traffic sur notre nouvelle table de routage :

ip rule add from 8.8.8.8 lookup maroute

Ici, tout traffic provenant de 8.8.8.8 ira sur « maroute ».

On peut aussi rajouter des informations réutilisable par le firewall :

ip rule add fwmark 1 lookup maroute

Qui permet ensuite d’executer des règles particulière comme celle-ci:

iptables -t nat -A POSTROUTING -m mark --mark 1 -j SNAT --to-source 10.8.0.102

Tout paquet « marqué » 1 sera SNATé sur 10.8.0.102.

Les politiques de routage c’est bien, mais le routage c’est bien aussi 😉

Il ne faut pas non plus oublier d’assigner une route (par défaut ou non) sur notre table de routage …

ip route add default via 192.168.0.1 dev eth1 table maroute

Ici, tout traffic traversant cette table sera renvoyé sur 192.168.0.1 (si elle n’a pas pu être addressé dans le sous réseau).

Que faire avec ça ?

Quel est l’interêt de ce genre de routage ?
Il y en a plusieurs :

  • Un nombre important de réseaux à gérer sur une même machine
  • Des règles de gestion spécifique (marquage de paquet, …)
  • Des routages sur différentes interfaces (switch de VPN sur différents réseaux)
  • Ma préféré étant : possibilité d’aggréger des connexions => Dans un futur article ;).