Meshname como uma alternativa permanente e eficiente em termos de energia ao DNS
- 1. Filosofia e Diferenciais
- 2. Formatos de Protocolo
- 3. Uso Prático e Implementação
- Qual a diferença entre meship e meshname
- Instalação

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 localmeshnamedrodando 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 comoaibgruhq2w4i2hi2kvpc62zrja.meship..meshname: Este formato é mais avançado e exige que o servidormeshnamedesteja 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
dnsmasqou osystemd-resolvedno Linux, permitindo que o navegador resolva domínios.meshipou.meshnameautomaticamente.
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
meshnamedrodando 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.meshnameexige que o servidormeshnamedesteja 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