SlideShare uma empresa Scribd logo
1 de 62
Baixar para ler offline
Os Problemas
Os Protocolos
OpenMdns
Sumário
OpenMdns - Design e Implementação
Christiano Farina Haesbaert
28 de Agosto de 2010 - Tchelinux Pelotas
Christiano Farina Haesbaert OpenMdns - Design e Implementação
Os Problemas
Os Protocolos
OpenMdns
Sumário
Roteiro
1 Os Problemas
Endereçamento Na Rede Local
Os Recursos Instáveis
2 Os Protocolos
MDNS
DNS-SD
3 OpenMdns
Introdução
Design e Implementação
Christiano Farina Haesbaert OpenMdns - Design e Implementação
Os Problemas
Os Protocolos
OpenMdns
Sumário
Endereçamento Na Rede Local
Os Recursos Instáveis
Roteiro
1 Os Problemas
Endereçamento Na Rede Local
Os Recursos Instáveis
2 Os Protocolos
MDNS
DNS-SD
3 OpenMdns
Introdução
Design e Implementação
Christiano Farina Haesbaert OpenMdns - Design e Implementação
Os Problemas
Os Protocolos
OpenMdns
Sumário
Endereçamento Na Rede Local
Os Recursos Instáveis
IPs Não São Suficientes
Já parou para se perguntar como é chato decorar IPs ?
Christiano Farina Haesbaert OpenMdns - Design e Implementação
Os Problemas
Os Protocolos
OpenMdns
Sumário
Endereçamento Na Rede Local
Os Recursos Instáveis
IPs Não São Suficientes
Já parou para se perguntar como é chato decorar IPs ?
Como você transfere arquivos entre duas pessoas em uma
rede local ?
Christiano Farina Haesbaert OpenMdns - Design e Implementação
Os Problemas
Os Protocolos
OpenMdns
Sumário
Endereçamento Na Rede Local
Os Recursos Instáveis
IPs Não São Suficientes
Já parou para se perguntar como é chato decorar IPs ?
Como você transfere arquivos entre duas pessoas em uma
rede local ?
Quantas vezes por dia você pergunta o IP de algum
colega de trabalho ?
Christiano Farina Haesbaert OpenMdns - Design e Implementação
Os Problemas
Os Protocolos
OpenMdns
Sumário
Endereçamento Na Rede Local
Os Recursos Instáveis
IPs Não São Suficientes
Já parou para se perguntar como é chato decorar IPs ?
Como você transfere arquivos entre duas pessoas em uma
rede local ?
Quantas vezes por dia você pergunta o IP de algum
colega de trabalho ?
E quando o IP dele muda (DHCP) ?
Christiano Farina Haesbaert OpenMdns - Design e Implementação
Os Problemas
Os Protocolos
OpenMdns
Sumário
Endereçamento Na Rede Local
Os Recursos Instáveis
Opções Para Transferência de Arquivos
1 Email.
2 Instant Messenger interno.
3 FTP.
4 Diretório compartilhado (CIFS).
5 NFS.
6 Pendrive.
Christiano Farina Haesbaert OpenMdns - Design e Implementação
Os Problemas
Os Protocolos
OpenMdns
Sumário
Endereçamento Na Rede Local
Os Recursos Instáveis
Opções Para Transferência de Arquivos
1 Email.
2 Instant Messenger interno.
3 FTP.
4 Diretório compartilhado (CIFS).
5 NFS.
6 Pendrive.
Se você usa um Pendrive e não vê problema...
Note que todas opções exigem um setup não trivial
(Pensem nos Mortais).
Christiano Farina Haesbaert OpenMdns - Design e Implementação
Os Problemas
Os Protocolos
OpenMdns
Sumário
Endereçamento Na Rede Local
Os Recursos Instáveis
Origem do Problema
Mapeamento de nome -> ip é centralizado (DNS).
Mortais não sabem configurar o bind/named. Integrar
com dhclient/dhcpd pode ser um porre.
Sem Network Browsing.
Endereçamento dinâmico(DHCP) e numérico(IP).
Christiano Farina Haesbaert OpenMdns - Design e Implementação
Os Problemas
Os Protocolos
OpenMdns
Sumário
Endereçamento Na Rede Local
Os Recursos Instáveis
Origem do Problema
Mapeamento de nome -> ip é centralizado (DNS).
Mortais não sabem configurar o bind/named. Integrar
com dhclient/dhcpd pode ser um porre.
Sem Network Browsing.
Endereçamento dinâmico(DHCP) e numérico(IP).
E se pudéssemos endereçar todos computadores por
nome com custo zero ?
Christiano Farina Haesbaert OpenMdns - Design e Implementação
Os Problemas
Os Protocolos
OpenMdns
Sumário
Endereçamento Na Rede Local
Os Recursos Instáveis
Roteiro
1 Os Problemas
Endereçamento Na Rede Local
Os Recursos Instáveis
2 Os Protocolos
MDNS
DNS-SD
3 OpenMdns
Introdução
Design e Implementação
Christiano Farina Haesbaert OpenMdns - Design e Implementação
Os Problemas
Os Protocolos
OpenMdns
Sumário
Endereçamento Na Rede Local
Os Recursos Instáveis
O Que Chamamos de Recurso Instável ?
Definition
Um Recurso Instável é qualquer recurso, dispositivo ou serviço
que não está necessariamente sempre disponível.
Example
Computador qualquer.
Servidor HTTP/FTP/CIFS/NFS/NTP....
Roteador/NAS.
Serviço de músicas (share do iTunes).
Presença no IM (Online/Away/Offline...).
Impressora.
Christiano Farina Haesbaert OpenMdns - Design e Implementação
Os Problemas
Os Protocolos
OpenMdns
Sumário
Endereçamento Na Rede Local
Os Recursos Instáveis
Quantas Vezes...
Quantas vezes por dia você “pinga” uma máquina para
confirmar que ela está up ?
Christiano Farina Haesbaert OpenMdns - Design e Implementação
Os Problemas
Os Protocolos
OpenMdns
Sumário
Endereçamento Na Rede Local
Os Recursos Instáveis
Quantas Vezes...
Quantas vezes por dia você “pinga” uma máquina para
confirmar que ela está up ?
Quantas vezes você chegou em uma rede e perguntou
como acessar um serviço X ?
Christiano Farina Haesbaert OpenMdns - Design e Implementação
Os Problemas
Os Protocolos
OpenMdns
Sumário
Endereçamento Na Rede Local
Os Recursos Instáveis
Quantas Vezes...
Quantas vezes por dia você “pinga” uma máquina para
confirmar que ela está up ?
Quantas vezes você chegou em uma rede e perguntou
como acessar um serviço X ?
Quantas vezes você já teve que colocar uma serial em um
equipamento só para descobrir o IP.
Christiano Farina Haesbaert OpenMdns - Design e Implementação
Os Problemas
Os Protocolos
OpenMdns
Sumário
Endereçamento Na Rede Local
Os Recursos Instáveis
Quantas Vezes...
Quantas vezes por dia você “pinga” uma máquina para
confirmar que ela está up ?
Quantas vezes você chegou em uma rede e perguntou
como acessar um serviço X ?
Quantas vezes você já teve que colocar uma serial em um
equipamento só para descobrir o IP.
Quantas vezes você gostaria de ligar o computador e ver
quem está online na rede local (independentemente do
ambiente) ?
Christiano Farina Haesbaert OpenMdns - Design e Implementação
Os Problemas
Os Protocolos
OpenMdns
Sumário
Endereçamento Na Rede Local
Os Recursos Instáveis
Quantas Vezes...
Quantas vezes por dia você “pinga” uma máquina para
confirmar que ela está up ?
Quantas vezes você chegou em uma rede e perguntou
como acessar um serviço X ?
Quantas vezes você já teve que colocar uma serial em um
equipamento só para descobrir o IP.
Quantas vezes você gostaria de ligar o computador e ver
quem está online na rede local (independentemente do
ambiente) ?
Quantas vezes você teve que perguntar como acessar
impressora X ?
Christiano Farina Haesbaert OpenMdns - Design e Implementação
Os Problemas
Os Protocolos
OpenMdns
Sumário
Endereçamento Na Rede Local
Os Recursos Instáveis
Quantas Vezes...
Quantas vezes por dia você “pinga” uma máquina para
confirmar que ela está up ?
Quantas vezes você chegou em uma rede e perguntou
como acessar um serviço X ?
Quantas vezes você já teve que colocar uma serial em um
equipamento só para descobrir o IP.
Quantas vezes você gostaria de ligar o computador e ver
quem está online na rede local (independentemente do
ambiente) ?
Quantas vezes você teve que perguntar como acessar
impressora X ?
E se você pudesse fazer tudo isso com zero esforço ?
Christiano Farina Haesbaert OpenMdns - Design e Implementação
Os Problemas
Os Protocolos
OpenMdns
Sumário
Endereçamento Na Rede Local
Os Recursos Instáveis
Já Pensou Como Isto é Implementado ?
Lista de jogos na rede local.
Lista de impressoras da rede local.
Lista dos serviços de música na rede local.
Lista dos compartilhamentos na rede local.
Lista dos... agora você percebe o padrão ?
Christiano Farina Haesbaert OpenMdns - Design e Implementação
Os Problemas
Os Protocolos
OpenMdns
Sumário
Endereçamento Na Rede Local
Os Recursos Instáveis
Já Pensou Como Isto é Implementado ?
Lista de jogos na rede local.
Lista de impressoras da rede local.
Lista dos serviços de música na rede local.
Lista dos compartilhamentos na rede local.
Lista dos... agora você percebe o padrão ?
Agora pense que cada um desenvolve seu próprio
protocolo. Assustado ? Que bom :-). Chamaremos isto de
Network Browsing.
A Apple resolveu isto na década de 80.
Christiano Farina Haesbaert OpenMdns - Design e Implementação
Os Problemas
Os Protocolos
OpenMdns
Sumário
MDNS
DNS-SD
Roteiro
1 Os Problemas
Endereçamento Na Rede Local
Os Recursos Instáveis
2 Os Protocolos
MDNS
DNS-SD
3 OpenMdns
Introdução
Design e Implementação
Christiano Farina Haesbaert OpenMdns - Design e Implementação
Os Problemas
Os Protocolos
OpenMdns
Sumário
MDNS
DNS-SD
Introdução
Multicast DNS.
Criado pela Apple por Stuart Chesnire (yeeei !
finalmente devolvendo algo).
Transição do Appletalk -> IPv4.
Ainda um Draft, expira em Setembro de 2010.
A maioria de vocês usa e não sabe (Avahi).
Resolve o problema do Endereçamento na Rede Local.
Faz parte da suíte ZeroConf.
Opera na porta UDP 5353.
Christiano Farina Haesbaert OpenMdns - Design e Implementação
Os Problemas
Os Protocolos
OpenMdns
Sumário
MDNS
DNS-SD
Quem usa ?
O Apple Bonjour é a mais antiga implementação.
O Avahi é a implementação da Freedesktop.
O OpenMDNS é a implementação inacabada deste que
vos fala :-).
Praticamente toda distribuição de Linux vem com o
Avahi já instalado e rodando (isso, hora do pgrep avahi).
Voltaremos as implementações existentes ao final...
Christiano Farina Haesbaert OpenMdns - Design e Implementação
Os Problemas
Os Protocolos
OpenMdns
Sumário
MDNS
DNS-SD
O Que é Multicast ?
Figura: unicast x multicast x broadcast
Christiano Farina Haesbaert OpenMdns - Design e Implementação
Os Problemas
Os Protocolos
OpenMdns
Sumário
MDNS
DNS-SD
Por Que DNS ?
MDNS = forma de usar DNS via Multicast.
DNS como um banco de dados distribuído. Não guarda só
nomes !
Pacotes na mesma estrutura de DNS Unicast.
Reaproveita um protocolo que funciona.
Suporta “legacy clients”, clientes de DNS Unicast.
Christiano Farina Haesbaert OpenMdns - Design e Implementação
Os Problemas
Os Protocolos
OpenMdns
Sumário
MDNS
DNS-SD
Dois Atores...
Definition (Querier)
Qualquer dispositivo fazendo perguntas de MDNS é dito um
Querier.
Definition (Responder)
Qualquer dispositivo respondendo perguntas de MDNS é dito
um Responder.
Quase sempre o dispositivo é tanto um Querier quanto
Responder.
Christiano Farina Haesbaert OpenMdns - Design e Implementação
Os Problemas
Os Protocolos
OpenMdns
Sumário
MDNS
DNS-SD
Funcionamento
.local = domínio do MDNS.
Apenas para rede local (L2).
Querier fazem perguntas via Multicast.
Responders respondem as perguntas via Multicast.
“Fate-sharing”.
Tenta ser o menos “chatty” possível.
Christiano Farina Haesbaert OpenMdns - Design e Implementação
Os Problemas
Os Protocolos
OpenMdns
Sumário
MDNS
DNS-SD
Funcionamento, Exemplo
Seja foo.local e bar.local dois computadores.
1 foo.local: Qual o IP de bar.local ? (Q=bar.local T=A)
2 bar.local: Soy jo, meu IP é 192.168.8.1 (Q=bar.local T=A
RDATA=192.168.8.1) !
1 foo.local: Qual o HINFO de bar.local ? (Q=bar.local
T=HINFO)
2 bar.local: CPU: Sparc64 OS: OpenBSD(Q=bar.local
T=HINFO RDATA=CPU/OS) !
Pergunta e Resposta via Multicast.
Todos se beneficiam da resposta (Fate-sharing).
Todo mundo faz cache.
Christiano Farina Haesbaert OpenMdns - Design e Implementação
Os Problemas
Os Protocolos
OpenMdns
Sumário
MDNS
DNS-SD
Tipos de Query
Definition (One Shot)
É enviado uma Query e esperado uma resposta.
Definition (One Shot, Accumulating)
É enviado uma Query e esperado múltiplas respostas.
Definition (Continuous)
São feitas Queries de tempo em tempo, acumulando múltiplas
respostas.
Christiano Farina Haesbaert OpenMdns - Design e Implementação
Os Problemas
Os Protocolos
OpenMdns
Sumário
MDNS
DNS-SD
Resource Record
1 Name, exemplo elendil.local.
2 Type, A (IP), AAAA(IPV6), SRV(Serviço), PTR(Ponteiro).
3 Class, Classe é sempre IN.
4 Rdata, O dado do RR, um IP, IPv6, um nome, é definido
pelo Type.
Definition (RR Unique)
Records que são exclusivos de algum host (ex: myname.local)
Definition (RR Shared)
Podem existir vários com mesmo Name/Type/Class, porém
com RDATA diferentes.
Christiano Farina Haesbaert OpenMdns - Design e Implementação
Os Problemas
Os Protocolos
OpenMdns
Sumário
MDNS
DNS-SD
pkill problem1
Resolvemos o primeiro problema (Problema do
Endereçamento Numérico).
Podemos agora referenciar hosts por nome.
Não gastamos nada com isso, só precisamos ter o
protocolo.
Todos programas se beneficiam automaticamente.
Você agora pode ter certeza que seumadruga.local é o
host que não paga o aluguel.
Christiano Farina Haesbaert OpenMdns - Design e Implementação
Os Problemas
Os Protocolos
OpenMdns
Sumário
MDNS
DNS-SD
OpenMDNS é Hora de Morfar !
Go go Power....chega.
# A normal lookup
elendil:mdnsctl: ./mdnsctl lkup anonymous.local
Address: 192.168.8.100
# A reverse lookup
elendil:mdnsctl: ./mdnsctl lkup -a 192.168.8.100
Hostname: anonymous.local
Christiano Farina Haesbaert OpenMdns - Design e Implementação
Os Problemas
Os Protocolos
OpenMdns
Sumário
MDNS
DNS-SD
Roteiro
1 Os Problemas
Endereçamento Na Rede Local
Os Recursos Instáveis
2 Os Protocolos
MDNS
DNS-SD
3 OpenMdns
Introdução
Design e Implementação
Christiano Farina Haesbaert OpenMdns - Design e Implementação
Os Problemas
Os Protocolos
OpenMdns
Sumário
MDNS
DNS-SD
Introdução
DNS Service Discovering.
Pode ser usado com MDNS e DNS.
Ganhou popularidade quando usado com MDNS.
Draft pequeno (40 páginas).
Também criado por Stuart Chesnire.
É o que faz as coisas da Apple parecerem legais.
Christiano Farina Haesbaert OpenMdns - Design e Implementação
Os Problemas
Os Protocolos
OpenMdns
Sumário
MDNS
DNS-SD
O Que Faz ?
Resolve o nosso Problema 2: Os Recursos Instáveis, ou
podemos dizer que nos fornece Network Browsing.
Christiano Farina Haesbaert OpenMdns - Design e Implementação
Os Problemas
Os Protocolos
OpenMdns
Sumário
MDNS
DNS-SD
O Que Faz ?
Resolve o nosso Problema 2: Os Recursos Instáveis, ou
podemos dizer que nos fornece Network Browsing.
Ta ta ta ta, palavras bonitas, mas o que faz ?
Christiano Farina Haesbaert OpenMdns - Design e Implementação
Os Problemas
Os Protocolos
OpenMdns
Sumário
MDNS
DNS-SD
O Que Faz ?
Resolve o nosso Problema 2: Os Recursos Instáveis, ou
podemos dizer que nos fornece Network Browsing.
Ta ta ta ta, palavras bonitas, mas o que faz ?
Faz com que quando tu de dois cliques no botão
coloridinho Network, apareça todas impressoras, todos
servidores de web, todos computadores ligados, todos os
compartilhamentos, todos os issos e aquilos, como eu
disse, fornece Network Browsing.
Christiano Farina Haesbaert OpenMdns - Design e Implementação
Os Problemas
Os Protocolos
OpenMdns
Sumário
MDNS
DNS-SD
O Que Faz ?
Resolve o nosso Problema 2: Os Recursos Instáveis, ou
podemos dizer que nos fornece Network Browsing.
Ta ta ta ta, palavras bonitas, mas o que faz ?
Faz com que quando tu de dois cliques no botão
coloridinho Network, apareça todas impressoras, todos
servidores de web, todos computadores ligados, todos os
compartilhamentos, todos os issos e aquilos, como eu
disse, fornece Network Browsing.
Só isso ? Isso o Netbios/CIFS e cia já faziam.
Christiano Farina Haesbaert OpenMdns - Design e Implementação
Os Problemas
Os Protocolos
OpenMdns
Sumário
MDNS
DNS-SD
O Que Faz ?
Resolve o nosso Problema 2: Os Recursos Instáveis, ou
podemos dizer que nos fornece Network Browsing.
Ta ta ta ta, palavras bonitas, mas o que faz ?
Faz com que quando tu de dois cliques no botão
coloridinho Network, apareça todas impressoras, todos
servidores de web, todos computadores ligados, todos os
compartilhamentos, todos os issos e aquilos, como eu
disse, fornece Network Browsing.
Só isso ? Isso o Netbios/CIFS e cia já faziam.
Parecido, mas este funciona.
Christiano Farina Haesbaert OpenMdns - Design e Implementação
Os Problemas
Os Protocolos
OpenMdns
Sumário
MDNS
DNS-SD
O Que Faz ?
Resolve o nosso Problema 2: Os Recursos Instáveis, ou
podemos dizer que nos fornece Network Browsing.
Ta ta ta ta, palavras bonitas, mas o que faz ?
Faz com que quando tu de dois cliques no botão
coloridinho Network, apareça todas impressoras, todos
servidores de web, todos computadores ligados, todos os
compartilhamentos, todos os issos e aquilos, como eu
disse, fornece Network Browsing.
Só isso ? Isso o Netbios/CIFS e cia já faziam.
Parecido, mas este funciona.
E este é genérico e aberto. E mais que isso, ao clicar na
impressora ele já te diz como usar a mesma.
Christiano Farina Haesbaert OpenMdns - Design e Implementação
Os Problemas
Os Protocolos
OpenMdns
Sumário
MDNS
DNS-SD
Exemplos ! Exemplos !
Ui ui ui coloridinho, no proximo slide uma coisa mais séria.
Christiano Farina Haesbaert OpenMdns - Design e Implementação
Os Problemas
Os Protocolos
OpenMdns
Sumário
MDNS
DNS-SD
Exemplos ! Exemplos !
elendil:mdnsctl: ./mdnsctl browse all
+++ servico teste teste teste numero 1 http tcp
+++ servico teste teste teste numero 2 http tcp
+++ servico teste teste teste numero 3 http tcp
+++ servico teste teste teste numero 4 http tcp
+++ servico teste teste teste numero 10 http tcp
+++ ubuntu810desktop [00:0c:29:4d:22:ce] workstation tcp
elendil:mdnsctl: ./mdnsctl browse -r all
+++ ubuntu810desktop [00:0c:29:4d:22:ce] workstation tcp
Name: ubuntu810desktop.local
Priority: 0
Weight: 0
Port: 9
Address: 192.168.8.26
Txt:
+++ servico teste teste teste numero 1 http tcp
Name: ubuntu810desktop.local
Priority: 0
Weight: 0
Port: 80
Address: 192.168.8.26
Txt: LALALA=LIXO
Christiano Farina Haesbaert OpenMdns - Design e Implementação
Os Problemas
Os Protocolos
OpenMdns
Sumário
MDNS
DNS-SD
Network Browsing (Enumeration)
Neste passo enumeramos todos os serviços, não
sabemos ainda como acessa-los, mas sabemos da sua
presença.
Cada serviço é um RR PTR, com Name=srvtype.proto e
RDATA=nomedosrv.local.
Fazemos Continuous Querying e populamos nossa lista.
Mas depois de escolhido qual serviço, como o acessamos
?
Christiano Farina Haesbaert OpenMdns - Design e Implementação
Os Problemas
Os Protocolos
OpenMdns
Sumário
MDNS
DNS-SD
Network Browsing (Resolving)
Busca-se o SRV e TXT do serviço anunciado pelo PTR.
Estes dois RR nos dizem como acessar o serviço.
Note que só buscamos estes quando o usuário decide
acessar o serviço.
Christiano Farina Haesbaert OpenMdns - Design e Implementação
Os Problemas
Os Protocolos
OpenMdns
Sumário
MDNS
DNS-SD
Nem Tudo São Rosas
Protoco extremamente complexo.
Timers muito rigidos.
Muitos casos especiais.
Coerencia de cache.
Suportar clientes legados.
Draft confuso algumas vezes (no geral bem escrito).
Falta de uma API padrão.
Multicast ainda possue suas chatices (achei um bug no
Kernel).
Retransmissões, eventos assíncronos.
Ainda um draft.
Christiano Farina Haesbaert OpenMdns - Design e Implementação
Os Problemas
Os Protocolos
OpenMdns
Sumário
Introdução
Design e Implementação
Roteiro
1 Os Problemas
Endereçamento Na Rede Local
Os Recursos Instáveis
2 Os Protocolos
MDNS
DNS-SD
3 OpenMdns
Introdução
Design e Implementação
Christiano Farina Haesbaert OpenMdns - Design e Implementação
Os Problemas
Os Protocolos
OpenMdns
Sumário
Introdução
Design e Implementação
Motivação
1 Absoluta falta do que fazer.
2 Maldito DLINK cheio de bugs.
3 O Avahi tem 40K+ linhas, pensem a respeito.
4 O Bonjour tem 60K+ linhas, pensem a respeito.
5 Licensas, Bonjour = Apache2, Avahi=LGPL.
6 Autor tende a não gostar de coisas da GNU e Freedesktop.
7 Trabalho de Conclusão.
8 Feito para o OpenBSD.
Christiano Farina Haesbaert OpenMdns - Design e Implementação
Os Problemas
Os Protocolos
OpenMdns
Sumário
Introdução
Design e Implementação
OpenBSD ?
Descendente direto do BSD 4.4. (1974 - 1992).
Fork do NetBSD em 1995, briga do Theo.
Focado em security e correctness.
Política de “peer review”.
Documentação realmente levada a sério.
Código absurdamente bem escrito e limpo.
OpenBSD > Linux > *
Da onde vem o Open do OpenSSH ?
Matou o telnet no mundo.
Outros OSes estão anos atrás em termos de Networking.
Que tal Packet Filter (PF), OpenBGPD,
OpenRIPD, OpenOSPFD ?
Quem trouxe softraid para o OpenSource ?
Possivelmente o sistema mais seguro do mundo.
Christiano Farina Haesbaert OpenMdns - Design e Implementação
Os Problemas
Os Protocolos
OpenMdns
Sumário
Introdução
Design e Implementação
Requisitos
1 Daemon implementando a pilha MDNS/DNS-SD (mdnsd).
2 Biblioteca para as aplicações (libmdns).
3 Controlador para debug e testes (mdnsctl).
4 Tempo, paz, amor...
Christiano Farina Haesbaert OpenMdns - Design e Implementação
Os Problemas
Os Protocolos
OpenMdns
Sumário
Introdução
Design e Implementação
Requisitos
1 Daemon implementando a pilha MDNS/DNS-SD (mdnsd).
2 Biblioteca para as aplicações (libmdns).
3 Controlador para debug e testes (mdnsctl).
4 Tempo, paz, amor...
5 A coisa fica mais ou menos assim....
Christiano Farina Haesbaert OpenMdns - Design e Implementação
Os Problemas
Os Protocolos
OpenMdns
Sumário
Introdução
Design e Implementação
Arquitetura
Christiano Farina Haesbaert OpenMdns - Design e Implementação
Os Problemas
Os Protocolos
OpenMdns
Sumário
Introdução
Design e Implementação
Roteiro
1 Os Problemas
Endereçamento Na Rede Local
Os Recursos Instáveis
2 Os Protocolos
MDNS
DNS-SD
3 OpenMdns
Introdução
Design e Implementação
Christiano Farina Haesbaert OpenMdns - Design e Implementação
Os Problemas
Os Protocolos
OpenMdns
Sumário
Introdução
Design e Implementação
Design
Licensa ISC.
mdnsd e mdnsctl no padrão do OpenBSD.
Código limpo e simples.
Sem threads (threads são estúpidas).
IMSG framework para IPC.
AF_ROUTE socket.
Niel’s Provos libevent, tree.h e queue.h.
Processo não privilegiado.
style(9).
6000 linhas.
Testado em i386/amd64/alpha/sparc64.
Christiano Farina Haesbaert OpenMdns - Design e Implementação
Os Problemas
Os Protocolos
OpenMdns
Sumário
Introdução
Design e Implementação
Design - IPC
IMSG framework de Henning Brauer.
Framework utilizado entre os aplicativos e o daemon
(abstraído na libmdns).
Unix socket, SOCK_STREAM.
Incrivelmente simples e bem feito.
Utilizado por diversos daemons (OpenBGPD,
OpenOSPFD, OpenRIPD, Tmux...)
Christiano Farina Haesbaert OpenMdns - Design e Implementação
Os Problemas
Os Protocolos
OpenMdns
Sumário
Introdução
Design e Implementação
Design - Estruturas
Cache como uma Red-Black Tree, de Niel’s Provos.
Cada nodo segura um NAME/TYPE/CLASS com uma lista
de RRs.
Todos controllers (aplicativos usando a biblioteca), são
guardados em uma lista.
Controllers possuem refêrencias para Queries, multiplos
controllers podem segurar a mesma query.
Pacotes são criados como uma forma de objeto, então são
serializados e deserializados.
Christiano Farina Haesbaert OpenMdns - Design e Implementação
Os Problemas
Os Protocolos
OpenMdns
Sumário
Introdução
Design e Implementação
Estado Atual
Querier praticamente completo.
É possível fazer browsing/resolving e etc...
Biblioteca ainda hardcoded em mdnsl.c
Pouco trabalho feito no Publisher, parte que publica os
servicos pela biblioteca.
Revisado de vez em quando por Nicholas Marriot(tmux) e
Marco Peereboom(ACPI/softraid).
Sofrendo uma pequena mudança na arquitetura...
Christiano Farina Haesbaert OpenMdns - Design e Implementação
Os Problemas
Os Protocolos
OpenMdns
Sumário
Introdução
Design e Implementação
Futuro
Ser incluso na base do OpenBSD.
Suporte na libc, gethostbyname(3) e getaddrinfo(3).
Implementar Negative-Responses (Bonjour compat).
Implementar funções de publishing.
Melhorar o parser de DNS (algumas partes yuuuk!).
Fazer comparações com Avahi e Bonjour.
Compatibilidade binaria com Avahi.
IPv6.
Christiano Farina Haesbaert OpenMdns - Design e Implementação
Os Problemas
Os Protocolos
OpenMdns
Sumário
Introdução
Design e Implementação
Drafts
MDNS Draft
http://files.multicastdns.org/draft-cheshire-dnsext-multicastdns.txt
DNS-SD Draft
http://files.dns-sd.org/draft-cheshire-dnsext-dns-sd.txt
DNS RFC1035
www.ietf.org/rfc/rfc1035.txt
Christiano Farina Haesbaert OpenMdns - Design e Implementação
Os Problemas
Os Protocolos
OpenMdns
Sumário
Introdução
Design e Implementação
Ajudando
Colaborando em OpenMDNS -
github.com/haesbaert/mdnsd
Fornecendo um ambiente de testes, tipo uma faculdade...
em Pelotas... com vários arquiteturas bizonhas...
Testando, reclamando, e reportando bugs, criticas são
sempre bem vindas.
Doando hardware, atualmente preciso de um: HPPA(HP
PA-RISC), ARM, LOONGSON, PowerPC(da ibm), VAX...
Divulgando o MDNS em geral.
Comprando as releases do OpenBSD e garantindo a
sanidade do mundo OpenSource.
Não comprando hardware de empresas que se recusam a
fornecer documentação.
Christiano Farina Haesbaert OpenMdns - Design e Implementação
Os Problemas
Os Protocolos
OpenMdns
Sumário
Sumário
MDNS/DNS-SD nos fornecem 2 importantes conceitos.
1 Endereçamento local por nomes com custo zero.
2 Network Browsing, ou browsing the serviços.
O OpenMDNS é uma implementação com licensa ISC
para o OpenBSD.
Christiano Farina Haesbaert OpenMdns - Design e Implementação
Os Problemas
Os Protocolos
OpenMdns
Sumário
Perguntas ?
Obrigado por aguentarem firme até aqui !
OpenMDNS - github.com/haesbaert/mdnsd
Christiano Farina Haesbaert <haesbaert@haesbaert.org>
Christiano Farina Haesbaert OpenMdns - Design e Implementação

