Transferência de arquivo TCP de tráfego nativo direto entre duas máquinas NATted

0

Objetivo:

Eu quero realizar a mais rápida transferência de arquivos baseada em TCP possível entre duas máquinas localizadas atrás de dois NATs diferentes, em uma situação em que uma porta pública não pode ser redirecionada para nenhuma das duas máquinas (políticas locais).

Aproximações:

Até agora eu pude: 1) Configurar uma VPN com um nó público central atuando como retransmissão (OpenVPN), 2) Configurar uma malha VPN para obter um link direto entre as duas máquinas sem relay (tinc). A VPN pode ser usada perfeitamente para realizar a transferência de dados através de qualquer cliente / servidor de transferência de arquivos de terceiros (como se as duas máquinas estivessem na mesma LAN).

Problema:

A linha entre as duas máquinas é bastante instável e um único fluxo TCP normalmente atinge apenas uma pequena fração da largura de banda disponível. Além disso, o encapsulamento do TCP sobre TCP induz uma sobrecarga extra e é notoriamente ineficiente para linhas instáveis. Gostaria, portanto, de estabelecer um link de tráfego direto (sem retransmissão) e nativo (sem encapsulamento de VPN) entre as duas máquinas. Uma escolha natural é a estrutura STUN, mas cheguei à conclusão de que para interagir com um servidor STUN público e atingir NAT transversal, um aplicativo deve ser compilado com bibliotecas STUN ad-hoc e confiar em soquetes específicos de STUN em vez de soquetes normais. Isso basicamente significa que todo novo conjunto de aplicativos cliente / servidor habilitado para STUN precisa ser escrito do zero.

Pergunta:

Para simplificar o processo, estou querendo saber se seria possível implementar um cliente STUN genérico que seria basicamente executado como um daemon em ambas as máquinas. Os clientes se conectariam a um servidor STUN público para registrar e consultar informações sobre outros clientes. Eles também redirecionariam todo o tráfego de saída de uma porta monitorada local para o IP / porta correto (configuração do usuário + informações do servidor STUN) para alcançar a outra máquina. Isso pode permitir que qualquer aplicativo cliente / servidor de terceiros abra facilmente sockets TCP regulares (possivelmente vários) e estabeleça uma conexão com a outra máquina (como se estivesse na mesma LAN).

    
por Sébastien 04.12.2015 / 16:05

1 resposta

0

Você pode tentar SoftEther VPN - it:

É IMO um bom software que pode poupar muito trabalho ...

    
por 04.12.2015 / 19:46

Tags