Una ayudita con Bind...

Hola gente,

Esta vez me he decidido a instalar bind en el servidor y no tengo forma de hacer lo que pretendo; os cuento:

Tengo mi propio servidor web apache en debian sarge y tengo mi propio dominio contratado. Bien, todo va de lujo cuando se trata de las peticiones desde el exterior, es decir, que desde internet la web funciona a la perfección. El problema está cuando quiero entrar desde mi LAN poniendo el nombre del dominio; si quiero hacerlo tengo que poner la IP del servidor; diré que antes tenía otro dominio y usaba phpnuke para la web, y no me suponía ningún problema de visualización introduciendo la IP en el navegador (en LAN), ya que phpnuke usa rutas relativas.

Ahora que tengo otro dominio y quiero usar Joomla me surge el problema de que este CMS no utiliza rutas relativas y se visualiza mal al entrar mediante la IP del servidor desde mi LAN.

Vale, pues ya que mi router no hace nat loopback he pensado en BIND (es la solución que ya se me dio cuando tenía el otro dominio, pero no la llevé a la práctica). Lo tengo instalado y he seguido un tutorial que me he encontrado en la red, pero o no entiendo bien la configuración o no está bien hecha o algo, porque no funciona [+risas]

En el named.conf tengo esto:
// This is the primary configuration file for the BIND DNS server named.
//
// Please read /usr/share/doc/bind9/README.Debian.gz for information on the
// structure of BIND configuration files in Debian, *BEFORE* you customize
// this configuration file.
//
// If you are just adding zones, please do that in /etc/bind/named.conf.local

include "/etc/bind/named.conf.options";

// prime the server with knowledge of the root servers
zone "." {
   type hint;
   file "/etc/bind/db.root";
};

// be authoritative for the localhost forward and reverse zones, and for
// broadcast zones as per RFC 1912

zone "localhost" {
   type master;
   file "/etc/bind/db.local";
};

zone "127.in-addr.arpa" {
   type master;
   file "/etc/bind/db.127";
};

zone "0.in-addr.arpa" {
   type master;
   file "/etc/bind/db.0";
};

zone "255.in-addr.arpa" {
   type master;
   file "/etc/bind/db.255";
};

// zone "com" { type delegation-only; };
// zone "net" { type delegation-only; };

// From the release notes:
//  Because many of our users are uncomfortable receiving undelegated answers
//  from root or top level domains, other than a few for whom that behaviour
//  has been trusted and expected for quite some length of time, we have now
//  introduced the "root-delegations-only" feature which applies delegation-only
//  logic to all top level domains, and to the root domain.  An exception list
//  should be specified, including "MUSEUM" and "DE", and any other top level
//  domains from whom undelegated responses are expected and trusted.
// root-delegation-only exclude { "DE"; "MUSEUM"; };

// include "/etc/bind/named.conf.local";

zone "[b]midominio.com[/b]" {
   type master;
   [b]file "/etc/bind/db.midominio.com";[/b]
};
Luego he leido que en el archivo named.conf.options pusiera las DNS del ISP:
options {
   directory "/var/cache/bind";

        [...]
   
   forwarders {
       DNS1;
      DNS2;
   };

   auth-nxdomain no;    # conform to RFC1035

};
Y por último, el fichero de configuración que indica a bind las reglas a seguir (o algo así), el db.midominio.com:
$TTL 604800
@ IN SOA midominio.com. hostmaster.midominio.com. (
   2006071801   ; Serial
   10800      ; Refresh
   7200      ; Retry
   1296000      ; Expire
   172800 )   ; Negative Cache TTL
;
@ IN NS ns0.midominio.com.
@ IN TXT "Servidor"
@ IN HINFO "Servidor privado" "lan interno"
;
@ IN A IP_del_servidor
* IN A IP_del_servidor
Y ya pues reinicio el servicio pero al intentar acceder a la web desde la LAN metiendo el nombre del dominio me dice que no la encuentra (no la encuentra porque el router lo tengo configurado así... el caso es que no accede).

Luego he leido algo sobre internal y external y supongo que algo de eso puede tener que ver (si no me equivoco tiene que ver con el acceso desde el exterior y desde la LAN, no?), pero no tengo ni la más mínima idea de dónde colocarlo ni cómo, porque he buscado algunos ejemplos, pero no me aclaro en absoluto (sí, lo sé, puede que sea un poco torpe).

Como datos adicionales, si os sirve de algo para ayudarme, pues el rango de IPs de mi LAN es 192.168.1.x, la IP pública es dinámica y todo el conjunto lo llevo a la práctica en Debian Sarge, Apache, ddclient para comprobar el cambio de IP pública y mandarla al servidor de nombres (Zoneedit.com) y... emm... lo que querais pedirme (menos los passwords y dinero [sonrisa]).

Saludos!

PD: Vaya tochaco... pero no me direis que no lo he intentado, ni buscado ni aporto datos para la ayuda :D
Buenas tardes

Eso es por tu router , en la maquina desde donde intentas acceder a tu web el el fichero /etc/hosts , añade esta linea

midominio.com iplocaldelservidor