Mais conteúdo relacionado

Destaque

04 sangrados de_la_primera_mitad_del_embarazo
04 sangrados de_la_primera_mitad_del_embarazo04 sangrados de_la_primera_mitad_del_embarazo
04 sangrados de_la_primera_mitad_del_embarazo
Mocte Salaiza
 
07 tumores y divert es%f3fago
07 tumores y divert es%f3fago07 tumores y divert es%f3fago
07 tumores y divert es%f3fago
Mocte Salaiza
 
گزارشکار5
گزارشکار5گزارشکار5
گزارشکار5
sara aftabi
 
04 sangrados de_la_primera_mitad_del_embarazo1
04 sangrados de_la_primera_mitad_del_embarazo104 sangrados de_la_primera_mitad_del_embarazo1
04 sangrados de_la_primera_mitad_del_embarazo1
Mocte Salaiza
 
04.decreto n 5.626-2005
04.decreto n 5.626-200504.decreto n 5.626-2005
04.decreto n 5.626-2005
rosana bastos
 
Virtualização de Máquinas: Uma experiência baseada em ferramentas livres - Ca...
Virtualização de Máquinas: Uma experiência baseada em ferramentas livres - Ca...Virtualização de Máquinas: Uma experiência baseada em ferramentas livres - Ca...
Virtualização de Máquinas: Uma experiência baseada em ferramentas livres - Ca...
Tchelinux
 
