Maison > Tutoriel système > Linux > le corps du texte

Le secret du suivi du routage réseau, les compétences de détection du routage Linux révélées !

王林
Libérer: 2024-02-13 22:27:18
avant
500 Les gens l'ont consulté

En tant qu'administrateur Linux, avez-vous déjà rencontré des problèmes tels qu'une mauvaise connexion réseau et une latence élevée ? Avez-vous déjà voulu en savoir plus sur les techniques de traçage et de détection des itinéraires réseau pour mieux résoudre les problèmes ? Si tel est le cas, alors vous devez acquérir des compétences en détection de routage sous Linux ! Dans cet article, nous présenterons en détail comment utiliser les outils de ligne de commande Linux pour effectuer rapidement et facilement le traçage et la détection d'itinéraire.

Le secret du suivi du routage réseau, les compétences de détection du routage Linux révélées !

linux vue routage réseau

Chaque ordinateur connecté à un réseau nécessite une sorte d'instructions de routage pour les paquets réseau TCP/IP lorsqu'ils quittent l'hôte local. C'est généralement très simple puisque la plupart des environnements réseau sont très simples et qu'il n'existe que deux options pour laisser des paquets. Tous les paquets sont envoyés aux appareils du réseau local ou à d'autres réseaux distants.

Assurez-vous de définir le réseau "local" comme le réseau logique où se trouve l'hôte local, et généralement aussi le réseau physique. Logiquement, il s'agit du sous-réseau local dans lequel l'hôte se voit attribuer l'une des plages d'adresses IP du sous-réseau local. Physiquement, cela signifie que l'hôte est connecté à un ou plusieurs commutateurs, qui sont également connectés au reste du réseau local.

Modèle de réseau TCP/IP

Avant de vous lancer dans le routage, obtenez de l'aide sur la manière dont les paquets parviennent au bon hôte sur le réseau. Le modèle de réseau TCP/IP définit une pile à cinq couches qui décrit les mécanismes nécessaires pour déplacer les paquets d'un hôte à un autre, que cet hôte se trouve sur un réseau local ou dans le monde entier. Dans la description suivante de ce modèle, chaque couche est numérotée et contient également le nom de l'unité de données traitée par cette couche.

5. Couche application : Message Cette couche comprend les protocoles de connexion requis pour la communication par diverses applications réseau, telles que HTTP, DHCP, SSH, FTP, SMTP, IMAP, etc. Lorsque vous demandez une page Web à un site Web distant, une demande de connexion est envoyée au serveur Web, une réponse est renvoyée à l'hôte de cette couche et le navigateur affiche la page Web dans sa fenêtre.

4. Couche transport : segment TCP. La couche transport fournit des services de transfert de données et de gestion de flux de bout en bout, indépendants du type de données et du protocole transportés. Il utilise les ports 80 (par exemple HTTP) et 25 (SMTP) pour établir une connexion entre l'hôte expéditeur et l'hôte distant.

3. Couche Internet : paquets de données. Le routage des paquets est effectué au niveau de la couche Internet. Cette couche est responsable du routage des paquets sur deux ou plusieurs réseaux différents pour atteindre leur destination finale. Cette couche utilise les adresses IP et les tables de routage pour déterminer le prochain périphérique auquel envoyer le paquet. S'il est envoyé à un routeur, chaque routeur est uniquement responsable de l'envoi du paquet au routeur suivant de la série, et non du mappage de l'intégralité de l'itinéraire depuis l'hôte local vers l'hôte de destination. La couche Internet concerne principalement les routeurs qui communiquent avec eux pour déterminer le prochain routeur sur la liaison.

2. Couche liaison de données : framework. La couche liaison gère les connexions directes entre les hôtes matériels sur un seul réseau logique local. Cette couche utilise les adresses MAC (Media Access Control) intégrées dans les cartes d'interface réseau (NIC) pour identifier les périphériques physiques connectés au réseau local. Cette couche ne peut pas accéder aux hôtes qui ne sont pas sur le réseau local.

1. Couche physique : bits. Il s'agit de la couche matérielle, composée de la carte réseau et des câbles Ethernet physiques, ainsi que des protocoles de niveau matériel utilisés pour transmettre les bits individuels qui constituent la trame de données entre deux hôtes ou autres nœuds de réseau qui constituent la connexion locale.

Un exemple simple

Alors, à quoi cela ressemble-t-il lorsqu'un hôte envoie réellement des données sur le réseau en utilisant le modèle de réseau TCP/IP ? Ceci est ma description complète de la façon dont les données se déplacent d'un réseau à un autre. Dans cet exemple, mon ordinateur envoie une requête de page Web à un serveur distant.