Y con eso podras acceder perfectamente a tu pagina web sin problemas .


Un saludo.
Esto es un gran LOL [+risas] Funciona así...

Bueno pues nada, voy a desinstalar Bind y quitarle carga al servidor...

Muchiiiiiisimas gracias ^__^ Que dios te lo pague... o mejor, que Ro te lo pague con una GP2X (ya que se portó con la GP32 [sonrisa]).

Venga, un saludo y de nuevo un millón de gracias...

Saludos!

PD: Qué triste, con lo fácil que era la solución a mi problema y yo partiéndome el craneo tanto...
ashitaka escribió:PD: Qué triste, con lo fácil que era la solución a mi problema y yo partiéndome el craneo tanto...
Los problemas que más nos cuesta resolver, normalmente son los más chorras de todos, ¡jaja! Así que no te preocupes... es normal :).

¡Saludos!

P.D: Sé que no he aportado nada al hilo... pero bueno, es que me he sentido identificado XD.
Yo monté algo parecido, porque aunque la solución de usar el /etc/hosts es correcta y elegante, no me sirve para un portatil xDD, porque a veces estoy en la red interna y a veces no. Así que al final monté el bind :P. Creo que habian soluciones en linux para especificar la "localizacion" en el arranque del sistema (lo miré en su tiempo, hará años), pero al final opté por la solución más bruta ^^U

Saludos
Buenas ,


No quita que con el BIND se aprende un monton y te da muchas posiblidades para trabajar con tu dominio que a veces no te de tu registrador , como es el caso de los .ES y alguno nuevo como el .EU .

Pero bueno siempre lo puedes dejar y usar para resolver en tu maquina , añadiedo en el /etc/resolv.conf esta linea , siendo la primera de las dos que seguro que tienes :

nameserver ipdelbind

notaras una mejora en las respuesta a la hora de resolucion los dominios.

Un saludo.
El problema tiene una solución mas fácil y mas elegante. La solución del archivo hosts está bien si tienes pocos ordenadores, pero el día que tengas en la red mas de 100 ordenadores o muchos dominios a tu cargo verás como no te hace nada de gracia tener que mantener en 100 equipos numerosas entradas en el hosts ;). Por no hablar las ventajas de tener tu propio servidor DNS, para tener subdominios ilimitados, o para ahorrar tiempo en las consultas.

La solución te la da la propia documentación de BIND: LAS VISTAS. Las vistas permiten dividir el archivo de configuración en varias zonas independientes, en función de donde venga la petición. En la vista interna defines unos archivos de zona para tu/s dominio/s que apunten a la IP privada y en la vista externa la Ip de los archivos de zona de apunta la IP pública. Como he dicho tienes todo explicado en la documentación.

Como un ejemplo vale mas que mil palabras...

EDITADO: Vaya, no me deja hacer posts de mas de 1000 caracters ni contestar dos veces seguidas en el mismo hilo, así es que te lo dejo temporalmnte aqui: http://paste.lisp.org/display/22878

Cuando alguien conteste ya lo pego para conservarlo cuando se borre de "PASTEBIN"
Respuesta para que Stolz haga su copypaste xD.

PD: ¿El foro esta limitado a 1000 carácteres por post? Me parece algo cutre :P
Raharu escribió:Respuesta para que Stolz haga su copypaste xD.

PD: ¿El foro esta limitado a 1000 carácteres por post? Me parece algo cutre :P


10000. Si sobrepasaba de un numero de caracteres el hilo petaba XD (es lo que tiene spamear en pruebas ^_^)

Salu2!
Raharu escribió:Respuesta para que Stolz haga su copypaste xD.

PD: ¿El foro esta limitado a 1000 carácteres por post? Me parece algo cutre :P
Se me olvido un cero ;)

Ahi va lo que faltaba:
options {
        directory "/var/bind";

        listen-on-v6 { none; };
        listen-on { any; };
       
        pid-file "/var/run/named/named.pid";
};

// Vista Interna para la red local
view "internal" {
        match-clients { 192.168.0.0/24; 192.168.1.0/24; 127.0.0.0/24; };

        zone "." IN {
                type hint;
                file "named.ca";
        };

        zone "localhost" IN {
                type master;
                file "pri/localhost.zone";
                allow-update { none; };
                notify no;
        };

        zone "127.in-addr.arpa" IN {
                type master;
                file "pri/127.zone";
                allow-update { none; };
                notify no;
        };

        zone "TuDominio.foo" {
             type master;
             file "pri/TuDominio.foo.internal.zone";
        };

};

//Vista externa
view "external" {
        match-clients { any; };
        recursion no;

        zone "." IN {
                type hint;
                file "named.ca";
        };

        zone "localhost" IN {
                type master;
                file "pri/localhost.zone";
                allow-update { none; };
                notify no;
        };

        zone "127.in-addr.arpa" IN {
                type master;
                file "pri/127.zone";
                allow-update { none; };
                notify no;
        };

        zone "TuDominio.foo" {
             type master;
             file "pri/TuDominio.foo.zone";
        };

}
9 respuestas