42 votes

Attacher un logiciel à différentes interfaces réseau

J'ai deux interfaces réseau différentes, connectées à 2 réseaux. L'une est un eth0 et l'autre un wlan0. Comment puis-je dire à un logiciel d'utiliser uniquement une interface spécifique?

En gros, je veux que Firefox utilise eth0 car c'est le réseau lan de l'université et je dois accéder à des sites intranet, l'autre est un réseau wifi ouvert à Internet et je veux le lier à Chrome.

Je travaille et j'ai besoin d'utiliser l'intranet. Donc eth0 est mon choix mais eth0 est un intranet sans accès internet (évidemment). Puisque je veux accéder à internet, je suis connecté à wlan0 (wifi universitaire pour les étudiants).

Le problème est que si j'ai les deux connectés parfois le navigateur cherche www.stackoverflow.com en utilisant eth0. Je voulais donc attribuer un navigateur pour n'utiliser qu'une interface spécifique.

25voto

Neall Points 251

Vous ne pouvez pas lier de logiciel client à des interfaces réseau spécifiques, mais vous pouvez indiquer au noyau que vous souhaitez utiliser une seule interface réseau pour certaines adresses IP et l'autre pour tout le reste. Cela s'appelle "le routage", et peut être configuré en utilisant les commandes /sbin/route et /sbin/ip.

Si j'ai bien compris votre question, vous voulez vous connecter à des adresses IP d'intranet en utilisant l'interface eth0 et à Internet en utilisant l'interface wlan0.

Si vous exécutez la commande ip route list, vous devriez voir une sortie comme celle-ci (les chiffres seront différents, et vous pouvez également avoir plus de lignes) :

$ ip route list
10.60.44.0/25 dev eth0  proto kernel  scope link  src 10.60.44.39  metric 1 
192.168.80.0/21 dev wlan0  proto kernel  scope link  src 192.168.84.122  metric 2 
[...]
default via 10.60.44.1 dev eth0  proto static 

Les deux premières lignes vous informent des réseaux connectés aux interfaces eth0 et wlan0 : le trafic réseau dirigé vers les ordinateurs de ces réseaux sera directement envoyé vers eux via l'interface correspondante.

La dernière ligne vous indique quel est la "route par défaut" : si votre ordinateur souhaite communiquer avec un ordinateur sur un réseau auquel il n'est pas connecté (par exemple, le serveur stackoverflow.com), il routera le trafic via eth0, en passant par l'hôte 10.60.44.1 (appelé la "passerelle par défaut").

Donc, pour router le trafic Internet à travers wlan0, assurez-vous que la dernière ligne de la sortie de ip route list indique quelque chose comme :

default via A.B.C.D dev wlan0 proto static

A.B.C.D est l'adresse IP de la passerelle sur le réseau local sans fil. Si la sortie ne contient pas "dev wlan0", vous pouvez le modifier avec la commande :

sudo ip route change to default dev wlan0 via A.B.C.D

Vous pouvez trouver le bon A.B.C.D pour wlan0 de deux façons :

  1. Regardez dans le répertoire /var/lib/dhcp3/ : vous devriez trouver des fichiers dhclient-...-wlan0.lease. Ouvrez le plus récent et recherchez une ligne contenant la chaîne option router : le reste de la ligne vous indique l'adresse IP A.B.C.D.

  2. Demandez à vos administrateurs réseau locaux. (Probablement la meilleure chose à faire, de toute façon.)

Avec cette configuration, vous devriez être en mesure de :

  • naviguer sur Internet via wlan0
  • naviguer sur votre intranet via eth0, à condition qu'il se trouve sur un seul réseau.

Si votre intranet s'étend sur plusieurs réseaux, alors vous devrez ajouter des routes pour eux - et c'est définitivement quelque chose qui nécessite une interaction avec les administrateurs réseau locaux. :-)

3voto

olivervbk Points 131

"ip netns" crée des espaces de noms réseau. Vous pouvez ensuite créer des interfaces virtuelles (ip link add... veth) et les associer aux espaces de noms.

Les espaces de noms peuvent être configurés pour utiliser des routes différentes par exemple (utilisant ainsi des interfaces différentes)

Ensuite, vous pouvez exécuter des commandes dans cet espace de noms, qui utiliseront l'espace de noms créé.. "ip netns exec NOM cmd..."

Source: http://manpages.ubuntu.com/manpages/saucy/en/man8/ip-netns.8.html

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X