LINUX:Notion de routage statique

De WIKI sur Linux (ADB)
Aller à la navigation Aller à la recherche

retour aux Notions de réseau


But

Nous abordons quelques notions théoriques du routage statique.


Principe

Quand une machine veut envoyer un message à une autre machine, ce message doit emprunter une route ou même une série de routes.

La machine de départ doit choisir une première route vers une autre machine. Si cette machine est la destination, la tâche est finie. Mais si ce n'est pas la machine de destination, c'est cette machine de transit à trouver la route suivante pour faire suivre le message.

Dans cet article, nous nous limiterons à des liaisons entre machines par des câbles réseaux pour une question de simplicité. Et on se limite également à un transfert d'un message entre deux machines.


Quelques définitions:

  • Un réseau est un ensemble de machines reliées entre elles par des câbles réseaux au travers de switchs.
  • Une station de travail, un serveur sont des machines qui vont s'échanger des messages. Le routeur peut lui aussi participer à ces échanges.
  • Un routeur ou passerelle est une machine qui sert à relier plusieurs réseaux; il appartient donc à ces réseaux.
  • Un interface réseau est une partie matériel de la machine où vient se connecter le câble réseau. Une station de travail ou un serveur n'ont habituellement qu'un interface réseau actif. Par contre, un routeur ou une passerelle ont plusieurs interfaces réseaux.
  • Un switch est un appareil qui interconnecte les différentes machines du réseau par les câbles.
  • Chaque interface a une adresse réseau IPv4 ou IPv6 mais également une adresse physique ou adresse MAC. Tout constructeur d'un interface réseau inscrit de façon définitive une adresse physique qui doit être unique.


Situation simple

Dans le schéma ci-dessous, nous avons représenter deux réseaux, deux stations de travail par réseau et une passerelle ou routeur.

  • Les stations de travail sont dessinées sous forme de rectangle et leur nom commence par "WS-".
  • Le routeur ou passerelle est au centre sous forme d'un rectangle et son nom commence par "Router-".
  • Les traits sont les câbles réseaux.
  • Le switch est représenté sous forme d'un ovale avec à l'intérieur le n° du réseau.
  • Seuls les interfaces du routeur sont notés car il en a plusieurs. Mais les stations de travail et serveurs en ont d'office une mais elle n'est pas notée afin de simplifier le schéma.



Chaque machine (rectangle) doit se constituer une table de routes ou de routage.

Prenons l'exemple de la station de travail "WS-11":

  • Le premier cas regroupe les transferts vers les autres machines du même réseau. Le système crée une entrée d'office dans notre table de routage. Pour la machine "WS-11", cette entrée note qu'elle appartient au réseau 1; c'est une route directe.
  • Le second cas regroupe tous les autres transferts. Chaque route va définir vers quel routeur envoyer le message vers un réseau spécifique. Ce dernier se chargera de la suite. Il y a un cas spécial; on peut définir une route par défaut qui a pour but de résoudre la grande majorité des transferts. Le reste des cas sont réglés par des routes spécifiques. Ces routes doivent être définies lors de la configuration de la partie réseau de la machine.


Ce schéma est très simple.

Prenons le cas d'un transfert de la machine "WS-11" vers la machine "WS-12". Comme ils sont sur le même réseau, on utilise la route directe. Le processus est le suivant:

  • D'après l'adresse de la machine cible, elle sait qu'elles font partie du même réseau.
  • La machine source doit connaitre l'adresse physique de cette machine cible. Pour cela, elle envoie un message à toutes les machines du réseau pour savoir qui connait cette adresse physique ou adresse MAC.
  • Si une autre machine connait cette adresse physique, il la transmet.
  • Maintenant la machine source connait où envoyer son message, ce qu'il fait.

