web-dev-qa-db-fra.com

Comment définir la priorité des connexions réseau dans Ubuntu?

Si une machine Ubuntu 11.04 est connectée au WiFi et à la 3G simultanément, comment puis-je définir la priorité pour laisser les applications (navigateur, etc.) utiliser d'abord le WiFi? Si ce n'est pas disponible, il devrait utiliser la 3G.

En gros, j'aimerais définir l'ordre dans lequel les connexions réseau sont utilisées.

Edit: Je cherche une approche plus facile qui pourrait être utile à ceux qui sont à l’aise et non aux experts en Ubuntu/Linux.

32
Praveen Sripati

Je suis surpris que personne n'ait mentionné la commande la plus simple pour faire cela: ifmetric. Il peut être installé en utilisant Sudo apt-get install ifmetric. Cette commande peut être utilisée pour changer la métrique de n'importe quelle interface. L'interface avec une métrique inférieure est préférée pour Internet.

Pour l'utiliser, commencez par consulter les mesures à l'aide de la commande route:

$ route -n

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.42.0.1       0.0.0.0         UG    100    0        0 eth0
0.0.0.0         10.42.0.2       0.0.0.0         UG    600    0        0 wlan0

Ici, eth0 a une métrique inférieure, il sera donc préférable à wlan0. Si vous voulez préférer wlan0, abaissez alors sa métrique:

Sudo ifmetric wlan0 50

Maintenant, la table de routage ressemblerait à ceci:

$ route -n

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.42.0.2       0.0.0.0         UG    50     0        0 wlan0
0.0.0.0         10.42.0.1       0.0.0.0         UG    100    0        0 eth0

Maintenant, Linux utilisera wlan0 pour Internet. Le changement sera immédiatement reflété.

18
shivams

Définir les métriques permet de modifier les priorités. La métrique supérieure est plus "coûteuse" à utiliser, de sorte que le système d'exploitation utilisera les interfaces avec la métrique la plus basse s'il doit acheminer le trafic. Si l'interface métrique inférieure est arrêtée, elle utilisera l'interface métrique supérieure car c'est la seule interface qui peut être utilisée pour acheminer le trafic vers ce réseau/cette destination.

Les métriques sont spécifiées dans le fichier /etc/network/interfaces , le lien pointe vers la documentation.

Utilisez n’importe quel éditeur de texte pour éditer le fichier, identifiez les réseaux, puis modifiez le paramètre metric et enregistrez. Le redémarrage est le moyen le plus simple de réinitialiser toutes les valeurs sans entrer dans les détails geek du redémarrage des services réseau.

13
harrymc
  1. La priorité des interfaces pour le trafic général est réalisée en manipulant les métriques de routage. Chaque route est associée à des paramètres tels que le nombre de sauts et la largeur de bande. Voir l'option "métrique" dans la page de manuel pour la commande route.

    $ route -n
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref     Use Iface
    0.0.0.0         192.168.1.254   255.255.255.255 U     0      0        0 eth0
    192.168.1.0     0.0.0.0         255.255.255.0   U     256    0        0 eth0
    
  2. Donner la priorité à l'accès des applications aux ressources du réseau est souvent abordé par "lissage du trafic" - j'utiliserais un moteur de recherche Web pour voir si Ubuntu ou le routeur peut le faire.


Note de bas de page.

Sous MS Windows, mais pas sous Linux, la commande netstat -nr fournit les mêmes informations que route print. Y compris les métriques de routage.

7
RedGrittyBrick

Je n'ai pas vraiment essayé, mais NCD (Network Configuration Daemon - 1) peut être utilisé à cette fin. Le site prétend faciliter la configuration du réseau. La syntaxe semble être simple.

#Attendez une connexion réseau. Préférez eth1 en le plaçant devant eth0.
liste ("NET-eth1", "NET-eth0") pnames;

(1) - http://code.google.com/p/badvpn/wiki/NCD

3
Praveen Sripati

Tout cela est dû aux métriques de route. Vous souhaitez supprimer la route par défaut avec la métrique la plus basse, puis rétablir l'ancienne route avec la métrique la plus élevée. Veuillez suivre les commandes ci-dessous.

Disons que votre table de routage ressemble à ceci:

# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.16.87.254    0.0.0.0         UG    100    0        0 ens38
0.0.0.0         192.168.151.2   0.0.0.0         UG    101    0        0 ens33
10.16.86.64     0.0.0.0         255.255.255.248 U     100    0        0 ens38
10.16.87.254    0.0.0.0         255.255.255.255 UH    100    0        0 ens38
10.16.88.6      10.16.87.254    255.255.255.255 UGH   100    0        0 ens38
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 ens38
192.168.151.0   0.0.0.0         255.255.255.0   U     100    0        0 ens33

Maintenant, supprimez la passerelle par défaut

# route delete default gateway

Maintenant, rétablissez l'ancienne passerelle par défaut (notez que la mesure dans ce cas est supérieure à 102 par rapport à la route par défaut actuelle 101).

# route add default gw 10.16.87.254 metric 102 dev ens38                                                              
# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.151.2   0.0.0.0         UG    101    0        0 ens33
0.0.0.0         10.16.87.254    0.0.0.0         UG    102    0        0 ens38
10.16.86.64     0.0.0.0         255.255.255.248 U     100    0        0 ens38
10.16.87.254    0.0.0.0         255.255.255.255 UH    100    0        0 ens38
10.16.88.6      10.16.87.254    255.255.255.255 UGH   100    0        0 ens38
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 ens38
192.168.151.0   0.0.0.0         255.255.255.0   U     100    0        0 ens33
3
PnotNP