Usos no convencionales del servicio DNS
David Leadbeater ha implementado un servicio que devuelve artículos resumidos de Wikipedia via el record TXT del servicio DNS. (Ver Wikipedia over DNS, via Hackzine.) Lo que me ha parecido interesante aquí es el uso no convencional del servicio DNS. Leadbeater está usando el subdominio como si fuera la llave de un diccionario (me refiero a diccionario en el sentido de hashkey). Envía una solicitud DNS preguntando por el dominio key.example.com, y el servidor DNS devuelve la data asociada a key. Leadbeater no da el código del programa (por lo menos no lo he encontrado en la página), pero no sería complicado escribir un servicio parecido en Python (ver, por ejemplo, Servidor Fake DNS en Python) Otra posibilidad es usar el servicio DNS para crear un tunnel entre nuestro equipo, supuestamente dentro de una "red hostil", y un servidor remoto de nuestra propiedad que se encuentre fuera de esta red. Este tunnel permite atravesar, en casi todos los casos, las restricciones que tenga la "red hostil" para acceder a Internet, sin que nadie pueda evitarlo fácilmente. Esto se llama IP-over-DNS. Esta cita de dnstunnel.de da idea de algunos usos:
Did you ever sit at the airport or at a cafe and there was a unencrypted wireless access point nearby, but whenever you wanted to visit a site their website would pop up asking for a fee to use the internet through their AccessPoint (aka. Captive Portal)?
(Esto, casi seguro, no es legal y no me parece un uso correcto. Pero hay otros usos que sí lo son, y es algo que debe tener en cuenta el administrador de la red) Algunos links interesantes que tienen que ver con este tema y con IP-over-DNS: * DNS tunneling * DNSTunnel * Un tutorial sobre [c 1="instalar" 2="NSTX" language="ómo"][/c]/c * DNS tunneling * NSTX (Nameserver Transfer Protocol) Makes it possible to create IP tunnels using DNS queries and replies for IP packet encapsulation where IP traffic other than DNS isn't possible. * iodine. Hace lo mismo que NSTX pero funciona en MacOs. Aquí un tutorial sobre iodine. * El FakeDNS Server escrito en Python que menciono arriba (el código podría ser más elegante... parece C)