O que você está procurando é o que o IETF (o corpo de padrões de IP) chama de "Zero Configuration Networking" ou "ZeroConf".
Ele foi desenvolvido especificamente para o tipo de caso que você está falando. Se eu conecto duas ou mais máquinas via Ethernet, elas devem conseguir endereços e conversar entre si e descobrir os serviços uns dos outros, mesmo sem algum administrador de sistema configurando um roteador ou servidor DHCP ou configurações IP manuais ou algo assim.
Aqui está um Raspberry Pi ZeroConf HOWTO da Adafruit . Isso pode ser tudo que você precisa. Leia abaixo para detalhes de fundo.
ZeroConf, como tecnologia, tem três partes:
-
Endereçamento IP local de link auto-atribuído para que as máquinas possam obter endereços IP sem um servidor DHCP e sem serem configuradas manualmente. Esses são os
169.254.0.0/16
endereços IPv4 que todos veem, juntamente comfe80::
endereços IPv6. -
Resolução de nomes do DNS multicast (mDNS). Isso permite que os sistemas anunciem seus nomes como "Raspberry-Pi.local" ou "Spiffs-Mac.local", por meio de multicasts na LAN local, sem a necessidade de um servidor DNS unicast. Assim, você pode digitar algo como " link " para acessar o servidor da Web no seu RPi.
-
[m] Descoberta de serviço DNS (DNS-SD). Isso permite que os dispositivos anunciem quais serviços eles fornecem (e os nomes desses serviços), não apenas o nome do host. Assim, eles poderiam anunciar que são uma impressora, um servidor da Web ou um ouvinte sshd ou todos os itens acima, etc.
A implementação do ZeroConf pela Apple é conhecida como "Bonjour" (fornecida pelo daemon "mDNSResponder", que é open source). Além do mDNSResponder, que é comum em produtos da Apple, dispositivos Android e muitos dispositivos embarcados, há também o pacote "Avahi" de código aberto que faz parte de muitos desktops / notebooks, roteadores e outras distribuições Linux incorporadas. Acredito que o OpenWrt até mesmo criou sua própria implementação chamada simplesmente "mDNS", então essa é uma terceira implementação de código aberto.
Infelizmente, a Microsoft nunca suportou nativamente o IETF ZeroConf e, em vez disso, poluiu o espaço com uma imitação chamada LLMNR, que também usa o namespace ".local", causando conflitos. MAS, a Apple fornece uma implementação ZeroConf baseada em mDNSResponder para o Windows na forma de Serviços de Impressão Bonjour para Windows . (Não deixe o nome enganar você, é uma implementação completa do ZeroConf, não limitada à impressão.)
A propósito, você deve não precisar de um cabo crossover, porque a porta Ethernet do Raspberry Pi contém um PHY auto-crossover (auto MDI-X).