acheminer le trafic vers différentes passerelles par le réseau de destination
9
J'ai plusieurs passerelles et je voudrais acheminer du trafic à partir de différentes passerelles en fonction de sa destination. Je suppose que je devrais utiliser une combinaison de règles iproute2 et iptables, mais je ne sais pas par où commencer.
Quelqu'un peut-il donner un exemple?
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
Le premier ip route addmontre une adresse IP unique, envoyée une interface Ethernet donnée (ep3s8) au routeur de saut suivant, 10.0.0.1
La deuxième route concerne un réseau entier, 10.xyz, qui a envoyé une carte Ethernet donnée, eth0. C'est le "réseau local", qui n'a pas de routeur de saut suivant, tout est sur le même fil logique.
Vous voulez lire man ip-routeavant de faire quoi que ce soit. Soyez également prêt à redémarrer, et ne le faites pas à distance. Vous pouvez très facilement créer des itinéraires incorrects qui mettent fin à votre accès à distance. Je suis la voix de l'expérience dans cette dernière recommandation.
Notez que vous pouvez également spécifier des passerelles pour des blocs entiers, `` ip route add 10.1.0.0/16 via 192.168.0.1`
jthill
Merci pour votre réponse, cela m'aidera à me diriger dans la bonne direction. Je vais essayer ceci et vous le faire savoir.
Walter
5
Ce que vous demandez, c'est policy-based routingou source-based routing. Il y a une excellente introduction de David Schwartz sur ce même site.
Je voudrais 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. C'est bien sûr facile avec des applications comme openssh qui ont des options pour se lier à l'adresse d'écoute souhaitée. Mais cette bibliothèque vous permet de lier même des applications sans ces options (comme Firefox) à une adresse IP donnée.
De cette façon, vous pouvez choisir si vous souhaitez fournir des tables de routage distinctes pour toutes les applications, ou remplacer ces mêmes spécifications au cas par cas.
Vous n'avez pas besoin de routage de stratégie si vous souhaitez router par destination.
Diego Woitasen
Salut, c'est aussi un bon point, hmm, qui permettra une plus grande flexibilité qui est probablement plus avancée que je ne le souhaiterais à ce stade. Certainement quelque chose à apprendre.
En général, vous devez ajouter la règle (j'ai ajouté l'interface eth1 uniquement à des fins de démonstration, elle peut être omise)
#ip rule add dev eth1 to 170.10.0.10 table 2 priority 20000
voici: dev eth1 - périphérique qui sera utilisé pour envoyer des paquets à 170.10.0.10 - la table de destination 2 - table où vous devez assigner vos routes priorité 20000 - priorité de règle
vous pouvez voir votre règle en
#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 routes de la manière habituelle, mais vous devez spécifier la table (tableau 2), où vous mettriez la route
Ce que vous demandez, c'est
policy-based routing
ousource-based routing
. Il y a une excellente introduction de David Schwartz sur ce même site.Je voudrais 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. C'est bien sûr facile avec des applications comme openssh qui ont des options pour se lier à l'adresse d'écoute souhaitée. Mais cette bibliothèque vous permet de lier même des applications sans ces options (comme Firefox) à une adresse IP donnée.
De cette façon, vous pouvez choisir si vous souhaitez fournir des tables de routage distinctes pour toutes les applications, ou remplacer ces mêmes spécifications au cas par cas.
la source
un bon endroit pour lire sur le routage de base source est Linux Advanced Routing & Traffic Control,
vous pouvez également lire les manuels
En général, vous devez ajouter la règle (j'ai ajouté l'interface eth1 uniquement à des fins de démonstration, elle peut être omise)
voici:
dev eth1 - périphérique qui sera utilisé pour envoyer des paquets
à 170.10.0.10 - la
table de destination 2 - table où vous devez assigner vos routes
priorité 20000 - priorité de règle
vous pouvez voir votre règle en
Ensuite, vous devez ajouter les routes de la manière habituelle, mais vous devez spécifier la table (tableau 2), où vous mettriez la route
pour voir vos itinéraires, vous devez exécuter
la source