Running on Ubuntu.
I have machine 1 < – > machine 2 < – > machine 3.
I dont know machine 1 or machine 3 ip. It can be any ip.
machine 1 send packet to machine 3 and machine 3 send packet to machine 1.
Machine 2 is used as a bridge:
ifconfig eth0 0.0.0.0
ifconfig eth2 0.0.0.0
brctl addbr br0
brctl addif br0 eth0 eth2
ifconfig br0 up
i want to have an iptable rule in machine 2 that will add all traffic that come to eth0 to nfqueue1 and all traffic that come to eth2 to nefqueue2.
Now i have the following rule:
iptables -A FORWARD -p tcp -j NFQUEUE --queue-num 0
which is not good to me because i want to distinguish between traffic that come from machine 3 to traffic that come from machine 1, so i want to have 2 rule.
Add -i eth0 to the rule doesn’t help.
Best Answer
since you're operating a bridge, you need to use
-m physdev
for usage, run
iptables -m physdev -h
- if you compile your own kernel, you may need to add this module.