DNS is a very important part because the speed and efficiency of the DNS server will decide how fast your site will open when a user tries to visit your site. As it is an important thing, you get dedicated DNS to improve the speed and reliability of your website. So, In this tutorial, we will see how to change DNS to PowerDNS in cPanel.
PowerDNS is an open-source DNS server. It is used as an alternative to traditional BIND DNS. It works with many supporting backends from simple zone files to complex database setups, as well as some of the SQL platforms like MySQL, MariaDB, Oracle, and PostgreSQL. Power DNS offers better performance and requires only minimal memory. The power DNS uses a separate program as the resolving DNS server, called PowerDNS Recursor.
PowerDNS Authoritative and Recursor DNS Server
The Authoritative Nameservers contain the DNS records for your domain, and it answers all the queries with information from its records directly.
The Recursor DNS Servers are DNS servers that function in between the end-user and the authoritative DNS server. It is commonly known as Recursive or Resolving DNS Server. When the end-user submits a query, it reaches the recursive DNS server first, then searches for the record in the cache. If the records are not available in the cache, then the Recursor server sends the query to the authoritative nameserver to resolve the requested record details.
PowerDNS Caching
PowerDNS use ‘Packet Cache’ by default. It identifies similar queries and provides related answers, respectively. The cache interval setting for PowerDNS works on the TTL (Time To Live) setting, and the default interval is 20 seconds. In PowerDNS, the individual queries and also an entire packet can be cached.
Advantages of PowerDNS
PowerDNS provides a robust set for features when compared to BIND DNS servers. It also adds the performance and load-balancer configuration. The PowerDNS adds an extra layer of security for your domains DNS by supporting DNSSEC ( DNS Security Extensions). It provides a centralized control panel called ‘Poweradmin’, which has a variety of helpful management tools like Zone management, Cache flushing, Error log searching, etc.
There are some things you need to learn before actually updating the configuration in your cPanel. The first thing is:
DNS Cluster
A DNS cluster is a group of nameservers that share records, which allows you to physically separate nameservers that handle the DNS requests. You need to meet the following minimum requirements to configure your DNS cluster.
- The cluster should contain at least two servers.
- You need to have at least one webserver with cPanel and WHM installed.
- All machines in the cluster should have cPanel&WHM, or cPAnel DNSONLY version 11, or higher installed.
In the cPanel DNS cluster interface, you can add, view, and delete servers from your DNS cluster. Under the DNS cluster table, you can view the hostname, IP address, username, server type, DNS role, etc, for the servers.
You can set the DNS role of a server to any of the three based on your requirement:
- Standalone: In this method, the server fetches DNS records from the remote server. But it does not write records from the local server to the remote server.
- Synchronize: In this method, the records between the local and remote servers get synchronized.
- Write-only: This method writes the records from the local server to the remote server, but it does not write the query from the remote server to the local server.
Now, Let’s see how to actually add a new server to the cluster.
Add a New Server to the Cluster
You can perform the following steps to add a cPanel & WHM or cPanel DNSONLY server to the DNS cluster.
- From the “Backend Type menu”, select the server type.
- Click “Configure” to open the “cPanel DNS Remote Configuration” interface.
- Enter the hostname or IP address of the nameserver in the ‘DNS host’ text box to link in the Remote cPanel & WHM.
- Enter the WHM username details for the nameserver in the ‘Remote Server username’ text box.
- Add the remote access key or the nameserver’s API token hash in the ‘Remote server access hash’ text box. After the token creation, save the API token hash to a safe location on your workstation.
- Select “Setup Reverse Trust Relationship” for WHM to automatically configure the DNS cluster on the remote server
- Select the “Debug mode” to record the DNS clustering transactions in the ‘/usr/local/cPanel/logs/error_log’ file.
- Specify the DNS role from the “DNS Role” menu.
- Click “Submit” to save your settings.
- Use the “WHM’s Synchronize DNS Records” interface under the “DNS Functions” tab to synchronize the new DNS server with the DNS cluster manually.
So, this is how you can add a new server to the DNS cluster in cPanel. Now, let’s see how to delete a server from the DNS cluster.
Delete a Server from a DNS Cluster
Follow the instructions given below to remove a cPanel & WHM or cPanel DNSONLY server from a DNS cluster.
- Log in to the server that needs to be removed and navigate to the “DNS Cluster” interface.
- Select the option “Disable DNS Clustering” in the “Modify Cluster Status” text box.
- Click “Change”.
- Select the “Return to the Cluster Status” option.
- Log in to the servers that remain in the cluster and navigate to the “DNS Cluster” interface.
- Locate the server which you need to remove from the list of servers.
- Click the ‘X’ icon under the “Actions” heading.
When you return to the DNS Cluster interface, the server will no longer appear in the list of servers in the DNS cluster. So, this is how you can delete a DNS server from the cluster.
Update Server in DNS Cluster to Use PowerDNS
The new version 84 release in cPanel & WHM has added new features to it. One of the new features added in cPanel & WHM version 84 is the ability to change a DNS nameserver software to PowerDNS. To update the DNS server’s nameserver software to PowerDNS, you can follow the below steps:
- Login to WHM as the root user and navigate to the “Clusters” section.
- Select the ‘DNS cluster’ option under the “Cluster” section.
- Click the “Upgrade link” in the Status column of the servers in your DNS cluster table.