Sur la couche application, le navigateur initie un message de demande de connexion HTTP à l'hôte distant www.example.com pour renvoyer les données contenant le contenu de la page Web. Voici le message, il contient uniquement l'adresse IP du serveur web distant.

La couche transport encapsule le message contenant la requête de page Web dans un datagramme TCP ciblé sur l'adresse IP du serveur Web distant. Ce paquet, ainsi que le paquet de requête d'origine, inclut désormais le port source à partir duquel la requête a été effectuée, généralement un très grand port aléatoire afin que les données renvoyées sachent sur quel port le navigateur écoute. et le port de destination sur l'hôte distant (le port 80 dans ce cas).

La couche Internet encapsule le datagramme TCP dans un paquet, qui contient également l'adresse IP source et l'adresse IP de destination.

La couche liaison de données utilise le protocole ARP (Address Resolution Protocol) pour identifier l'adresse MAC physique du routeur par défaut et encapsule les paquets Internet dans des trames contenant les adresses MAC source et de destination.

Les trames sont envoyées via un fil (généralement CAT5 ou CAT6) depuis la carte réseau de l'hôte local vers la carte réseau du routeur par défaut.

Le routeur par défaut ouvre le datagramme et détermine l'adresse IP de destination. Le routeur utilise sa propre table de routage pour identifier l'adresse IP du prochain routeur qui fera passer la trame à l'étape suivante. Le routeur réencapsule ensuite la trame dans un nouveau datagramme contenant son propre MAC comme source et l'adresse MAC du routeur suivant, qui est ensuite envoyé via l'interface appropriée. Les routeurs effectuent leurs tâches de routage au niveau de la couche 3 (couche Internet).

Veuillez noter que les commutateurs sont invisibles pour tous les protocoles de couche 2 et supérieure, ils n'affectent donc pas la transmission des données de manière logique. La fonction d'un commutateur est simplement de fournir un moyen simple de connecter plusieurs hôtes à un seul réseau physique via une longueur de câble Ethernet.

Vous pouvez utiliser la commande arp[-n] pour voir toutes les adresses MAC qu'un hôte a stockées dans sa table arp. Ce sont toujours des hôtes sur le réseau local.

table de routage

Tous les périphériques réseau, qu'il s'agisse d'hôtes, de routeurs ou d'autres types de nœuds réseau tels que des imprimantes connectées au réseau, doivent décider où acheminer les paquets TCP/IP. Les tables de routage fournissent les informations de configuration nécessaires pour prendre ces décisions. Semblable à la table de routage très simple de la figure 1, cette table de routage est utilisée pour définir une route unique disponible pour un hôte local typique et déterminer s'il faut envoyer des paquets au routeur de passerelle par défaut. . La commande route -n répertorie la table de routage ; l'option -n affiche uniquement les résultats sous forme d'adresses IP et ne tente pas d'effectuer une recherche DNS, qui remplace l'adresse IP par le nom d'hôte si disponible. L'utilisation de la commande netstat –RN produit des résultats très similaires.

[root@host1 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.0.254   0.0.0.0         UG    100    0        0 eno1
192.168.0.0     0.0.0.0         255.255.255.0   U     100    0        0 eno1
Copier après la connexion

Figure 1 : Une table de routage simple.

Lorsque vous utilisez l'option -n, la passerelle par défaut est toujours affichée avec la cible 0.0.0.0. Si -n n'est pas utilisé, le mot « Par défaut » apparaît dans la colonne Destination de la sortie. L'adresse IP dans la colonne Passerelle est l'adresse IP du routeur de la passerelle sortante. Un masque de réseau de 0.0.0.0 pour la passerelle par défaut signifie que, quelle que soit la classe du réseau, tout paquet de la table de routage qui n'est pas adressé au réseau local ou à un autre routeur sortant via une entrée supplémentaire sera envoyé à la passerelle par défaut.

La colonne Iface de la figure 1 est le nom de la carte réseau sortante, dans ce cas eno1. Pour un hôte agissant comme un routeur, au moins deux cartes réseau, parfois plus, sont susceptibles d'être utilisées. Chaque carte réseau utilisée comme routeur sera connectée à différents réseaux physiques et logiques. Le drapeau dans la colonne Flags indique que la route est Up (U), qui est la passerelle par défaut (G). D'autres signes peuvent également apparaître.

Pour la plupart des hébergeurs, la décision de routage est très simple :

Si l'hôte cible se trouve sur le réseau local, envoyez les données directement à l'hôte cible.
Si l'hôte cible se trouve sur un réseau distant accessible via une passerelle locale répertoriée dans la table de routage, envoyez-le à la passerelle explicitement définie.
Si l'hôte de destination se trouve sur un réseau distant et qu'aucune autre entrée ne définit un itinéraire vers cet hôte, les données sont envoyées à la passerelle par défaut.
Ces règles signifient simplement que si toutes les autres opérations échouent en raison d'une incompatibilité, le paquet est envoyé à la passerelle par défaut.

La table de routage de la figure 2 ci-dessous est un peu plus compliquée car elle appartient à un hôte Linux qui fait office de routeur connecté à trois réseaux dont l'un mène à Internet. Il y a des entrées dans le tableau pour les réseaux locaux de classe C (192.168.0.0/24 sur l'interface eth1, 192.168.25.0/24 sur eth2), ainsi que la route par défaut sur eth0 vers le reste du monde.

