Idee zur TCP-Paket-Manipulation gesucht

19/11/2013 - 20:00 von Stefan Baur | Report spam
Hallo Liste,

ich habe folgende Situation:

Eine relativ große Datenmenge, die ziemlich aufgeblàht ist, soll per TCP
über eine WAN-Strecke transportiert werden. Latenz ist für den
Anwendungszweck vernachlàssigbar, die Datenmenge sorgt aber dafür, dass
man làngere Zeit die WAN-Strecke zustopft. Mittels Traffic Shaping kann
man den Traffic natürlich so beeinflussen, dass die anderen Anwender der
WAN-Verbindung nicht sonderlich darunter leiden, aber eben nur um den
Preis, dass die Übertragung der Daten noch lànger dauert.

Die Daten lassen sich aber relativ gut komprimieren - nur leider nicht
mit der im zur WAN-Strecke gehörenden VPN-Router eingebauten
Komprimierungsfunktion. Aber selbst GZIP wirkt schon Wunder.

Momentan löse ich das so, dass ich daher auf einem anderen Computer
unter einer anderen IP-Adresse im Netz der Absender-IP auf dem gleichen
Port einen Dienst betreibe, der die Daten entgegennimmt, komprimiert,
und dann zu einem weiteren Computer, diesmal im Zielnetz am anderen Ende
der WAN-Verbindung, übertràgt. Dort werden die Daten dann wieder
ausgepackt und an den Zielrechner übertragen. Dem Absendersystem sage
ich einfach, dass das Zielsystem die IP hàtte, auf der mein Komprimierer
làuft.

Das klappt so lange, wie es nur ein Zielsystem gibt und man die IP daher
hart ins Entpackskript eincodieren kann.

Geht es auch irgendwie eleganter, so dass das auch für n>1 Zielsysteme
skaliert? Vielleicht per iptables auf dem Router, àhnlich wie man bei
HTTP einen transparenten Proxy einklinken kann? Bzw. geht es per
ebtables (filternde Bridge statt Router)?

Wenn es per iptables/ebtables geht, sind die zwei zentralen Fragen wohl:
1) Wie greife ich das Paket ab und leite es an mein Komprimierungsskript
weiter?
2) Wie komme ich an die Ziel-IP, die der Absender eigentlich erreichen
wollte, so dass ich sie ebenfalls an das Skript übergeben kann?

"Wie übertrage ich die Ziel-IP an den Entpack-Rechner" ist dagegen schon
gelöst.

Ansonsten lautet die Frage: Wenn nicht per iptables/ebtables, wie dann?

Gruß
Stefan


Zum AUSTRAGEN schicken Sie eine Mail an debian-user-german-REQUEST@lists.debian.org
mit dem Subject "unsubscribe". Probleme? Mail an listmaster@lists.debian.org (engl)
Archive: http://lists.debian.org/528BB39C.8030806@stefanbaur.de
 

Lesen sie die antworten

#1 Heiko Schlittermann
19/11/2013 - 21:20 | Warnen spam

Hallo Stefan,

ich bin mir nicht sicher, ob ich alles korrekt verstanden habe…

Stefan Baur (Di 19 Nov 2013 19:53:16 CET):
…
Die Daten lassen sich aber relativ gut komprimieren - nur leider
nicht mit der im zur WAN-Strecke gehörenden VPN-Router eingebauten
Komprimierungsfunktion. Aber selbst GZIP wirkt schon Wunder.

Momentan löse ich das so, dass ich daher auf einem anderen Computer
unter einer anderen IP-Adresse im Netz der Absender-IP auf dem
gleichen Port einen Dienst betreibe, der die Daten entgegennimmt,
komprimiert, und dann zu einem weiteren Computer, diesmal im
Zielnetz am anderen Ende der WAN-Verbindung, à¼bertrà¤gt. Dort werden
die Daten dann wieder ausgepackt und an den Zielrechner à¼bertragen.
Dem Absendersystem sage ich einfach, dass das Zielsystem die IP
hà¤tte, auf der mein Komprimierer là¤uft.



Du kannst also nicht den Zielport modifizieren? Dann kannst Du auf dem
Kompressions-Rechner aber sehr viele Adressen haben. Dein
Kompressions-Script kann die Adresse, unter der er kontaktiert wurde,
abfragen. Daraus kann er dann ableiten, zu welchem Zielsystem er sich
verbinden muss. Das hat erstmal nichts mit iptables zu tun.

Wenn Du auf dem WAN-Router iptables hast, kannst Du das natà¼rlich auch
dort lösen, mit dem REDIRECT-Target auf spezifische Ports, je nach
Adresse, oder auf per DNAT zum Kompressor. Dann musst Du auf dem
Absender nichts beeinflussen.

Das klappt so lange, wie es nur ein Zielsystem gibt und man die IP
daher hart ins Entpackskript eincodieren kann.



Du meinst sicher das Einpack-Script, oder?

Geht es auch irgendwie eleganter, so dass das auch fà¼r n>1


…
Wenn es per iptables/ebtables geht, sind die zwei zentralen Fragen wohl:
1) Wie greife ich das Paket ab und leite es an mein
Komprimierungsskript weiter?
2) Wie komme ich an die Ziel-IP, die der Absender eigentlich
erreichen wollte, so dass ich sie ebenfalls an das Skript à¼bergeben
kann?



Wie oben beschrieben, indirekt à¼ber ein Ziel-IP >Port-Mapping, oder
Ziel-IP->lokale-IP Mapping.

Oder iptables mit TPROXY-Target kann Dein Freund werden. Gemeinsam mit
dem redir-Paket.

Best regards from Dresden/Germany
Viele Grà¼àŸe aus Dresden
Heiko Schlittermann
SCHLITTERMANN.de - internet & unix support -
Heiko Schlittermann, Dipl.-Ing. (TU) - {fon,fax}: +49.351.802998{1,3} -
gnupg encrypted messages are welcome key ID: 7CBF764A -
gnupg fingerprint: 9288 F17D BBF9 9625 5ABC 285C 26A9 687E 7CBF 764A -
(gnupg fingerprint: 3061 CFBF 2D88 F034 E8D2 7E92 EE4E AC98 48D0 359B)-





Zum AUSTRAGEN schicken Sie eine Mail an
mit dem Subject "unsubscribe". Probleme? Mail an (engl)
Archive: http://lists.debian.org/

Ähnliche fragen