Meshname como uma alternativa permanente e eficiente em termos de energia ao DNS

Meshname como uma alternativa permanente e eficiente em termos de energia ao DNS

image

O Meshname é um sistema de nomenclatura universal projetado para redes mesh baseadas em IPv6, como a Yggdrasil e a CJDNS. Ele funciona como uma alternativa descentralizada, permanente e leve ao DNS tradicional, permitindo que usuários resolvam domínios sem depender de autoridades centrais ou de sistemas baseados em blockchain.

Abaixo estão os detalhes fundamentais do seu funcionamento:

1. Filosofia e Diferenciais

Diferente de sistemas como o Alfis, o Meshname não utiliza blockchain, o que elimina a necessidade de mineração para proloongação de domínios ou o alto consumo de CPU e tráfego P2P para sincronização. Ele se assemelha em conceito aos serviços .onion da rede Tor ou aos túneis .b32.i2p da rede I2P, focando na conversão direta entre endereços e nomes.

2. Formatos de Protocolo

O Meshname opera através de duas implementações distintas:

  • .meship: Realiza uma conversão matemática direta de um endereço IPv6 para o formato binário e depois para base32. Para que isso funcione, o usuário só precisa de um servidor local meshnamed rodando para realizar a tradução reversa e permitir a navegação. Por exemplo, um endereço IP bruto da rede Yggdrasil pode ser convertido em um domínio como aibgruhq2w4i2hi2kvpc62zrja.meship.
  • .meshname: Este formato é mais avançado e exige que o servidor meshnamed esteja presente no nó de destino. Ele é utilizado quando há necessidade de registros adicionais (como registros NS para servidores XMPP), sendo que esses dados são armazenados no servidor em formato JSON.

3. Uso Prático e Implementação

Como os nomes Meshname são derivados diretamente de endereços criptográficos, eles costumam ser longas sequências de caracteres (descritos pelos desenvolvedores como “feios”), mas garantem que o nome seja único e intrinsecamente ligado à identidade do nó.

  • Software: O servidor original foi escrito em Go, mas também possui implementações em C++ e extensões em Ruby.
  • Comandos: Um usuário pode descobrir o domínio correspondente a qualquer IP através do comando meshnamed -getname <endereço_ip>.
  • Integração: O sistema pode ser configurado para trabalhar em conjunto com o dnsmasq ou o systemd-resolved no Linux, permitindo que o navegador resolva domínios .meship ou .meshname automaticamente.

Em resumo, o Meshname converte a complexidade dos endereços IPv6 de redes mesh em nomes resolvíveis localmente, priorizando a estabilidade e a economia de recursos sobre a legibilidade humana dos domínios.

Qual a diferença entre meship e meshname

A diferença fundamental entre os nomes .meship e .meshname reside na forma como o endereço é resolvido e nos requisitos técnicos de onde o software servidor deve estar rodando. Ambos fazem parte do sistema Meshname, que converte endereços IPv6 de redes mesh (como Yggdrasil) em domínios resolvíveis.

Abaixo estão as distinções detalhadas:

1. Nomes .meship

Este formato é uma conversão matemática direta do endereço IP.

  • Funcionamento: O endereço IPv6 é convertido para um formato binário e depois codificado em base32. Por exemplo, um IP específico pode se tornar algo como aibgruhq2w4i2hi2kvpc62zrja.meship.
  • Requisito de Software: Exige apenas que o usuário tenha o servidor meshnamed rodando localmente (como um stub resolver) para realizar a tradução inversa e permitir que o navegador encontre o site.
  • Uso: É ideal para navegação simples onde o objetivo é apenas substituir o uso do IP bruto por um nome fixo.

2. Nomes .meshname

Este formato é mais avançado e funciona de forma semelhante ao DNS tradicional, permitindo registros de dados.

  • Funcionamento: Permite a inclusão de informações adicionais além do simples mapeamento de IP. Os registros são armazenados no servidor em formato JSON.
  • Requisito de Software: Diferente do .meship, o uso de .meshname exige que o servidor meshnamed esteja presente no nó de destino (o servidor que hospeda o site ou serviço).
  • Recursos Adicionais: Suporta tipos de registros extras, como registros NS (Name Server), que são necessários para configurar serviços mais complexos, como servidores XMPP.

Resumo Comparativo

Característica .meship .meshname
Base do nome Conversão direta (IP -> Base32) Registros definidos no servidor
Instalação local Necessária (para resolução) Necessária (para resolução)
Instalação no destino Não necessária Obrigatória
Suporte a registros extras Não (apenas mapeamento de IP) Sim (ex: registros NS para XMPP)
Formato de armazenamento Matemático/Algorítmico Arquivos JSON no destino

Instalação

Compilação

git clone https://github.com/zhoreeq/meshname.git
cd meshname
make
sudo install meshnamed /usr/local/bin

Systemd

[Unit]
Description=Distributed naming system for IPv6 mesh networks
Wants=network.target
After=network.target

[Service]
User=nobody
Group=nogroup
ProtectHome=true
ProtectSystem=true
SyslogIdentifier=meshnamed
ExecStart=/usr/local/bin/meshnamed -listenaddr [::1]:53535
Restart=always
TimeoutStopSec=5

[Install]
WantedBy=multi-user.target
  • https://github.com/zhoreeq/meshname/blob/master/meshnamed.service

Configurando o DNS

Escolha uma das opções abaixo, DNS Mask ou Resolved

Resolved

[Resolve]
DNS=[::1]:53535
Domains=~meshname ~meship
sudo systemctl restart systemd-resolved

DNS Mask (Opcional ao Resolved)

port=53
domain-needed
bogus-priv
server=/meshname/::1#53535
server=8.8.8.8
  • https://github.com/zhoreeq/meshname/blob/master/USAGE.md#configure-dnsmasq-as-a-primary-dns-resolver-with-meshname-support

Uso

Você pode obter o domínio de qualquer endereço IP usando o comando:

$ meshnamed -getname 202:68d0:f0d5:b88d:1d1a:555e:2f6b:3148
aibgruhq2w4i2hi2kvpc62zrja

Assim, com um servidor local ativo meshnamed, em vez de:

http://[202:68d0:f0d5:b88d:1d1a:555e:2f6b:3148]

Você pode acessar o site em:

http://aibgruhq2w4i2hi2kvpc62zrja.meship


Write a comment
No comments yet.