Novidades no OpenBSD 4.3 - Leonardo Menezes Vaz
Novidades no OpenBSD 4.3 - Leonardo Menezes VazNovidades no OpenBSD 4.3 - Leonardo Menezes Vaz
Novidades no OpenBSD 4.3 - Leonardo Menezes Vaz
Tchelinux
 
البورصة المصرية | شركة عربية اون لاين | التحليل الفني | 9-1-2017 | بورصة | ا...
البورصة المصرية | شركة عربية اون لاين | التحليل الفني |  9-1-2017 | بورصة | ا...البورصة المصرية | شركة عربية اون لاين | التحليل الفني |  9-1-2017 | بورصة | ا...
البورصة المصرية | شركة عربية اون لاين | التحليل الفني | 9-1-2017 | بورصة | ا...
شركة عربية اون لاين للوساطة فى الاوراق المالية
 

Destaque (14)

L’apparato digerente
L’apparato digerenteL’apparato digerente
L’apparato digerente
 
04 sangrados de_la_primera_mitad_del_embarazo
04 sangrados de_la_primera_mitad_del_embarazo04 sangrados de_la_primera_mitad_del_embarazo
04 sangrados de_la_primera_mitad_del_embarazo
 
07 tumores y divert es%f3fago
07 tumores y divert es%f3fago07 tumores y divert es%f3fago
07 tumores y divert es%f3fago
 
