pausa para um techie moment
1/Fev/2008 @ 15:30 Informática

O que eu vou apresentar aqui é uma possível solução (longe da ideal) de servidor de DNS para empresas de pequena dimensão e pouco dinheiro para comprar ferro :P

Cenário: instalar um servidor de DNS com um domínio privado, pode ser foobar.lan, ter máquinas nesse domínio a aceder entre elas e ter também DNS próprio para a Internet.

Solução: djbdns do Prof. Dan Bernstein.

Método de ensino: receita de cozinha, não há cá teoria de protocolos para ninguém, comprem livros e leiam-nos.

Ah, descomprimir os ficheiros, compilar e instalar em /usr/local/src.

1. Instalar as daemontools;

# tar -zxpvf daemontools-0.76.tar.gz
# cd admin/daemontools-0.76/src
# patch -p1 < ../../../daemontools-0.76.errno.patch
# cd ..

De seguida colocamo-nos no directório daemontools-0.76 e executamos os comandos:

# ./package/compile
# ./package/install

2. Criar utilizadores necessários;

# useradd -s /bin/false -d /dev/null Gtinydns
# useradd -s /bin/false -d /dev/null Gdnslog
# useradd -s /bin/false -d /dev/null Gdnscache

3. Instalar o djbdns;

# tar -zxpvf djbdns-1.05.tar.gz
# patch -p1 < ../djbdns-1.05.errno.patch
# make
# make setup check

4. Instalar o tinydns (o servidor de DNS);

O servidor deve ser instalado no localhost (127.0.0.1):

# tinydns-conf Gtinydns Gdnslog /etc/tinydns 127.0.0.1

Mudar para /etc/tinydns/root e executar:

# ./add-ns foobar.lan 127.0.0.1
# ./add-host www.foobar.com 192.168.1.4
# ./add-mx mailfoobar.lan 192.168.1.5
# ./add-host mail.foobar.lan 192.168.1.5
# ./add-host backups.foobar.lan 192.168.1.6
# make

5. Instalar a cache de DNS num interface, suponhamos que com IP 192.168.1.2:

# dnscache-conf Gdnscache Gdnslog /etc/dnscache 192.168.1.2
# echo 127.0.0.1 > /etc/dnscache/root/servers/foobar.lan
# cd /service/dnscache
# touch root/ip/192.168.1

6. Arrancar os dois serviços (só é necessário fazer isto uma vez);

# cd /service
# ln -s /etc/tinydns tinydns
# ln -s /etc/dnscache dnscache

7. Actualizar os IPs dos root servers;

# dnsq ns . a.root-servers.net | cut -d' ' -f5 | tail -n13 > /etc/dnscache/root/servers/@

8. Testar.

Os PCs clientes devem (têm que, na verdade) utilizar o IP da cache como servidor de DNS, ou seja o 192.168.1.2

Pingar máquinas da rede .lan e máquinas na Internet.

Executar, por exemplo:

# dig mail.foobar.lan @127.0.0.1
# dig mail.foobar.lan @192.168.1.2

Ou:

# ps auxwww | grep readproctitle
e ver se há erros.

Ver logs.
Em /etc/tinydns/log/main para o servidor e /etc/dnscache/log/main, executar:

# tail -f current
Ver o estado dos serviços (também serve para verificar os uptimes do DNS e dos logs):

# svstat /service/*
# svstat /service/*/log

Ver se há algum dos serviços com uptime a alternar entre 0 e 1. Se sim, há azar na praia.

Se houver problemas, depois de cada tentativa para os resolver, é necesário reinicializar:

# svc -t /service/*

E pronto, esta solução não é a que deve ser utilizada para se ter DNS numa rede a sério. Para começar, deviam ser dois servidores ou mais separados e outras coisas. Mas funciona quando o dinheiro escasseia numa empresa pequena ou se tem uma máquina em casa.

Se quiseres experimentar, saca o software necessário daqui.

Agora não me apetece, mas para a semana explico como integrar isto com um servidor de DHCP. Até lá.

-MG
rss 3 pás de carvão
  1. trex
    1/Fev/2008 | 22:17

    o tiny é _o_ melhor package do DJB, bar none!


    A usar Mozilla Firefox Mozilla Firefox 2.0.0.11 em SuSE Linux SuSE Linux
  2. 6/Fev/2008 | 20:54

    Desculpa a pergunta mas como ando a iniciar-me neste mundo do linux (iniciei a era desktops a 3 meses).

    Este serviço (DNS interno), após instalado, fica com algum tipo de consola de gestão web?

    tks


    A usar Mozilla Firefox Mozilla Firefox 2.0.0.11 em Ubuntu Linux Ubuntu Linux
  3. 6/Fev/2008 | 21:44

    Tens o VegaDNS.


    A usar Mozilla Firefox Mozilla Firefox 2.0.0.11 em Windows Windows Vista
atira-lhe uma pá de carvão

Nota: Todos os comentários são moderados.