Servidor DNS en un Debian virtualizado

angeld angeld en froga.net
Dom Abr 17 08:43:45 CLST 2011


Sat, 16 Apr 2011, Gonzalo Diaz Cruz:

> Hace tiempo trabajaba mis cosas en mi máquina local, con Kubuntu.
>
> Pero decidí por varias razones mover los servicios que utilizo para
> desarrollo (web, base de datos, ssh, ...) aun máquina virtual con Debian
> Squeeze. Estoy usando Virtualbox 4.0 con la red en modo NAT. Cada servicio
> cuenta con una redirección de puerto (o port forward). Con ninguno de estos
> servicios he tenido problema, salvo con el el servicio de DNS.
>
> Por ejemplo, uso HTTP en 8080 (host) -> 80 (guest), SSH en 2222 (host) -> 22
> (guest). Bind9 lo tengo con redirección así: 5353 (host) -> 53 (guest). El
> servidor funciona, dentro de la máquina virtual resuelve los nombres que le
> tengo configurado y retorna resultados correctos (lo he probado con dig,
> nslookup, ...). Todos lo puertos los uso por sobre 1024 para no tener que
> correr la VM como root.
>
> El problema es que hasta ahora no he logrado acceder al servicio DNS desde
> la máquina host. Mi intención es agregarle una entrada permanente (al
> resolv.conf o equivalente) del sistema host, para que este resuelva cuando
> esté trabajando con la VM encendida (sino que use otro DNS).
>
> Lo he intentado con dig haciendo lo siguiente:
>
> dig -p 5353 @127.0.0.1 nombre.dev
>
> Sin resultado. Me arroja que no hubo conexión:
>
> hope:~ gon$ dig -p 5353 127.0.0.1 nombre.dev
>
> ; <<>> DiG 9.6.0-P1 <<>> -p 5353 127.0.0.1 nombre.dev
> ; (1 server found)
> ;; global options: +cmd
> ;; connection timed out; no servers could be reached
>
>
> En ninguno de los sistemas tengo firewall, la única barrera es el modo NAT
> de la máquina virtual.

 	Si es la única barrera, será donde está el problema. El NAT que 
realizas no consigue redirigir correctamente el puerto deseado.

> La verdad es que soy algo inexperto con este tipo de servicio. Por lo que
> leí, la redirección debía ser por UDP en vez de TCP. También lo probé, pero
> resultado es el mismo. Entonces aprovecho de preguntar sobre el servicio y
> el cliente.

 	Sip, el DNS normalmente es un servicio UDP.

> Primero, ¿que estoy olvidando (o que no sepa) configurar para poder acceder
> al DNS virtualizado desde la máquina host hacia la VM?
> ¿La consulta que estoy haciendo con dig está correcta?

 	Creo que estás olvidando que el DNS, por lo general, es un 
servicio UDP. :-)

> ¿En el resolv.conf (host) puedo añadir un puerto alternativo para una
> entrada de servidor dns?

 	No, que yo sepa.

> por ejemplo de la forma: ip#puerto como 127.0.0.1#5353, en caso contrario,
> igual estoy pensando utilizar un tunel ssh en el puerto 53.

 	Todavía no se pueden realizar túneles UDP con ssh, por lo que no 
es una solución.



 	Si lo que quieres es que el servicio de DNS de la máquina virtual 
esté disponible puedes o asignar una IP dentro del rango de tu red a la 
misma, o redirigir el puerto 53/udp de la máquina host al 53/udp de la 
máquina virtual.


-- 
 	Saludos --- Angel


Más información sobre la lista de distribución Linux