Troubles doing transparent proxy for virtual machines

Posted by Dan H on Server Fault See other posts from Server Fault or by Dan H
Published on 2010-06-01T19:46:30Z Indexed on 2010/06/01 19:55 UTC
Read the original article Hit count: 222

Filed under:

Hi iptables gurus. First here is the basic topology:

  Internet
     |
  Gateway
     |
Workstation---eth0---virbr0
                       |
                       +-----+-----+
                       |     |     |
                      vm1   vm2   vm3 

I need to test a traffic analyzer running on my workstation, listening on some port (say 8990) on eth0.

The rule [I think] I want is "any packets leaving virbr0 going anywhere to port 80 must instead go to port 8990 on eth0". My software running on port 8990 does its own check of the NAT packet mangling to push the packets through after it inspects them.

I've been banging my head on this, with different variants of:

iptables -t nat -A PREROUTING -i virbr0 -p tcp --dport 80 -j DNAT \
    --to 10.0.0.10:8990

And I've tried the more generic method of using the mangle table with --set-mark and ip rule add fwmark, but I'm not getting it.

I guess what's confusing me is that everything runs on the same box.

Thanks for any guidance.

© Server Fault or respective owner

Related posts about iptables