گزارشکار5
گزارشکار5گزارشکار5
گزارشکار5
 
Dreamweaver - Site - Signos do Zodíaco
Dreamweaver - Site - Signos do ZodíacoDreamweaver - Site - Signos do Zodíaco
Dreamweaver - Site - Signos do Zodíaco
 
04 sangrados de_la_primera_mitad_del_embarazo1
04 sangrados de_la_primera_mitad_del_embarazo104 sangrados de_la_primera_mitad_del_embarazo1
04 sangrados de_la_primera_mitad_del_embarazo1
 
04.decreto n 5.626-2005
04.decreto n 5.626-200504.decreto n 5.626-2005
04.decreto n 5.626-2005
 
Alimentos modificados 6 e
Alimentos modificados 6 eAlimentos modificados 6 e
Alimentos modificados 6 e
 
Virtualização de Máquinas: Uma experiência baseada em ferramentas livres - Ca...
Virtualização de Máquinas: Uma experiência baseada em ferramentas livres - Ca...Virtualização de Máquinas: Uma experiência baseada em ferramentas livres - Ca...
Virtualização de Máquinas: Uma experiência baseada em ferramentas livres - Ca...
 
8. a-transfusion
8. a-transfusion8. a-transfusion
8. a-transfusion
 
boo box Webinars | Segunda Tela: sinergia no Plano de Mídia 24/09
boo box Webinars | Segunda Tela: sinergia no Plano de Mídia 24/09boo box Webinars | Segunda Tela: sinergia no Plano de Mídia 24/09
boo box Webinars | Segunda Tela: sinergia no Plano de Mídia 24/09
 
05 rccp 2005
05 rccp 200505 rccp 2005
05 rccp 2005
 
Novidades no OpenBSD 4.3 - Leonardo Menezes Vaz
Novidades no OpenBSD 4.3 - Leonardo Menezes VazNovidades no OpenBSD 4.3 - Leonardo Menezes Vaz
Novidades no OpenBSD 4.3 - Leonardo Menezes Vaz
 
البورصة المصرية | شركة عربية اون لاين | التحليل الفني | 9-1-2017 | بورصة | ا...
البورصة المصرية | شركة عربية اون لاين | التحليل الفني |  9-1-2017 | بورصة | ا...البورصة المصرية | شركة عربية اون لاين | التحليل الفني |  9-1-2017 | بورصة | ا...
البورصة المصرية | شركة عربية اون لاين | التحليل الفني | 9-1-2017 | بورصة | ا...
 

Semelhante a OpenMdns: Design e Implementação - Christiano Farina Haesbaert

Segurança de Redes
Segurança de RedesSegurança de Redes
Segurança de Redes
Diego Casati
 

Semelhante a OpenMdns: Design e Implementação - Christiano Farina Haesbaert (20)

Configuração Ethernet Wireless Linux
Configuração Ethernet Wireless LinuxConfiguração Ethernet Wireless Linux
Configuração Ethernet Wireless Linux
 
Apresentação do Curso de GNU/Linux Mint Desktop
Apresentação do Curso de GNU/Linux Mint DesktopApresentação do Curso de GNU/Linux Mint Desktop
Apresentação do Curso de GNU/Linux Mint Desktop
 
ping.pptx
ping.pptxping.pptx
ping.pptx
 
Escalando uma plataforma poliglota - QConSP 17
Escalando uma plataforma poliglota - QConSP 17Escalando uma plataforma poliglota - QConSP 17
Escalando uma plataforma poliglota - QConSP 17
 
Redes 3 protocolos
Redes 3 protocolosRedes 3 protocolos
Redes 3 protocolos
 
