Good morning gentlemen, my RPi 2 is a working access point with two WiFi dongles (each with its own range of IP addresses); the RPi is also connected via LAN cable to my modem.
It offers the most basic service of access point/proxy: it takes incoming connections on both WiFi interfaces and send data to my modem via LAN cable, to the outside Internet.
So far so good: now I want to make my RPi a QOS manager: not only it will send and receive data, but it will give priority to some particular type of connections (e.g., streaming over SMTP).
A program of mine will do so, but I tested it only on my laptop and now I will put my program in my RPi. My program accepts incoming connections on a fixed port (8000): on my laptop, I installed a plugin on my browser which redirects traffic on port 8000, and it seems to work all fine.
Now I'm going to put it on RPi, but I don't know how to redirect traffic from both WiFi dongles to my program on port 8000.
I lack of knowledge about routing, but I think this can be accomplished with two iptables
rules, somethink like:
iptables -t nat -A PREROUTING -i wlan0 -p tcp -j REDIRECT --to-port 8000
iptables -t nat -A PREROUTING -i wlan1 -p tcp -j REDIRECT --to-port 8000
Yet, these two rules does not seem to apply: running my program on my RPi with the two iptables
rules shows no output, so connections are not really redirected to port 8000, to which my program is actually listening.
I saw some examples where redirecting needs a --dport
flag too, but I don't know what this port would be.
These are my current iptables
rules on RPi:
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i wlan0 -o eth0 -j ACCEPT
-A FORWARD -i eth0 -o wlan1 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i wlan1 -o eth0 -j ACCEPT