Aquí está lo rápido y sucio: en BIND9 con una zona dinámica que se comparte entre las vistas , hacer una actualización n, actualizar / crear / eliminar un registro funcionará bien si consulto ese registro desde un cliente que cae en la misma vista que hice la actualización n desde.
La consulta desde una vista que no es la misma que solía actualizar arrojará NXDOMAIN (si agrega un nuevo registro) o mostrará información del registro anterior en caso de un cambio / actualización hasta un período de tiempo arbitrario (digamos 15 minutos) pasa, o lo hago por la fuerza $ rndc freeze && rndc thaw
. $ rndc sync
no parece hacer nada en absoluto para resolver el problema; esperaba que fuera solo una cuestión de archivo de diario, ya que los vaciados de diario están documentados para enjuagarse alrededor de 15 minutos.
Si eso no está claro, aquí hay algunos pseudocódigos para comenzar:
Vistas BIND
view "cdn-redir" {
match-clients { 10.1.1.0/24; 10.1.2.0/24; };
include "cdn-zone.db";
include "dynamic-zone.db";
};
view "default" {
match-clients { any; };
include "dynamic-zone.db";
};
Ejemplo de línea de comando
user@ns:~$ nsupdate -k rndc.key
> server localhost
> zone example.com.
> update add foohost.example.com. 600 A 10.5.6.7
> send
> quit
user@ns:~$ dig foohost.example.com (resolv.conf points to 127.0.0.1)
[ responds with correct answer 10.5.6.7 ]
En otro lugar, un host cae en la misma vista que nsupdate
user@10.11.12.50:~$ foohost.example.com (resolv.conf points to above nameserver)
[ responds with correct answer 10.5.6.7 ]
En otro lugar, el host cae en una vista diferente como nsupdate
user@10.1.1.50:~$ dig foohost.example.com (resolv.conf points to above nameserver)
[ responds with NXDOMAIN even though I'm asking the same server ]
En este punto, si soy paciente, el problema eventualmente se resolverá solo (tal vez 15 minutos), pero con frecuencia no tengo el lujo de tener paciencia, por lo que me veo obligado a $ rndc freeze && rndc thaw
usar el servidor de nombres para solucionar el problema por la fuerza.
Por otro lado
En el lado perfectamente invertido de las cosas, si hago el nsupdate contra el servidor desde una dirección que cae en la vista "cdn-redir", el problema se revierte. Las consultas subsiguientes de clientes que coinciden con "cdn-redir" obtienen el registro correcto inmediatamente después de nsupdate sin manipular "rndc freeze / thaw", pero las consultas desde direcciones que quedan fuera de la vista de "cdn-redir" ahora tienen la tontería de delay / rndc.
Mi ultima pregunta
Si fuera tan simple como 42, lo tomaría con los brazos abiertos ...
Me gustaría evitar tener que "congelar rndc && descongelar rndc" por temor a perder una actualización dinámica del servidor DHCP. ¿Alguien sabe cómo sincronizar los registros actualizados entre las vistas de manera más efectiva / eficiente, o puede arrojar algo de luz sobre dónde puedo estar equivocado?
Editar: BIND 9.9.5 / Ubuntu 14.04 pero sucedió en versiones anteriores de Ubuntu y BIND.
¡Gracias a todos!
Según lo solicitado por Andrew B , aquí está la zona redactada (y parcial):
$ORIGIN .
$TTL 3600
example.com IN SOA ns1.example.com. HOSTMASTER.example.com. (
2009025039 ; serial
900 ; refresh 15
600 ; retry 10
86400 ; expire 1 day
900 ; minimum 15 min
)
NS ns1.example.com.
$ORIGIN example.com.
$TTL 30
AEGIS A 10.2.1.60
TXT "31bdb9b3dec929e051f778dda5abd0dfc7"
$TTL 86400
ts-router A 10.1.1.1
A 10.1.2.1
A 10.1.3.1
A 10.1.4.1
A 10.1.5.1
A 10.1.6.1
A 10.1.7.1
A 10.1.8.1
A 10.2.1.1
A 10.2.2.1
A 10.2.3.1
ts-server A 10.2.1.20
ts-squid0 A 10.2.2.20
ts-squid1 A 10.2.2.21
$TTL 600
tssw4 A 10.2.3.4
tssw5 A 10.2.3.5
tssw6 A 10.2.3.6
tssw7 A 10.2.3.7
; wash rinse repeat for more hosts
$TTL 30
wintermute A 10.2.1.61
TXT "003f141e5bcd3fc86954ac559e8a55700"
zone
declaración porque mis pensamientos iban en una dirección similar a la de Håkan.
server
lugar de local external-ip-address
consultaría el MNAME de la zona (en la SOA de la zona) y podría llevarlo a otro lugar a otro servidor de nombres para realizar su actualización de DNS (particularmente si tiene hidden-master / public-slave o topología de red maestra oculta).