File di zona binaria su BIND9


8

Un file di zona master DNS è stato trasferito su uno slave, ma non riesco a leggere il file di zona:

> less db.example.com

"db.example.com "may be a binary file.  See it anyway?

Questo è successo dopo aver usato questo comando:

cp -r /usr/local/sbin/* /usr/sbin/.

Ho installato Vind.9 anziché V.9.6. Vorrei poter leggere il file di zona come testo normale.


6
Perché l'hai fatto cp -r /usr/local/sbin/* /usr/sbin/.???
Gevial

1
Direi: reinstalla il tuo server e tutto il resto. La scorciatoia potrebbe essere semplicemente reinstallare "world" (o la parte "sbin") e rimuovere tutto il file aggiunto da "/ usr / local / sbin".
Ouki,

Quel file DNS è davvero un file binario (o c'è qualche carattere di controllo che lo rende "meno" non corrispondente)?
Ouki,

potrebbe essere qualcosa di semplice, come i caratteri di controllo non stampabili nel file, oppure i dati della tua zona sugli slave potrebbero davvero essere archiviati in formato raw, poiché stai usando BIND 9.9, nel qual caso vedi la mia risposta di seguito: tu puoi usare named.compilezone per passare da un formato all'altro se vuoi solo guardare il file.
Michael McNally,

Risposte:


23

I file di dati della zona slave in BIND 9.9 sono in formato "raw" per impostazione predefinita. È possibile convertire i file di zona di formato "non elaborati" in formato "testo" utilizzando l'utilità denominata compilezone fornita con BIND.

grezzo al testo:

# convert raw zone file "example.net.raw", containing data for zone example.net,
# to text-format zone file "example.net.text"
#
#   (command)     (format options)   (output file)  (zone origin) (input file)
named-compilezone -f raw -F text -o example.net.text example.net example.net.raw

testo grezzo:

# convert text format zone file "example.net.text", containing data for zone
# example.net, to raw zone file "example.net.raw"
#
#   (command)     (format options)   (output file) (zone origin)  (input file)
named-compilezone -f text -F raw -o example.net.raw example.net example.net.text

Grazie. Ci sono 2 file. Il primo file è db-HdPKbJ2m (originale non binario) e db.example.com (binario) e ho usato il comando in questo modo: named-compilezone -f raw -F text -o db.example.com db-HdPKbJ2m db.example.comMa questo errore si è verificato. dns_master_load: example.com: not at top of zone dns_master_load: not at top of zone zone db-HdPKbJ2m/IN: loading from master file db.example.com failed: not at top of zone zone db-HdPKbJ2m/IN: not loaded due to errors.
user1044942

È possibile che qualcosa sul tuo sistema abbia danneggiato in qualche modo i file di zona. La mia raccomandazione sarebbe che se i file non fossero stati letti correttamente avrei fermato il server sullo slave, cancellato i file di zona corrotti (o, se preferisci, rinominali per spostarli di mezzo) e riavviavo il server slave. Dovrebbe ritrasferire i contenuti della zona dal master.
Michael McNally,

Grazie per questa illuminazione. Cordiali saluti ci vogliono oltre (!) 5 (!) Minuti (!) Per scaricare un file di zona 11 KB di appena 628 voci al mio fianco. No, non è associato né a IO né alla CPU. (Probabilmente questo deve essere chiamato bind magic.) E un'altra domanda interessante: perché devo specificare un nome di zona? Queste informazioni non sono già nel file?!? (Bene, chiamiamolo un segreto oscuro.) PS: Con l' opzione-i none ci vuole una frazione di secondo.
Tino,

7

O semplicemente modifica il tuo named.conf e usa questa opzione:

Masterfile-Format Text;

puoi fare lo stesso in ogni opzione di zona.


è possibile farlo a livello globale?
naught101

sì, inseriscilo in
name.conf.options
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.