Isso parece uma bagunça! Primeiramente, os roteadores conectam redes diferentes . Como uma simplificação, se as coisas estiverem na mesma rede, elas devem poder falar diretamente umas com as outras. Você tem 2 redes 192.168.1.0/24. A solução mais simples seria renumerar um deles (PC1, PC2, R1) como 192.168.2.0/24.
Digamos que o PC3 esteja em 192.168.1.10.
A razão de ser um problema é que você tem 3 regras de como chegar ao PC3, uma delas porque corresponde à 192.168.1.0/24
e duas porque corresponde às regras default
, que também podem ser escritas 0.0.0.0 / 0 (uma vez através da interface ppp0 (o túnel) e uma vez através da interface wlan0).
As regras são ordenadas por ordem, porque 24 é mais que 0, é mais específico e, portanto, é usado.
Portanto, essa tabela de roteamento informa que o PC2 pode se comunicar diretamente com o PC3 por meio da interface wlan0. então quando você usa ping PC3
sua placa wireless.
Se você renumerou PC1, PC2 e R1 para estar na rede 192.168.2.0/24, então as regras para onde PC2 se tornam muito mais simples. Se o pacote tiver que ir para 192.168.2.0/24, envie-o via wlan0, caso contrário, envie-o para 192.168.1.1 via ppp0.
Para chegar a 192.168.1.1 existem 4 opções 0.0.0.0/0 via ppp0, 0.0.0.0/0 via wlan0, 192.168.1.0/24 via wlan0 e 192.168.1.1/32 via ppp0. A rota / 32 é a mais específica e, portanto, é escolhida, o que explica porque você vê R2.
Você poderia adicionar rotas extras para PC3 e PC4, algo como
ip route add 192.168.1.10/32 dev ppp0
ip route add 192.168.1.11/32 dev ppp0
e espero que o R2 faça as coisas o suficiente para permitir que os pacotes voltem, mas a renumeração é muito mais simples.