O servidor tenta se comunicar com o IP local do cliente de uma rede diferente

0

Sou analfabeto em rede, mas estou tentando fazer um servidor em minha rede doméstica se comunicar com alguns clientes na rede doméstica de meu amigo pela Internet. Nem meu amigo nem eu temos um IP público estático e não estamos querendo comprar IPs estáticos para nossos clientes e servidores.

Diagrama da nossa configuração abaixo: ServerClientWAN

Eu configurei o encaminhamento de porta no meu roteador para que a comunicação em uma determinada porta para o meu endereço IP público seja encaminhada para o IP local do meu servidor. Com essa configuração, meu servidor pode ver os clientes e receber mensagens recebidas do cliente, mas, por algum motivo, ele tenta enviar mensagens para os clientes em seus endereços IP locais da rede doméstica do meu amigo. Os servidores e clientes estão usando um protocolo TCP / IP proprietário. Meu servidor vê os endereços IP do cliente como 192.168.0.X, conforme mostrado no diagrama abaixo. Alguma idéia do que poderíamos estar fazendo errado? Eu teria pensado que a comunicação dos clientes viria do IP público do meu amigo? Pode ser que nossas mensagens de protocolo estejam chegando com o IP local e o servidor esteja analisando essas mensagens para responder nos pontos de extremidade no IP local do Cliente. Neste caso, sem alterar nosso protocolo, existe algum tipo de mágica de rede que permita que a comunicação funcione?

As restrições são que o servidor e os clientes são dispositivos "bloqueados", portanto, gostaríamos de evitar alterações no nível do sistema operacional / aplicativo. Pode ser que possamos configurar algum tipo de VPN ou VLAN (isso é uma coisa sobre internet)? Assim, diferentemente, nossa preferência é criar uma solução de rede para esse problema. Podemos adicionar outros dispositivos além do Servidor e Cliente à rede para resolver isso, mas não queremos "programar" um novo aplicativo que roteie nossas mensagens de protocolo.

    
por user3837690 21.01.2016 / 22:37

1 resposta

0

Sem o protocolo em questão, é impossível dizer em detalhes, mas parece que você está sendo deliberadamente vago, então eu vou responder em geral.

A partir de sua descrição, o servidor / protocolo não pode manipular o NAT, em vez de negociar uma sessão com cada cliente em uma nova porta para saber quem é quem projetou simplesmente responder a um IP de origem listado nos pacotes de entrada. Isso é bom apenas para LAN.

Para subverter esse problema, você precisa criar uma VPN ethernet em ponte, OpenVPN ou outros, mas isso é significativamente mais difícil de configurar do que uma VPN de nível de IP regular. Além disso, como você não pode modificar os clientes, você precisaria ter o seu roteador como um cliente VPN, portanto pode ser necessário substituí-lo. Você pode hospedar a VPN em qualquer máquina da rede que possa executar o software X86.

    
por 23.01.2016 / 19:56