GNU/Linux >> Tutoriels Linux >  >> Linux

Comment ajouter plusieurs routes sous Linux à l'aide d'exemples de commande ip

Outre la route par défaut, vous pouvez également configurer des routes supplémentaires.

Par exemple, votre serveur peut avoir 2 interfaces (eth0 et eth1). Par défaut, tout le trafic est acheminé via l'interface eth0, quelle que soit l'adresse IP que vous avez configurée sur eth1.

Pour acheminer le trafic entrant et sortant via eth1, autre que la route par défaut (eth0), vous devez également ajouter des routes supplémentaires pour eth1 .

Dans ce didacticiel, utilisons l'exemple suivant :

  • eth0 a été configuré avec l'adresse IP 19.86.101.54 avec le masque réseau 255.255.255.0 et la passerelle par défaut 19.86.101.1
  • eth1 a été configuré avec l'adresse IP 19.86.100.176 avec le masque de réseau 255.255.255.0 et son adresse IP de passerelle est 19.86.100.1

Vous pouvez afficher votre adresse IP actuelle de vos cartes d'interface à l'aide de la commande ifconfig comme indiqué ci-dessous.

# ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:50:56:8E:0B:EC
          inet addr:19.86.101.54  Bcast:19.86.101.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3735 errors:0 dropped:0 overruns:0 frame:0
          TX packets:336 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:295679 (288.7 Kb)  TX bytes:50312 (49.1 Kb)

eth1      Link encap:Ethernet  HWaddr 00:50:56:8E:27:0D
          inet addr:19.86.100.176  Bcast:19.86.100.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:14 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:840 (840.0 b)  TX bytes:0 (0.0 b)

En outre, la sortie de la commande netstat indique que la passerelle par défaut pointe vers eth0,

# netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         19.86.101.1     0.0.0.0         UG        0 0          0 eth0
19.86.100.0     0.0.0.0         255.255.255.0   U         0 0          0 eth1
19.86.101.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0
127.0.0.0       0.0.0.0         255.0.0.0       U         0 0          0 lo
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth0

Avec les paramètres ci-dessus, vous pourrez peut-être envoyer un ping aux deux passerelles et communiquer avec d'autres appareils sans aucun problème. Mais n'oubliez pas que tout le trafic est acheminé via eth0 par défaut.

Lorsque vous envoyez un ping à l'adresse IP 19.86.100.176 depuis l'extérieur de votre réseau, vous remarquerez peut-être qu'il ne sera pas pingable.

Afin de mettre en œuvre cela, vous devez créer une nouvelle stratégie dans la table de routage. La table de routage se trouve dans /etc/iproute2/rt_tables. Le fichier de règles initial avant la configuration peut ressembler à celui illustré ci-dessous.

# cat /etc/iproute2/rt_tables
#
# reserved values
#
255     local
254     main
253     default
0       unspec
#
# local
#
#1      inr.ruhep
#

Pour afficher toutes les règles actuelles, utilisez la commande ip comme indiqué ci-dessous :

# ip rule show
0:      from all lookup local
32766:  from all lookup main
32767:  from all lookup default

Tout d'abord, effectuez une sauvegarde des rt_Tables avant d'apporter des modifications.

cd /etc/iproute2
cp rt_tables rt_tables.orig

Ensuite, créez une nouvelle entrée de table de routage de stratégie dans le fichier /etc/iproute2/rt_tables :

echo "1 admin" >> /etc/iproute2/rt_tables

Ajoutez maintenant les entrées de routage dans la table admin.

ip route add 19.86.100.0/24 dev eth1 src 19.86.100.176 table admin
ip route add default via 19.86.100.1 dev eth1 table admin

Dans l'exemple ci-dessus :

  • Dans la première commande ip, nous ajoutons le sous-réseau 19.86.100.0 avec un masque de réseau 255.255.255.0 avec l'adresse IP source 19.86.100.176 et l'appareil eth1 à la table d'administration.
  • Dans la deuxième commande ip, nous ajoutons la route 19.86.100.1 à la table admin. De cette façon, toutes les règles définies dans la table d'administration acheminent le trafic via l'appareil eth1.

Une fois les commandes ci-dessus exécutées avec succès, vous devez indiquer au système d'exploitation comment utiliser ce tableau.

Dans le "ip rule show", vous pouvez remarquer la ligne "32766:from all lookup main". Il s'agit de la ligne qui demande au système d'exploitation d'acheminer tout le trafic défini dans la table "main" qui est la passerelle par défaut.

Toutes les règles sont exécutées dans l'ordre croissant. Nous allons donc ajouter des entrées de règles au-dessus de la table "principale".

ip rule add from 19.86.100.176/24 table admin
ip rule add to 19.86.100.176/24 table admin
ip route flush cache

Dans l'exemple ci-dessus :

  • La première commande ajoute la règle selon laquelle tout le trafic allant vers l'IP d'eth1 doit utiliser la table de routage "admin" au lieu de la table "principale".
  • La deuxième commande ajoute la règle selon laquelle tout le trafic sortant de l'IP d'eth1 doit utiliser la table de routage "admin" au lieu de la table "principale".
  • La troisième commande est utilisée pour valider toutes ces modifications dans les commandes précédentes

Enfin, vérifiez que vos modifications sont correctement effectuées à l'aide de la commande suivante :

# ip rule show
0:      from all lookup local
32764:  from all to 19.86.100.176/24 lookup admin
32765:  from 19.86.100.176/24 lookup admin
32766:  from all lookup main
32767:  from all lookup default

À ce stade, vous devriez pouvoir envoyer un ping à l'adresse IP 19.86.100.176 depuis le réseau extérieur et voir que tout le trafic censé utiliser eth1 fonctionne comme prévu.

Pour rendre ces modifications persistantes lors du redémarrage, vous pouvez ajouter ces commandes à /etc/init.d/boot.local (pour SUSE Linux) ou /etc/rc.d/rc.local (pour Redhat, CentOS).

Si vous souhaitez configurer une adresse IP supplémentaire sur un sous-réseau différent, répétez toutes les étapes ci-dessus, mais utilisez un nom de table différent. Au lieu de la table "admin", utilisez la table "admin-new".


Linux
  1. Comment redémarrer Linux en utilisant la ligne de commande

  2. Comment combiner Ping et Traceroute sous Linux à l'aide d'exemples de commandes MTR

  3. Comment naviguer dans la ligne de commande Linux à l'aide du raccourci clavier (exemples de commande Linux Ctrl)

  4. Comment accélérer le processus de démarrage Linux à l'aide d'exemples de commande Startpar

  5. Exemples d'utilisation de la commande dmsetup sous Linux

Comment créer un répertoire sous Linux à l'aide de la commande mkdir

Comment utiliser la commande Dig sous Linux (10 exemples)

Comment utiliser la commande Linux rm avec des exemples

Commande Linux Route Add avec exemples

7 exemples de commande de route Linux (comment ajouter une route sous Linux)

Route Exemples de commandes sous Linux