[root@host2 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.24    0.0.0.0         255.255.255.252 U     0      0        0 eth0
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1
192.168.25.0    0.0.0.0         255.255.255.0   U     0      0        0 eth2
0.0.0.0         192.168.1.25    0.0.0.0         UG    0      0        0 eth0
Copier après la connexion

Figure 2 : Une table de routage plus complexe avec plusieurs réseaux.

Veuillez noter qu'il n'y a toujours qu'une seule passerelle par défaut et qu'elle se trouve sur l'interface eth0. Cependant, en plus de l'entrée de route par défaut qui pointe directement vers l'adresse IP côté LAN du routeur, il existe également une entrée pour l'ensemble du réseau 192.168.1.24/30. Le réseau ne contient que deux adresses IP disponibles, une pour le côté LAN du routeur, 192.168.1.25/30, et une pour l'hôte lui-même, 192.168.1.26/30.

Configuration du routage

Alors comment configurer la table de routage ? Pour les hôtes connectés au réseau via DHCP, le serveur DHCP fournit les informations de configuration de cette route par défaut ainsi que le DNS, l'adresse IP de l'hôte et éventuellement d'autres informations (telles que l'adresse IP du serveur NTP). Pour une configuration statique, c'est généralement simple, mais cela peut parfois être un peu complexe.

Dans la plupart des cas, l'ajout d'une route par défaut au fichier /etc/sysconfig/network entraînera la configuration par le réseau d'une route par défaut dans la table de routage. Cette entrée est similaire à l'exemple de la figure 3.

GATEWAY=192.168.0.1
Copier après la connexion

Figure 3 : Entrée de la passerelle dans le fichier réseau.

Seule la passerelle par défaut peut être configurée à l'aide de fichiers réseau.

Une autre façon de configurer la passerelle par défaut dans un environnement configuré de manière statique consiste à l'ajouter au fichier de configuration d'interface correspondant dans le répertoire /etc/sysconfig/network-scripts. Pour ajouter la passerelle au fichier de configuration d'interface pour l'interface eth0, ajoutez les mêmes lignes que dans la figure 3 ci-dessus au fichier ifcfg-eth0. Si vous faites cela, l'entrée doit être supprimée du fichier réseau.

在更复杂的环境中,例如当主机使用多个NIC连接到多个网络时,以及至少需要在路由表中输入两条或更多条路由时,您应该考虑在其中使用路由文件。 / etc / sysconfig / network-scripts。 对于NIC enp7s1,该文件将是route-enp7s1,它将包含图4所示的条目。

default via 192.168.0.1 dev enp7s1
Copier après la connexion

图4:enp7s1的默认路由条目。

路由接口文件中的默认网关设置将覆盖网络文件中可能列出的所有网关。

当然,您始终可以使用route命令从命令行添加路由。 如果您需要在每次系统引导时都执行此操作,则可能会花费一些时间,因此您可能要考虑使用上述方法,或创建在启动时运行的脚本。 我为我的系统之一编写了一个脚本,其中包含以下两行,如图5所示。

route del default
route add default gw 192.168.0.1
Copier après la connexion

图5:从命令行设置默认路由的命令。

请注意,设备名称在所有这些命令中都是可选的,在图5中未使用。

通过阅读本文,我们已经了解了如何使用常见的Linux路由检测命令,例如traceroute和mtr,以及如何利用tcpdump和wireshark来分析网络数据包。通过这些技巧,我们能够有效定位网络连接问题,并快速排除故障。相信这些知识对于广大Linux管理员和网络工程师都将有所帮助,让你们能够更加从容应对复杂的网络环境,提升自己的技术水平。

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:lxlinux.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal