Ponte Ethernet / sem fio Linux

3

Um dos nossos novos requisitos para um produto em que trabalho é oferecer suporte à ponte Ethernet-sem-fio. Suponha que tenhamos duas interfaces de rede: eth0 e ath0 (estamos usando o driver Madwifi). Que tipo de opções eu tenho para permitir que computadores conectados à eth0 possam acessar a rede sem fio?

A primeira coisa que tentei foi o utilitário brctl . Isso parece ser exatamente o que eu quero. E, nas redes com fio, é. Mas nas redes sem fio, não funcionou bem. Alguns Wiresharking revelaram que o MAC de origem do pacote em ponte estava (corretamente) configurado em um computador atrás da ponte. Porém, o AP, nunca tendo visto aquele MAC associado, descartaria o pacote. Se eu ativar os pacotes WDS ( iwpriv ath0 wds 1 ), o pacote será enviado com os endereços do transmissor e do receptor, mas não parece ser permitido pelo AP (é muito antigo e não podemos alterá-lo). Nem todos os APs têm que aceitar o WDS, certo?

Assim, eu estou querendo saber se nós temos que fazer algum tipo de Ethernet NATing ou algo semelhante. No entanto, não vejo como isso pode funcionar - como um endereço MAC pode ser compartilhado entre n computadores? ebtables parece muito baixo. Simplesmente reescrevendo endereços MAC ao sair e o caminho de volta faz com que o computador ponte não possa usar a rede. Além disso, como saberia o destino final de um pacote de entrada? Você precisaria de detalhes das camadas IP e TCP / UDP, pelo menos.

    
por user35428 19.02.2010 / 16:30

5 respostas

2

Certo, a ponte não funciona com wi-fi. A solução mais fácil é usar o roteamento. Você pode configurar um 'roteador transparente', que parece uma ponte, mas na verdade ele é roteamento de pacotes. Para isso, torne uma rede um subconjunto da outra.

por exemplo, se sua LAN com fio for 192.168.183.0/24 , você poderá fazer com que a LAN sem fio use 192.168.183.192/26 .

Você também pode ter que ativar o 'proxy arp'. Basta adicionar um echo 1 > /proc/sys/net/ipv4/conf/all/proxy_arp a algum script de inicialização.

    
por 19.02.2010 / 16:59
1

Tal configuração funcionará perfeitamente para fazer duas interfaces de rede

# The primary network interface
allow-hotplug eth0

iface eth0 inet static
        address 192.168.0.10
        network 192.160.0.0
        netmask 255.255.255.0
        broadcast 192.168.0.255
        gateway 192.168.0.1
        dns-nameservers 212.27.39.2
        dns-search home
        auto eth0

iface wlan0 inet static
        address 192.168.0.9
        network 192.160.0.0
        netmask 255.255.255.0
        broadcast 192.168.0.255
        gateway 192.168.0.1
        dns-nameservers 212.27.39.2
        dns-search home
        wireless_keymode open
        wireless_mode managed
        wireless_nick srvolivier
        wireless-essid SMC2870
        wireless-key wepkey
        auto wlan0

iface br0 inet static
        address 192.168.0.8
        network 192.160.0.0
        netmask 255.255.255.0
        broadcast 192.168.0.255
        gateway 192.168.0.1
        dns-nameservers 212.27.39.2
        dns-search home
        bridge_ports eth0 wlan0
        auto br0
    
por 19.02.2010 / 20:00
0

Eu escrevi um programa repetidor que lê um lado e o envia para os outros, aprendendo o MAC do PC por trás da bridge e usando-o para reescrever src / dst MACs conforme necessário, mas isso me parece carregado de consequências imprevistas.

    
por 19.02.2010 / 17:11
0

Aqui está o que temos a trabalhar (espero que ajude):

Rede1 --- sem fio (ponte WDS)))) (((sem fio (ponte WDS) --- Rede2

Rede1 e Rede2 utilizam espaço de endereço IP comum (192.168.1.0/24) Funciona como charme.

    
por 19.02.2010 / 17:45
0

Não sei com distros de desktop "normais", mas nos roteadores netgear dd-wrt eu posso facilmente conectar interfaces sem fio (virtuais) com interfaces ehternet e vlan. Como

brctl addif br0 wl0.1
brctl addif br0 vlan1
brctl addif br1 wl0.2
brctl addif br1 eth0

então eu tenho uma "WAN" sem fio em ponte com a porta wan eth e uma "LAN" wireless conectada ao switch de 4 portas (eth0).

    
por 19.02.2010 / 18:44