Hay un comando de línea Bash / Terminal / Comando que puede ayudar a importar datos de zona DNS a Mac OS X Lion en su servidor DNS.
$ sudo serveradmin settings dns:views:_array_id:com.apple.ServerAdmin.DNS.public:primaryZones:_array_id:domain.tld:allowZoneTransfer = yes
Al emitir este comando se crea un archivo de zona (en este ejemplo para "domain.tld") con algunas configuraciones predeterminadas y sin registros de host.
$ sudo serveradmin settings dns | grep dns:views:_array_id:com.apple.ServerAdmin.DNS.public:primaryZones:_array_id:domain.tld
dns:views:_array_id:com.apple.ServerAdmin.DNS.public:primaryZones:_array_id:domain.tld:allowZoneTransfer = yes
dns:views:_array_id:com.apple.ServerAdmin.DNS.public:primaryZones:_array_id:domain.tld:aliases = _empty_array
dns:views:_array_id:com.apple.ServerAdmin.DNS.public:primaryZones:_array_id:domain.tld:expire = 604800
dns:views:_array_id:com.apple.ServerAdmin.DNS.public:primaryZones:_array_id:domain.tld:serial = 2013122701
dns:views:_array_id:com.apple.ServerAdmin.DNS.public:primaryZones:_array_id:domain.tld:allow-update = no
dns:views:_array_id:com.apple.ServerAdmin.DNS.public:primaryZones:_array_id:domain.tld:adminEmail = "[email protected]"
dns:views:_array_id:com.apple.ServerAdmin.DNS.public:primaryZones:_array_id:domain.tld:machines = _empty_array
dns:views:_array_id:com.apple.ServerAdmin.DNS.public:primaryZones:_array_id:domain.tld:nameservers = _empty_array
dns:views:_array_id:com.apple.ServerAdmin.DNS.public:primaryZones:_array_id:domain.tld:refresh = 86400
dns:views:_array_id:com.apple.ServerAdmin.DNS.public:primaryZones:_array_id:domain.tld:mailExchangers = _empty_array
dns:views:_array_id:com.apple.ServerAdmin.DNS.public:primaryZones:_array_id:domain.tld:reverseMappings = _empty_array
dns:views:_array_id:com.apple.ServerAdmin.DNS.public:primaryZones:_array_id:domain.tld:retry = 3600
dns:views:_array_id:com.apple.ServerAdmin.DNS.public:primaryZones:_array_id:domain.tld:timeToLive = 345600
dns:views:_array_id:com.apple.ServerAdmin.DNS.public:primaryZones:_array_id:domain.tld:serviceRecords = _empty_array
dns:views:_array_id:com.apple.ServerAdmin.DNS.public:primaryZones:_array_id:domain.tld:bonjourRegistration = no
dns:views:_array_id:com.apple.ServerAdmin.DNS.public:primaryZones:_array_id:domain.tld:name = "domain.tld"
El archivo de zona creado con la configuración predeterminada ahora se ve así:
$ cat /private/var/named/db.domain.tld
domain.tld. 10800 IN SOA domain.tld. admin.domain.tld. (
2013122701 ; serial
86400 ; refresh (1 day)
3600 ; retry (1 hour)
604800 ; expire (1 week)
345600 ; minimum (4 days)
)
Con el comando a continuación, puede crear (importar) registros de zona DNS predeterminados para cada dominio que aparece en una línea separada en un archivo llamado "domains.txt".
$ while read line; do sudo serveradmin settings dns:views:_array_id:com.apple.ServerAdmin.DNS.public:primaryZones:_array_id:"$line":allowZoneTransfer = yes; done < domains.txt
Y cuando su servidor DNS de origen permite la transferencia de zona (axfr), la secuencia de comandos a continuación se puede usar para copiar los datos de zona DNS del servidor antiguo al nuevo servidor DNS de Mac OS X.
$ authNS=ns1.mydns.net;while read line; do dig +noall +multiline +answer +onesoa -t axfr "$line" @"$authNS" | sudo tee /private/var/named/db."$line"; done < domains.txt
Nota: debe cambiar "ns1.mydns.net" al nombre de host o la dirección IP del servidor desde el que intenta importar.