How to Tee udp packets onto a different host

Solution 1:

http://www.bjou.de/blog/2008/05/howto-copyteeclone-network-traffic-using-iptables/

or http://www.netfilter.org/projects/patch-o-matic/pom-external.html

iptables -A PREROUTING -t mangle -p udp --dport 7 -j ROUTE --gw 1.2.3.4 --tee
iptables -A POSTROUTING -t mangle -p udp --sport 7 -j ROUTE --gw 1.2.3.4 --tee

Solution 2:

We're using a 3.2.0 kernel on an Ubuntu 12.04, and this iptables rule did the trick (no need to patch!):

sudo iptables -t mangle -A PREROUTING  -p udp --dport 60000 -j TEE --gateway 172.16.3.12

This will copy the incoming packets to UDP port 60000 to the IP set in --gateway. Take in account that the gateway should be in the same network, if don't , the rule won't work unless you do something similar in the router between networks.

I wonder if there's a way to traverse this network flow to another network, maybe NATing, but we haven't tested it yet.