Como ter o IP de um dispositivo descoberto em uma rede de maneira simples?

5

Na inicialização eu trabalho, estamos configurando um dispositivo para captura e análise de imagens. É uma caixa com uma câmera, com o Ubuntu Linux embutido, e, vamos supor, não queremos conectar um monitor a este dispositivo para configuração.

Alguns caras vieram com a solução de ter uma página web de configuração ao conectar o dispositivo a um notebook através de um cabo de rede diretamente, assim como você faz com um roteador ou modem, acessando um IP bem conhecido.

Soa como uma solução, mas o fato é que o dispositivo não é um roteador e, como eu vejo, é um contexto bem diferente, o dispositivo não estará delegando um endereço ao notebook (tornando-o parte de um rede do roteador, onde ele pode ter um endereço bem conhecido), já que não é um roteador.

Agora, estou procurando uma solução que se pareça com a experiência de configurar um roteador , mas não é um roteador, é para um dispositivo que eu conseguirei acessar a partir de um endereço bem conhecido . Para isso, eu cavei um pouco sobre o zeroconf / APIPA, mas do Zeroconf RFC 3927 o endereço IP deve ser um gerado "usando um gerador de números pseudo-aleatórios com uma distribuição uniforme na faixa de 169.254.1.0 a 169.254.254.255 inclusive" .

Acho que uma solução IP aleatória ainda pode funcionar, mesmo que não seja um endereço bem conhecido, caso haja algum meio de descobrir qual IP esse dispositivo possui.

Além disso, este dispositivo deve estar usando o NetworkManager para lidar com a conectividade através das muitas interfaces com as quais ele é configurado.

Então, para resumir a situação do problema:

  • Um dispositivo deve ser configurado por meio de uma rede local.
  • Este dispositivo está ligado e usando o Network Manager para gerenciar a conectividade por meio de várias interfaces, digamos que uma conectividade de interface fique inativa, seria escolher outra interface.
  • Estávamos pensando em ter um alias eth0 para ter eth0 sendo manipulado pelo Network Manager (no contexto de outras interfaces), além de ter acesso IP fixo por meio de um alias não gerenciado (pelo Network Manager). Não tenho certeza se isso é possível.
  • É tudo sobre a descoberta de dispositivos, também propus o uso do nmap para acessar o dispositivo, mas tem duas desvantagens: a varredura é lenta em redes grandes e não é um acesso simples a páginas da Web, um cliente que usa o nmap deve ser criado e usado para fazer a descoberta.
  • Se não há meios de ter acesso simples em um IP bem conhecido, ter um acesso aleatório também é uma solução, já que o dispositivo pode ser descoberto como uma impressora na rede ou algo assim.
  • Pode-se supor que a solução pode ser configurar um dispositivo conectado diretamente a um notebook por meio de um cabo de rede e adquirir acesso a ele na página de configuração de um dispositivo, além de uma solução em que o notebook é conectado à rede local o dispositivo também está conectado e pode acessar o dispositivo descobrindo-o na rede ou acessando-o por meio de um endereço alternativo, exótico e fixo. Observe que acessar o roteador de rede local ou usar a varredura nmap / arp não é uma opção.

Qual assunto deve ser estudado para resolver esse problema? Existe uma abordagem comum que as pessoas usam para isso?

Na minha experiência, lembro-me de configurar meus dispositivos, mas nenhum deles se encaixava no problema:

  • Roteador: Fornece uma página da Web de fácil acesso em um endereço bem conhecido, mas é o roteador, é o gateway e estará delegando meu próprio endereço.
  • Cubox-i: Eu tenho um desses dispositivos, tive que descobri-lo usando o nmap na minha rede e acessar o ssh.
  • Impressoras: nunca tive uma, por isso não sei como funciona o seu dispositivo de descoberta / configuração, mas já as utilizei em redes antes, elas eram geralmente listadas nas configurações do dispositivo em uma máquina Windows. Eu ainda tenho que dar uma olhada em "Avahi", "UPnP", "Zeroconf" e outros nomes no campo que eu nunca trabalhei. Talvez este seja o tipo de exemplo que pode se encaixar na situação.

