Estoy tratando de configurar BIND para que capture todas y cada una de las solicitudes que se le realicen y las señale a un conjunto específico de servidores NS y a un registro A específico.
Tengo alrededor de 500 dominios, y estoy agregando nuevos a razón de 10-15 por día, por lo que no quiero agregar explícitamente una zona para cada dominio.
Mi configuración actual es: en mi named.conf, tengo una vista (llamada external) con la siguiente zona:
zone "." {
type master;
file "ext.zone";
};
Esto coincide con todas las solicitudes.
ext.zone es:
$ TTL 3600 @ EN SOA. root.nsdomain.com. ( 1; De serie 3600; Actualizar 300; Procesar de nuevo 3600; Expirar 300); Caché negativo TTL EN NS ns1.example.com EN NS ns2.example.com ns1 IN A 192.0.2.4 ns2 IN A 192.0.2.5 *. EN UN 192.0.2.6
por lo tanto, el objetivo es: para todas las solicitudes NS, devolver ns1.example.com
y ns2.example.com
para todas las solicitudes A, excepto donde está ns1.example.com
o ns2.example.com
, devolver 192.0.2.6
. Para el ns1.example.com
regreso 192.0.2.4
, para el ns2.example.com
regreso 192.0.2.5
.
Esto casi funciona, el único problema es que cuando hago una excavación, obtengo:
dig @localhost somedomain.example ; > DiG 9.3.6-P1-RedHat-9.3.6-4.P1.el5_5.3> @localhost somedomain.example ; (1 servidor encontrado) ;; opciones globales: printcmd ;; Tengo respuesta: ;; código de operación: QUERY, estado: NOERROR, id: 37733 ;; banderas: qr aa rd; PREGUNTA: 1, RESPUESTA: 1, AUTORIDAD: 2, ADICIONAL: 2 ;; PREGUNTA SECCIÓN: ; somedomain.example. EN UN ;; SECCION DE RESPUESTA: somedomain.example. 3600 IN A 192.0.2.6 // como se esperaba ;; SECCIÓN DE AUTORIDAD . 3600 IN NS ns1.example.com. // esperado, no sé si el "." Al principio es malo, sin embargo. . 3600 IN NS ns2.ejemplo.com. // véase más arriba. ;; SECCION ADICIONAL ns1.example.com. 3600 IN A 192.0.2.6 // no esperado, esto debería ser 192.0.2.4 ns2.example.com. 3600 IN A 192.0.2.6 // no esperado, esto debería ser 192.0.2.5
¿Cómo puedo solucionar esto? ¿Estoy haciendo algo horrible? ¿Hay una mejor manera de hacer esto?
Para configurar un comodín de subdominio
bind
, debe usar el siguiente formato:Ejemplo:
fuente
Según su configuración
ns1.example.com
es192.0.2.4
yns2.example.com
es192.0.2.5
. Debe configurar la resolución del nombre del servidor NS en laexample.com
zona para obtener las IP adecuadas.Espero dejarme en claro. Vuelve a mí si necesitas más información.
fuente
¡Los comodines de DNS pueden causar problemas!
Hay muchas maneras de hacerlo, desde scripts SHELL hasta servidores DNS basados en SQL.
UPD (2019-11) : Entonces, como dije hace 8 años , SHELL-scripting es un camino a seguir y se ha demostrado con la solución propuesta de respuesta aceptada "agregar entrada de zona", claramente no se basa en el uso de comodines. ;-)
En 2019 es aún más fácil encontrar recursos que expliquen las desventajas de los comodines de DNS y, aunque la mayoría de ellos se escribieron "en los albores de Internet", todavía tienen cierto valor. Por ejemplo, RFC1912 menciona algunas cosas relacionadas con el uso de comodines DNS. El problema principal se explica claramente como "...
Sin embargo, también tiene algunos ejemplos de la vida real algo anticuados.
fuente