I'm trying to connect 2 devices in different subnets.
Device 1: IP address: 172.20.35.1 netmask: 255.255.0.0 gateway: 172.20.1.1
Device 2: IP address: 172.20.100.100 netmask: 255.255.255.0 gateway: 172.20.100.1
The router has IP address 172.20.1.1 !! When I send a UDP datagram from device 1 to device 2, device 2 receives it but cannot reply, since the gateway IP address (device 2) is wrong.
O problema real é a sobreposição de sub-redes, combinada com nenhum proxy arp na sua interface de roteador com 172.20.1.1.
O host em 172.20.35.1 acha que 172.20.1.1 está na mesma sub-rede, portanto 172.20.35.1 ARPs diretamente para 172.20.1.100. No entanto, nada está na sub-rede 172.20.0.0/16 para responder.
Existem algumas opções para resolver o problema:
-
(Hack de curto prazo) Ative o proxy-arp em 172.20.1.1. Enquanto 172.20.1.1 tiver uma rota para 172.20.35.0/24, 172.20.1.1 responderá a ARPs para 172.20.1.100 com seu próprio endereço MAC e assumindo que não há outros problemas, você obterá comunicação bidirecional entre essas sub-redes.
-
(Long Term) Reorganize sua rede sem sub-redes sobrepostas. Isso requer readdressing hosts; potencialmente muitos hosts.
-
Execute o NAT em 172.20.35.0/24 para que não pareça a mesma sub-rede que qualquer outra coisa. As soluções NAT podem ser incrivelmente mais difíceis de suportar, mas evita a necessidade de proxy arp.
Also: what if I change the network config of
device 2
as shown below.With this network config,
device 2
never receives the UDP datagram. Why is that?
Parece que você precisa de uma rota para 192.168.170.0/24