Se houver uma ferramenta simples, posso executar no meu Arch Linux e ter seu IP descoberto por outros dispositivos como o meu Android ou meu bloco de notas do Windows, gostaria de saber. Eu também pensei em transmitir, mas não tenho certeza de que isso seria OK em todas as LANs, onde a transmissão pode ser bloqueada ou não confiável (não tenho certeza sobre isso).

    
por pepper_chico 04.02.2016 / 18:44

2 respostas

5

A melhor maneira de fazer isso é com avahi , que implementa o multicast-dns (isso é o que a Apple chama de Bonjour).

Eu desabilitaria o Network Manager e configuraria a rede em /etc/network/interfaces . O arquivo interfaces suporta o método ipv4ll , que usa o avahi-autoipd para configurar uma interface com um endereço IPv4 Link-Layer (família 169.254.0.0/16).

Em seguida, configure um serviço em avahi para garantir que o host se comunique via bonjour e adicione a resolução de nomes do mDNS a /etc/nsswitch.conf .

Se o resto dos seus sistemas estiverem configurados para resolver nomes mDNS, tudo deve funcionar como mágica.

    
por 04.02.2016 / 21:00
2

Como ter o IP de um dispositivo descoberto em uma rede

If there's a simple tool I can run on my Archlinux and have its IP discovered by other devices like my Android or my Windows notebook, I'd like to know.

Infelizmente, não há uma ótima maneira de fazer isso no momento.

  • Você pode instalar o avahi-daemon no dispositivo e o Bonjour no Windows. É comum sugerir que você instale uma versão mais antiga desse software proprietário de rede de terceiros. Inclui o atualizador de maçã? O atualizador de maçã fornece correções de segurança para a versão 2.02 mais fácil de instalar, mas mais antiga? Tenho certeza de que nada poderia dar errado aqui.

    link

    (Também defina um nome de host descritivo. Com MDNS, você não precisa garantir que o nome do host seja único. Na verdade, a especificação MDNS diz que você não "supõe" torná-lo exclusivo acrescentando um número aleatório ou um grande ID como um endereço MAC; isso é considerado adiar os usuários sem um bom motivo. O sensor5 seria razoável. O protocolo resolve automaticamente os conflitos anexando números de sequência (com um traço) ao nome do host MDNS.

  • Você pode instalar o Samba no dispositivo e usar a descoberta IPv4 herdada com o NetBIOS sobre TCP. O NetBIOS pode estar desabilitado por padrão por alguns servidores DHCP corporativos. link

    (o NMB não tende a resolver conflitos de nomes. As pessoas que geram nomes de host tendem automaticamente a acrescentar os últimos caracteres do endereço MAC, para evitar esse problema).

  • O que você deseja idealmente é o LLMNR , que é um protocolo mais recente usado pelo Windows. systemd-resolved suporta isso, mas não é amplamente usado. Eu acredito que é um padrão razoavelmente simples e documentado e, portanto, você pode encontrar implementações de código aberto independentes. Eu não acho que eles são amplamente utilizados, mas se alguém faz isso comercialmente - que tal você usar isso e relatar quaisquer erros, por favor:).

Se você deseja oferecer suporte a clientes Linux e Windows, é claro que você pode suportar MDNS e LLMNR.

Configure um dispositivo conectado diretamente a um notebook por meio de um cabo de rede

It may be assumed that the solution can be one to configure a device directly connected to a notebook through a network cable and acquire access to it in a device's configuration webpage as well as one solution where the notebook gets connected to the local network the device is also connected, and be able to access the device discovering it in the network or accessing it through an alternative, exotic and fixed address.

What matter should be studied to address this problem? Is there a common approach people use for this?

Eu diria que a segunda solução mais comum para esse problema é como acima, exceto que você perdeu um truque.

Esta técnica é útil, e. se um dispositivo tiver sido configurado com um endereço estático, que agora é desconhecido.

A solução é fornecer um botão de "recuperação" (talvez recessed e exigir que um clipe de papel desdobrado seja pressionado). Você inicializa o dispositivo em um modo de recuperação, onde ele usa um endereço IP fixo especial. Em seguida, você pode se conectar ao endereço conhecido (usando um cabo direto e definir o endereço do laptop manualmente para estar na mesma sub-rede) e reconfigurar o dispositivo.

    
por 15.02.2017 / 14:51