J'ai 3 interfaces réseau: lo
, new0
et new1
. J'utilise new1
pour accéder à Internet.
Mon ordinateur est devenu fou il y a quelques jours et a commencé à essayer d'accéder à Internet sur lo
. Faire ifconfig lo down
fait que les paquets passent par new0
. Mais je veux qu'il utilise new1
.
Je peux utiliser ssh
, télécharger des torrents et utiliser d'autres protocoles, mais http et https ne fonctionnent pas; Je viens d'obtenir instantanément "Serveur introuvable" sans temps de chargement dans le navigateur.
Comment le système peut-il préférer new1
à new0
et lo
?
Je ne suis pas en mesure de changer ma metric
, new1
et new0
sont bloqués à 1.
La priorité des interfaces pour le trafic général se fait en 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 netstat -nr
et l'option "metric
" dans la page de manuel pour la commande route
.
Pour un contrôle très simple de l’utilisation des métriques de l’outil ifmetric :
Sudo apt-get update
Sudo apt-get install ifmetric
Une fois installé, utilisez-le pour changer la valeur de métrique de l'interface, reportez-vous à ceci http://manpages.ubuntu.com/manpages/vivid/man8/ifmetric.8.html
La métrique peut changer à plusieurs endroits. Le meilleur travail pour moi est la configuration dans etc/network/interface
auto lo
iface lo inet loopback
auto new0
iface new0 inet static
address xxx.xxx.xxx.xxx
netmask xxx.xxx.xxx.xxx
up route add default gw aaa.aaa.aaa.aaa metric 10
down route del default gw aaa.aaa.aaa.aaa
auto new1
iface new1 inet static
address yyy.yyy.yyy.yyy
netmask yyy.yyy.yyy.yyy
up route add default gw bbb.bbb.bbb.bbb
down route del default gw bbb.bbb.bbb.bbb
De cette façon, lorsque l'interface new0
monter, la route à la passerelle aaa.aaa.aaa.aaa
sera métrique 10. L'interface new1
affichera la route à bbb.bbb.bbb.bbb
avec une métrique inférieure et le trafic sera acheminé cette interface.
Si vous faites Sudo ifdown new1
sur le câble de débranchement de la route de la carte sera supprimé et route vers aaa.aaa.aaa.aaa
sera la nouvelle meilleure route pour le trafic.
Une fois encore, brin int new1
up sera à nouveau ajouté et bbb.bbb.bbb.bbb
sera de nouveau votre meilleur itinéraire.
Modifier 1
La priorité d’itinéraire n’est pas la même que l’itinéraire basé sur le port de destination.
Mais je vous donne un exemple pour acheminer le trafic pour ssh, port 22
et vous pouvez le mettre en œuvre pour le port dont vous avez besoin pour
Commençons par le iptable. Ici, nous prendrons ssh
comme service de routage. Utilisez la table mangle
de iptable pour modifier les paquets ssh
.
Sudo iptables -t mangle -A OUTPUT -p tcp –dport 22 -j MARK –set-mark 0×1
Nous marquons tous les paquets avec le port de destination 22
comme "0 × 1 ′".
Maintenant, enregistrez et redémarrez iptables
.
service iptables save
service iptables restart
Pour supprimer cette entrée de iptables
, nous pouvons utiliser -D
au lieu de -A
.
Ensuite, créez une nouvelle table de routage IP dans /etc/iproute2/rt_table
en donnant simplement une entrée.
100 sshtable
Règle d'écriture pour les paquets ssh
.
ip rule add fwmark 0×1 lookup sshtable
Ajouter une route à la nouvelle table sshtable
. Nous allons utiliser ici '192.168.1.1' comme passerelle pour ssh
. L’adresse ’192.168.1.1’, dans cet exemple, sera l’adresse de passerelle pour new2
Tout le reste du trafic passera par la passerelle par défaut appelée new1
, qui peut être vue par la commande IP route show.
Nous copions toutes les entrées à l'exception de l'entrée de passerelle par défaut de la table principale.
Sudo ip route show table main | grep -Ev ^default | while read ROUTE ; do ip route add table sshtable $ROUTE; done
Ajouter une entrée de passerelle par défaut pour les paquets ssh
à la table sshtable
Sudo ip route add default via 192.168.1.1 table sshtable
Utilisez ip route show table sshtable
pour afficher tous les itinéraires en sshtable
.
C’est ça… nous l’avons fait !!!
Tout répéter pour imap
sur le port 465
ou hhtp
sur le port 80
ou https
sur le port 443
...