IPTables e rotas

0

Estou tentando permitir que um dispositivo conectado à eth0 acesse dispositivos em wlan0 e wlan1. Diagrama mostrado abaixo. Os dispositivos WiFi estão em frequências diferentes e não posso conectá-los (não suportados).

                                                    (192.170.1.32) WiFi Device 1 freq A
                                                    /
                                                   /
                                                (wlan0 = 192.170.1.250/32)
PC (192.168.2.33) -------  (eth0 = 192.168.2.1) RPi ----- 
                                                (wlan1 = 192.170.1.251/32)
                                                   \
                                                    \
                                                    (192.170.1.69) WiFi Device 2 freq B

Tentei configurar o IPTables para direcionar para a rede correta (sei com antecedência qual é o endereço IP de cada dispositivo na rede)

Por exemplo, se eu quiser que a interface envie todos os pacotes udp para 192.170.1.69, que está nos pacotes freq A (wlan0) e udp para 192.170.1.9, que está na freq B (wlan1).

# Iptables
sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
iptables -t nat -A PREROUTING -s 192.168.1.1 -d 192.170.1.69 -p udp -j MARK  --set-mark 11
iptables -t nat -A PREROUTING -s 192.168.1.1 -d 192.170.1.79 -p udp -j MARK  --set-mark 12

# IP Routes
ip route add 192.170.1.0/24 dev wlan0 table 11
ip route add 192.170.1.0/24 dev wlan1 table 12

No entanto, isso não funciona. Eu não consigo enviar mensagens para os dispositivos corretos - eu sinto porque é muito simples.

    
por Lhh92 15.09.2017 / 17:33

1 resposta

0

A resposta acabou sendo um aplicativo chamado parprouted . Este é um Proxy ARP que permite que os dispositivos visualizem a rede como uma rede lógica única, mesmo quando estão fisicamente separados. O proxy ARP funciona na camada 3, o que significa que você não precisa lidar com a camada 2 (camada de link). Para um bom artigo sobre como funcionam os Proxies ARP, veja link

Um método de ponte não funciona neste caso. Principalmente porque o WiFi não parece usar o mesmo esquema de enquadramento da ethernet e não é facilmente interligado.

Eu não procurei muito tempo no método ip route para descobrir como fazer isso. Não tenho certeza de como configurá-lo, mas acho que as tabelas de IP talvez precisem ser usadas para filtrar com base no endereço IP de destino.

Minha configuração de rede foi a seguinte

                                                                        (192.170.1.32) WiFi Device 1 freq A
                                                                        /
                                                                       /
                                                                    (wlan0 = 192.170.1.250/24)
PC (192.170.1.251/24) -------  (eth0 = 192.170.1.251/24) RPi ----- 
                                                                    (wlan1 = 192.170.1.251/24)
                                                                       \
                                                                        \
                                                                        (192.170.1.69) WiFi Device 2 freq B

E parprouted foi iniciado usando parprouted eth0 wlan0 wlan1

    
por 18.09.2017 / 04:43