Pour le second cas, la machine "WS-11" veut envoyer un message à la machine "WS-22". Elles sont sur des réseaux différents; la procédure est donc différente:

  • D'après l'adresse de la machine cible, elle sait qu'elle est sur un autre réseau.
  • Elle examine les autres routes. Il cherche une route qui concerne le réseau 2. Cette route décrit cette route: Pour atteindre le réseau 2, on doit envoyer le message au routeur "Rourer-12" sur son interface "A". Ce qu'il fait.
  • Le routeur "Router-12" a deux routes directes car il a deux interfaces réseaux. L'interface A pour le réseau 1 et l'interface B pour le réseau 2. Le routeur, en examinant l'adresse de la cible, remarque qu'elle fait partie du réseau 2 auquel il est connecté via son interface "B". C'est sa seconde route directe de sa table de routage.
  • Le reste du travail est équivalent à notre premier cas mais effectué par le routeur "Router-12" qui effectue la recherche de l'adresse MAC de la machine cible "WS-22" sur le réseau 2. Le message arrive à la machine "WS-22".

Remarquons que pour ce second cas, nous avons utilisé une route définie dans le détail. Mais comme chaque machine "WS-" n'a qu'une route spécifique qui passent toutes par le seul routeur présent. Ces routes peuvent être remplacées par des routes par défaut qui règles tous les cas. Une route par défaut, au contraire d'une route spécifique, ne spécifie pas le numéro du réseau cible; seul l'adresse du routeur est nécessaire, celle appartenant au même réseau (machine source et routeur).


Routage plus conséquent

Nous avons compliqué l'architecture. Voyez le schéma ci-dessous. Nous allons construire les tables de routage. Le principe est simple; on se positionne sur chaque machine, spécialement les noeuds ou routeurs et on réfléchit sur la façon d'atteindre chaque réseau. Le système peut se compliquer si on a plusieurs routes possibles. Selon la stratégie, soit on privilégie une route soit la route alternative est gardée en cas de panne soit on s'oriente vers la répartition de charge.

Pour constituer les tables de routage, il faut se placer au niveau de chaque machine en commençant par les noeuds ou routeurs. Et sur cette machine, il faut établir des routes afin de pouvoir joindre tous les réseaux. La liaison avec le réseau directement connecté à la machine est généré automatiquement par la machine elle-même. On passe ensuite à la route par défaut et enfin au reste des réseaux non encore traités.



Le tableau qui suit, reprend la table de routage des stations de travail. On a privilégié les routes par défaut.

La première ligne reprend la route directe sur le réseau local; la seconde, la route par défaut qui mène notamment à Internet.

Table de routage des stations de travail
Station de
travail
source
Réseau de
destination
Routeur de
destination
Interface
du routeur de
destination
WS-1 1
Défaut
-
Router-I1
-
B
WS-2 2
Défaut
-
Router-12
-
D
WS-3 3
Défaut
-
Router-134
-
F
WS-4 4
Défaut
-
Router-134
-
G
WS-5 5
Défaut
-
Router-356
-
I
WS-6 6
Défaut
-
Router-356
-
J


Le tableau suivant, reprend la table de routage des routeurs.

Les premières lignes reprennent la route directe sur le réseau local; ensuite, la route par défaut qui mène notamment à Internet. Enfin les routes vers les autres réseaux.

Table de routage des routeurs
Routeur
source
Interface
du routeur
source
Réseau de
destination
Routeur de
destination
Interface
du routeur de
destination
Router-I1 A
B
A
B
B
B
B
B
Réseau Internet
1
Défaut
2
3
4
5
6
-
-
Router-Internet
Router-12
Router-134
Router-134
Router-134
Router-134
-
-
 ?
C
E
E
E
E
Router-12 C
D
C
C
C
C
C
1
2
Défaut
3
4
5
6
-
-
Router-I1
Router-134
Router-134
Router-134
Router-134
-
-
B
E
E
E
E
Router-134 E
F
G
E
E
F
F
1
3
4
Défaut
2
5
6
-
-
-
Router-I1
Router-12
Router-356
Router-356
-
-
-
B
C
H
H
Router-356 H
I
J
H
3
5
6
Défaut
-
-
-
Router-134
-
-
-
F


Prenons un exemple de message émis par la machine "WS-1" et destiné par la machine "WS-2".

