Méthode Générale
Le script /etc/init.d/network ajoute les routes statiques avec cette portion de code :
# Add non interface-specific static-routes.
if [ -f /etc/sysconfig/static-routes ]; then
grep "^any" /etc/sysconfig/static-routes | while read ignore args ; do
/sbin/route add -$args
done
fi
Ce qui implique un fichier /etc/sysconfig/static-routes ayant cette syntaxe :
Exemple:
Pour ajouter une route vers les réseaux 192.168.12.0/24 et 192.168.13.0/24 via ma passerelle 192.168.10.254.
any net 192.168.12.0 netmask 255.255.255.0 gw 192.168.10.254
any net 192.168.13.0 netmask 255.255.255.0 gw 192.168.10.254
Méthode individuelle
Les routes statiques peuvent aussi être définies par interface.
Vous devez créer un fichier pour chaque interface pour laquelle vous voulez créer des routes.
Ces fichiers se trouvent dans le dossier /etc/sysconfig/network-scripts .
Exemple:
La commande suivante crée le fichier si il n’existe pas :
touch /etc/sysconfig/network-scripts/route-eth0
Editez ensuite le fichier et si on reprends l’exemple précédent, on ajoute les lignes suivantes :
192.168.12.0/24 via 192.168.10.254
192.168.13.0/24 via 192.168.10.254
Routes statiques persistantes pour TOUTE distribution linux
Vous pouvez utiliser cette méthode pour ajouter des routes statiques et cela fonctionnera sur toute distribution linux utilisant un fichier rc.local.
Cependant, cette méthode est un contournement un peu « crade ».
Le problème principal à mon goût est que le script rc.local n’est joué qu’au démarrage et les routes disparaissent si on fait un « service network restart ». Il faut alors relancer le script rc.local à la main.
Editer votre fichier /etc/rc.local et ajoutez vos routes statiques en utilisant la syntaxe complète de la commande route :
Exemple:
route add -net 192.168.12.0 netmask 255.255.255.0 gw 192.168.10.254 dev eth0
route add -net 192.168.12.0 netmask 255.255.255.0 gw 192.168.10.254 dev eth0