[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Multi-Homed Server



On 03.01.2015 09:00, Stefan Baur wrote:

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.

Genau.

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!"?

source based routing. Du musst dem System erklären, dass es Pakete *von* 192.168.0.4 über 192.168.0.1, von .1.4 über .1.1 und von .2.4 über .2.1 verschicken soll. (Und deine Dienste müssen die abgehenden Pakete mit den Absender-IP-Adressen verschicken, an denen die eingehende Verbindung ankam.)
Das macht man, indem man

- iproute2 installiert.

- in /etc/iproute2/rt_tables drei Einträge für die drei Provider/Links macht, also eine Routingtabelle für jeden einrichtet.

- mittels 3 x "ip route add default dev ... table ..." jeder Tabelle ihre Default-Route beibringt.

- mit 3 x "ip rule add from 192.168.?.4 lookup ..." dem abgehenden Traffic die richtige Tabelle zuweist.



mfG Paul



Reply to: