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!
zwei Routing Tabellen mit Paketmarkierung
-
- Beiträge: 27
- Registriert: 04.07.2011 16:26:13
Re: zwei Routing Tabellen mit Paketmarkierung
Spontan würde ich sagen du musst auch die Absenderadresse der markierten Pakete per SNAT umschreiben.
//edit:![Smile :)](./images/smilies/icon_smile.gif)
//edit2:
http://tldp.org/HOWTO/Adv-Routing-HOWTO ... links.html liest sich so als würde es tun was du willst.
//edit:
Ok das scheint noch ein weiteres Problem zu sein aber ersteres könntest du auch kriegen.Leider zeigt mir TCPDump danach weiterhin an, dass die Pakete über eth2 versendet werden und nicht eth1.
![Smile :)](./images/smilies/icon_smile.gif)
//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.