Como posso garantir a comunicação entre computadores em ambiente de implantação desconhecido?

Como posso garantir a comunicação entre computadores em ambiente de implantação desconhecido?

Eu tenho dois computadores. Um deles possui um servidor em execução, o outro possui uma aplicação que se comunica com esse servidor. Esses computadores são implantados em vários sites. Às vezes, esses computadores podem ser conectados diretamente entre si, outras vezes, eles só serão conectados por meio de uma conexão sem fio que não controlo. Como requisito adicional, o servidor também precisa ser capaz de acessar a Internet usando DHCP se houver uma conexão disponível. O objetivo é poder configurar esses computadores em um escritório e, em seguida, implantá-los em um local quase sem configuração local.

O que posso fazer para garantir que o computador que executa o aplicativo possa sempre (ou no máximo de casos possível) encontrar o servidor e se comunicar com ele (HTTP pela porta 80).

Meu pensamento é configurar o servidor com vários IPs. Ele pode acessar a Internet usando DHCP em um. O outro será configurado para um IP estático. Os computadores do aplicativo serão configurados para conhecer esse endereço IP estático antecipadamente e fazer solicitações a ele. Porém, nos tutoriais que mostram como fazer isso, devo inserir meu gateway e máscara de sub-rede. E isso não mudará dependendo da rede em que eu ingressar?

Por favor, desculpe-me se estou perdendo algo extremamente óbvio ou negligenciando outros fatores. Não sei quase nada sobre networking.

Se houver um hardware que possa ajudar, tudo bem.

Este é o Vista e o XP.

Responder1

Tentar adivinhar qual endereço IP estático não entrará em conflito é causar problemas. Como sugeriu Derobert, DNS multicast + DNS-SD é uma boa opção. A única pilha para Windows éBom dia da Appleimplementação que lhe dará a capacidade de registrar e resolver seu serviço na rede local, bem como com algumas configurações adicionais, abrir um buraco no firewall (se o roteador suportar NAT-PMP ou uPnP) e atualizar uma zona DNS com o DNS apropriado -Registros SD.

Você provavelmente precisará fazer alguns scripts para vincular o Bonjour à configuração do seu aplicativo, mas sem saber qual é o seu aplicativo, é difícil dizer o que seria uma boa opção. Dito isso, o utilitário de linha de comando dns-sd.exe automatizado com um lote simples ou script WSH poderia fazer o trabalho, assim como as várias ligações para Python, Perl ou Ruby para configurações menos triviais.

Responder2

A forma como isso geralmente é resolvido é usar um dos diversos protocolos de descoberta de serviços já disponíveis. Por exemplo, vejaArtigo Zeroconf da Wikipédia. Multicast DNS + DNS-SD parece ser o método atual popular e amplamente suportado, embora existam outros (e o Wiki menciona mais).

Por exemplo, existe um mod-dnssd para apache2 que permite ao Apache usar Avahi para se anunciar através de DNS multicast.

Responder3

Como parece que eles estarão quase sempre na mesma rede, você não poderia simplesmente executar o WINS no computador "servidor" e conectar-se pelo nome NetBIOS?

Dessa forma, você não precisa se preocupar com o endereço IP.

Na verdade, pensando bem, você provavelmente nem precisa do WINS, o NetBIOS deve ser capaz de lidar com isso.

informação relacionada