GNU/Linux >> Tutoriels Linux >  >> Linux

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

Dans la 1ère partie de la série Routage IP, nous avons appris les bases du routage IP Linux.

La commande Route est utilisée pour afficher/manipuler la table de routage IP. Il est principalement utilisé pour configurer des routes statiques vers un hôte ou des réseaux spécifiques via une interface.

Dans cet article, nous verrons comment manipuler les tables de routage sous Linux à l'aide de la commande route.

Nous expliquerons d'abord comment le routage est effectué avec quelques exemples de commande de route de base, puis nous expliquerons à l'aide d'un exemple d'architecture réseau comment configurer des routes dans votre réseau.

Je. Comment le routage est-il effectué ?

1. Afficher les itinéraires existants

La commande route par défaut affichera les détails des entrées de la table de routage du noyau. Dans cet exemple, l'adresse IP du système sur lequel la commande route est exécutée est 192.168.1.157

$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     *               255.255.255.0   U     0      0        0 eth0

La commande ci-dessus montre que si la destination se trouve dans la plage réseau 192.168.1.0 – 192.168.1.255, alors la passerelle est *, qui est 0.0.0.0.

Lorsque des paquets sont envoyés dans cette plage IP, l'adresse MAC de la destination est trouvée via le protocole ARP et le paquet sera envoyé à l'adresse MAC.

Si vous ne savez pas ce qu'est ARP, vous devez d'abord comprendre comment fonctionne le protocole ARP.

Afin d'envoyer des paquets vers une destination qui ne se trouve pas dans cette plage d'adresses IP, les paquets seront transmis à une passerelle par défaut, qui décide du routage ultérieur pour ce paquet. Nous verrons cela sous peu.

Par défaut, la commande route affiche le nom d'hôte dans sa sortie. Nous pouvons lui demander d'afficher l'adresse IP numérique en utilisant l'option -n comme indiqué ci-dessous.

$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
0.0.0.0         192.168.1.10    0.0.0.0         UG    0      0        0 eth0

2. Ajouter une passerelle par défaut

Nous pouvons spécifier que les paquets qui ne sont pas dans le réseau doivent être transmis à une adresse de passerelle.

La commande route add suivante définira la passerelle par défaut sur 192.168.1.10.

$ route add default gw 192.168.1.10

Maintenant, la commande route affichera les entrées suivantes.

$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     *               255.255.255.0   U     0      0        0 eth0
default         gateway.co.in   0.0.0.0         UG    0      0        0 eth0

Nous venons maintenant d'ajouter une passerelle par défaut à notre machine. Pour vérifier s'il fonctionne correctement, envoyez un ping à un hôte externe (par exemple, google.com) pour envoyer un paquet ICMP.

$ ping www.google.com

Voici les séquences d'événements qui se produisent lorsque la commande ping ci-dessus est exécutée.

  1. Tout d'abord, il interrogera le serveur DNS pour obtenir l'adresse IP de google.com (par exemple :74.125.236.34)
  2. L'adresse de destination ( 74.125.236.34 ) n'est pas dans la plage du réseau.
  3. Ainsi, dans la couche 3 (en-tête IP), l'adresse IP DESTINATION sera définie sur "74.125.236.34".
  4. Dans Layer-2, l'adresse MAC DESTINATION sera remplie comme l'adresse MAC de la passerelle par défaut (MAC de 192.168.1.10). Le MAC sera trouvé en utilisant ARP comme décrit précédemment.
  5. Lorsque le paquet est envoyé, le commutateur réseau (qui fonctionne sur la couche 2) envoie le paquet à la passerelle par défaut puisque le MAC de destination est celui de la passerelle.
  6. Une fois que la passerelle reçoit le paquet, en fonction de sa table de routage, elle transmet les paquets plus loin.

Les 2 exemples ci-dessus auraient donné une bonne idée de la façon dont le routage est effectué au sein d'un réseau. Nous allons maintenant voir d'autres options de ligne de commande disponibles avec la commande route.

3. Répertorier les informations du cache de routage du noyau

Le noyau conserve les informations du cache de routage pour acheminer les paquets plus rapidement. Nous pouvons lister les informations du cache de routage du noyau en utilisant le drapeau -C.

$ route -Cn
Kernel IP routing cache
Source          Destination     Gateway         Flags Metric Ref    Use Iface
192.168.1.157   192.168.1.51    192.168.1.51          0      0        1 eth0
192.168.1.157   74.125.236.69   192.168.1.10          0      0        0 eth0
.
.
.

4. Refuser le routage vers un hôte ou un réseau particulier

Parfois, nous pouvons vouloir rejeter le routage des paquets vers un hôte/réseau particulier. Pour ce faire, ajoutez l'entrée suivante.

$ route add -host 192.168.1.51 reject

Comme vous le voyez ci-dessous, nous ne pouvons pas accéder à cet hôte particulier (c'est-à-dire l'hôte .51 que nous venons de rejeter).

