![Conexão com fio tendo precedência sobre sem fio](https://rvso.com/image/1497099/Conex%C3%A3o%20com%20fio%20tendo%20preced%C3%AAncia%20sobre%20sem%20fio.png)
Eu conectei duas máquinas Linux. Uma máquina possui uma conexão sem fio com meu roteador, enquanto a outra máquina não. A máquina sem acesso sem fio (PC1) é configurada de forma que tenha um IP estático exclusivo e a outra máquina (PC2) seja definida como seu gateway padrão. PC2 é configurado de forma que também tenha um IP exclusivo e use o roteador como gateway padrão. Quando eu habilito a conexão com fio, o PC1 pode se comunicar com as interfaces eth0 e wlan0 do PC2, e o PC2 pode se comunicar com o PC1. Infelizmente, quando a conexão com fio está habilitada, o PC2 não consegue se comunicar com o roteador e, portanto, o PC1 também não. Essencialmente, as conexões com e sem fio do PC2 não podem operar ao mesmo tempo.
PC2 (NOTA: route-n
é o mesmo independentemente de o cabeamento estar habilitado ou não)
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.0.0.138 0.0.0.0 UG 0 0 0 wlan0
10.0.0.0 0.0.0.0 255.255.255.0 U 1 0 0 eth0
10.0.0.0 0.0.0.0 255.255.255.0 U 9 0 0 wlan0
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
docker0 Link encap:Ethernet HWaddr 56:84:7a:fe:97:99
inet addr:172.17.42.1 Bcast:0.0.0.0 Mask:255.255.0.0
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
eth0 Link encap:Ethernet HWaddr 60:a4:4c:62:ee:86
inet addr:10.0.0.140 Bcast:10.0.0.255 Mask:255.255.255.0
inet6 addr: fe80::62a4:4cff:fe62:ee86/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:155 errors:0 dropped:0 overruns:0 frame:0
TX packets:7744 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:12554 (12.5 KB) TX bytes:1509568 (1.5 MB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:2179347 errors:0 dropped:0 overruns:0 frame:0
TX packets:2179347 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:217854881 (217.8 MB) TX bytes:217854881 (217.8 MB)
wlan0 Link encap:Ethernet HWaddr c0:4a:00:66:58:98
inet addr:10.0.0.103 Bcast:10.0.0.255 Mask:255.255.255.0
inet6 addr: fe80::c24a:ff:fe66:5898/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1605422 errors:0 dropped:0 overruns:0 frame:0
TX packets:669649 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1405768536 (1.4 GB) TX bytes:83997471 (83.9 MB)
PC1 (NOTA: não consigo recuperar o ifconfig do PC1)
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.0.0.139 0.0.0.0 UG 0 0 0 eth0
10.0.0.0 0.0.0.0 255.255.255.0 U 1 0 0 eth0
Responder1
A configuração atual da tabela de roteamento PC2 é problema seu. Eu o reproduzi aqui com colunas sem importância removidas e convertidas da máscara de rede para a notação CIDR:
Destination Gateway Metric Iface
0.0.0.0/0 10.0.0.138 0 wlan0
10.0.0.0/24 0.0.0.0 1 eth0
10.0.0.0/24 0.0.0.0 9 wlan0
A primeira linha significa em inglês simples "O tráfego para todos os outros sites é enviado através do gateway 10.0.0.138".
A segunda e a terceira linhas fornecem o mesmo destino, portanto a métrica mais baixa vence. A linha 3 pode muito bem nem estar lá. Significado em inglês simples "Para alcançar o gateway 10.0.0.138 e todos os outros pares 10.0.0.*, envie através da eth0"
Juntos, isso resulta no tráfego destinado à Internet passando pela eth0, daí a sua falta de conectividade.
O problema surge porque você tem a mesma sub-rede usada em dois domínios de ponte diferentes na mesma rede, o que não é permitido. Pare com isso!
Altere a máscara de rede da interface eth0 do PC2 para 255.255.252.0 e forneça um endereço IP mais distante do roteador, o que alterará a tabela de roteamento para (por exemplo, fornecendo PC2 eth0 10.0.0.21 e PC1 eth0 10.0.0.22)
Destination Gateway Metric Iface
0.0.0.0/0 10.0.0.138 0 wlan0
10.0.0.20/30 0.0.0.0 1 eth0
10.0.0.0/24 0.0.0.0 9 wlan0
Agora, o tráfego para o gateway 10.0.0.138 não corresponderá à segunda linha e usará a terceira linha corretamente.
Melhor ainda seria usar um intervalo não sobreposto para a conexão com fio, por exemplo 10.0.1.x
Para que o acesso à Internet funcione também para PC1, seu roteador precisará enviar o tráfego destinado ao PC1 via PC2. Existem duas maneiras de configurar isso: alterar a tabela de roteamento do roteador ou configurar o PC2 para executar proxy-ARP.
Responder2
Existem algumas coisas que acho que podem estar causando problemas:
- Você afirma que PC1 está usando PC2 como gateway padrão, no entanto, a tabela de roteamento de PC1 mostra
10.0.0.139
como gateway padrão, em vez da interface eth0 de PC210.0.0.140
- Se o PC2 for responsável pelo roteamento do tráfego do PC1, você ativou o encaminhamento de IP no PC2? Não acredito que isso esteja habilitado por padrão no Linux. Verificar com
cat /proc/sys/net/ipv4/ip_forward
. Se for 0, o PC2 eliminará todo o tráfego roteável enviado a ele pelo PC1.Guia se você precisar ligá-lo. - Se o encaminhamento de IP estiver realmente habilitado no PC2, o iptables foi configurado para aceitar o tráfego que atinge sua cadeia de encaminhamento?
iptables -nvL
para verificar as regras da cadeia Forward.