Linux: ligação automática de interfaces WiFi e Wired - como funciona?

0

Para minha surpresa, acabei de descobrir que o meu sistema Ubuntu 13.04 parece suportar algo como ligação automática de interface de rede.

Se eu estabelecer uma conexão TCP via Wi-Fi (por exemplo, usando netcat no cliente e no servidor) e também ligar a interface com fio, todo o tráfego adicional nessa conexão parece transparente percorrer a interface com fio. Eu verifiquei isso com o Wireshark, e também posso dizer a partir da mudança no rendimento ao copiar arquivos.

Isso funciona, no entanto, somente enquanto eu mantiver a conexão Wi-Fi estabelecida. Se desconectar o WiFi, a conexão TCP também falhará.

A máquina com a qual estou testando tem MAC diferente e endereços IP diferentes para a interface Wi-Fi e com fio. Eles estão conectados à mesma rede embora.

Eu não tenho o pacote ifenslave instalado e também não configurei uma ponte ou algo parecido. Estou usando o NetworkManager.

Minha pergunta é: como isso funciona? Qual camada é responsável por redirecionar os pacotes e como ela sabe para onde enviá-los? E por que isso para de funcionar se a conexão Wi-Fi for desligada?

    
por Nikratio 07.08.2013 / 05:28

1 resposta

0

Ok, explicação decepcionante. Esta é apenas a boa rota padrão antiga no trabalho. O NetworkManager adiciona uma nova rota à mesma rede para cada interface. A interface que aparece por último recebe todo o tráfego de saída.

O interessante é que isso também funciona para o tráfego de entrada. Uma vez que o host remoto começa a receber seus ACKs de um MAC diferente para o qual enviou os dados, ele atualiza sua tabela ARP para apontar para o novo MAC, de modo que a partir de então toda a comunicação passe por essa interface.

Eu suspeito que isso irá quebrar se houver regras de firewall que impeçam que as interfaces aceitem pacotes que não sejam para o endereço IP configurado, mas, curiosamente, isso não é feito por padrão ...

    
por 07.08.2013 / 05:59