D.N.A. Engineering a new breed of servers
Diventa un nodo DNA

Registra una zona su DNA

Scarica il client DNA

DNA Developement Steps

Elenco dei nodi

DNA Mailing list

English Version

 
Step 1. El primer tentativo de crear una red DNA fué muy pragmatico. El objetivo era conseguir inmediatamente algo lo más fácil de usar.
El único software usado era BIND: El intercambio de la información sobre las zonas existentes se debería haber hecho usando un pequeño hack sobre BIND: construir una zona ficticia (por ejemplo named.conf.dna) con contenidos similares al siguiente:

my.domain.hack          4H    IN    NS    srv1.vodka.it.
my.domain.hack 4H IN NS ns.autistici.org
another.domain.loa 4H IN NS srv1.vodka.it.
another.domain.loa 4H IN NS ns.autistici.org
dominio.molto.autistico 4H IN NS srv1.vodka.it.
dominio.molto.autistico 4H IN NS ns.autistici.org
un.dominio.inventato 4H IN NS srv1.vodka.it.
un.dominio.inventato 4H IN NS ns.autistici.org
srv1.vodka.it 4H IN A 195.110.114.215
ns.autistici.org 4H IN A 151.17.61.37

De la cual se reconstruye la porción de named.conf necesaria para la transferencia d elas zonas.

Ok, no es precisamente un único software, necesitamos algo para la reconstrucción de las porciones del named.conf 
y para eso nos hemos currado un script (en Perl, para el que pregunte)  .
En ese punto existía solo el pequeño problema de decicir como empezar la construcción de la red a partir de trozos de ficheros y de actualizaciones sucesivas de la zona.

Step 2.    --> [ Activo ahora en autistici.org ] Pensándolo bien, faltaban aún unas cuantas cosas, ademñas de algunos asustos un pelín menos divertidos.

  1. Se autistici.org scompare la rete rovina in mille macerie....
  2. I master sono sempre sulle solite due macchine... -ICAAN!!!
  3. No hay posibilidad de verificar los datos introducidos.


El paso 2 implementa una base de datos SQL con informacción sobre todos los servidores registrados en la red DNA, todas las zonas registradas. Crea también una base de datos para la gestión de una lista de baneos (banlist) de todas las redes que no puedes formar parte de DNA (ej  192.168.0.0/16 o 10.0.0.0/8 o 127.0.0.1/8).

He escrito un servidor en Perl, conectado al puerto 5353 che gestiona el ingreso de las máquina dentro de la red DNA y el registro de las zonas. El servidor es accesible nornalmente con un simple  telnet.

También he aportado un cliente (dna) para facilitar la introducción de los datos.

uhm...

Ventajas
  • Es posible gestionar las peticiones de los datos datos por el servidor.
  • La  base SQL no se expone directamente a la red
  • Es muy fácil sacar el contenido de la base de datos
  • El mismo cliente puede reconstruir la porción de named.conf haciendo el reload de la base de datos
Desventajas
  • La base de datos está totalmente centralizada en una máquina, fastidiándose todo en el caso que caiga el servidor central...
  • El acceso a una base centralizada supone un retraso en la velocidad de DNS. Algo a combatir... :-))

Step 3.
Obviamente aún no nos damos por satisfechos....
La red DNS ha de ser totalmente distribuida. Los proyectos para el próximo desarrollo incluyen la creación de un servidor SQL para cada uno de los nodos DNA, autistici.org queda aún como máquina central para la coordinación del proyecto pero poco más. El DNA Working Group ha planificado por ahora el protocolo de intercambio de la siguiente manera:

PING host Verifica la disponibilidad de un nodo DNA, la posibilidad de que resuelva una zona y la disponibilidad del servidor perl en el puerto 5353.

SIGNIN host email password
SIGNOUT host password Conecta o desconecta un nodo de la red DNA. Atención: Desconectar un nodo significa perder autoáticamente todas las zonas registradas.

ADDZONE host password zona email comentario comentario comentario.....
DELZONE host password zona Añade o borra una zona

CHZONE host password zona email comentario comentario comentario.... Cambia el email o el comentario de una zona

UPDATE [ ¿¿obsoleto?? ] Actualiza en el cliente la lista completa de las zonas y de los masters relativos separándolos con dos puntos Nota: el comando UPDATE es útil en el momento de las actualizaciones de zona. A partir del paso 3, cualquier nodo tendrá su copia del servidor SQL, y por lo tanto también su copia del servidor Perl colgado en el puerto 5353, el comando UPDATE será integegrado en la misma función de PUSH

PUSH host password zona email comentario comentario comentario... Comunica con otro nodo información sobre una zona. Si la zona no existe se crea. Si la zona existe, las informaciones sobre email y comentario pueden ser modificadas.

El intercambio de información va totalmente en texto plano. Se piensa crear un stunelling de la conexión o bien usar técnicas de encriptación con un MD5!