Como o Linux determina qual interface de rede usar quando ambos estão conectados à mesma rede?
Observe que isso não é uma pergunta sobre roteamento. Eu estou familiarizado com como isso funciona. Isto é, se, por exemplo, eu tenho meu laptop conectado ao meu roteador sem fio através da minha placa ethernet e da minha placa sem fio, ou se tenho duas placas ethernet conectadas ao mesmo roteador.
Posso dizer por experiência que, no meu caso, meu laptop parece favorecer a placa ethernet (eth0) sobre a rede sem fio (eth1 - sei que esse não é um nome típico para uma interface sem fio, mas é o que tenho), mas eu era perguntando, como isso decide? Se apenas escolher a interface numerada mais baixa, e se as duas opções forem, por exemplo, 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 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 é uma prioridade mais alta na tabela que eth1 para destinos na rede local, mas isso é decidido no Linux pela latência do link, taxa de transferência do link, até o nome da interface ou o quê? (A mesma pergunta pode ser explicada por que eth0 é a interface para a rota padrão.)