Hay un Bash/Terminal/Comando de línea de comandos que puede ayudar a la importación de los datos de zona DNS en 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
Este comando crea un archivo de zona (en este ejemplo "de dominio.tld") con algunos ajustes por defecto y sin ningún tipo de 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 = "admin@domain.tld"
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"
La creación de la zona de archivo 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 siguiente comando se puede crear (importación) de DNS por defecto los registros de zona para cada dominio que aparece en una línea separada en un archivo denominado "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 el servidor DNS de origen permite la transferencia de zona (axfr) la siguiente secuencia de comandos se puede utilizar para copiar los datos de la zona DNS del servidor antiguo al nuevo Mac OS X servidor DNS.
$ 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: usted necesita cambiar "ns1.mydns.net" para el nombre de host o la dirección IP del servidor que está intentando importar.