¿Acceso demasiado tarde al dominio?
Creo que no me has entendido bien, el servidor siempre va a comprobar el cache para ver si esa dirección ya la ha resuelto anteriormente. Y si es el caso, y no ha expirado, te devolverá la cacheada.
La directiva forward lo que que indica es que en caso de fallo en vez de buscar en los DNS raíces e ir buscando recursivamente la IP, pregunte a un servidor que especifiques (por ejemplo el de OVH). Más aun, si no recuerdo mal poniendo la opción "forward only" a "forward first", primero preguntará al DNS que le indiques y en caso de fallo pasará a los raíces.
Si quieres que tu DNS consulte directamente a los DNS raíces, o que lo haga al DNS de OVH (que a su vez consultará a los raíces si no la tiene cacheada) ya es decisión tuya.
Sé que es un poco lío pero al final se acaba pillando...
Josu.
Con los forwarders sólo indicas que en vez de resolver mediante los ROOT, use el servidor DNS que le indicas. Si quieres usar forwarders o no ya es elección tuya.
Entonces eso quiere decir, que SI tienen relación con el cache. Si prefiero que busquen los datos en mi propio server, los resultados serán más rápidos que tener que buscarlo en los server's root? ahi la gran duda, que método es mejor.
El cacheo en los DNS suele venir activo por defecto en las distribuciones. Si no tienes el cacheo habilitado, tu DNS solo resolvería los DNS que tienes configurados como Authoritative (es decir, las zonas que hayas creado para tus dominios). La directiva que define el cacheo es la zona "." junto con el listado de DNS primarios (ROOT).
Con los forwarders sólo indicas que en vez de resolver mediante los ROOT, use el servidor DNS que le indicas. Si quieres usar forwarders o no ya es elección tuya.
Josu.
Pero entonces exactamente que lineas de configuración hacen funcionar el caching name server? Es que sino.. no entiendo que diferencia hay entre el config que viene del caching con el de bind.
Por lo pronto quitare esas lineas pues, lo dejare como lo tenía antes.
Gracias otra vez..
EL proceso típico de un servidor DNS es:
1.- Resolver los dominios para los que es Authoritative.
2.- Devolver un resultado cacheado.
3.- Buscar en los servidores ROOT.
Con las directivas forward que has puesto:
1.- Resolver los dominios para los que es Authoritative.
2.- Devolver un resultado cacheado.
3.- Preguntar al DNS 127.0.0.1 (preguntarse de nuevo a si mismo)
4.- Preguntar al DNS 213.186.33.99;
Josu.
PD: Y cuando pongo "típico" no me refiero que deba hacerse así. Los servidores Authoritative no deberían resolver recursivamente por seguridad.
Hola Josu,
forwarders { 127.0.0.1; 213.186.33.99; };
forward only;
Son las lineas que vienen en el archivo de configuración de "caching-nameserver".
También he seguido el siguiente articulo que habla de ellas:
http://www.linuxtotal.com.mx/index.p...info_seyre_009
Supuestamente la linea:
forwarders { 127.0.0.1; 213.186.33.99; };
Pasa primero por mi server para recoger los datos de dominios ya resueltos, sino.. pasa a la siguiente dirección IP de OVH DNS.
Vamos, asi lo entendi yo xD.
Ya te he dicho que mejor hagas limpieza, pongas las directivas básicas y vayas añadiendo según sepas para que sirve cada una.
Por ejemplo, ¿me puedes explicar de donde sacaste esto y que sentido tiene?
Código:
forwarders { 127.0.0.1; 213.186.33.99; };
forward only;
Josu.
Hola,
Luego de varias pruebas he detectado las lineas de configuración que provoca dichos errores y fallos de actualización.
Si agrego algunas de las siguientes:
listen-on port 53 { 127.0.0.1; };
query-source port 53;
allow-query { localhost; };
Por lo tanto la configuración del "named.conf" sin fallos es:
-- vi options{
#listen-on port 53 { 127.0.0.1; };
directory "/etc/namedb";
pid-file "/var/run/named.pid";
memstatistics-file "/var/run/named_mem_stats.txt";
#query-source port 53;
#allow-query { localhost; };
forwarders { 127.0.0.1; 213.186.33.99; };
forward only;
};
Como puedes ver.. he neutralizado con "#" lo que daba problemas. Mientras que forwarders/forward only, todo OK.
Entonces la pregunta final es..
¿Para dar por efectivo el caching-nameserver, solo depende de los forwarders?
Siendo así, supongo que ya estaría solucionado..
Por otro lado.. ¿sabría alguien explicarme por qué daba fallos al introducir las lineas anteriores?
Saludos.
Publicado inicialmente por
Raul
Esta claro que si lo hago la primera vez, me da tantos
segundos y a la segunda, tercera 1 o 0 segundos. Pero al pasar nose.. 1 hora
por ejemplo, otra vez necesita resolver varios segundos, me explico?
El tiempo de expiración no lo estableces tú, es definido por el administrador del dominio en su SOA. Si expira antes de tiempo puede ser por múltiples razones, la más frecuente es que se quede sin memoria y tenga que liberar entradas del cache.
Código:
max-cache-size
The maximum amount of memory to use for the server's cache, in bytes.
When the amount of data in the cache reaches this limit, the server will cause
records to expire prematurely so that the limit is not exceeded. In a server
with multiple views, the limit applies separately to the cache of each view.
The default is unlimited, meaning that records are purged from the cache only
when their TTLs expire.
Para "jugar" con los tiempos de expiración puedes alterar la tarea que los comprueba (cosa que no recomiendo y me parece una aberración cada vez que se lo veo hacer a empresas como telefónica).
Código:
cleaning-interval
The server will remove expired resource records from the cache every
cleaning-interval minutes. The default is 60 minutes. The maximum value is 28
days (40320 minutes). If set to 0, no periodic cleaning will occur.
Supongo que habrá más formas de hacerlo pero nunca me lo he planteado.
¿El problema te ocurre en local, en remoto, o en ambos?
¿Te expiran los dominios antes de tiempo o son correctos respecto al SOA?
Te recomiendo el dig para las pruebas, te devuelve el resultado en milisegundos. Comprobando en local un fallo debería rondar los 700-800 ms un acierto 50-150 ms.
Josu.
Si tienes las herramienta "dig" instalada (supongo que sí), reinicia el servidor "bind" y lanza 3 o 4 veces seguidas: "dig eligeundominio.com @IPServidorDNS"
Mira a ver que tiempos te devuelve las diferentes "querys" (viene al final del todo)
Esta claro que si lo hago la primera vez, me da tantos segundos y a la segunda, tercera 1 o 0 segundos. Pero al pasar nose.. 1 hora por ejemplo, otra vez necesita resolver varios segundos, me explico?
La idea es que pasen horas, dias, cuando se quiera acceder.. tarde 1 segundo o 2 y no otra vez como 5 segundos o 8 como si fuese la primera vez.
En otros sitios web's no entro hace mucho tiempo, y cuando quiero acceder a ellos me tarda apenas 1 o 2 segundos en resolver dominio y eso quiero ofrecerlo yo tambien pues.
Si no te funciona con reiniciar bind entonces seria reiniciar el servidor por completo.
Lo hice varias veces.
ferranvillalba
24/03/2008, 21:58
Si no te funciona con reiniciar bind entonces seria reiniciar el servidor por completo.
Si tienes las herramienta "dig" instalada (supongo que sí), reinicia el servidor "bind" y lanza 3 o 4 veces seguidas: "dig eligeundominio.com @IPServidorDNS"
Mira a ver que tiempos te devuelve las diferentes "querys" (viene al final del todo).
También prueba a desactivar las opciones:
Código:
statistics-file "/var/run/named.stats";
dump-file "/var/run/named.db";
Josu.
Josu, pero si lo dejo como estaba antes.. pues ¿Por qué tarda tanto en resolver los dominios? el named.ca lo tengo actualizado y situado donde dede estar..
Con la primera configuración me iba perfecto, pero sin resolver rápido los dominios, de ahi me centre en el tema "caching name server" y pues todo este lio jeje.
Ferran, estoy analizando con esa herramienta que parece bastante potente, pero no encuentro errores en los principales dominios y que tengan relación con mi problem.
Solo hay un error grave en un dominio en especial que dice:
"nameserver loop detected" ¿sabrías decirme que significa?
Gracias gente
Déjalo como estaba al principio y solo asegúrate de tener la zona "." configurada:
Código:
zone "." IN {
type hint;
file "named.ca";
};
Luego en el directorio "/etc/namedb" debes tener el archivo "named.ca", que debe tener algo así:
Código:
; <<>> DiG 9.2.4 <<>> @A.ROOT-SERVERS.NET
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64667
;; flags: qr aa rd; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 14
;; QUESTION SECTION:
;. IN NS
;; ANSWER SECTION:
. 518400 IN NS G.ROOT-SERVERS.NET.
. 518400 IN NS H.ROOT-SERVERS.NET.
. 518400 IN NS I.ROOT-SERVERS.NET.
. 518400 IN NS J.ROOT-SERVERS.NET.
. 518400 IN NS K.ROOT-SERVERS.NET.
. 518400 IN NS L.ROOT-SERVERS.NET.
. 518400 IN NS M.ROOT-SERVERS.NET.
. 518400 IN NS A.ROOT-SERVERS.NET.
. 518400 IN NS B.ROOT-SERVERS.NET.
. 518400 IN NS C.ROOT-SERVERS.NET.
. 518400 IN NS D.ROOT-SERVERS.NET.
. 518400 IN NS E.ROOT-SERVERS.NET.
. 518400 IN NS F.ROOT-SERVERS.NET.
;; ADDITIONAL SECTION:
A.ROOT-SERVERS.NET. 3600000 IN A 198.41.0.4
A.ROOT-SERVERS.NET. 3600000 IN AAAA 2001:503:ba3e::2:30
B.ROOT-SERVERS.NET. 3600000 IN A 192.228.79.201
C.ROOT-SERVERS.NET. 3600000 IN A 192.33.4.12
D.ROOT-SERVERS.NET. 3600000 IN A 128.8.10.90
E.ROOT-SERVERS.NET. 3600000 IN A 192.203.230.10
F.ROOT-SERVERS.NET. 3600000 IN A 192.5.5.241
F.ROOT-SERVERS.NET. 3600000 IN AAAA 2001:500:2f::f
G.ROOT-SERVERS.NET. 3600000 IN A 192.112.36.4
H.ROOT-SERVERS.NET. 3600000 IN A 128.63.2.53
H.ROOT-SERVERS.NET. 3600000 IN AAAA 2001:500:1::803f:235
I.ROOT-SERVERS.NET. 3600000 IN A 192.36.148.17
J.ROOT-SERVERS.NET. 3600000 IN A 192.58.128.30
J.ROOT-SERVERS.NET. 3600000 IN AAAA 2001:503:c27::2:30
;; Query time: 102 msec
;; SERVER: 198.41.0.4#53(A.ROOT-SERVERS.NET)
;; WHEN: Mon Mar 24 21:12:40 2008
;; MSG SIZE rcvd: 500
Con eso debería bastar para activar el cache DNS. Luego ya irás añadiendo el resto de directivas si te parece pertinente y si sabes para que sirven.
Josu.
ferranvillalba
24/03/2008, 19:58
Pásate por aquí y comprueba tu bind online haber que fallos te dice.
http://www.squish.net/dnscheck
Utilizo ipV4, la siguiente configuración es la de mi "named.conf" viejo, que funciona correctamente. Puedes compararlo con el otro que hice del caching name server..
-- vi named.conf (viejo) --
options {
directory "/etc/namedb";
pid-file "/var/run/named.pid";
statistics-file "/var/run/named.stats";
dump-file "/var/run/named.db";
# hide our "real" version number
version "[secured]";
};
Luego las zonas escritas.. como en post anteriores.
--
Además en el Apache tampoco active el Ipv6, ya que de momento no lo uso.
ferranvillalba
24/03/2008, 19:42
Si usas ipv6 has de ponerlo así query-source-v6 address * port 53; con el v6.
ferranvillalba
24/03/2008, 19:40
Utilizas ipV4 o ipV6?
Que va, tan solo di "stop" y luego "start".
El arranque esta en buen estado xD pero desde que empeze a configurarlo añadiendo lineas para hacer funcionar "caching name server" osea.. el rollo:
listen-on port 53 { 127.0.0.1; };
query-source port 53;
allow-query { localhost; };
forwarders { 127.0.0.1; 213.186.33.99; };
forward only;
No funciona del todo bien, eso parece..
A continuación te muestro el named.conf que tenía antes funcionando, asi comparas..
-- vi named.conf (viejo) --
options {
directory "/etc/namedb";
pid-file "/var/run/named.pid";
statistics-file "/var/run/named.stats";
dump-file "/var/run/named.db";
# hide our "real" version number
version "[secured]";
};
Luego las zonas escritas.. como en post anteriores.
--
Saludos.
ferranvillalba
24/03/2008, 19:36
Estoy mirando haver que puede ser.
ferranvillalba
24/03/2008, 19:26
Una tontería, reiniciaste bind con el comando restart? ahora mismo no caigo.
Sabes desde que hecho modificaciones en el conf añadiendo lo necesario para el caching, es como si no leyera correctamente las zonas. No produce ningun error durante el arranque y en los log's, veo por ejemplo esto:
--
couldn't add command channel 127.0.0.1#953: file not found
Luego continua cargando los serial actuales de las zonas
zone dominio.com/IN: loaded serial 2008030801
Mar 24 20:06:28 host named[3869]: zone dominio1.com/IN: loaded serial 2008030802
Mar 24 20:06:28 host named[3869]: zone otrodominio.com/IN: loaded serial 2008030802
Mar 24 20:06:28 host named[3869]: running
Mar 24 20:06:28 host named[3869]: zone dominio1.com/IN: sending notifies (serial 2008030801)
Mar 24 20:06:28 host named[3869]: zone otrodominio.com/IN: sending notifies (serial 2008030802)
--
Parece normal pero cuando hago un lookup de las DNS, no veo los cambios que he efectuado en las zonas. Por ejemplo he puesto 4 direcciones NX, pero en el informe solo se ve una.
Por si deseas ver mi "named.conf"
-- vi named.conf --
options{
listen-on port 53 { 127.0.0.1; };
directory "/etc/namedb"; (dir donde están todas las zonas)
pid-file "/var/run/named.pid";
dump-file "/var/run/cache_dump.db";
statistics-file "/var/run/named_stats.txt";
memstatistics-file "/var/run/named_mem_stats.txt";
query-source port 53;
allow-query { localhost; };
forwarders { 127.0.0.1; 213.186.33.99; };
forward only;
};
zone "." IN {
type hint;
file "named.ca";
};
zone "localhost" IN {
type master;
file "db.localhost";
allow-update { none; };
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "db.127.0.0";
allow-update { none; };
};
zone "dominio.com" {
type master;
file "dominio.com.host";
};
Saludos y gracias.
Gracias Ferran, le echare un vistaso, esa página la conocia y es muuy buena!!.
Saludos.
ferranvillalba
24/03/2008, 17:55
Hola Raul, para que te des una idea mírate esta página:
http://www.linuxtotal.com.mx/index.p...info_seyre_009
Saludos.
Hola Ferran,
Yo tengo instalado BIND de forma manual bajo entorno "chroot". Tengo entendido que el caching-nameserver viene con 2 archivos de configuración:
name.caching-nameserver.conf y named.rfc1912.zones
El primero vendría a ser el "named.conf" y el segundo las zonas en general.
Tengo dudas solo en el primer archivo:
-- vi name.conf (renombrado de name.caching-nameserver) --
options {
listen-on port 53 { 127.0.0.1; };
directory "/etc/namedb"; (donde estan todas las zonas)
pid-file "/var/run/named.pid";
statistics-file "/var/run/named.stats";
dump-file "/var/run/named.db";
query-source port 53;
version "[secured]";
allow-query { localhost; };
};
view localhost_resolver {
match-clients { localhost; };
match-destinations { localhost; };
recursion yes;
include "/etc/named.rfc1912.zones";
};
Pero como se exactamente si los dominios han sido cacheados??
Por otro lado cuando modifico manualmente la config de alguna zona, debo esperar maximo 48 hrs? o se actualiza enseguida?
Si puedes confirmarte si el "caching-nameserver" viene con 2 archivos de cofniguración o algo más?. ya que en la web oficial de BIND no encuentro ningun paquete sobre ello para descargar.
Saludos.
ferranvillalba
24/03/2008, 16:47
Publicado inicialmente por
Raul
Hola otra vez xD.
¿Es posible que se deba a la falta de "caching name server" de BIND? no lo tengo instalado pero su función segun entendiendo el nombre.. es recordar el nombre resuelto desde la primera vez?
Saludos.
Si, se recomienda instalar la función caching de bind para estos casos.
Exactamente la función caching de bind lo que hace es encargarse de responder las consultas que recibe de sus clientes (peticiones) a base de consultar al servidor adecuado o bien en su propia caché si la consulta ya ha sido realizada con anteriodidad y aún no ha expirado.
Pásate por webhostingtalk.com y mírate los foros seguro que sale como se instala.
Saludos.
Hola otra vez xD.
¿Es posible que se deba a la falta de "caching name server" de BIND? no lo tengo instalado pero su función segun entendiendo el nombre.. es recordar el nombre resuelto desde la primera vez?
Saludos.
Es curioso.. pero con las paginas alojadas en OVH, la primera vez en conectar.. me tarda mucho en resolver la ip del dominio.
Me explico:
Cuando intento acceder a algun que otro dominio cualquiera (alojamiento fuera de ovh), es detectada en unos 2 segundos o menos y empieza la carga de la página. Pero cuando intento acceder a un dominio (alojamiento ovh) A VECES tarda como 5 segundos en detectarlo.
Me refiero a que la primera vez en acceder a una web alojada en OVH, se queda diciendo.. "Resolviendo la dirección dominio.com" asi como varios segundos (5 ejemplo) y una vez conecto.. ya se puede acceder a de forma rápida a cualquier web de ovh.
¿Por qué será? ¿Me pasa a mi solo? ¿Es cosa de BIND?
A ver si alguien me arroja luz xD.