
Ich habe die folgende Routing-Tabelle
10.0.1.0/24 dev eth0 proto kernel scope link src 10.0.1.151
10.0.10.0/24 dev eth1 proto kernel scope link src 10.0.10.151
default via 10.0.1.1 dev eth0
Ich habe zwei Verbindungen, eine geht durch ein LAN und über 10.0.1.1 hinaus ins Internet. Die andere ist ein ADSL-Router (10.0.10.1), der direkt an eth1 angeschlossen ist.
Wenn ich mich von außen mit der externen IP-Adresse 10.0.10.1 verbinde, erhalte ich ein Timeout. Wenn ich die Standardroute auf 10.0.10.1 ändere, funktioniert die Verbindung von außen mit der externen IP-Adresse 10.0.10.1. Das sieht also nach einem Routing-Problem aus (Pakete kommen von 10.0.10.1, gehen aber über 10.0.1.1, die Standardroute, hinaus), aber ich bin nicht sicher, wie ich es lösen soll.
Ich möchte eigentlich, dass die Standardroute 10.0.1.1 ist, ich möchte nur Anfragen an die externe IP 10.0.10.1 über dieselbe Schnittstelle beantworten.
Antwort1
Sie müssen die erweiterten Routingtabellen verwenden, die von iproute2 angeboten werden. Sie richten 2 Tabellen ein und senden den gesamten von einer IP kommenden Datenverkehr an eine bestimmte Tabelle. In dieser Tabelle können Sie ein Standard-Gateway festlegen. Um die globale Standardroute festzulegen, bevorzugen Sie einfach über Metriken eine Schnittstelle gegenüber der anderen.
ein Beispiel:
- Hinzufügen der Standard-Gateways zu den Tabellen:
IP-Route hinzufügen Standard über 10.0.1.1 Tabelle 101
IP-Route hinzufügen Standard über 10.0.10.1 Tabelle 102
- Fügen Sie eine Regel hinzu, dass der gesamte Datenverkehr von einer bestimmten IP an die Tabelle gesendet wird:
IP-Regel hinzufügen von 10.0.1.151 Lookup 101
IP-Regel hinzufügen von 10.0.10.151 Lookup 102
- Fügen Sie die Metrik hinzu, welches Gateway bevorzugt werden soll:
IP-Route hinzufügen Standard über 10.0.1.151 Metrik 1000
IP-Route hinzufügen Standard über 10.0.10.151 Metrik 2000
ich hoffe, das hilft Ihnen beim Einstieg :)