web-dev-qa-db-fra.com

Sélection de routage: spécificité vs métrique

Je comprends que Linux choisit la route la plus spécifique vers la destination quand il le fait sélection de routage . Mais qu'en est-il de la métrique d'un itinéraire? At-il une priorité plus élevée que la spécificité de l'itinéraire?

Une référence aux détails de l'algorithme de sélection de routage utilisé par Linux serait également appréciée.

18
Eugene Yarmash

La métrique des itinéraires consiste à définir la préférence parmi les itinéraires avec une spécificité égale. Cela est vrai du routage en général (c'est-à-dire Cisco, Windows, etc.). Donc, le modèle fonctionne comme:

  1. Trouvez l'itinéraire le plus spécifique (alias la correspondance de préfixe la plus longue * )
  2. S'il y a plusieurs itinéraires avec la même spécificité, choisissez celui qui a le plus bas distance administrative (Cela fait la distinction entre des choses comme directement routes attachées, routes statiques et divers protocoles de routage).
  3. Dans ce protocole de routage et route spécifique (si la spécificité de la route et la distance administrative sont les mêmes), choisissez la route avec la métrique la plus basse

Notez qu'il y a d'autres choses qui pourraient se passer sur un tel routage basé sur la politique qui vous permet de faire des choses comme l'itinéraire basé sur l'adresse IP source. Mais la spécificité de l'itinéraire, la distance administrative, puis la métrique sont ce que je considérerais comme les trois principales choses.

* On l'appelle la correspondance de préfixe la plus longue car un sous-réseau en binaire (/ 24 par exemple) ressemble à 11111111.11111111.11111111.00000000. Ainsi, un routeur peut simplement scanner le préfixe pour les binaires 1 et s'arrêter une fois qu'il atteint un zéro, puis il a correspondu au préfixe.

28
Kyle Brandt

Linux fournit un certain nombre d'outils pour une sélection de routage flexible.

Table de routage unique

Dans le cas le plus simple, il n'y a qu'une seule table de routage du noyau et aucune route avec l'attribut SRC. Ce tableau contient un certain nombre de routes, qui y ont été placées manuellement (ip route add), par le démon DHCP ou par des démons de routage. Dans ce cas, le noyau choisit:

  • l'itinéraire le plus spécifique;
  • s'il existe plusieurs routes également spécifiques, celle avec la plus petite métrique du noyau.

Notez que la métrique du noyau (affichée par ip route show) est choisi par le démon de routage et n'est pas nécessairement lié à la métrique d'un protocole de routage particulier. Par exemple, Quagga utilise la même métrique pour toutes les routes qu'il installe dans le noyau, indépendamment de la métrique du protocole.

Itinéraires spécifiques à la source

Linux prend également en charge les itinéraires avec un attribut SRC qui ne correspondent qu'aux paquets avec une adresse source donnée. SRC ne fonctionne que pour IPv6 et était buggé jusqu'à très récemment (3.11, si la mémoire est bonne); Je ne recommande pas de l'utiliser sauf si vous savez ce que vous faites.

Plusieurs tables de routage

Si vous avez besoin de plus de flexibilité que ce qui précède, vous devrez jouer avec plusieurs tables de routage et écrire des règles pour choisir une table de routage particulière pour chaque paquet. Une technique courante consiste à répartir sur l'adresse source afin de simuler des itinéraires spécifiques à la source. Une autre technique consiste à exécuter chaque démon de routage dans sa propre table de routage et à simuler la "distance administrative" de Cisco. Tout cela est décrit en détail dans Chapitre 4 du LARTC .

9
jch