web-dev-qa-db-fra.com

Route Trafic Out Différentes passerelles par réseau de destination

J'ai plusieurs passerelles et souhaitez parcourir du trafic de différentes passerelles en fonction de sa destination. Je suppose que j'aurais besoin d'utiliser une combinaison de règles IProTe2 et d'IPTABLES, mais je ne suis pas sûr de savoir où commencer.
[.____] Quelqu'un peut-il offrir un exemple?

9
Walter

Vous pouvez probablement faire ce que vous voulez avec ip route:

ip route add 8.8.8.8 via 10.0.0.1 dev enp3s8
ip route add 10.0.0.0/24 dev eth0

La première ip route add Affiche une seule adresse IP, envoyé une interface Ethernet donnée (EP3S8) au routeur de hop, 10.0.0.1.

Le deuxième itinéraire est destiné à un réseau entier, 10.x.y.z, envoyé une carte Ethernet donnée, eth0. C'est le "réseau local", qui n'a pas de nouveau routeur de hop, tout est sur le même fil logique.

Vous voulez lire man ip-route Avant de faire quoi que ce soit, cependant. En outre, soyez prêt à redémarrer et ne faites pas cela à distance. Vous pouvez facilement créer des itinéraires incorrects qui résilient votre accès à distance. Je suis la voix de l'expérience dans cette dernière recommandation.

9
Bruce Ediger

Ce que vous demandez est policy-based routing ou source-based routing. Il y a ne excellente introduction par David Schwartz sur ce même site.

Je tiens à souligner qu'il existe également un petit programme soigné, qui peut être trouvé ici , qui vous permet de lier des applications spécifiques à une interface donnée. Ceci est bien sûr facile avec les applications telles que OpenSSH, qui ont des options pour lier à l'adresse d'écoute souhaitée. Mais cette bibliothèque vous permet de lier même des applications sans de telles options (comme Firefox) à une adresse IP donnée.

De cette manière, vous pouvez choisir si vous souhaitez fournir des tables de routage distinctes pour toutes les applications ou remplacer ces mêmes spécifications sur une base d'application.

5
MariusMatutiae

un bon endroit à lire sur le routage de la base source est contrôle de routage avancé Linux
[.____] Vous pouvez également lire des manuels

man ip rule
man ip route

En général, vous devez ajouter la règle (j'ai ajouté l'interface Eth1 juste à des fins de démonstration, il peut être ometté)

#ip rule add dev eth1 to 170.10.0.10 table 2 priority 20000

voici:
[.____] dev etth1 - dispositif qui sera utilisé pour envoyer des paquets
[.____] au 170.10.0.10 - la destination
Tableau 2 - Tableau où vous devriez associter vos itinéraires
[.____] Priorité 20000 - Priorité de la règle

vous pouvez voir votre règle par

#ip ru sh
    0: from all lookup local
20000: from all to 170.10.0.10 iif eth1 lookup 2
32766: from all lookup main
32767: from all lookup default

Ensuite, vous devez ajouter les itinéraires de manière habituelle, mais vous devez spécifier la table (tableau 2), où vous mettriez la route.

#ip route add table 2 via 170.10.0.1 default

pour voir vos itinéraires, vous devriez courir

#ip route show ta 2
3
vasily-vm