Ich habe 2 Router, die über ein Ethernet-Kabel verbunden sind. Der DHCP-Server des sekundären Routers ist deaktiviert und er hat die IP-Adresse 192.168.1.2. Beide Router haben unterschiedliche Internetverbindungen. Wenn ich ein weiteres Standard-Gateway mit niedrigerer Metrik erstelle, kann ich das zweite Netzwerk als primäres Netzwerk verwenden.
ip route add default via 192.168.1.2 dev eno1 metric 10
Es funktioniert wie erwartet.
Jetzt versuche ich, beide Netzwerke gleichzeitig zu nutzen. Ist es möglich, einen Linux-Benutzer anzulegen und den gesamten Benutzerverkehr über das sekundäre Gateway zu senden? Ich habe die folgenden Befehle ausprobiert:
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
Dann habe ich es ausgeführt sudo -u kreator ping google.com
und es wurde nichts protokolliert. Was übersehe ich?
Ich verwende Arch Linux und der Netzwerkmanager ist der NetworkManager-Daemon.
Antwort1
Den Kommentaren zufolge war der Ansatz solide:
- Weisen Sie das Betriebssystem an, bei allen Paketen mit einem Wert von 42 in Tabelle 42 nach Routing-Entscheidungen zu suchen
fwmark
:ip rule add fwmark 42 table 42
- Fügen Sie dieser Tabelle die alternative Standardroute hinzu:
ip route add default via 192.168.1.2 dev eno1 table 42 metric 200
- Markieren Sie (in der
mangle
Tabelle) alle ausgehenden Pakete (in derOUTPUT
Kette), die von einem Prozess stammen, der dem Benutzer gehört,kreator
mit42
:iptables -t mangle -A OUTPUT -m owner --uid-owner kreator -j MARK --set-mark 42
An diesem Punkt werden vom Benutzer stammende Pakete kreator
markiert und wie gewünscht über die alternative Standardroute in Tabelle 42 weitergeleitet. Der zusätzliche iptables
Befehl zum Anpassen der POSTROUTING
Kette war fehlerhaft, da er die Quell-IP in die des sekundären Routers änderte und wahrscheinlich dazu führte, dass der Router das Paket verwarf.