Bom dia senhores, meu RPi 2 é um ponto de acesso de trabalho com dois dongles WiFi (cada um com seu próprio intervalo de endereços IP); o RPi também é conectado via cabo LAN ao meu modem.
Ele oferece o serviço mais básico de ponto de acesso / proxy: ele 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é aqui tudo bem: agora eu quero fazer do meu RPI um gerenciador de QOS: não apenas enviará e receberá dados, mas dará prioridade a algum tipo particular de conexões (por exemplo, streaming via SMTP).
Um programa meu irá fazê-lo, mas eu testei apenas no meu laptop e agora vou colocar o meu programa no meu RPi. Meu programa aceita conexões de entrada em uma porta fixa (8000): no meu laptop, eu 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.
Eu não tenho conhecimento sobre roteamento, mas acho que isso pode ser feito com duas regras iptables
, 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: executar meu programa no meu RPi com as duas regras iptables
não mostra saída, portanto as conexões não são realmente redirecionadas para a porta 8000, na qual meu programa está realmente escutando. / p>
Eu vi alguns exemplos em que o redirecionamento também precisa de um sinalizador --dport
, mas não sei o que seria essa porta.
Estas são as minhas regras atuais de iptables
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
Tags networking iptables routing