GNU/Linux >> Tutoriels Linux >  >> Linux

Commande Linux Route Add avec exemples

Le routage est la façon dont les ordinateurs communiquent sur un réseau local ou sur Internet. Pour communiquer sur un réseau, les ordinateurs doivent savoir à quelle passerelle ils doivent envoyer le trafic. Une passerelle peut être un routeur de votre réseau.

La commande route est utilisée sous Linux pour afficher et modifier la table de routage IP.

Dans ce tutoriel, je vais vous expliquer comment utiliser la commande route pour ajouter des routes statiques via une passerelle pour envoyer du trafic.

1) Afficher la table de routage

Avant de modifier la table de routage, il est bon de voir la table par défaut avec les routes existantes sur votre noyau Linux.

Utilisez la commande route avec le -n option pour afficher la table de routage IP actuelle du noyau. Cette commande permet d'identifier les réseaux connectés localement avec sa route.

La commande suivante affiche la table de routage :

$ route -n
Kernel IP routing table
Destination   Gateway      Genmask         Flags  Metric Ref  Use Iface
0.0.0.0       192.168.1.1  0.0.0.0         UG     600      0  0   eno1
169.254.0.0   0.0.0.0      255.255.0.0     U      1000     0  0   eno1
172.16.20.0   0.0.0.0      255.255.255.0   U      0        0  0   vmnet8
172.17.0.0    0.0.0.0      255.255.0.0     U      0        0  0   docker0
172.18.0.0    0.0.0.0      255.255.0.0     U      0        0  0   br-707c8e2f7441
192.168.1.0   0.0.0.0      255.255.255.0   U      600      0  0   eno1
192.168.161.0 0.0.0.0      255.255.255.0   U      0        0  0   vmnet1

Vous pouvez également utiliser netstat -nr commande pour imprimer les connexions réseau, les tables de routage, les statistiques d'interface, les connexions masquées et les adhésions à la multidiffusion.

Affichez la table de routage avec la commande netstat :

$ netstat -nr
 Kernel IP routing table
 Destination    Gateway      Genmask        Flags  MSS  Window irtt Iface
 0.0.0.0        192.168.1.1  0.0.0.0        UG     0    0      0    eno1
 169.254.0.0    0.0.0.0      255.255.0.0    U      0    0      0    eno1
 172.16.20.0    0.0.0.0      255.255.255.0  U      0    0      0    vmnet8
 172.17.0.0     0.0.0.0      255.255.0.0    U      0    0      0    docker0
 172.18.0.0     0.0.0.0      255.255.0.0    U      0    0      0    br-707c8e2f7441
 192.168.1.0    0.0.0.0      255.255.255.0  U      0    0      0    eno1
 192.168.161.0  0.0.0.0      255.255.255.0  U      0    0      0    vmnet1

Maintenant, nous avons la commande ip pour afficher les routes

$ ip route show

2) Ajouter un nouvel itinéraire

Comme nous l'avons dit plus haut, pour manipuler la table de routage, nous utilisons le route add ( add est l'option) pour indiquer manuellement un chemin statique que les paquets utiliseront via le réseau. Il est utilisé pour attribuer une route statique temporaire qui ne changera que si l'administrateur modifie manuellement les valeurs de la nouvelle route.

Il existe de nombreuses possibilités d'utilisation de l'ajout d'itinéraire commande.

Nous devons indiquer le réseau de destination, le masque de sous-réseau du réseau et la passerelle à utiliser.

route add -net <network_address> gw <gateway> <interface_name>

Alternativement, vous pouvez maintenant utiliser ip route commande, syntaxe comme suit :

ip route add <network_address> via <gateway> dev <interface_name>

Par exemple, ajoutons un nouveau réseau de route 10.0.0.0/8 et via l'adresse IP de la passerelle 192.168.1.1 :

# route add -net 10.0.0.0/8 gw 192.168.1.1 eno1

Nous pouvons maintenant afficher la table de routage en utilisant route -n :

# route -n
Kernel IP routing table
Destination   Gateway      Genmask      Flags  Metric Ref Use Iface
0.0.0.0       192.168.1.1  0.0.0.0       UG     600    0   0   eno1
10.0.0.0      192.168.1.1  255.0.0.0     UG     0      0   0   eno1
169.254.0.0   0.0.0.0      255.255.0.0   U      1000   0   0   eno1
172.16.20.0   0.0.0.0      255.255.255.0 U      0      0   0   vmnet8
172.17.0.0    0.0.0.0      255.255.0.0   U      0      0   0   docker0
172.18.0.0    0.0.0.0      255.255.0.0    U      0      0   0   br-707c8e2f7441
192.168.1.0   0.0.0.0      255.255.255.0  U      600    0   0   eno1
192.168.161.0 0.0.0.0      255.255.255.0  U      0      0   0   vmnet1

Vous pouvez ajouter netmask option si vous souhaitez ajouter une valeur de masque de réseau. S'il n'est pas fourni, la commande route trouve automatiquement la valeur de netmask.

# route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.100 eth0
Kernel IP routing table
Destination  Gateway       Genmask       Flags Metric Ref Use Iface
192.168.1.0  192.168.1.100 255.255.255.0 UG    0      0   0   eth0
192.168.1.0  *             255.255.255.0 U     0      0   0   eth0
169.254.0.0  *             255.255.0.0   U     0      0   0   eth0
10.0.0.0     192.168.1.254 255.0.0.0     UG    0      0   0   eth0
default      192.168.1.1   0.0.0.0       UG    0      0   0   eth0

Pour ajouter une route vers un hôte spécifique, utilisez -host option. Nous devons seulement indiquer la passerelle à utiliser.

route add -host <host_IP_address> gw <gateway>

Par exemple, ajoutons un hôte spécifique '10.0.0.10' puis affichons la table de routage

