Lorsque j'exécute route -n
, d'où exactement (à partir de quelles struct
informations les informations affichées sont-elles récupérées?
J'ai essayé de l'exécuter strace route -n
mais je ne m'a pas aidé à trouver le bon endroit où il est stocké.
linux
networking
kernel
linux-kernel
route
syntagme
la source
la source
struct
est responsable de la conservation des informations./etc/sysconfig/network-scripts/ifcfg-${DEV}
dans des cas simples et / ou de ce qui peut être trouvé dans/etc/sysconfig/network-scripts/route-${DEV}
des cas plus compliqués (cas de Red Hat / CentOS 7). Ce dernier fichier contient la sortie deip -r
. Voir Ajouter une route statique sur CentOS .Réponses:
L' utilitaire
route
ouip
obtient ses informations d'un pseudo-système de fichiers appeléprocfs
. Il est normalement monté sous/proc
. Il existe un fichier appelé/proc/net/route
, où vous pouvez voir la table de routage IP du noyau. Vous pouvez imprimer la table de routage avec à lacat
place, mais l'utilitaire de route formate la sortie lisible par l'homme, car les adresses IP sont stockées en hexadécimal.Ce fichier n'est pas seulement un fichier normal. Il est toujours généré exactement au moment de son ouverture avec une tentative de lecture, comme tous les fichiers du système de fichiers proc.
Si vous êtes intéressé par la façon dont ce fichier est écrit, alors vous devez regarder les sources du noyau: Cette fonction génère la table de routage. Vous voyez à la ligne 2510 , l'en-tête de la table de routage est imprimé. La table de routage semble se trouver principalement dans la structure
fib_info
définie dans le fichier d'en-tête ip_fib.h, ligne 98 .la source