The Case for DNS Redundancy
Scalability, availability, and security are the biggest advantages of deploying DNS redundancy in your network. Doing so also reduces downtime and improves UX.
Join the DZone community and get the full member experience.Join For Free
the domain name system (dns) provides the location/ip address of the server that hosts the domain that you are trying to access. the dns resolution process (as explained in the image below) is the first step in the sequence of events that are triggered when you enter a domain name into your browser. if this process does not complete, the end user is left facing an error page stating, “server not found/webpage not available.” the user experience can be affected if dns availability is compromised; user frustration is proven to lead to loss of revenue and brand reliability.
dns is one of the most critical components to monitor for website performance and is also the most vulnerable to cyber attacks. the traditional dns setup (in-house or a single-server deployment) makes it difficult to guarantee availability and poses a constant risk. hackers can affect hundreds of websites by targeting a single dns provider.
security threats to dns providers are growing more complex and frequent. akamai’s state of the internet report cites a 71% increase in the frequency of denial of service (ddos) attacks in q3 2016 compared to q3 2015, while another study by the aberdeen group states that 78% of organizations suffered four or more disruptions every month. there is an absolute need for solutions that can ensure resilient dns service and mitigate the disruption caused by cyber attacks.
what is dns redundancy?
dns redundancy is a failsafe solution or a backup mechanism for dns outages — outages resulting from configuration errors, infrastructure failure, or a ddos attack. a single dedicated dns server may not be sufficient in such scenarios, deploying multiple dns providers in different networks ensures dns availability while cutting down the risk of dns unavailability. maintaining redundant dns servers may not be the most cost-effective option for most enterprises, but it is one of the most effective ways to sustain dns availability and mitigate the consequences of ddos attacks.
how does it work?
in a traditional dns architecture, there is usually a single dns provider delegating a set of nameservers (a set of four nameservers) for the domain. the nameserver is picked at random by each incoming dns request. if all the nameservers are overloaded with more requests than it can serve, then this creates latency in the dns network making the resolution process sluggish. eventually, the dns server is rendered unavailable for most users.
when we introduce dns redundancy to the single-server architecture, we are expanding the choice of name servers that are available. there are more nameservers responding to the dns queries. in addition to this, the name servers are distributed between separate dns networks reducing the risk of outages and increasing reliability of the dns provider.
the image below describes a primary-secondary deployment. the primary server is the existing dns solution where all of the dns records are maintained and the secondary server will act like the slave or backup. the primary dns server proactively updates the zone data in the secondary server as needed, and both the primary and the secondary servers will respond to incoming dns queries. this setup will only work if the primary dns provider supports zone transfer.
the disadvantage of a primary-secondary dns setup is that it doesn’t support advanced dns functionality such as load balancing and traffic steering. if the primary server suffers an outage, then you will not be able to manipulate or update dns records so this may not be the ideal solution for large enterprises that receive a lot of traffic.
another type of dns redundancy deployment is a primary-primary setup.
in this architecture, each dns server acts as a primary server responding to dns queries. the dns records on each server are updated independently. this can be done using apis or a separate custom application. maintaining different dns providers and keeping both in sync is a complex process, but it ensures higher availability without compromising on the advanced dns functionalities supported by the dns providers. so, it is important to choose dns providers with similar functionalities and with which can work in tandem.
choosing the right dns service provider
when evaluating multiple dns providers for your multi-dns network, consider the global point of presence (pop) of the provider along with features such as open apis and reporting tools. you should also evaluate the performance of the dns provider from different locations and under varying server load. the key is to deploy multiple dns providers on separate networks that are seamlessly integrated using apis or a custom program.
using a global node network, a synthetic monitoring solution that offers dns testing allows you to monitor the performance of dns providers at any given location. the different types of dns tests (direct, experience, or traversal) give a detailed report of points of failure and allows you to benchmark the performance of different service providers. read this interesting post to gain an in-depth understanding of how you can manage dns performance using catchpoint.
scalability, availability, and security are the biggest advantages of deploying dns redundancy in your network. using a global secondary dns provider reduces downtime and improves end-user experience. it will help you maintain a consistent digital experience, which can translate to lower abandonment rates and better conversion rates.
Published at DZone with permission of Kameerath Abdul Kareem, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.