# route add -host 10.0.0.10 gw 192.168.1.1 eno1
# route -n
 Kernel IP routing table
 Destination   Gateway      Genmask         Flags Metric Ref Use Iface
 0.0.0.0       192.168.1.1  0.0.0.0         UG    600    0   0   eno1
 10.0.0.0      192.168.1.1  255.0.0.0       UG    0      0   0   eno1
 10.0.0.10     192.168.1.1  255.255.255.255 UGH   0      0   0   eno1
 169.254.0.0   0.0.0.0      255.255.0.0     U     1000   0   0   eno1
 172.16.20.0   0.0.0.0      255.255.255.0   U     0      0   0   vmnet8
 172.17.0.0    0.0.0.0      255.255.0.0     U     0      0   0   docker0
 172.18.0.0    0.0.0.0      255.255.0.0     U     0      0   0   br-707c8e2f7441
 192.168.1.0   0.0.0.0      255.255.255.0   U     600    0   0   eno1
 192.168.161.0 0.0.0.0      255.255.255.0   U     0      0   0   vmnet1

Dans les exemples ci-dessus, la colonne flag a des valeurs différentes et cela peut être incompréhensible.

Les drapeaux possibles et sa définition :

U - l'itinéraire est en place
H - la cible est un hôte
G - utiliser la passerelle
R - rétablir la route pour le routage dynamique
D - installé dynamiquement par démon ou par redirection
M - modifié à partir du démon de routage ou de la redirection
A - installé par addrconf
C - entrée de cache
! - rejeter l'itinéraire

3) Rejeter et supprimer un itinéraire

Nous pouvons manipuler la table de routage non seulement pour ajouter des routes statiques, mais également pour supprimer ou rejeter une route que nous insérons plus tôt.

Pour supprimer un réseau de destination de la table de routage, utilisez route del commande :

route del -net <network_address> gw <gateway> <interface_name>

Par exemple pour supprimer la route vers notre réseau 10.0.0.0/8 :

# route del -net 10.0.0.0/8 gw 192.168.1.1 eno1

Sortie

# route -n
 Kernel IP routing table
 Destination   Gateway     Genmask         Flags Metric Ref Use Iface
 0.0.0.0       192.168.1.1 0.0.0.0         UG    600    0   0   eno1
 10.0.0.10     192.168.1.1 255.255.255.255 UGH   0      0   0   eno1
 169.254.0.0   0.0.0.0     255.255.0.0     U     1000   0   0   eno1
 172.16.20.0   0.0.0.0     255.255.255.0   U     0      0   0   vmnet8
 172.17.0.0    0.0.0.0     255.255.0.0     U     0      0   0   docker0
 172.18.0.0    0.0.0.0     255.255.0.0     U     0      0   0   br-707c8e2f7441
 192.168.1.0   0.0.0.0     255.255.255.0   U     600    0   0   eno1
 192.168.161.0 0.0.0.0     255.255.255.0   U     0      0   0   vmnet1

Pour interdire une adresse IP mais elle est toujours sur la table de routage. Notez que nous utilisons toujours le paramètre add option mais à la fin de la commande, nous devons utiliser reject option. Nous pouvons conserver ou non notre passerelle mais nous ne mentionnons pas l'interface de sortie.

route  add -host <host_IP_address> reject

Dans la commande suivante, nous rejetterons notre hôte '10.0.0.10' :

# route add -host 10.0.0.10 reject

Afficher la table de routage après les modifications :

# route -n
 Kernel IP routing table
 Destination   Gateway     Genmask         Flags Metric Ref Use Iface
 0.0.0.0       192.168.1.1 0.0.0.0         UG    600    0   0   eno1
 10.0.0.10      -          255.255.255.255 !H    0      -   0    -
 10.0.0.10     192.168.1.1 255.255.255.255 UGH   0      0   0   eno1
 169.254.0.0   0.0.0.0     255.255.0.0     U     1000   0   0   eno1
 172.16.20.0   0.0.0.0     255.255.255.0   U     0      0   0   vmnet8
 172.17.0.0    0.0.0.0     255.255.0.0     U     0      0   0   docker0
 172.18.0.0    0.0.0.0     255.255.0.0     U     0      0   0   br-707c8e2f7441
 192.168.1.0   0.0.0.0     255.255.255.0   U     600    0   0   eno1
 192.168.161.0 0.0.0.0     255.255.255.0   U     0      0   0   vmnet1

Les routes ajoutées à l'aide des commandes ci-dessus ne sont pas persistantes après un redémarrage, nous avons donc ajouté des routes statiques au fichier de configuration pour le garder permanent.

Pour ajouter des routes statiques persistantes pour n'importe quelle distribution Linux, vous pouvez utiliser le fichier générique /etc/rc.local.

Pour Ubuntu et Debian, utilisez le fichier nommé '/etc/network/interfaces' et sur RHEL/CentOS, utilisez '/etc/sysconfig/network-scripts/route-ethX'.

Conclusion

Dans ce didacticiel, nous avons appris à ajouter des routes statiques sous Linux à l'aide de la commande route add. Il faut noter qu'avec cette méthode, la route ne changera pas à moins que vous ne la modifiiez. Il est important de supprimer les itinéraires dont nous n'avons pas besoin.

Related Read: How to Permanently add Static Route in Linux

Linux
  1. Commande Linux wc avec exemples

  2. Commande de tri Linux avec exemples

  3. Commande Linux Tee avec exemples

  4. Commande principale Linux avec exemples

  5. Commande JQ sous Linux avec exemples

Commande de CD Linux avec exemples

Commande Linux watch avec exemples

Commande Wait sous Linux avec des exemples

Commande IP Linux avec exemples

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

Route Exemples de commandes sous Linux