A ponte wifi / ethernet do Linux falha se o cabo ethernet for desconectado


1

Eu tenho um Raspberry Pi correndo Raspbian 8 (Jessie). O adaptador Wi-Fi e o adaptador Ethernet estão em ponte (br0) e a ponte recebe um endereço IP estático. (Veja minha solução em esta postagem para detalhes sobre a configuração.)

A ponte funciona bem desde que a conexão Ethernet esteja "viva" - ou seja, conectada a um comutador ou a outro sistema ativo por meio de um cabo crossover. No entanto, se o link Ethernet cair (ou seja, se o cabo estiver desconectado ou se o switch ou o sistema remoto estiver desligado), a ponte pára de responder.

O IP da bridge é o IP do sistema. Se ele parar de responder, o dispositivo (e todos os serviços executados nele) ficará indisponível em Wifi. Não é bom.

Existe uma maneira de configurar a ponte para que ela continue a responder / operar conforme o esperado, independentemente do estado do link da interface Ethernet?

Aqui está a configuração:

auto eth0 iface 
eth0 inet manual

auto wlan0 iface 
wlan0 inet manual

auto br0 iface 
br0 inet static   
bridge_ports eth0   
  address 10.26.36.1
  netmask 255.255.255.0
  network 10.26.36.0
  broadcast 10.26.36.255
  post-up /usr/sbin/stratux-wifi.sh

Observe que a interface eth0 é adicionada à configuração de ponte em / etc / network / interfaces, enquanto a interface wlan0 é adicionada posteriormente pelo início do daemon hostapd (executado pelo script de post-up).

Por qualquer coisa que valha a pena: Eu tentei inicializar o sistema com a conexão Ethernet desconectada e enquanto a inicialização demora um pouco (a configuração da porta Eth0 tem que ser desligada) ela funciona.


O que acontece se você remover manualmente a porta eth da ponte ( ip link eth0 set nomasterou brctl ) depois da interface cair? Os seus RaspPi usam o tradicional ifup / ifdown e obtêm eventos se eth0 vai para baixo?
dirkt
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.