Routage Dynamique sous Linux avec Bird

Pour avoir les notions de routage, je vous conseille de lire cette page Routage, elle vous permettra d'avoir une machine routeur pour accéder aux différents sous réseaux.

Le but de cette documentation est d'éviter aux différents utilisateurs des sous-réseaux de mettre la table de routage à jour à la main. Quand le réseau est fixe, ce n'est pas dérangeant de paramétrer 1 fois la table de routage, mais si on ajoute des sous-réseaux régulièrement c'est un peu plus embêtant. Donc nous allons utiliser le logiciel Bird (très peu de doc sur le net) pour mettre à jour automatiquement la table de routage de toutes les machines.

Explication avec un schéma:

Normalement compatible avec toutes les versions d'Ubuntu ayant le paquet Bird disponible.

Pour faire un routeur dynamique, il vous faut :

  • Une machine routeur (voir Routage)
  • Des machines dans les différents sous-réseaux

Il faut installer Bird sur la machine routeur et sur tous les postes qui veulent bénéficier de la mise à jour de la table de routage, installez le paquet bird.

Il faut configurer le service Bird sur la machine routeur (serveur bird), puis mettre une configuration différente sur toutes les autres machines (client bird).

Coté machine routeur

Editer /etc/bird.conf avec les droits d'administration :

protocol kernel {
persist;                # Don’t remove routes on BIRD shutdown
scan time 20;           # Scan kernel routing table every 20 seconds
export all;             # Default is export none
 
}
 
protocol device {
scan time 10;           # Scan interfaces every 10 seconds
}
 
protocol direct {
export all;
}
 
protocol rip {
export all;
import all;
port 1520;
authentication plaintext;
password “text”;
honor always;
interface “eth*”{ mode broadcast; };
}

Il se peut que le service ne démarre pas tout seul.

sudo /etc/init.d/bird start

Coté client

Dans notre exemple, nous nous plaçons sur une machine qui est dans le sous-réseau "192.168.160.0",donc il faut préciser dans notre fichier que nous voulons récupérer toutes les routes sauf la route pour le réseau local (192.168.160.0), car elle passe par un autre routeur.

Editer /etc/bird.conf avec les droits d'administration :

protocol kernel{
learn;
import all;
export all;
}
 
protocol device{
}
 
protocol rip {
import filter {
if net ~ [ 192.168.160.0/24 ] then {   # Only remote networks
reject;
}
else accept;
};
#    export all;
port 1520;
authentication plaintext;
password “text”;
honor neighbor;
interface “eth*”{mode broadcast;};
}

Il se peut que le service ne démarre pas tout seul.

sudo /etc/init.d/bird start

Après quelques secondes, nous vérifions la table de routage (côté client).

route
192.168.220.0    192.168.160.61    255.255.255.0   UG    0      0        0 eth0
192.168.160.0     *               255.255.255.0   U     0      0        0 eth0
192.168.110.0    192.168.160.61    255.255.255.0   UG    0      0        0 eth0
link-local      *               255.255.0.0     U     1000   0        0 eth0
default         router-network-local 0.0.0.0         UG    0      0        0 eth0

Donc en ajoutant un sous-réseau à la machine routeur, celle-ci nous mettra à jour notre table de routage sans aucune modification manuellement.

  • FIXME

Contributeur principal : winnie31 et Patrice.

  • routage_dynamique.txt
  • Dernière modification: Le 17/08/2017, 11:55
  • (modification externe)