
The Zone files contain namespace details. By default, they are stored in the named working directory located in /var / named/, and each zone file is named in the zone statement according to the file option.
Usually in a manner that relates to the domain in question and identifies the file as containing zone data such as sample.com.zone.
The named service zone files
/var/named/ | The working directory is for the named service. The nameserver is not allowed to write to this directory |
/var/named/slaves/ | The directory for secondary zones and is writable by the named service |
/var/named/dynamic/ | This is for other files, such as dynamic DNS (DDNS) zones or managed DNSSEC keys. It is writable by the named service. |
/var/named/data/ | This is for statistics and debugging files and is writable by the named service. |
named.conf sometimes gets corrupted on server cPanel.
Here’s the way cPanel servers repair that:
First, move the corrupted “named.conf” using the command below
root@shadowserver[~]# mv /etc/named.conf /etc/named.conf.bak
Create even a copy of the latest zone data just in case anything goes wrong. You can do that by simply executing the following command line
root@shadowserver[~]# cp -rf /var/named /var/named.backup
Now run the cPanel script to rebuild the named.conf
root@shadowserver[~]# /usr/local/cpanel/scripts/rebuilddnsconfig
This script will rebuild all your files of /var/named/*.db.
First, it pulls every client from /var/cpanel/user and collects every user domain and IP address.
It then collects the first 2 nameservers from /etc/wwwacct.conf and reconstructs the zones as they would be if you were to set up this account already.
==================================================================================
#!/usr/bin/perl
# cPlicensing.net – scripts Copyright(c) 2003 cPlicensing.net.
# All rights Reserved.
# support@cPlicensing.net http://cPlicensing.net
# Unauthorized copying is prohibited
# Version: 0.01
$nameddir = ‘/var/named’;
$cpanelusers = ‘/var/cpanel/users’;
$wwwacct = ‘/etc/wwwacct.conf’;
print “Rebuild Named Zones Script from cPlicensing.net\n\n”;
print “MAKE SURE YOU BACKUP YOUR EXISTING $nameddir directory\n”;
print “Waiting 5 seconds… press ctrl+c to quit\n”;
sleep 5;
print “\n\n”;
opendir(USERS,”$cpanelusers”);
@CPUSERS=readdir(USERS);
closedir(USERS);
print “Grabbing first 2 NameServers from $wwwacct…”;
open(CONF,”$wwwacct”);
while(<CONF>) {
$_ =~ s/\n//g;
if ($_ !~ /^;/) {
if ($_ =~ /^NS /) {
(undef,$nameserver) = split(/ /, $_);
}
if ($_ =~ /^NS2 /) {
(undef,$nameserver2) = split(/ /, $_);
}
}
}
close(CONF);
print “done.\n”;
print “Rebuilding Zone Files… (cross your fingers)…”;
foreach $cpusers (@CPUSERS) {
chomp;
open(USERDB,”$cpanelusers/$cpusers”);
while(<USERDB>) {
if(/IP=/i) { (undef,$ip) = split(/=/, $_, 2); }
if(/DNS=/i) { (undef,$dns) = split(/=/, $_, 2); }
chomp($ip);
chomp($dns);
}
createzone();
}
print “Done.\n”;
print “\n\nZones have been rebuild but the named.conf has not.\n”;
print “use /scripts/rebuildnamedconf to rebuild the named.conf with\n”;
print “the new zones. Note that running /scripts/rebuildnamedconf will not\n”;
print “just rebuild the named.conf, you will need to pipe it into the file but\n”;
print “also you need to make sure their are no existing zones in it\n”;
sub createzone(){
$time=time();
$nameddata = <<EOM;
; cPanel 5.x
; Zone file for $domain
@ 14400 IN SOA $nameserver. hostmaster.$dns. (
$time ; serial, todays date+todays
28800 ; refresh, seconds
7200 ; retry, seconds
3600000 ; expire, seconds
86400 ) ; minimum, seconds
$dns. 14400 IN NS $nameserver.
$dns. 14400 IN NS $nameserver2.
$dns. 14400 IN A $ip
localhost.$dns. 14400 IN A 127.0.0.1
$dns. 14400 IN MX 0 $dns.
mail 14400 IN CNAME $dns.
www 14400 IN CNAME $dns.
ftp 14400 IN CNAME $dns.
EOM
open(VNAMEDF,”>$nameddir/$dns.db”);
print VNAMEDF $nameddata;
close(VNAMEDF);
}
==================================================================================
Then restart the service “named”.
root@shadowserver[~]#/etc/init.d/named restart
Now we have rebuild corrupter & missing *.db Zone files. If you find any difficulty in fixing feel free to Contact Us.
For latest updates join us on Facebook, Twitter, LinkedIn