Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

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.

share|improve this question

1 Answer 1

Turns out this question is moot. Tcpdump shows that the subnet for the VM's, 192.168.122.0/24, never even appears in the kernel routing decision. I guess libvirtd does its own network handling before handing off to the kernel network stack.

Back to the drawing board.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.