Die Situation:
eth0 - Standardnetzwerk mit Internetzugang IP: 192.168.2.1 Standard-Gateway: 192.168.2.254
eth0:1 192.168.2.2 Virtuelle Netzwerkkarte, dasselbe wie eth0, aber andere IP. Gleiches Kabel Diese IP hat einen anderen Internetzugriff
eth1: 192.168.0.1
eth2: 192.168.1.1
Der gesamte Verkehr von eth1 und eth2 wird über 192.168.2.1 an 192.168.2.254 weitergeleitet.
Ich muss den gesamten Verkehr von eth2 auf 192.168.2.254 umleiten, aber die sekundäre IP 192.168.2.2 verwenden.
Ich habe viele verschiedene Konfigurationen ausprobiert, aber ohne Erfolg.
Antwort1
Was Sie wollen, ist das sogenannte Source Policy Routing. Anweisungen zum Konfigurieren des Source Policy Routing finden Siehier im Linux Advanced Routing & Traffic Control HOWTO.
Der springende Punkt ist, dass Sie Ihrem System eine neue Routing-Tabelle mit einem Namen wie INET2 hinzufügen möchten (diese Befehle müssen als Root ausgeführt werden):
echo 200 INET2 >> /etc/iproute2/rt_tables
Anschließend möchten Sie der Haupt-IP-Routingtabelle eine Quellregel hinzufügen (ich vermute, dies ist ein /24-Netzwerk):
IP-Regel hinzufügen aus 192.168.1.0/24 Tabelle INET2
Als Nächstes müssen Sie eine Standardroute für die INET2-Tabelle zuweisen (Sie haben das Standard-Gateway für Ihre zweite Verbindung nicht erwähnt, daher ist das nur eine Vermutung):
IP-Route hinzufügen Standard über 192.168.2.253 dev eth0:1 Tabelle INET2
Zuletzt müssen Sie den Routencache im System leeren:
IP-Route, Cache leeren
Auf diese Weise erstellte Regeln sind flüchtig und verschwinden, wenn das System neu gestartet wird (die INET2-Tabelle bleibt jedoch bestehen). Sie müssen die Regeln daher in ein Startskript für die Netzwerkschnittstelle einfügen. Wie Sie dies genau tun, hängt von Ihrer jeweiligen Linux-Distribution ab und ist eigentlich eine andere Frage.