Quelle est la différence entre les tables de transfert et de routage?
la source
Quelle est la différence entre les tables de transfert et de routage?
Le routage est la décision sur quelle interface un paquet doit être envoyé. Cette décision doit également être prise pour les paquets créés localement. Les tables de routage contiennent des adresses réseau et l'interface ou nexthop associée. Cela fait référence à ip route
et ip rule
(dans un contexte Linux).
Le transfert fait référence aux paquets qui atteignent un système mais ne sont pas destinés à ce système. Le transfert est une décision du système: "Je prends le paquet et j'essaye de le transporter vers sa destination." Au lieu de simplement le laisser tomber. "transmission" est un terme courant dans le contexte des filtres de paquets. Netfilter de Linux a trois chaînes dans sa table de base: INPUT, OUTPUT et FORWARD. Cette chaîne prend simplement la décision "Ce paquet doit-il être transféré ou abandonné?" (si le transfert est généralement activé sur le système; Linux à nouveau: / proc / sys / net / ipv4 / ip_forward).
Sur la plupart des systèmes - ceux avec une seule connexion réseau - ils seront les mêmes. Sur un routeur, cependant, ils auront tendance à être différents.
La table de routage contient toutes les routes qu'un routeur apprend de ses pairs et voisins à l'aide d'un protocole de routage dynamique tel que OSPF ou BGP. Chaque route est triée et évaluée, en fonction des paramètres du protocole de routage utilisé, et le sous-ensemble des entrées de table de routage qui sont «les meilleures» est placé dans la table de transfert. Lorsque le routeur reçoit un paquet, il recherche l'adresse de destination dans la table de transfert pour décider par quelle interface envoyer le paquet et quelle doit être l'adresse du saut suivant. Au fur et à mesure que de nouvelles routes sont apprises, des interfaces mises en place ou interrompues ou des modifications de stratégie apportées au schéma de classement, la table de routage est réévaluée et la table de transfert mise à jour.
Les tables de routage sont généralement stockées dans la RAM; les tables de transfert sur les équipements haute performance seront réparties sur les linecards (dans les systèmes modulaires) et stockées dans un TCAM à plus grande vitesse. Il existe généralement un nombre fini de routes qui peuvent être conservées dans TCAM; lorsque la table de transfert dépasse la capacité TCAM, les paquets peuvent être abandonnés ou acheminés dans le logiciel (ce qui est considérablement plus lent).
la source
Tout d'abord, à mon avis, je pense que vous devez d'abord comprendre clairement la distinction entre le transfert et le routage , qui est souvent négligée. Selon le livre Computer Networks à la page 240 de Lary L.Peterson , le transfert est une série d'actions que le routeur prendra une fois qu'il recevra un paquet, notamment en regardant son adresse de destination, en consultant une table et en envoyant le paquet dans une direction déterminée par cette table. Cependant, le routage fait ici référence au processus par lequel les tables de transfert sont créées.
Pour en revenir à la question d'origine, nous pouvons tirer la conclusion que bien que nous puissions conserver une table de transfert et une table de routage dans les mêmes structures, il existe de nombreuses raisons de les séparer. Une table de transfert doit généralement être structurée pour optimiser le processus de recherche d'une adresse lors du transfert d'un paquet, qui contient plus d'informations telles que l'adresse MAC. En revanche, la table de routage se concentre généralement sur le calcul des changements de topologie, et les entrées dans la table de routage sont généralement plus succinctes, n'incluant que l'IP du saut suivant.
la source
La table de routage contient tous les chemins vers la destination différente (la même destination peut avoir 2 ou plusieurs chemins différents)
mais
La table de transfert ne contient que le meilleur chemin vers chaque destination (un seul chemin pour chaque destination)
la source