quel ordre est la table de routing analysée dans?

Sur mon pc je dois suivre la table de routing:

Destination Gateway Genmask Flags MSS Window irtt Iface 0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 wlan0 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0 

Je ne comprends pas comment il est analysé, je veux dire de haut en bas ou de bas en haut?

Si elle est analysée de haut en bas alors tout sera toujours envoyé au routeur chez moi même si la destination ip était 192.168.1.15; mais ce que je savais (à tort?) était que si un PC est à l'intérieur de mon même réseau local puis une fois que j'ai récupéré la destination MAC à travers un message de diffusion, mon PC pourrait envoyer directement le message à la destination.

    La table de routing est utilisée dans l'ordre de la plus spécifique au less spécifique.

    Cependant sur linux c'est un peu plus compliqué que prévu. Tout d'abord, il y a plus d'une table de routing, et quand la table de routing est utilisée dépend d'un certain nombre de règles.

    Pour avoir une image complète:

     $ ip rule show 0: from all lookup local 32766: from all lookup main 32767: from all lookup default $ ip route show table local broadcast 127.0.0.0 dev lo proto kernel scope link src 127.0.0.1 local 127.0.0.0/8 dev lo proto kernel scope host src 127.0.0.1 local 127.0.0.1 dev lo proto kernel scope host src 127.0.0.1 broadcast 127.255.255.255 dev lo proto kernel scope link src 127.0.0.1 broadcast 192.168.0.0 dev eth0 proto kernel scope link src 192.168.1.27 local 192.168.1.27 dev eth0 proto kernel scope host src 192.168.1.27 broadcast 192.168.1.255 dev eth0 proto kernel scope link src 192.168.1.27 $ ip route show table main default via 192.168.1.254 dev eth0 192.168.0.0/23 dev eth0 proto kernel scope link src 192.168.1.27 $ ip route show table default $ 

    La table local est la table de routing spéciale contenant des routes de contrôle à haute priorité pour les adresses locales et de diffusion.

    La table main est la table de routing normale contenant toutes les routes non-policy. C'est aussi la table que vous obtenez pour voir si vous exécutez simplement ip route show (ou ip ro pour faire court). Je recommand de ne plus utiliser l'ancienne command de route , car elle ne montre que la table main et son format de sortie est quelque peu archaïque.

    La table default est vide et réservée pour le post-traitement si les règles par défaut précédentes ne sélectionnaient pas le package.

    Vous pouvez append vos propres tables et append des règles pour les utiliser dans des cas spécifiques. Par exemple, si vous avez deux connections Internet, un hôte ou un sous-réseau doit toujours être routé via une connection Internet particulière.

    Le livre Policy Routing with Linux explique tout cela dans des détails exquis.

    La table de routing est généralement appliquée dans l'ordre de "plus spécifique" à "less spécifique". Une destination de 0.0.0.0 avec un masque de réseau de 0.0.0.0 , c'est-à-dire votre route par défaut , est la less spécifique possible et sera donc toujours appliquée en dernier.

    Si vous aviez l'adresse MAC pour un autre PC sur votre réseau local, mais sur un autre sous-réseau, vous pouvez append une route hôte spécifique à ce PC et vous obtiendrez probablement la communication.