Bridging: perdendo a conexão de rede WLAN com 4addr na opção - por quê?

9

Pergunta:
Para usar com a minha VM Xen, preciso criar uma interface de rede virtual (vif) que seja ponte para wlan0.

Se em / etc / network / interfaces eu adiciono

auto xenbr0
       iface xenbr0 inet dhcp

E depois fazer

brctl addif xenbr0 wlan0

Eu recebo esta mensagem de erro.

can't add wlan0 to bridge xenbr0: Operation not supported

Descobri que o Linux não permite a ponte de uma interface sem fio no modo gerenciado, a menos que você ative a opção 4addr (necessária para recompilar o iw):

iw dev wlan0 set 4addr on

Mais tarde

brctl addif xenbr0 wlan0

funciona, e brctl show mostra xenbr0 como ponte para wlan0.

Infelizmente, assim que executo

iw dev wlan0 set 4addr on

minha conexão de rede inteira acabou (sem conexão). Assim que eu executo

iw dev wlan0 set 4addr off

Eu reconecto e funciona novamente. Se eu executar novamente o 4addr, ele será interrompido novamente; se eu executar o 4addr, ele funcionará novamente.

Infelizmente, não posso simplesmente ativar o 4addr, ativar a ponte e desligá-lo novamente (erro: o dispositivo não está pronto).

Alguém sabe por que eu perco minha conexão?

Feitiçaria
fonte

Respostas:

14

Encontre aqui uma resposta: http://nullroute.eu.org/~grawity/journal.html#post:20110826

iw dev wlan0 set 4addr on

No entanto, com o 4addr ativado, é provável que você seja completamente ignorado pelo AP: a associação é bem-sucedida, mas todos os quadros de dados desaparecem no éter. Isso pode ser por motivos de segurança (porque é muito difícil falsificar o endereço MAC de origem. Sim.) No meu roteador (executando o OpenRG), é necessário ativar o modo "WDS" para a interface do AP sem fio, adicione um dispositivo WDS restrito ao meu endereço MAC do laptop e adicione-o à ponte da LAN. Pacotes 4addr agora funcionam.

No entanto, há outro problema: o roteador agora rejeita pacotes de três endereços do laptop, o que pode ser bastante inconveniente (é necessário alternar 4addr toda vez que a rede WLAN é alterada). A solução alternativa é adicionar, no laptop, uma segunda interface sem fio vinculada ao mesmo dispositivo, mas com um endereço MAC diferente:

# undo the earlier configuration
iw dev wlan0 set 4addr off


# add a second interface
iw dev wlan0 interface add wds.wlan0 type managed 4addr on
ip link set dev wds.wlan0 addr $ADDR
ip link set dev wds.wlan0 up

Aqui $ ADDR deve corresponder ao endereço do dispositivo WDS configurado no roteador; além disso, pode ser qualquer endereço MAC válido. O MAC original do wlan0 permanece para uso "normal".

É possível usar o wlan0 e o wds.wlan0 ao mesmo tempo - embora eu só tenha testado associar ao mesmo ponto de acesso duas vezes, não a pontos de acesso diferentes.

fmo
fonte
5

Sob certas circunstâncias, você também pode usar o wlan_kabel. Ele usa soquetes de pacotes para conectar diretamente dispositivos wlan * com dispositivos ethernet. No entanto, você só pode conectar um único MAC de cada vez com wlan_kabel. Ele não tem a desvantagem de ser barrado pelos pontos de acesso, porque apenas o MAC original do dispositivo wlan é usado.

No seu caso, isso significaria que o wlan0 só poderia ser usado por uma VM e nem pelo host.

Você pode obter wlan_kabel aqui .

escitalopram
fonte