Zero Configuration Networking
Zeroconf
Estou sempre criando e carregando dispositivos diversos na minha rede com várias finalidades diferentes.
Por dispositivos diversos quero dizer que eles podem mesmo ser qualquer coisa, pode ser, por exemplo, um SBC para fazer alguma coisa relacionada a IoT, pode ser uma máquina virtual para testar algum software que não quero testar nos sistemas principais, e pode facilmente ser uma VM descartável que vou subir só para fazer um teste rápido e descartar em seguida.
Dai surge um problema, como saber o IP para acessar qualquer um desses recursos?
Claro que eu podia dar uma olhada no DHCP, ou atribuir IPs fixos, ou fazer uma variedade de coisas, mas tudo acaba sendo pouco prático no fim das contas.
A solução precisa ser algo fácil e rapido de ser usada tanto por mim diretamente como por scripts que precisam localizar os recursos na rede mesmo que o IP tenha mudado.
É ai que entram os protocolos de Zero Configuration Networking.
Zero Configuration Networking ou Zeroconf, é um conjunto de protocolos que faz várias coisas, mas resumindo permite que eu e todo software que escrevo encontre automaticamente os recursos presentes na rede local pelo nome.
macOS, iPhones e mesmo Raspberry Pi e minha recém-adquirida impressora de rede já vem prontos para Zeroconf.
Todos os outros dispositivos estão usando Debian no Debian é extremamente simples instalar os protocolos necessários.
apt install avahi-daemon
Pronto é só isso :D
A partir daí você já consegue acessar o novo host simplesmente usando o nome com o sufixo .local, por exemplo, debian.local.
Também deve funcionar em outras distribuições Linux baseadas no Debian como Ubuntu e tantas outras.
É possível fazer configurações muito mais avançadas, registrar serviços e etc., mas apenas de poder resolver nomes sem precisar se preocupar com praticamente nada já é ótimo.