J'ai une machine Linux avec le noyau 3.2.0-23-generic et il a une règle avec la priorité 220 dans RPDB qui pointe vers la table de routage nommée "220":
T42:~# ip rule show
0: from all lookup local
220: from all lookup 220
220: from all lookup 220
32766: from all lookup main
32767: from all lookup default
T42:~# ip route show table 220
T42:~#
Est-il possible de voir D'où vient cette règle ? Quel est l'intérêt d'une table de routage vide ? Enfin et surtout, comment peut-il y avoir plusieurs règles avec la même priorité ?
Réponse acceptée :
Est-il possible de voir D'où vient cette règle ?
Pas dans le sens "où puis-je rechercher la source de cette règle".
Il existe plusieurs façons d'étudier le problème :la plus évidente consiste à grep
tous les scripts de démarrage sur votre système pour voir lequel utilise la ip rule
du tout, puis commencez à les lire. Ou vous pouvez démarrer votre système en mode mono-utilisateur et démarrer les services un par un, à partir de la ligne de commande, en utilisant strace
. Ou vous pouvez démarrer votre système avec bash
comme init (ligne de commande du noyau :init=/bin/bash
), puis vous pouvez exécuter le vrai /sbin/init
avec strace
. Ce sont des moyens assez avancés pour tracer les activités de démarrage, il n'est peut-être pas anodin de savoir quels scripts exécuter…
Il n'y a aucun moyen de savoir d'où vient la règle spécifique s'il s'agit d'un administrateur ou d'un pirate qui l'a saisie manuellement, et non d'un script présent sur le système.
A quoi sert une table de routage vide ?
Rien - jusqu'à ce que quelqu'un commence à remplir cette table. Il peut s'agir d'un démon, saisissant initialement la règle pour sa propre table, puis modifiant dynamiquement le contenu de sa propre table de routage.
comment peut-il y avoir plusieurs règles avec la même priorité ?
IPROUTE2 Utility Suite Howto
priorité PREFERENCE — priorité de cette règle. Chaque règle doit avoir une valeur de priorité unique définie explicitement. La priorité est un nombre non signé de 32 bits, nous avons donc 4294967296 règles possibles.
ATTENTION !
Pour des raisons historiques, l'ajout de règles IP ne nécessite aucune valeur de priorité et permet à la valeur de priorité d'être non unique. Si l'utilisateur n'a pas fourni de valeur de priorité, une valeur a été attribuée par le noyau. Si l'utilisateur a demandé la création d'une règle avec une valeur de priorité qui existait déjà, le noyau n'a pas rejeté la demande et a ajouté la nouvelle règle avant toutes les anciennes règles du même priorité. C'est une erreur dans la conception actuelle, rien de plus. Il devrait être corrigé au moment où vous lisez ceci, alors ne vous fiez pas à cette fonctionnalité. Vous devez toujours utiliser des priorités explicites lors de la création de règles.