PROJET AUTOBLOG


IT-Connect

Site original : IT-Connect

⇐ retour index

Linux et Windows – Comment prioriser une route ou une interface pour accéder à Internet ?

lundi 23 octobre 2023 à 14:51

I. Présentation

Cet article explore des stratégies de routage pratiques, en mettant l'accent sur l'utilisation des métriques pour prioriser les routes/interfaces, que ce soit sur Windows ou Linux. Cette situation se présente typiquement lorsque vous êtes en déplacement professionnel ou à l'école et que vous ne "maitrisez pas" le réseau sur lequel vous êtes connecté.

II. Mise en situation

Imaginez que vous êtes actuellement connecté à un réseau (Réseau 1) qui limite votre connexion à Internet en utilisant des filtres d'URL et un proxy.

Pour contourner ces restrictions, vous avez décidé de créer un partage de connexion avec votre téléphone, établissant ainsi une connexion Wifi à un deuxième réseau (Réseau 2). Maintenant, vous êtes connecté simultanément aux deux réseaux, avec le réseau filaire comme connexion principale (Réseau 1) et le wifi comme connexion secondaire (Réseau 2).

Cependant, le trafic Internet ne s'achemine pas correctement vers la bonne interface réseau, en raison de la configuration de votre interface réseau principale (Réseau 1). Cela vous empêche d'accéder à certains sites. Malheureusement, vous ne pouvez pas vous déconnecter de l'un des réseaux, car cela perturberait vos activités.

L'objectif final est de maintenir la connexion aux deux réseaux, vous permettant ainsi d'accéder à vos ressources internes tout en ayant une connectivité Internet sans restriction.

III. Métriques

Oh ce n'est pas un gros mot, mais en fonction de votre activité actuelle, il se pourrait que n'ayez pas utilisé ce terme depuis vos bon vieux cours de réseau (coucou les devs). Pour rappel : la métrique est un moyen pratique de donner des priorités à différentes routes et de contrôler le chemin que le trafic réseau devrait prendre en cas de multiples options. Cela peut être particulièrement utile dans des configurations avancées où plusieurs interfaces réseau sont utilisées et où il est nécessaire de déterminer comment le trafic doit être acheminé.

  1. Métrique inférieure = Priorité supérieure : une route avec une métrique plus basse est considérée comme meilleure. Par exemple, une route avec une métrique de 5 serait préférée à une route avec une métrique de 10.
  2. Routes par défaut : lorsque vous définissez une route par défaut (route utilisée pour tout trafic ne correspondant à aucune autre route), vous pouvez spécifier une métrique. Cela signifie que si vous avez plusieurs routes par défaut, le système choisira celle avec la métrique la plus basse.

OK, donc que ça soit sur Linux ou Windows, cela devrait fonctionner de la même manière ? Et bah non ! Sinon, ce serait trop simple... Je détallerais ce point dans la section de cet article dédiée à Windows.

Dans chacun des cas présentés ci-dessous, je suis connecté à chaque fois aux deux mêmes réseaux :

A. Pour Linux

En premier, il convient de lister les routes par défaut actuellement actives sur votre système. Retenez cela :

ip route | grep default # ou la vrai "commande" ip route show default

Dans mon cas, j'ai deux routes par défaut : une route pour chacun de mes réseaux.

Je vais vérifier quelle est mon adresse IP de sortie en ce qui concerne le trafic qui sort sur la route par défaut (celle qui a une métrique plus basse : 192.168.1.1 et qui préempte donc la deuxième route par défaut).

curl -4 icanhazip.com

Bien, maintenant que j'ai constaté que l'IPv4 publique est : .117, je vais réaliser les modifications nécessaires afin de permettre à ma seconde route par défaut (default via 192.168.51.157 ...) d'être priorisé. Pour cela, je vais dans un premier temps supprimer cette route par défaut :

sudo est nécessaire pour modifier une route sur Linux en raison de préoccupations de sécurité, car cela accorde temporairement des privilèges admins, assurant que seuls les utilisateurs autorisés peuvent effectuer des changements système qui affectent la connectivité et le routage des données.

sudo ip route del default via 192.168.51.157 dev wlx7cc2c613b1c0 proto dhcp metric 601

Puis l'ajouter de nouveau, mais cette fois-ci avec une métrique plus basse. Ici, la métrique sera de 400. Peu importe le nombre tant que celui-ci est inférieur à la métrique de la route par défaut prédominante.

sudo ip route add default via 192.168.51.157 dev wlx7cc2c613b1c0 proto dhcp metric 400

Après avoir effectué cette opération, vérifiez si les paramètres ont bien été pris en compte.

ip route | grep default 

Pour vous assurer que le trafic réseau "sortant" vers internet a été réaiguillé, vous pouvez de nouveau :

tracepath -4 -b t.co
curl -4 icanhazip.com

B. Pour Windows

Les variations dans la gestion de la métrique des routes et des interfaces entre Windows et Linux peuvent être expliquées par les disparités inhérentes à la gestion du réseau propre à chaque système d'exploitation.

Personnellement, je préfère l'approche de Linux, même si la conception de Windows peut permettre une gestion plus fine et plus spécifique en ajustant la métrique de l'interface en plus de la métrique de la route par défaut. Cela offre une flexibilité supplémentaire pour prioriser non seulement la destination, mais aussi l'interface spécifique (canal de communication physique) pour atteindre cette destination.

On commence donc par lister les routes par défaut comme cela :

Get-NetRoute -DestinationPrefix 0.0.0.0/0 

Comme pour Linux, la nécessité d'être administrateur local pour modifier la table de routage sous Windows découle de considérations de sécurité. Les actions ci-après seront toutes exécutées dans un terminal PowerShell privilégié pour une question de pratique, même si certaines commandes comme Get-NetRoute ne nécessitent pas de tels privilèges.

Actuellement, on constate avec la commande tracert (équivalent de traceroute/tracepath sous Linux) que le trafic est acheminé via l'interface "4" (ifIndex) en utilisant la passerelle suivante : 192.168.1.1

tracert -4 t.co

Pour confirmer mes dires, je vais dans un premier temps uniquement baisser la métrique de la route par défaut. Je vais fixer cette valeur à 30.

Set-NetRoute -DestinationPrefix 0.0.0.0/0 -RouteMetric 30 -InterfaceIndex 26 
Get-NetRoute -DestinationPrefix 0.0.0.0/0 

Nonobstant les changements effectués, notre route par défaut n'est toujours pas prioritaire du fait que la métrique de l'interface "4" est toujours plus élevé.

Très bien. Il faut donc changer la métrique de l'interface réseau "26".

Set-NetIPInterface -InterfaceIndex 26 -InterfaceMetric 25
Get-NetRoute -DestinationPrefix 0.0.0.0/0 

En effectuant de nouveau un tracert, je constate que cette fois-ci, je passe non plus par la passerelle 192.168.1.1 de mon interface réseau "4", mais par la gateway 192.168.51.157 de mon interface réseau étiquetée "26" !

Vous constaterez que j'ai eu une microcoupure internet lors du tracert, d'où les 6 messages "Délai d'attente dépassé"

IV. Conclusion

J'espère que cet article vous aura plu ! Avec toutes ces explications, plus d'excuses pour repousser cette tâche, vous êtes prêt à gérer l'aiguillage de vos routes par défaut sans craindre de perturber la connectivité de votre réseau. Vous pourrez donc continuer à travailler dans un environnement "contrôlé" tout en naviguant librement sur internet pour effectuer vos diverses recherches.

The post Linux et Windows – Comment prioriser une route ou une interface pour accéder à Internet ? first appeared on IT-Connect.