Das Ergebnis war ein Linux-Server mit 2 IP-Adressen in unterschiedlichen Subnetzen.
Blöd nur, dass in der "normalen" Netzwerkkonfig der Server immer nur mit in der Routingtabelle an erster Stelle stehende Standardroute Antwortet bzw. mit der IP die im selben Subnetz steht wie der anfragende Rechner .
Erfolgte jedoch die ursprüngliche Verbindungsaufnahme an die andere IP kommt damit keine gültige Verbindung zustande.
Lösen läst sich das Problem mit iproute2.
Beispiel:
gegeben sei folgende konfig:
Code: Alles auswählen
iface eth0 inet static
address 192.168.0.5
netmask 255.255.255.0
gateway 192.168.0.1
Code: Alles auswählen
iface eth1 inet static
address 10.10.0.5
netmask 255.255.255.0
gateway 10.10.0.1
Code: Alles auswählen
2 rt2
3 rt3
als nächstes müssen wir die beiden Routingtabelle "befüllen" und zwar mit:
Code: Alles auswählen
ip route add 10.10.0.0/24 dev eth1 src 10.10.0.5 table rt2
ip route add default via 10.10.0.1 dev eth1 table rt2
ip route add 192.168.0.0/24 dev eth0 src 192.168.0.5 table rt3
ip route add default via 192.168.0.1 dev eth0 table rt3
als letzten Schritt müssen wir nun nur noch die Regeln definieren die Festlegen wann welche der Routingtabellen verwendet werden soll.
Dies geschied so:
Code: Alles auswählen
ip rule add from 10.10.0.5/32 table rt2
ip rule add to 10.10.0.5/32 table rt2
ip rule add from 192.168.0.5/32 table rt3
ip rule add to 192.168.0.5/32 table rt3
Nun sollte das alles funktionieren (zumindest bis zum nächsten Reboot)...
Anschauen können wir uns das ganze per:
Code: Alles auswählen
ip route list table rt2
ip route list table rt3
ip rule show
Code: Alles auswählen
iface eth0 inet static
address 192.168.0.5
netmask 255.255.255.0
gateway 192.168.0.1
post-up ip route add 192.168.0.0/24 dev eth0 src 192.168.0.5 table rt3
post-up ip route add default via 192.168.0.1 dev eth0 table rt3
post-up ip rule add from 192.168.0.5/32 table rt3
post-up ip rule add to 192.168.0.5/32 table rt3
Code: Alles auswählen
iface eth1 inet static
address 10.10.0.5
netmask 255.255.255.0
gateway 10.10.0.1
post-up ip route add 10.10.0.0/24 dev eth1 src 10.10.0.5 table rt2
post-up ip route add default via 10.10.0.1 dev eth1 table rt2
post-up ip rule add from 10.10.0.5/32 table rt2
post-up ip rule add to 10.10.0.5/32 table rt2