zwei Routing Tabellen mit Paketmarkierung

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
schattenfell
Beiträge: 27
Registriert: 04.07.2011 16:26:13

zwei Routing Tabellen mit Paketmarkierung

Beitrag von schattenfell » 10.02.2014 09:36:19

Hallo,

in meinem Setup betreibe ich einen Server mit zwei Ethernet Schnittstellen (eth1 und eth2) an die zwei DSL Leitungen angeschlossen sind.
Über eth1 wird der gesamte inländische Traffic geleitet, über eth2 der ausländische Traffic (die Routing Tabelle enthält entsprechend mehrere tausend Einträge von Subnetzen im Inland).

Auf dem Server befindet sich zudem ein https Webserver, der von außen erreichbar ist über die anliegende IP an eth1 (DynDNS).

Ruft man die Webseite entsprechend aus dem Inland auf, klappt alles ohne Probleme. Aus dem Ausland jedoch funktioniert das ganze nicht mehr, da dann die Anfrage über eth1 reinkommt und die Antwort prinzipbedingt über eth2 versendet wird. Somit kommt keine Verbindung zu Stande.

Also dachte ich mir, markiere ich doch einfach die entsprechende Pakete und erzwinge den Versand über eth1:

In die "/etc/iproute2/rt_tables" habe ich mit Priorität 1 eine neue Routing Tabelle ergänzt "1 rt2".

Danach habe ich die entsprechend IPTables Regel für die Markierung der ausgehenden Pakete ergänzt:
iptables -t mangle -A PREROUTING -i eth2 -p tcp --sport 443 -j MARK --set-mark 2

Nun noch die Route setzen für die markierten Pakete:
ip rule add fwmark 2 table rt2
ip route add table rt2 default via 192.168.1.1 dev eth1
ip route flush cache

Leider zeigt mir TCPDump danach weiterhin an, dass die Pakete über eth2 versendet werden und nicht eth1.

Was könnte ich übersehen haben?

Vielen Dank im Voraus!

Benutzeravatar
catdog2
Beiträge: 5352
Registriert: 24.06.2006 16:50:03
Lizenz eigener Beiträge: MIT Lizenz

Re: zwei Routing Tabellen mit Paketmarkierung

Beitrag von catdog2 » 10.02.2014 12:15:58

Spontan würde ich sagen du musst auch die Absenderadresse der markierten Pakete per SNAT umschreiben.

//edit:
Leider zeigt mir TCPDump danach weiterhin an, dass die Pakete über eth2 versendet werden und nicht eth1.
Ok das scheint noch ein weiteres Problem zu sein aber ersteres könntest du auch kriegen. :)

//edit2:
http://tldp.org/HOWTO/Adv-Routing-HOWTO ... links.html liest sich so als würde es tun was du willst.
Unix is user-friendly; it's just picky about who its friends are.

Antworten