Suivi du message par les tables de routage
Machine
source
Interface
de sortie
Réseau de
passage
Machine de
destination
Interface
d'arrivée
WS-1 - 1 Router-I1 B
Router-I1 B 1 Router-12 C
Router-12 D 2 WS-2 -

On remarque que la route par défaut mène au routeur Router-I1 qui rectifie de tir en le renvoyant vers le bon routeur Router-12. Ceci est dû au choix au niveau des stations de travail de n'implémenter qu'une route par défaut qui privilégie l'accès le plus direct vers Internet.


Quand une machine envoie un message à une autre, cette dernière lui répond. Et donc le chemin inverse doit aussi être bon. Car, par exemple, la machine qui effectue une requête HTTP ne recevra pas la réponse si la route de retour est mauvaise ou coupée. Voici le parcours inverse.

Suivi du message par les tables de routage
Machine
source
Interface
de sortie
Réseau de
passage
Machine de
destination
Interface
d'arrivée
WS-2 - 2 Router-12 D
Router-12 C 1 WS-1 -


IPv4

Voici le même schéma appliqué à un adressage IPv4. Pour l'adressage IPv6, c'est analogue mais avec un texte nettement plus long et moins lisible.



Si on prend le cas du routeur Router-134, on peut afficher la table de routage avec la commande:

ip route

qui affiche:


default via 192.168.1.1 dev eth0 proto static metric 100
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.3 metric 100
192.168.3.0/24 dev eth1 proto kernel scope link src 192.168.3.1 metric 100
192.168.4.0/24 dev eth2 proto kernel scope link src 192.168.4.1 metric 100
192.168.2.0/24 via 192.168.1.2 dev eth0 proto static metric 100
192.168.5.0/24 via 192.168.3.2 dev eth1 proto static metric 100
192.168.6.0/24 via 192.168.3.2 dev eth1 proto static metric 100

ou:

route -n 

ou:

netstat -nr

qui affiche:


Table de routage IP du noyau
Destination     Passerelle      Genmask         Indic Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    100    0        0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U     100    0        0 eth0
192.168.3.0     0.0.0.0         255.255.255.0   U     100    0        0 eth1
192.168.4.0     0.0.0.0         255.255.255.0   U     100    0        0 eth2
192.168.2.0     192.168.1.2     255.255.255.0   UG    100    0        0 eth0
192.168.5.0     192.168.3.2     255.255.255.0   UG    100    0        0 eth1
192.168.6.0     192.168.3.2     255.255.255.0   UG    100    0        0 eth1

  • La première ligne est celle par défaut. Elle spécifie qu'on envoie le message au routeur "192.168.1.1" en sortant par l'interface "eth0".
  • Les trois suivantes sont les routes locales, directes. Par exemple, à la troisième ligne, l'interface "eth1" est directement connecté au réseau "192.168.3.0/24".
  • Les trois dernières sont les routes spécifiques menant vers les autres réseaux. La dernière ligne, nous indique que pour atteindre le réseau "192.168.6.0/24", on envoie les messages au routeur "192.168.3.2" en sortant par l'interface "eth1".

Dans cet exemple, on peut noter que tous les réseaux sont repris. Ceux d'Internet sont inclus dans la route par défaut. Pour information, la métrique (Metric) représente le niveau de préférence à donner à une route quand il y a deux possibilités de trajet. La valeur la plus basse est préférée si elle est active.


Pour la configuration, il est possible d'utiliser une commande de ligne ou de modifier directement les fichiers de configuration par interface se trouvant dans le répertoire "/etc/NetworkManager/system-connections". Mais le plus simple est d'utiliser un interface graphique tel "nmtui".


Note

Il existe des routages dynamiques qui remplissent automatiquement les tables de routage. Il y a plus de 30 ans, j'ai essayé le système RIP sur des routeurs Digital avec un software Cisco. Au début tout semblait bien fonctionner mais après quelques temps, ce système a déraillé et depuis lors, sous les conseils de Belgacom, je suis resté sur le routage statique. En production, on ne sait faire des essais sans perturber la société.




retour aux Notions de réseau