Olivier Fredj le 09/06/2006 Eric Auge le 19/06/2006

Objectif:

Avoir plusieurs routes par défaut sur la même box Linux.

Intro:

Vous allez me dire mais à quoi ça peut bien me servir mon bon mossieur ?! Dans mon cas ça m'a servi pour une migration, il a fallu que je bouge en douceur plusieurs machines d'un vlan à un autre, et je ne pouvais donc pas faire des alias tout bêtes sur mes cartes réseaux. Cette config est aussi assez utile si vous avez par exemple plusieurs connexions internet.

Pré-requis:

  • Un kernel avec l'option Linux Advanced router.
  • iproute2.

Théorie:

Nous avons donc notre box Linux ayant au moins deux interfaces, chacune sur un réseau différent, nous prendrons dans cet exemple deux réseaux privés, mais c'est exactement la même chose avec des réseaux publics.

                             +------------------+
  [gw out 10.0.0.254/24]-----| eth0 10.0.0.1/24 |
                             |                  |
  [gw out 10.0.1.254/24]-----| eth1 10.0.1.1/24 |
                             +------------------+

Nous allons créer deux “tables” de routage avec des routes par défaut différentes pour chacun de nos réseaux, puis nous allons créer des règles permettant de router le trafic sur la bonne table.

Pratique:

Configuration des cartes réseaux:

ifconfig eth0 10.0.0.1 netmask 255.255.255.0
ifconfig eth1 10.0.1.1 netmask 255.255.255.0

Création des “tables”:

echo "200 R0">>/etc/iproute2/rt_tables
echo "201 R1">>/etc/iproute2/rt_tables

Ajout des routes :

# pour 10.0.0.0/24
ip route add 10.0.0.0/24 dev eth0 table R0
ip route add default via 10.0.0.254 table R0  

# pour 10.0.1.0/24
ip route add 10.0.1.0/24 dev eth1 table R1
ip route add default via 10.0.1.254 table R1

Ajout des règles :

ip rule add from 10.0.0.0/24 table R0
ip rule add from 10.0.1.0/24 table R1

Voila c'est fini ! Si vous voulez router le trafic d'un troisième réseau via ces 2 réseaux, vous pouvez rajouter des règles “ip rule”. Vous pouvez aussi jouer avec iptables et la cible MARK, ip rule vous permet de créer des règles sur des marques posées par le fw, ça vous permet par exemple de faire passer le ssh et l'irc sur un réseau et le ftp sur l'autre lien .

linux/iproute2.txt · Last modified: 2010/01/12 13:29 (external edit)