GNU/Linux >> Tutoriels Linux >  >> Linux

Sous Linux, quelle métrique a une route sans métrique ?

Êtes-vous sûr de votre première observation ? Que signifie ip route show ou route -n montrer alors ? Le résultat change-t-il si vous ajoutez proto static dans le premier cas ?

J'ai trouvé au moins deux ressources qui disent explicitement que 0 est la valeur par défaut sous Linux :

  • http://0pointer.de/lennart/projects/ifmetric/ :La métrique par défaut pour une route dans le noyau Linux est 0, ce qui signifie la priorité la plus élevée.
  • http://www.man7.org/linux/man-pages/man8/route.8.html :Si cette option n'est pas spécifiée, la métrique pour la famille d'adresses inet6 (IPv6) par défaut est '1' , pour inet (IPv4), la valeur par défaut est '0'. (il indique ensuite que la valeur par défaut peut être différente lors de l'utilisation de iproute2 mais l'analyse de ces sources ne montre pas ce que c'est)

Un pirate du noyau Linux serait sûrement nécessaire pour résoudre ce problème.

De plus, quelle que soit la valeur par défaut choisie, elle est clairement spécifique au système d'exploitation. ) montre par exemple que Windows choisit la métrique par défaut en fonction de la bande passante du lien.


Étant donné que ces routes se trouvent sur différents sous-réseaux, il y a plus impliqué ici que la simple métrique. Si le trafic d'origine se trouve sur le sous-réseau 192.168.1.1, par exemple, et s'il existe une route non par défaut correspondante dans votre table de routage, cette route correspondra via la correspondance du préfixe le plus long avant que la métrique ne soit jamais prise en compte.

En supposant qu'une route autre que celle par défaut ne corresponde pas, l'absence de métrique devrait l'être interprété par le noyau comme ayant une métrique de 0, et donc la route la plus prioritaire. Bien que ce soit une vue simpliste car certains démons de routage traduiront plus tard cette métrique par défaut en une autre valeur comme 1024. Je suppose que c'est ce qui vous arrive à vous et à votre distribution sans nom.

Si ip route n'affiche aucune métrique, vous pouvez confirmer qu'il s'agit bien de 0 en utilisant l'ancien route -n commande du paquet net-tools ou cat /proc/net/route . Cependant, cette sortie ne correspond pas nécessairement à ce que le démon de routage utilisera en interne lorsqu'il rencontrera une valeur de métrique de 0.

De plus, la façon dont vous créez l'itinéraire est également importante. ip route utilise l'API netlink, tandis que route utilise ioctl. Le code de création des métriques par défaut entre les deux approches donne des valeurs de métriques différentes. Par exemple :création d'une route par défaut IPv6 via ip route se traduira par une valeur métrique de 1024 sur RHEL 7, tout en créant la même route via route se traduira par une métrique de 1.

De RedHat :

  • si rien n'est passé à la commande route comme métrique de route, la valeur 1 est utilisée par la commande elle-même.
  • Si rien n'est passé à la commande ip en tant que métrique de route, l'attribut n'est pas créé du tout et le noyau le comprend comme 0, qui est ensuite traduit par 1024 par défaut.

Linux
  1. Quoi de neuf avec rdiff-backup ?

  2. Qu'est-ce qu'un utilisateur Linux ?

  3. Qu'est-ce qu'Umask sous Linux

  4. Flatpak sur Linux :qu'est-ce que c'est et comment installer des applications avec ?

  5. Que fait Linux avec les fichiers existants dans un point de montage ?

Commande Linux Route Add avec exemples

Qu'est-ce que le Shell sous Linux ?

Qu'est-ce que Crontab et comment automatiser des tâches sous Linux avec Crontab

Qu'est-ce que le shell de connexion sous Linux ?

Qu'est-ce que la moyenne de charge sous Linux ?

Qu'est-ce qu'un fichier .bashrc sous Linux ?