Se eu tiver dois dispositivos de rede, como posso saber qual está sendo usado para qualquer conexão solicitada?
Com isso :
ip r
default via 10.0.0.1 dev wlp3s0 proto static
default via 10.0.0.1 dev wlx00e04c221395 proto dhcp src 10.0.0.143 metric 600
10.0.0.0/24 dev wlp3s0 proto kernel scope link src 10.0.0.120
10.0.0.0/24 dev wlx00e04c221395 proto kernel scope link src 10.0.0.143
10.0.0.1 dev wlx00e04c221395 proto dhcp scope link src 10.0.0.143 metric 600
Eu tenho duas default
rotas. O sistema sempre usará o primeiro listado pelo ip r
comando?
Responder1
Verifique sua tabela de rotas com o comando abaixo, aquiMétricacoluna normalmente decide quais são as prioridades de roteamento,
$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.42.0.2 0.0.0.0 UG 50 0 0 eth1
0.0.0.0 10.42.0.1 0.0.0.0 UG 100 0 0 eth0
Esta prioridade depende da sequência de interface que aparece após a reinicialização/inicialização, você também pode influenciar a prioridade com o comando abaixo
sudo ifmetric <interface> <priority>
Responder2
Acho que a discussão nos comentários da outra resposta merece uma resposta própria:
Primeiro, embora você possa listar a tabela de roteamento com ip route
ou route -n
e descobrir o que provavelmente acontecerá, é mais fácil simplesmente pedir ao kernel para ip route get a.b.c.d
percorrer as tabelas de roteamento (sim, há mais tabelas em um sistema Linux moderno e route -n
apenas mostra a tabela principal) e informar o resultado.
Em segundo lugar, uma regra prática para projetar uma rede é “cada host recebe apenas umsolteirointerface de rede em cada sub-rede à qual está conectado". Aqui, VMs, namespaces de rede etc. contam como "hosts" adicionais, mesmo que sejam executados no mesmo hardware.
Um corolário é "não, você não atribui vários endereços IPv4 à mesma interface de rede" (a menos que você saiba o que está fazendo, mas faça isso por sua própria conta e risco).
A razão é que nada se ganha ao tornar uma sub-rede acessível através de diferentes interfaces de rede: ela irá para a mesma sub-rede de uma forma ou de outra.
Se você violar essas regras, como fez acima, onde aparentemente tem duas WLANs conectadas à mesma sub-rede:
10.0.0.0/24 dev wlp3s0 proto kernel scope link src 10.0.0.120
10.0.0.0/24 dev wlx00e04c221395 proto kernel scope link src 10.0.0.143
então o que acontece não está definido. Como você pode ver, o kernel do Linux escolhe aleatoriamente uma das interfaces de rede para destinos 10.0.0.*
.
Então, ambos estão realmente se conectando a duas WLANs diferentes. Nesse caso, altere o intervalo IP de uma das WLANs, por exemplo, para 10.0.1.0/24. Ou são a mesma WLAN e, nesse caso, não faz sentido ter dois adaptadores WLAN.
É semelhante com a regra padrão. Você deve ter apenas uma única regra padrão; ter múltiplas regras significa que o comportamento é indefinido e uma regra é escolhida aleatoriamente. Isso significa que os pacotes em uma conexão são enviados aleatoriamente com parâmetros diferentes (por exemplo, endereços de origem), e o host, por outro lado, reconhecerá apenas um conjunto de parâmetros (aquele com o qual a conexão foi aberta), descartará os outros pacotes e considerará os pacotes perdidos como pacotes perdidos. Isso ocorre porque os protocolos padrão da Internet são “single homed”. Existem protocolos multi-homed (como SCTP ou extensões TCP multi-home), mas atualmente eles não são usados amplamente o suficiente para serem úteis.
Portanto, não, você não pode usar dois ISPs para se conectar à Internet e tornar "a Internet mais rápida" (a menos que você tenha alguma maneira difícil de decidir qual conexão usar, por exemplo, por endereço de destino). Esse é um FAQ que é perguntado toda semana ou mais.
Espero que isso responda a todas (ou pelo menos a maioria) das perguntas que você não fez na pergunta original.