transocks_ev Patch: DNS, Performance, Reliability, Logging

| 3 Comments | No TrackBacks

I've put out a new transocks_ev patch transocks_ev-performance-reliability-dns-logging.patch. transocks_ev is a neat little program by Bernd Holzmueller at tiggersWelt.net that uses the Linux netfilter/iptables stack to intercept outgoing TCP connections and transparently convert them into SOCKS5 proxy connections. It's based on transocks which does the same thing. transocks uses a forking model, while transocks_ev uses libevent to multiplex connections in a single process's event loop.

I'm planning on using these changes to transparently intercept outgoing Postfix SMTP connections on some backend mail servers and to use DNS-based load balancing to fan those connections out across multiple proxy servers/Internet connections.

In addition, I've improved the logging support of transocks_ev, giving it three levels of verbosity with basic statistics collection for the connections. All blocking operations have been converted to non-block (connect(), write(), the new DNS). The code is using libevent bufferevent to manage low level socket access.

No TrackBacks

TrackBack URL: http://www.chaseventers.org/cgi-bin/mt/mt-tb.cgi/41

3 Comments

Hi, cool patch. Any idea how complicated it is to implement UDP in transocks_ev? Guess the way from DNS to UDP is not far. Unfortunately transocks_ev is not been developed anymore.

UDP shouldn't be too much of a stretch... SOCKS5 is a simple protocol. The main bit of logic I can imagine having to implement is something to expire idle/old sessions, since UDP is connectionless.

Hi,

Redsocks now supports UDP. It also has Authentification and some other nice Features. Check out: https://github.com/darkk/redsocks
http://darkk.net.ru/redsocks/

Leave a comment

About this Entry

This page contains a single entry by Chase Venters published on September 20, 2010 6:39 PM.

libsoup Ignores DNS TTLs was the previous entry in this blog.

Brain Damage is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.