DNS server problems are usually (and thank god!) rare. But when they happen, a fast resolution is of course necessary - or the impact can be catastrophic. Unless it's on a slave server, like in my case; this gives a bit more time to troubleshoot.
It all started with a domain which was stated as 'failed' by checking it on a whois server. I thought that the domain was probably not synchronized between master and slave and did the synchronization manually. At the point of reload, the following error appeared:
# ndc reload
ndc: error: ctl_client: evConnect(fd 3): No such file or directory
ndc: error: cannot connect to command channel (/var/run/ndc)
The same also happened, when I launched /etc/init.d/bind reload - not good! Something's pretty wrong here.
I quickly checked the socket file, which indeed didn't exist anymore:
# ll /var/run | grep ndc
The socket file disappeared?? When did that happen? How can it happen?
Even a bind restart didn't work so I forced a stop and start of bind and the socket file was there again:
# /etc/init.d/bind stop
# /etc/init.d/bind start
# ll /var/run | grep ndc
srw-rw-rw- 1 root root 0 2011-10-27 15:30 ndc
But as soon as I launched ndc reload or bind reload, the same error showed up again! Even though the socket file was now there.
I then took a closer look at /etc/bind/named.conf. It contained several includes:
// add local zone definitions here
include "/etc/bind/named.conf.local";
include "/etc/bind/named.additional.conf";
include "/etc/bind/named.additional2.conf";
The bad thing is that the two additional config files didn't exist anymore so bind was trying to load config files which weren't there.
After I removed the lines with the non-existant files and restarted bind, a new socket file with different permissions was created:
# ll /var/run | grep ndc
srw------- 1 root root 0 2011-10-27 15:47 ndc
That seems to be a good change, so let's check the reload:
# ndc reload
Reload initiated.
# /etc/init.d/bind reload
Reload initiated.
So watch out if you ever use non-existant files in a bind configuration, it doesnt like it at all!
No comments yet.
AWS Android Ansible Apache Apple Atlassian BSD Backup Bash Bluecoat CMS Chef Cloud Coding Consul Containers CouchDB DB DNS Database Databases Docker ELK Elasticsearch Filebeat FreeBSD Galera Git GlusterFS Grafana Graphics HAProxy HTML Hacks Hardware Icinga Influx Internet Java KVM Kibana Kodi Kubernetes LVM LXC Linux Logstash Mac Macintosh Mail MariaDB Minio MongoDB Monitoring Multimedia MySQL NFS Nagios Network Nginx OSSEC OTRS Office PGSQL PHP Perl Personal PostgreSQL Postgres PowerDNS Proxmox Proxy Python Rancher Rant Redis Roundcube SSL Samba Seafile Security Shell SmartOS Solaris Surveillance Systemd TLS Tomcat Ubuntu Unix VMWare VMware Varnish Virtualization Windows Wireless Wordpress Wyse ZFS Zoneminder