Preferência da interface de rede

7

Como o Linux determina qual interface de rede usar, quando ambos estão conectados à mesma rede?

Observe que isso não é uma pergunta sobre o roteamento. Eu estou familiarizado com como isso funciona. Isso acontece se, digamos, eu tiver meu laptop conectado ao roteador sem fio por meio da placa ethernet e da placa sem fio, ou se tiver duas placas ethernet conectadas ao mesmo roteador.

Eu posso dizer por experiência que no meu caso, meu laptop parece favorecer a placa ethernet (eth0) pela wireless (eth1 - eu sei que não é um nome comum para uma interface wireless, mas é o que eu tenho), mas eu estava pensando, como isso decide? Se apenas pegar a interface com numeração mais baixa, e se as duas opções forem, digamos, eth0 e wlan0?

Edit: @Nils apontou que isso ainda é uma questão de roteamento, e a tabela de roteamento fornece a resposta (veja a resposta dele). Isso ainda deixa a minha pergunta original, mas de uma forma diferente. O que determina a ordem das entradas na tabela de roteamento no Linux? Por exemplo, aqui está minha tabela de roteamento enquanto conectado a ambas as interfaces:

Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         192.168.4.1     0.0.0.0         UG        0 0          0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth0
192.168.4.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0
192.168.4.0     0.0.0.0         255.255.255.0   U         0 0          0 eth1

É claro que eth0 é a prioridade mais alta na tabela do que eth1 para destinos na rede local, mas isso é decidido no Linux a partir de latência de link, taxa de transferência de link, até mesmo o nome da interface ou o quê? (A mesma pergunta poderia ser por que eth0 é a interface para a rota padrão.)

    
por Nick 02.12.2012 / 19:39

2 respostas

6

Bem, esta é uma questão de roteamento.

A resposta é simples: a primeira entrada que dará a melhor entrada de roteamento é "o vencedor". Então, olhe para netstat -rn para ver qual interface é a primeira.

Update: As configurações de roteamento de inferface de rede normalmente são configuradas durante a inicialização do sistema. Assim, a ordem de inicialização dos dispositivos de rede será a ordem nessa tabela. Com dispositivos PCI, estes normalmente estão sendo processados pelo menor número de slot primeiro. Dispositivos externos (por exemplo, USB) normalmente vêm mais tarde.

Mas a ordem exata depende do script de inicialização da rede do seu sabor do Linux (isso é algo em que eles diferem muito).

BTW: Se você quiser fazer uso de seus dois links, você deve optar por bonding . Lá você pode configurar a ordem de uso dos seus links.

    
por 02.12.2012 / 22:08
-3

Não ofender você, mas se você estiver familiarizado com a parte de roteamento de sua pilha de comunicações TCP / IP em qualquer máquina linux, você também deve saber que, os resultados de conectar duas interfaces de rede à mesma rede são imprevisíveis no melhor. Se eu fosse você, eu desabilitaria o wireless no meu laptop ou executaria um comando ifconfig eth0 down (assumindo que eth0 é sua conexão ethernet com fio) para desligá-lo. O Linux pode ter alguma inteligência para fazer a mesma seleção para cada pacote, mas no caso de um problema de rede em algum momento, pode resultar em alguns resultados inesperados. Meus 2 centavos.

    
por 02.12.2012 / 20:06