Quebrando o Orgulho! Open Source e Proprietário dão certo juntos sim!!
Quebrando o Orgulho! Open Source e Proprietário dão certo juntos sim!!Quebrando o Orgulho! Open Source e Proprietário dão certo juntos sim!!
Quebrando o Orgulho! Open Source e Proprietário dão certo juntos sim!!
 
01 ubuntudesktop-160204165000
01 ubuntudesktop-16020416500001 ubuntudesktop-160204165000
01 ubuntudesktop-160204165000
 
Introdução ao GNU/Linux
Introdução ao GNU/LinuxIntrodução ao GNU/Linux
Introdução ao GNU/Linux
 
Servidor DNS
Servidor DNSServidor DNS
Servidor DNS
 
DNAD 2015 - Como a arquitetura emergente de sua aplicação pode jogar contra ...
DNAD 2015  - Como a arquitetura emergente de sua aplicação pode jogar contra ...DNAD 2015  - Como a arquitetura emergente de sua aplicação pode jogar contra ...
DNAD 2015 - Como a arquitetura emergente de sua aplicação pode jogar contra ...
 
Segurança de Redes
Segurança de RedesSegurança de Redes
Segurança de Redes
 
Cygwin
CygwinCygwin
Cygwin
 
Python e suas aplicações
Python e suas aplicaçõesPython e suas aplicações
Python e suas aplicações
 
Trabalhando com ambientes complexos – SharePoint 2007 e SQL Server 2005
Trabalhando com ambientes complexos – SharePoint 2007 e SQL Server 2005Trabalhando com ambientes complexos – SharePoint 2007 e SQL Server 2005
Trabalhando com ambientes complexos – SharePoint 2007 e SQL Server 2005
 
Pentest conisli07
Pentest conisli07Pentest conisli07
Pentest conisli07
 
TDC2018SP | Trilha Serveless - Pra que SERVErless?
TDC2018SP | Trilha Serveless - Pra que SERVErless?TDC2018SP | Trilha Serveless - Pra que SERVErless?
TDC2018SP | Trilha Serveless - Pra que SERVErless?
 
Fedora 11 Release Party
Fedora 11 Release PartyFedora 11 Release Party
Fedora 11 Release Party
 
NoSQL e Python
NoSQL e PythonNoSQL e Python
NoSQL e Python
 
Criações Gráficas com Software Livre
Criações Gráficas com Software LivreCriações Gráficas com Software Livre
Criações Gráficas com Software Livre
 
Sniffers Parte 3
Sniffers   Parte 3Sniffers   Parte 3
Sniffers Parte 3
 

Mais de Tchelinux

Bikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio Grande
Bikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio GrandeBikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio Grande
Bikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio Grande
Tchelinux
 
A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...
A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...
A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...
Tchelinux
 

Mais de Tchelinux (20)

Do Zero ao YouTube em menos de 10 softwares livres - Vinícius Alves Hax - Tch...
Do Zero ao YouTube em menos de 10 softwares livres - Vinícius Alves Hax - Tch...Do Zero ao YouTube em menos de 10 softwares livres - Vinícius Alves Hax - Tch...
Do Zero ao YouTube em menos de 10 softwares livres - Vinícius Alves Hax - Tch...
 
Insegurança na Internet - Diego Luiz Silva da Costa - Tchelinux 2019 Rio Grande
Insegurança na Internet - Diego Luiz Silva da Costa - Tchelinux 2019 Rio GrandeInsegurança na Internet - Diego Luiz Silva da Costa - Tchelinux 2019 Rio Grande
Insegurança na Internet - Diego Luiz Silva da Costa - Tchelinux 2019 Rio Grande
 
Explorando Editores de Texto Open Source - Gabriel Prestes Ritta - Tchelinux ...
Explorando Editores de Texto Open Source - Gabriel Prestes Ritta - Tchelinux ...Explorando Editores de Texto Open Source - Gabriel Prestes Ritta - Tchelinux ...
Explorando Editores de Texto Open Source - Gabriel Prestes Ritta - Tchelinux ...
 
Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...
Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...
Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...
 
Me formei. E agora? - Matheus Cezar - Tchelinux 2019 Rio Grande
Me formei. E agora? - Matheus Cezar - Tchelinux 2019 Rio GrandeMe formei. E agora? - Matheus Cezar - Tchelinux 2019 Rio Grande
Me formei. E agora? - Matheus Cezar - Tchelinux 2019 Rio Grande
 
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
 
Shell Script: Seu melhor amigo na automatização de instalações e configuraçõe...
Shell Script: Seu melhor amigo na automatização de instalações e configuraçõe...Shell Script: Seu melhor amigo na automatização de instalações e configuraçõe...
Shell Script: Seu melhor amigo na automatização de instalações e configuraçõe...
 
WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...
WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...
WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...
 
Introdução à programação funcional com Clojure - Victor Hechel Colares - Tche...
Introdução à programação funcional com Clojure - Victor Hechel Colares - Tche...Introdução à programação funcional com Clojure - Victor Hechel Colares - Tche...
Introdução à programação funcional com Clojure - Victor Hechel Colares - Tche...
 
Construindo um Data Warehouse - Vítor Resing Plentz - Tchelinux 2019 Rio Grande
Construindo um Data Warehouse - Vítor Resing Plentz - Tchelinux 2019 Rio GrandeConstruindo um Data Warehouse - Vítor Resing Plentz - Tchelinux 2019 Rio Grande
Construindo um Data Warehouse - Vítor Resing Plentz - Tchelinux 2019 Rio Grande
 
Bikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio Grande
Bikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio GrandeBikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio Grande
Bikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio Grande
 
Produção de textos com Latex - Samuel Francisco Ferrigo - Tchelinux Caxias do...
Produção de textos com Latex - Samuel Francisco Ferrigo - Tchelinux Caxias do...Produção de textos com Latex - Samuel Francisco Ferrigo - Tchelinux Caxias do...
Produção de textos com Latex - Samuel Francisco Ferrigo - Tchelinux Caxias do...
 
A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...
A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...
A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...
 
oVirt uma solução de virtualização distribuída opensource - Daniel Lara - Tch...
oVirt uma solução de virtualização distribuída opensource - Daniel Lara - Tch...oVirt uma solução de virtualização distribuída opensource - Daniel Lara - Tch...
oVirt uma solução de virtualização distribuída opensource - Daniel Lara - Tch...
 
Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019
Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019
Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019
 
Com que ônibus eu vou? Uma gentil introdução ao Python.
Com que ônibus eu vou? Uma gentil introdução ao Python.Com que ônibus eu vou? Uma gentil introdução ao Python.
Com que ônibus eu vou? Uma gentil introdução ao Python.
 
