ich habe einen Server, der drei Internetanbindungen hat.
Jeweils über einen DSL-/Kabel-/Sonstwas-Router, der schon NAT macht.
Der Server hat die IP-Adressen
192.168.0.4 - br0
192.168.1.4 - br1
192.168.2.4 - br2
Es gibt nun drei Default Gateways "192.168.0.1", "192.168.1.1",
"192.168.2.1":
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use
Iface
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 br0
0.0.0.0 192.168.1.1 0.0.0.0 UG 1 0 0 br1
0.0.0.0 192.168.2.1 0.0.0.0 UG 2 0 0 br2
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 br0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 br1
192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 br2
Auf den drei NAT-Routern ist jeweils das passende Portforwarding
eingerichtet, um per SSH auf den Server zugreifen zu können.
Trotzdem klappt es nur vom ersten in der Liste, der über
192.168.0.1->192.168.0.4 die Verbindung herstellt.
Mit tcpdump sehe ich, dass die Verbindungsanfragen über
192.168.1.1->192.168.1.4 und 192.168.2.1->192.168.2.4 auf der Maschine
ankommen, aber es wird keine Verbindung aufgebaut.
Ich vermute, das liegt daran, dass versucht wird, die Antwortpakete über
192.168.0.4->192.168.0.1 zu verschicken.
Wie kann ich dem Server sagen "Default Gateway ist 192.168.0.1,
erreichbar über br0, ABER für Traffic, der über br1 oder br2
hereinkommt, verwende bitte *ausschließlich* das für das jeweilige
Interface angegebene Gateway!"?