1 votes

Un interface réseau avec 2 passerelles

Je ai 2 routeurs connectés via un câble ethernet. Le routeur secondaire a son serveur DHCP désactivé et a une adresse IP de 192.168.1.2. Les deux routeurs ont un accès internet différent. Si je crée une autre passerelle par défaut avec une métrique plus basse, alors je peux utiliser le deuxième réseau comme le réseau principal.

ip route add default via 192.168.1.2 dev eno1 metric 10

Cela fonctionne comme prévu.

Maintenant, j'essaie d'utiliser les deux réseaux simultanément. Est-il possible de créer un utilisateur linux et envoyer tout le trafic utilisateur à travers la passerelle secondaire? J'ai essayé les commandes suivantes:

useradd kreator
ip rule add fwmark 42 table 42
ip route add default via 192.168.1.2 dev eno1 table 42 metric 200
iptables -t mangle -A OUTPUT -m owner --uid-owner kreator -j MARK --set-mark 42
iptables -t nat -A POSTROUTING -o eno1 -m mark --mark 42 -j SNAT --to-source 192.168.1.2

Ensuite, j'ai exécuté sudo -u kreator ping google.com et il n'a rien enregistré. Que me manque-t-il?

Je suis sous Arch Linux et le gestionnaire réseau est le démon NetworkManager.

2voto

catawampus Points 39

Comme indiqué dans les commentaires, l'approche était solide :

  1. Indiquer à l'OS de consulter la table 42 pour les décisions de routage de tout paquet avec un fwmark de 42 : ip rule add fwmark 42 table 42
  2. Ajouter la route par défaut alternative à cette table : ip route add default via 192.168.1.2 dev eno1 table 42 metric 200
  3. Marquer (dans la table de mangle) tous les paquets sortants (dans la chaîne OUTPUT) issus d'un processus appartenant à l'utilisateur kreator avec 42 : iptables -t mangle -A OUTPUT -m owner --uid-owner kreator -j MARK --set-mark 42

À ce stade, les paquets provenant de l'utilisateur kreator sont marqués et routés par la route par défaut alternative dans la table 42, comme prévu. La commande iptables supplémentaire ajustant la chaîne POSTROUTING était erronée, car elle modifiait l'adresse IP source pour celle du routeur secondaire, et provoquait probablement la chute du paquet par le routeur.

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