O TCC... um dia ele chega! (The beautiful and easy LaTeX way.
O TCC... um dia ele chega! (The beautiful and easy LaTeX way.O TCC... um dia ele chega! (The beautiful and easy LaTeX way.
O TCC... um dia ele chega! (The beautiful and easy LaTeX way.
 
Não deixe para testar depois o que você pode testar antes.
Não deixe para testar depois o que você pode testar antes. Não deixe para testar depois o que você pode testar antes.
Não deixe para testar depois o que você pode testar antes.
 
Desenvolvendo jogos com pygame
Desenvolvendo jogos com pygameDesenvolvendo jogos com pygame
Desenvolvendo jogos com pygame
 
Essa câmera faz fotos muito boas, né?
Essa câmera faz fotos muito boas, né?Essa câmera faz fotos muito boas, né?
Essa câmera faz fotos muito boas, né?
 

OpenMdns: Design e Implementação - Christiano Farina Haesbaert

  • 1. Os Problemas Os Protocolos OpenMdns Sumário OpenMdns - Design e Implementação Christiano Farina Haesbaert 28 de Agosto de 2010 - Tchelinux Pelotas Christiano Farina Haesbaert OpenMdns - Design e Implementação
  • 2. Os Problemas Os Protocolos OpenMdns Sumário Roteiro 1 Os Problemas Endereçamento Na Rede Local Os Recursos Instáveis 2 Os Protocolos MDNS DNS-SD 3 OpenMdns Introdução Design e Implementação Christiano Farina Haesbaert OpenMdns - Design e Implementação
  • 3. Os Problemas Os Protocolos OpenMdns Sumário Endereçamento Na Rede Local Os Recursos Instáveis Roteiro 1 Os Problemas Endereçamento Na Rede Local Os Recursos Instáveis 2 Os Protocolos MDNS DNS-SD 3 OpenMdns Introdução Design e Implementação Christiano Farina Haesbaert OpenMdns - Design e Implementação
  • 4. Os Problemas Os Protocolos OpenMdns Sumário Endereçamento Na Rede Local Os Recursos Instáveis IPs Não São Suficientes Já parou para se perguntar como é chato decorar IPs ? Christiano Farina Haesbaert OpenMdns - Design e Implementação
  • 5. Os Problemas Os Protocolos OpenMdns Sumário Endereçamento Na Rede Local Os Recursos Instáveis IPs Não São Suficientes Já parou para se perguntar como é chato decorar IPs ? Como você transfere arquivos entre duas pessoas em uma rede local ? Christiano Farina Haesbaert OpenMdns - Design e Implementação
  • 6. Os Problemas Os Protocolos OpenMdns Sumário Endereçamento Na Rede Local Os Recursos Instáveis IPs Não São Suficientes Já parou para se perguntar como é chato decorar IPs ? Como você transfere arquivos entre duas pessoas em uma rede local ? Quantas vezes por dia você pergunta o IP de algum colega de trabalho ? Christiano Farina Haesbaert OpenMdns - Design e Implementação
  • 7. Os Problemas Os Protocolos OpenMdns Sumário Endereçamento Na Rede Local Os Recursos Instáveis IPs Não São Suficientes Já parou para se perguntar como é chato decorar IPs ? Como você transfere arquivos entre duas pessoas em uma rede local ? Quantas vezes por dia você pergunta o IP de algum colega de trabalho ? E quando o IP dele muda (DHCP) ? Christiano Farina Haesbaert OpenMdns - Design e Implementação
  • 8. Os Problemas Os Protocolos OpenMdns Sumário Endereçamento Na Rede Local Os Recursos Instáveis Opções Para Transferência de Arquivos 1 Email. 2 Instant Messenger interno. 3 FTP. 4 Diretório compartilhado (CIFS). 5 NFS. 6 Pendrive. Christiano Farina Haesbaert OpenMdns - Design e Implementação
  • 9. Os Problemas Os Protocolos OpenMdns Sumário Endereçamento Na Rede Local Os Recursos Instáveis Opções Para Transferência de Arquivos 1 Email. 2 Instant Messenger interno. 3 FTP. 4 Diretório compartilhado (CIFS). 5 NFS. 6 Pendrive. Se você usa um Pendrive e não vê problema... Note que todas opções exigem um setup não trivial (Pensem nos Mortais). Christiano Farina Haesbaert OpenMdns - Design e Implementação
  • 10. Os Problemas Os Protocolos OpenMdns Sumário Endereçamento Na Rede Local Os Recursos Instáveis Origem do Problema Mapeamento de nome -> ip é centralizado (DNS). Mortais não sabem configurar o bind/named. Integrar com dhclient/dhcpd pode ser um porre. Sem Network Browsing. Endereçamento dinâmico(DHCP) e numérico(IP). Christiano Farina Haesbaert OpenMdns - Design e Implementação
  • 11. Os Problemas Os Protocolos OpenMdns Sumário Endereçamento Na Rede Local Os Recursos Instáveis Origem do Problema Mapeamento de nome -> ip é centralizado (DNS). Mortais não sabem configurar o bind/named. Integrar com dhclient/dhcpd pode ser um porre. Sem Network Browsing. Endereçamento dinâmico(DHCP) e numérico(IP). E se pudéssemos endereçar todos computadores por nome com custo zero ? Christiano Farina Haesbaert OpenMdns - Design e Implementação
  • 12. Os Problemas Os Protocolos OpenMdns Sumário Endereçamento Na Rede Local Os Recursos Instáveis Roteiro 1 Os Problemas Endereçamento Na Rede Local Os Recursos Instáveis 2 Os Protocolos MDNS DNS-SD 3 OpenMdns Introdução Design e Implementação Christiano Farina Haesbaert OpenMdns - Design e Implementação
  • 13. Os Problemas Os Protocolos OpenMdns Sumário Endereçamento Na Rede Local Os Recursos Instáveis O Que Chamamos de Recurso Instável ? Definition Um Recurso Instável é qualquer recurso, dispositivo ou serviço que não está necessariamente sempre disponível. Example Computador qualquer. Servidor HTTP/FTP/CIFS/NFS/NTP.... Roteador/NAS. Serviço de músicas (share do iTunes). Presença no IM (Online/Away/Offline...). Impressora. Christiano Farina Haesbaert OpenMdns - Design e Implementação
  • 14. Os Problemas Os Protocolos OpenMdns Sumário Endereçamento Na Rede Local Os Recursos Instáveis Quantas Vezes... Quantas vezes por dia você “pinga” uma máquina para confirmar que ela está up ? Christiano Farina Haesbaert OpenMdns - Design e Implementação
  • 15. Os Problemas Os Protocolos OpenMdns Sumário Endereçamento Na Rede Local Os Recursos Instáveis Quantas Vezes... Quantas vezes por dia você “pinga” uma máquina para confirmar que ela está up ? Quantas vezes você chegou em uma rede e perguntou como acessar um serviço X ? Christiano Farina Haesbaert OpenMdns - Design e Implementação
  • 16. Os Problemas Os Protocolos OpenMdns Sumário Endereçamento Na Rede Local Os Recursos Instáveis Quantas Vezes... Quantas vezes por dia você “pinga” uma máquina para confirmar que ela está up ? Quantas vezes você chegou em uma rede e perguntou como acessar um serviço X ? Quantas vezes você já teve que colocar uma serial em um equipamento só para descobrir o IP. Christiano Farina Haesbaert OpenMdns - Design e Implementação
  • 17. Os Problemas Os Protocolos OpenMdns Sumário Endereçamento Na Rede Local Os Recursos Instáveis Quantas Vezes... Quantas vezes por dia você “pinga” uma máquina para confirmar que ela está up ? Quantas vezes você chegou em uma rede e perguntou como acessar um serviço X ? Quantas vezes você já teve que colocar uma serial em um equipamento só para descobrir o IP. Quantas vezes você gostaria de ligar o computador e ver quem está online na rede local (independentemente do ambiente) ? Christiano Farina Haesbaert OpenMdns - Design e Implementação
  • 18. Os Problemas Os Protocolos OpenMdns Sumário Endereçamento Na Rede Local Os Recursos Instáveis Quantas Vezes... Quantas vezes por dia você “pinga” uma máquina para confirmar que ela está up ? Quantas vezes você chegou em uma rede e perguntou como acessar um serviço X ? Quantas vezes você já teve que colocar uma serial em um equipamento só para descobrir o IP. Quantas vezes você gostaria de ligar o computador e ver quem está online na rede local (independentemente do ambiente) ? Quantas vezes você teve que perguntar como acessar impressora X ? Christiano Farina Haesbaert OpenMdns - Design e Implementação
  • 19. Os Problemas Os Protocolos OpenMdns Sumário Endereçamento Na Rede Local Os Recursos Instáveis Quantas Vezes... Quantas vezes por dia você “pinga” uma máquina para confirmar que ela está up ? Quantas vezes você chegou em uma rede e perguntou como acessar um serviço X ? Quantas vezes você já teve que colocar uma serial em um equipamento só para descobrir o IP. Quantas vezes você gostaria de ligar o computador e ver quem está online na rede local (independentemente do ambiente) ? Quantas vezes você teve que perguntar como acessar impressora X ? E se você pudesse fazer tudo isso com zero esforço ? Christiano Farina Haesbaert OpenMdns - Design e Implementação
  • 20. Os Problemas Os Protocolos OpenMdns Sumário Endereçamento Na Rede Local Os Recursos Instáveis Já Pensou Como Isto é Implementado ? Lista de jogos na rede local. Lista de impressoras da rede local. Lista dos serviços de música na rede local. Lista dos compartilhamentos na rede local. Lista dos... agora você percebe o padrão ? Christiano Farina Haesbaert OpenMdns - Design e Implementação
  • 21. Os Problemas Os Protocolos OpenMdns Sumário Endereçamento Na Rede Local Os Recursos Instáveis Já Pensou Como Isto é Implementado ? Lista de jogos na rede local. Lista de impressoras da rede local. Lista dos serviços de música na rede local. Lista dos compartilhamentos na rede local. Lista dos... agora você percebe o padrão ? Agora pense que cada um desenvolve seu próprio protocolo. Assustado ? Que bom :-). Chamaremos isto de Network Browsing. A Apple resolveu isto na década de 80. Christiano Farina Haesbaert OpenMdns - Design e Implementação
  • 22. Os Problemas Os Protocolos OpenMdns Sumário MDNS DNS-SD Roteiro 1 Os Problemas Endereçamento Na Rede Local Os Recursos Instáveis 2 Os Protocolos MDNS DNS-SD 3 OpenMdns Introdução Design e Implementação Christiano Farina Haesbaert OpenMdns - Design e Implementação
  • 23. Os Problemas Os Protocolos OpenMdns Sumário MDNS DNS-SD Introdução Multicast DNS. Criado pela Apple por Stuart Chesnire (yeeei ! finalmente devolvendo algo). Transição do Appletalk -> IPv4. Ainda um Draft, expira em Setembro de 2010. A maioria de vocês usa e não sabe (Avahi). Resolve o problema do Endereçamento na Rede Local. Faz parte da suíte ZeroConf. Opera na porta UDP 5353. Christiano Farina Haesbaert OpenMdns - Design e Implementação
  • 24. Os Problemas Os Protocolos OpenMdns Sumário MDNS DNS-SD Quem usa ? O Apple Bonjour é a mais antiga implementação. O Avahi é a implementação da Freedesktop. O OpenMDNS é a implementação inacabada deste que vos fala :-). Praticamente toda distribuição de Linux vem com o Avahi já instalado e rodando (isso, hora do pgrep avahi). Voltaremos as implementações existentes ao final... Christiano Farina Haesbaert OpenMdns - Design e Implementação
  • 25. Os Problemas Os Protocolos OpenMdns Sumário MDNS DNS-SD O Que é Multicast ? Figura: unicast x multicast x broadcast Christiano Farina Haesbaert OpenMdns - Design e Implementação
  • 26. Os Problemas Os Protocolos OpenMdns Sumário MDNS DNS-SD Por Que DNS ? MDNS = forma de usar DNS via Multicast. DNS como um banco de dados distribuído. Não guarda só nomes ! Pacotes na mesma estrutura de DNS Unicast. Reaproveita um protocolo que funciona. Suporta “legacy clients”, clientes de DNS Unicast. Christiano Farina Haesbaert OpenMdns - Design e Implementação
  • 27. Os Problemas Os Protocolos OpenMdns Sumário MDNS DNS-SD Dois Atores... Definition (Querier) Qualquer dispositivo fazendo perguntas de MDNS é dito um Querier. Definition (Responder) Qualquer dispositivo respondendo perguntas de MDNS é dito um Responder. Quase sempre o dispositivo é tanto um Querier quanto Responder. Christiano Farina Haesbaert OpenMdns - Design e Implementação
  • 28. Os Problemas Os Protocolos OpenMdns Sumário MDNS DNS-SD Funcionamento .local = domínio do MDNS. Apenas para rede local (L2). Querier fazem perguntas via Multicast. Responders respondem as perguntas via Multicast. “Fate-sharing”. Tenta ser o menos “chatty” possível. Christiano Farina Haesbaert OpenMdns - Design e Implementação
  • 29. Os Problemas Os Protocolos OpenMdns Sumário MDNS DNS-SD Funcionamento, Exemplo Seja foo.local e bar.local dois computadores. 1 foo.local: Qual o IP de bar.local ? (Q=bar.local T=A) 2 bar.local: Soy jo, meu IP é 192.168.8.1 (Q=bar.local T=A RDATA=192.168.8.1) ! 1 foo.local: Qual o HINFO de bar.local ? (Q=bar.local T=HINFO) 2 bar.local: CPU: Sparc64 OS: OpenBSD(Q=bar.local T=HINFO RDATA=CPU/OS) ! Pergunta e Resposta via Multicast. Todos se beneficiam da resposta (Fate-sharing). Todo mundo faz cache. Christiano Farina Haesbaert OpenMdns - Design e Implementação
  • 30. Os Problemas Os Protocolos OpenMdns Sumário MDNS DNS-SD Tipos de Query Definition (One Shot) É enviado uma Query e esperado uma resposta. Definition (One Shot, Accumulating) É enviado uma Query e esperado múltiplas respostas. Definition (Continuous) São feitas Queries de tempo em tempo, acumulando múltiplas respostas. Christiano Farina Haesbaert OpenMdns - Design e Implementação
  • 31. Os Problemas Os Protocolos OpenMdns Sumário MDNS DNS-SD Resource Record 1 Name, exemplo elendil.local. 2 Type, A (IP), AAAA(IPV6), SRV(Serviço), PTR(Ponteiro). 3 Class, Classe é sempre IN. 4 Rdata, O dado do RR, um IP, IPv6, um nome, é definido pelo Type. Definition (RR Unique) Records que são exclusivos de algum host (ex: myname.local) Definition (RR Shared) Podem existir vários com mesmo Name/Type/Class, porém com RDATA diferentes. Christiano Farina Haesbaert OpenMdns - Design e Implementação
  • 32. Os Problemas Os Protocolos OpenMdns Sumário MDNS DNS-SD pkill problem1 Resolvemos o primeiro problema (Problema do Endereçamento Numérico). Podemos agora referenciar hosts por nome. Não gastamos nada com isso, só precisamos ter o protocolo. Todos programas se beneficiam automaticamente. Você agora pode ter certeza que seumadruga.local é o host que não paga o aluguel. Christiano Farina Haesbaert OpenMdns - Design e Implementação
  • 33. Os Problemas Os Protocolos OpenMdns Sumário MDNS DNS-SD OpenMDNS é Hora de Morfar ! Go go Power....chega. # A normal lookup elendil:mdnsctl: ./mdnsctl lkup anonymous.local Address: 192.168.8.100 # A reverse lookup elendil:mdnsctl: ./mdnsctl lkup -a 192.168.8.100 Hostname: anonymous.local Christiano Farina Haesbaert OpenMdns - Design e Implementação
  • 34. Os Problemas Os Protocolos OpenMdns Sumário MDNS DNS-SD Roteiro 1 Os Problemas Endereçamento Na Rede Local Os Recursos Instáveis 2 Os Protocolos MDNS DNS-SD 3 OpenMdns Introdução Design e Implementação Christiano Farina Haesbaert OpenMdns - Design e Implementação
  • 35. Os Problemas Os Protocolos OpenMdns Sumário MDNS DNS-SD Introdução DNS Service Discovering. Pode ser usado com MDNS e DNS. Ganhou popularidade quando usado com MDNS. Draft pequeno (40 páginas). Também criado por Stuart Chesnire. É o que faz as coisas da Apple parecerem legais. Christiano Farina Haesbaert OpenMdns - Design e Implementação
  • 36. Os Problemas Os Protocolos OpenMdns Sumário MDNS DNS-SD O Que Faz ? Resolve o nosso Problema 2: Os Recursos Instáveis, ou podemos dizer que nos fornece Network Browsing. Christiano Farina Haesbaert OpenMdns - Design e Implementação
  • 37. Os Problemas Os Protocolos OpenMdns Sumário MDNS DNS-SD O Que Faz ? Resolve o nosso Problema 2: Os Recursos Instáveis, ou podemos dizer que nos fornece Network Browsing. Ta ta ta ta, palavras bonitas, mas o que faz ? Christiano Farina Haesbaert OpenMdns - Design e Implementação
  • 38. Os Problemas Os Protocolos OpenMdns Sumário MDNS DNS-SD O Que Faz ? Resolve o nosso Problema 2: Os Recursos Instáveis, ou podemos dizer que nos fornece Network Browsing. Ta ta ta ta, palavras bonitas, mas o que faz ? Faz com que quando tu de dois cliques no botão coloridinho Network, apareça todas impressoras, todos servidores de web, todos computadores ligados, todos os compartilhamentos, todos os issos e aquilos, como eu disse, fornece Network Browsing. Christiano Farina Haesbaert OpenMdns - Design e Implementação
  • 39. Os Problemas Os Protocolos OpenMdns Sumário MDNS DNS-SD O Que Faz ? Resolve o nosso Problema 2: Os Recursos Instáveis, ou podemos dizer que nos fornece Network Browsing. Ta ta ta ta, palavras bonitas, mas o que faz ? Faz com que quando tu de dois cliques no botão coloridinho Network, apareça todas impressoras, todos servidores de web, todos computadores ligados, todos os compartilhamentos, todos os issos e aquilos, como eu disse, fornece Network Browsing. Só isso ? Isso o Netbios/CIFS e cia já faziam. Christiano Farina Haesbaert OpenMdns - Design e Implementação
  • 40. Os Problemas Os Protocolos OpenMdns Sumário MDNS DNS-SD O Que Faz ? Resolve o nosso Problema 2: Os Recursos Instáveis, ou podemos dizer que nos fornece Network Browsing. Ta ta ta ta, palavras bonitas, mas o que faz ? Faz com que quando tu de dois cliques no botão coloridinho Network, apareça todas impressoras, todos servidores de web, todos computadores ligados, todos os compartilhamentos, todos os issos e aquilos, como eu disse, fornece Network Browsing. Só isso ? Isso o Netbios/CIFS e cia já faziam. Parecido, mas este funciona. Christiano Farina Haesbaert OpenMdns - Design e Implementação
  • 41. Os Problemas Os Protocolos OpenMdns Sumário MDNS DNS-SD O Que Faz ? Resolve o nosso Problema 2: Os Recursos Instáveis, ou podemos dizer que nos fornece Network Browsing. Ta ta ta ta, palavras bonitas, mas o que faz ? Faz com que quando tu de dois cliques no botão coloridinho Network, apareça todas impressoras, todos servidores de web, todos computadores ligados, todos os compartilhamentos, todos os issos e aquilos, como eu disse, fornece Network Browsing. Só isso ? Isso o Netbios/CIFS e cia já faziam. Parecido, mas este funciona. E este é genérico e aberto. E mais que isso, ao clicar na impressora ele já te diz como usar a mesma. Christiano Farina Haesbaert OpenMdns - Design e Implementação
  • 42. Os Problemas Os Protocolos OpenMdns Sumário MDNS DNS-SD Exemplos ! Exemplos ! Ui ui ui coloridinho, no proximo slide uma coisa mais séria. Christiano Farina Haesbaert OpenMdns - Design e Implementação
  • 43. Os Problemas Os Protocolos OpenMdns Sumário MDNS DNS-SD Exemplos ! Exemplos ! elendil:mdnsctl: ./mdnsctl browse all +++ servico teste teste teste numero 1 http tcp +++ servico teste teste teste numero 2 http tcp +++ servico teste teste teste numero 3 http tcp +++ servico teste teste teste numero 4 http tcp +++ servico teste teste teste numero 10 http tcp +++ ubuntu810desktop [00:0c:29:4d:22:ce] workstation tcp elendil:mdnsctl: ./mdnsctl browse -r all +++ ubuntu810desktop [00:0c:29:4d:22:ce] workstation tcp Name: ubuntu810desktop.local Priority: 0 Weight: 0 Port: 9 Address: 192.168.8.26 Txt: +++ servico teste teste teste numero 1 http tcp Name: ubuntu810desktop.local Priority: 0 Weight: 0 Port: 80 Address: 192.168.8.26 Txt: LALALA=LIXO Christiano Farina Haesbaert OpenMdns - Design e Implementação
  • 44. Os Problemas Os Protocolos OpenMdns Sumário MDNS DNS-SD Network Browsing (Enumeration) Neste passo enumeramos todos os serviços, não sabemos ainda como acessa-los, mas sabemos da sua presença. Cada serviço é um RR PTR, com Name=srvtype.proto e RDATA=nomedosrv.local. Fazemos Continuous Querying e populamos nossa lista. Mas depois de escolhido qual serviço, como o acessamos ? Christiano Farina Haesbaert OpenMdns - Design e Implementação
  • 45. Os Problemas Os Protocolos OpenMdns Sumário MDNS DNS-SD Network Browsing (Resolving) Busca-se o SRV e TXT do serviço anunciado pelo PTR. Estes dois RR nos dizem como acessar o serviço. Note que só buscamos estes quando o usuário decide acessar o serviço. Christiano Farina Haesbaert OpenMdns - Design e Implementação
  • 46. Os Problemas Os Protocolos OpenMdns Sumário MDNS DNS-SD Nem Tudo São Rosas Protoco extremamente complexo. Timers muito rigidos. Muitos casos especiais. Coerencia de cache. Suportar clientes legados. Draft confuso algumas vezes (no geral bem escrito). Falta de uma API padrão. Multicast ainda possue suas chatices (achei um bug no Kernel). Retransmissões, eventos assíncronos. Ainda um draft. Christiano Farina Haesbaert OpenMdns - Design e Implementação
  • 47. Os Problemas Os Protocolos OpenMdns Sumário Introdução Design e Implementação Roteiro 1 Os Problemas Endereçamento Na Rede Local Os Recursos Instáveis 2 Os Protocolos MDNS DNS-SD 3 OpenMdns Introdução Design e Implementação Christiano Farina Haesbaert OpenMdns - Design e Implementação
  • 48. Os Problemas Os Protocolos OpenMdns Sumário Introdução Design e Implementação Motivação 1 Absoluta falta do que fazer. 2 Maldito DLINK cheio de bugs. 3 O Avahi tem 40K+ linhas, pensem a respeito. 4 O Bonjour tem 60K+ linhas, pensem a respeito. 5 Licensas, Bonjour = Apache2, Avahi=LGPL. 6 Autor tende a não gostar de coisas da GNU e Freedesktop. 7 Trabalho de Conclusão. 8 Feito para o OpenBSD. Christiano Farina Haesbaert OpenMdns - Design e Implementação
  • 49. Os Problemas Os Protocolos OpenMdns Sumário Introdução Design e Implementação OpenBSD ? Descendente direto do BSD 4.4. (1974 - 1992). Fork do NetBSD em 1995, briga do Theo. Focado em security e correctness. Política de “peer review”. Documentação realmente levada a sério. Código absurdamente bem escrito e limpo. OpenBSD > Linux > * Da onde vem o Open do OpenSSH ? Matou o telnet no mundo. Outros OSes estão anos atrás em termos de Networking. Que tal Packet Filter (PF), OpenBGPD, OpenRIPD, OpenOSPFD ? Quem trouxe softraid para o OpenSource ? Possivelmente o sistema mais seguro do mundo. Christiano Farina Haesbaert OpenMdns - Design e Implementação
  • 50. Os Problemas Os Protocolos OpenMdns Sumário Introdução Design e Implementação Requisitos 1 Daemon implementando a pilha MDNS/DNS-SD (mdnsd). 2 Biblioteca para as aplicações (libmdns). 3 Controlador para debug e testes (mdnsctl). 4 Tempo, paz, amor... Christiano Farina Haesbaert OpenMdns - Design e Implementação
  • 51. Os Problemas Os Protocolos OpenMdns Sumário Introdução Design e Implementação Requisitos 1 Daemon implementando a pilha MDNS/DNS-SD (mdnsd). 2 Biblioteca para as aplicações (libmdns). 3 Controlador para debug e testes (mdnsctl). 4 Tempo, paz, amor... 5 A coisa fica mais ou menos assim.... Christiano Farina Haesbaert OpenMdns - Design e Implementação
  • 52. Os Problemas Os Protocolos OpenMdns Sumário Introdução Design e Implementação Arquitetura Christiano Farina Haesbaert OpenMdns - Design e Implementação
  • 53. Os Problemas Os Protocolos OpenMdns Sumário Introdução Design e Implementação Roteiro 1 Os Problemas Endereçamento Na Rede Local Os Recursos Instáveis 2 Os Protocolos MDNS DNS-SD 3 OpenMdns Introdução Design e Implementação Christiano Farina Haesbaert OpenMdns - Design e Implementação
  • 54. Os Problemas Os Protocolos OpenMdns Sumário Introdução Design e Implementação Design Licensa ISC. mdnsd e mdnsctl no padrão do OpenBSD. Código limpo e simples. Sem threads (threads são estúpidas). IMSG framework para IPC. AF_ROUTE socket. Niel’s Provos libevent, tree.h e queue.h. Processo não privilegiado. style(9). 6000 linhas. Testado em i386/amd64/alpha/sparc64. Christiano Farina Haesbaert OpenMdns - Design e Implementação
  • 55. Os Problemas Os Protocolos OpenMdns Sumário Introdução Design e Implementação Design - IPC IMSG framework de Henning Brauer. Framework utilizado entre os aplicativos e o daemon (abstraído na libmdns). Unix socket, SOCK_STREAM. Incrivelmente simples e bem feito. Utilizado por diversos daemons (OpenBGPD, OpenOSPFD, OpenRIPD, Tmux...) Christiano Farina Haesbaert OpenMdns - Design e Implementação
  • 56. Os Problemas Os Protocolos OpenMdns Sumário Introdução Design e Implementação Design - Estruturas Cache como uma Red-Black Tree, de Niel’s Provos. Cada nodo segura um NAME/TYPE/CLASS com uma lista de RRs. Todos controllers (aplicativos usando a biblioteca), são guardados em uma lista. Controllers possuem refêrencias para Queries, multiplos controllers podem segurar a mesma query. Pacotes são criados como uma forma de objeto, então são serializados e deserializados. Christiano Farina Haesbaert OpenMdns - Design e Implementação
  • 57. Os Problemas Os Protocolos OpenMdns Sumário Introdução Design e Implementação Estado Atual Querier praticamente completo. É possível fazer browsing/resolving e etc... Biblioteca ainda hardcoded em mdnsl.c Pouco trabalho feito no Publisher, parte que publica os servicos pela biblioteca. Revisado de vez em quando por Nicholas Marriot(tmux) e Marco Peereboom(ACPI/softraid). Sofrendo uma pequena mudança na arquitetura... Christiano Farina Haesbaert OpenMdns - Design e Implementação
  • 58. Os Problemas Os Protocolos OpenMdns Sumário Introdução Design e Implementação Futuro Ser incluso na base do OpenBSD. Suporte na libc, gethostbyname(3) e getaddrinfo(3). Implementar Negative-Responses (Bonjour compat). Implementar funções de publishing. Melhorar o parser de DNS (algumas partes yuuuk!). Fazer comparações com Avahi e Bonjour. Compatibilidade binaria com Avahi. IPv6. Christiano Farina Haesbaert OpenMdns - Design e Implementação
  • 59. Os Problemas Os Protocolos OpenMdns Sumário Introdução Design e Implementação Drafts MDNS Draft http://files.multicastdns.org/draft-cheshire-dnsext-multicastdns.txt DNS-SD Draft http://files.dns-sd.org/draft-cheshire-dnsext-dns-sd.txt DNS RFC1035 www.ietf.org/rfc/rfc1035.txt Christiano Farina Haesbaert OpenMdns - Design e Implementação
  • 60. Os Problemas Os Protocolos OpenMdns Sumário Introdução Design e Implementação Ajudando Colaborando em OpenMDNS - github.com/haesbaert/mdnsd Fornecendo um ambiente de testes, tipo uma faculdade... em Pelotas... com vários arquiteturas bizonhas... Testando, reclamando, e reportando bugs, criticas são sempre bem vindas. Doando hardware, atualmente preciso de um: HPPA(HP PA-RISC), ARM, LOONGSON, PowerPC(da ibm), VAX... Divulgando o MDNS em geral. Comprando as releases do OpenBSD e garantindo a sanidade do mundo OpenSource. Não comprando hardware de empresas que se recusam a fornecer documentação. Christiano Farina Haesbaert OpenMdns - Design e Implementação
  • 61. Os Problemas Os Protocolos OpenMdns Sumário Sumário MDNS/DNS-SD nos fornecem 2 importantes conceitos. 1 Endereçamento local por nomes com custo zero. 2 Network Browsing, ou browsing the serviços. O OpenMDNS é uma implementação com licensa ISC para o OpenBSD. Christiano Farina Haesbaert OpenMdns - Design e Implementação
  • 62. Os Problemas Os Protocolos OpenMdns Sumário Perguntas ? Obrigado por aguentarem firme até aqui ! OpenMDNS - github.com/haesbaert/mdnsd Christiano Farina Haesbaert <haesbaert@haesbaert.org> Christiano Farina Haesbaert OpenMdns - Design e Implementação