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.come ns2.example.com
per tutte le richieste A, tranne dove si trova ns1.example.como ns2.example.com, ritorno 192.0.2.6. Per il ns1.example.comritorno 192.0.2.4, per il ns2.example.comritorno 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?