Sto provando a configurare BIND in modo tale da catturare tutte le richieste fatte e indirizzarle verso un set specifico di server NS e un record A specifico.
Ho circa 500 domini e ne sto aggiungendo di nuovi al ritmo di 10-15 al giorno, quindi non voglio aggiungere esplicitamente una zona per ogni dominio.
La mia configurazione attuale è: nel mio named.conf, ho una vista (denominata esterna) con la seguente zona al suo interno:
zone "." {
type master;
file "ext.zone";
};
Questo corrisponde a tutte le richieste.
ext.zone è:
$ TTL 3600 @ IN SOA. root.nsdomain.com. ( 1; Seriale 3600; ricaricare 300; Riprova 3600; scadere 300); Cache negativa TTL IN NS ns1.example.com IN NS ns2.example.com ns1 IN A 192.0.2.4 ns2 IN A 192.0.2.5 *. IN A 192.0.2.6
quindi, l'obiettivo è: per tutte le richieste NS, ritorno ns1.example.com
e ns2.example.com
per tutte le richieste A, tranne dove si trova ns1.example.com
o ns2.example.com
, ritorno 192.0.2.6
. Per il ns1.example.com
ritorno 192.0.2.4
, per il ns2.example.com
ritorno 192.0.2.5
.
Questo funziona quasi, l'unico problema è che quando faccio uno scavo, ottengo:
dig @localhost somedomain.example ; > DiG 9.3.6-P1-RedHat-9.3.6-4.P1.el5_5.3> @localhost somedomain.example ; (1 server trovato) ;; opzioni globali: printcmd ;; Risposta ottenuta: ;; codice operativo: QUERY, stato: NOERROR, id: 37733 ;; flag: qr aa rd; QUERY: 1, RISPOSTA: 1, AUTORITÀ: 2, AGGIUNTIVO: 2 ;; SEZIONE DOMANDA: ; Somedomain.example. IN UN ;; SEZIONE RISPOSTA: somedomain.example. 3600 IN A 192.0.2.6 // come previsto ;; SEZIONE AUTORITÀ: . 3600 IN NS ns1.example.com. // previsto, non so se il "." all'inizio è male, però. . 3600 IN NS ns2.example.com. // vedi sopra. ;; SEZIONE AGGIUNTIVA: ns1.example.com. 3600 IN A 192.0.2.6 // non previsto, dovrebbe essere 192.0.2.4 ns2.example.com. 3600 IN A 192.0.2.6 // non previsto, dovrebbe essere 192.0.2.5
Come posso risolvere questo problema? Sto facendo qualcosa di orribile? C'è un modo migliore per farlo?