$ ping 192.168.1.51
connect: Network is unreachable

Cependant, nous pouvons toujours accéder à d'autres hôtes du réseau (par exemple, l'hôte .52 est toujours accessible).

$ ping 192.168.1.53
PING 192.168.1.53 (192.168.1.53) 56(84) bytes of data.
64 bytes from 192.168.1.53: icmp_seq=1 ttl=64 time=7.77 ms

Si vous souhaitez rejeter un réseau entier ( 192.168.1.1 - 192.168.1.255 ), ajoutez l'entrée suivante.

$ route add -net 192.168.1.0 netmask 255.255.255.0 reject

Désormais, vous ne pouvez accéder à aucun des hôtes de ce réseau (par exemple :.51, .52, .53, etc.)

$ ping 192.168.1.51
connect: Network is unreachable

$ ping 192.168.1.52
connect: Network is unreachable

$ ping 192.168.1.53
connect: Network is unreachable

II. Un exemple d'architecture réseau (pour comprendre le routage)

Utilisons l'exemple d'architecture réseau suivant pour le reste des exemples.

Dans le schéma ci-dessous, nous avons 2 réseaux individuels ( 192.168.1.0 et 192.168.3.0, avec un masque de sous-réseau de 255.255.255.0 ).

Nous avons également une machine « GATEWAY » avec 3 cartes réseau. La 1ère carte est connectée à 192.168.1.0, la 2ème carte est connectée à 192.168.3.0 et la 3ème carte est connectée au monde extérieur.

5. Rendre 192.168.3.* accessible depuis 192.168.1.*

Nous devons maintenant ajouter une entrée de routage de sorte que nous puissions envoyer un ping à 192.168.3. adresses IP de la série à partir de 192.168.1. série. Le point commun que nous avons est la machine GATEWAY.

Ainsi, sur chaque machine du réseau 192.168.1.*, une passerelle par défaut sera ajoutée comme indiqué ci-dessous.

$ route add default gw 192.168.1.10

Désormais, lorsque 192.168.1.1 envoie un ping à 192.168.3.1, il ira à GATEWAY via 192.168.1.10.

Dans GATEWAY, ajoutez l'entrée de routage suivante.

$ route add -net 192.168.3.0 netmask 255.255.255.0 gw 192.168.3.10

Désormais, tous les paquets adressés au réseau 192.168.3.* seront transmis via l'interface 192.168.3.10, qui transmet ensuite les paquets à la machine adressée.

6. Rendre 192.168.1.* accessible depuis 192.168.3.*

C'est très similaire à ce que nous avons fait plus tôt.

Ainsi, sur chaque machine du réseau 192.168.3.*, une passerelle par défaut sera ajoutée comme indiqué ci-dessous.

$ route add default gw 192.168.3.10

Dans GATEWAY, ajoutez l'entrée de routage suivante.

$ route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.10

Désormais, les machines 192.168.3.* peuvent envoyer un ping aux machines 192.168.1.*.

7. Autoriser l'accès à Internet (Monde externe)

Dans les deux exemples précédents, nous avons interconnecté les 2 réseaux différents.

Nous devons maintenant accéder à Internet à partir de ces 2 réseaux différents. Pour cela, nous pouvons ajouter un routage par défaut (lorsqu'aucune règle de routage ne correspond) au 125.250.60.59 qui est connecté au monde extérieur comme suit.

$ route add default gw 125.250.60.59

Voici comment cela fonctionne :

  1. Maintenant, lorsque vous essayez d'accéder à Internet (par exemple :ping google.com) à partir de l'une de ces machines (par exemple, à partir de 192.168.3.2), voici la séquence d'événements qui se produit.
  2. Étant donné que la destination (google.com) n'appartient pas à la série 3.*, elle sera transmise à GATEWAY via l'interface 3.10
  3. Dans GATEWAY, il vérifie si la destination est dans la plage 1.*. Dans cet exemple, ce n'est pas le cas.
  4. Il vérifie ensuite si la destination se trouve dans la plage 2.*. DANS cet exemple, ce n'est pas
  5. Enfin, il prend la route par défaut pour transférer les paquets (c'est-à-dire en utilisant l'interface 125.250.60.59, qui est connectée au monde extérieur).

Linux
  1. Comment ajouter une nouvelle route statique sur RHEL7 Linux

  2. 7 Exemples de commandes Linux df

  3. Exemples de commande rm sous Linux

  4. Exemples de commandes ps sous Linux

  5. w Exemples de commandes sous Linux

Comment ajouter et supprimer une route statique sous Linux à l'aide de la commande IP

Comment utiliser la commande Grep sous Linux + exemples utiles de Grep

Commande Linux Route Add avec exemples

Comment ajouter une route sous Linux

Exemples de commandes id sous Linux

Route Exemples de commandes sous Linux