Bom dia senhores, meu RPi 2 é um ponto de acesso funcional com dois dongles WiFi (cada um com seu próprio intervalo de endereços IP); o RPi também está conectado via cabo LAN ao meu modem.
Oferece o serviço mais básico de ponto de acesso/proxy: recebe conexões de entrada em ambas as interfaces WiFi e envia dados para o meu modem via cabo LAN, para a Internet externa.
Até aí tudo bem: agora quero fazer do meu RPi um gerenciador de QOS: ele não apenas enviará e receberá dados, mas também dará prioridade a algum tipo específico de conexão (por exemplo, streaming por SMTP).
Um programa meu fará isso, mas testei apenas no meu laptop e agora vou colocar meu programa no meu RPi. Meu programa aceita conexões de entrada em uma porta fixa (8000): no meu laptop, instalei um plugin no meu navegador que redireciona o tráfego na porta 8000 e parece funcionar bem.
Agora vou colocá-lo no RPi, mas não sei como redirecionar o tráfego de ambos os dongles WiFi para o meu programa na porta 8000.
Não tenho conhecimento sobre roteamento, mas acho que isso pode ser feito com duas iptables
regras, algo como:
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
No entanto, essas duas regras não parecem se aplicar: a execução do meu programa no meu RPi com as duas iptables
regras não mostra nenhuma saída, portanto as conexões não são realmente redirecionadas para a porta 8000, na qual meu programa está realmente escutando.
Vi alguns exemplos onde o redirecionamento --dport
também precisa de um flag, mas não sei qual seria essa porta.
Estas são minhas iptables
regras atuais no 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