The Domain Name System (DNS) is crucial for enterprise architecture, enabling efficient domain name resolution and IP address management. Depending on the planned architecture and requirements, there are multiple approaches to DNS with Everpure Cloud Dedicated that can be taken.
Azure-provided name resolution
The recommended DNS approach with Everpure Cloud Dedicated is to use the default Azure-provided name resolution service, where Everpure Cloud Dedicated controllers receive the DNS configuration via DHCP lease.
Some benefits of Azure DNS service:
-
Ease of Use: Little to no configuration necessary.
-
High Availability: No need to create and manage your own DNS server clusters.
-
Internal Resolution: Allows name resolution between VMs and role instances within the same cloud service without needing a Fully Qualified Domain Name (FQDN).
While the default Azure-provided name resolution is sufficient for the majority of deployment models and use-cases, it is important to be mindful of several characteristics:
-
The DNS suffix provided by Azure cannot be altered.
-
DNS lookups are limited to the virtual network. DNS names created in one virtual network are not resolvable from other virtual networks.
-
Manual registration of your own DNS records is not possible, unless you configure an Azure Private DNS Zone.
-
Assign unique names to each virtual machine within a virtual network to prevent DNS resolution issues.
-
The Azure DNS IP address 168.63.129.16 is static and cannot be changed.
There may be use-cases where these (or other) considerations might warrant use of a custom DNS server or even a Static DNS (see both sections below for more information).
Custom DNS server Configuration
If Azure’s default DNS doesn’t meet your requirements, you can configure your own DNS servers to better fit your specific needs.
To do so in the Azure portal, navigate to the VNet resource and follow the below steps (See following screenshot for illustration):
-
Go to Settings.
-
Under Settings go to DNS servers.
-
In DNS servers, select Custom.
-
Under IP Address specify the IP address of the custom DNS Server (below example shows a custom DNS server with an IP address 10.0.0.1)
While you can configure multiple custom DNS servers, only the first two custom DNS servers will be processed and used for resolution.
To ensure consistent resolution, verify both custom DNS servers are configured identically and operational. We recommend testing resolution against the following endpoints:
-
rest.cloud-support.purestorage.com
-
rest2.cloud-support.purestorage.com
-
restricted-rest.cloud-support.purestorage.com
Using custom DNS servers gives you more control which can be beneficial or even required for several situations, such as the below:
-
Compliance: Custom DNS can help meet specific regulatory or compliance requirements by controlling DNS resolution paths and logging. You can also implement custom DNS policies and configurations tailored to your organization’s needs.
-
Custom Domain Names: Use custom DNS to resolve internal domain names for applications and services within the VNet, providing intuitive and manageable naming convention.
-
Hybrid Cloud Integration: Crucially, custom DNS servers can be used to integrate Azure resources with on-premises environments, ensuring seamless name resolution across both environments.
-
Dynamic Updates: Easily update DNS records and configurations as your network evolves.
Differences between Custom DNS server and the Azure-provided name resolution can also be found in suffixes.
When you use Azure-provided name resolution, the Azure Dynamic Host Configuration Protocol (DHCP) assigns an internal DNS suffix (.internal.cloudapp.net) to each virtual machine (VM). This suffix allows for hostname resolution within the internal.cloudapp.net zone. However, if you opt for your own name resolution solution, this suffix is not provided to the VMs to avoid conflicts with other DNS setups. Instead, Azure assigns a nonfunctional placeholder suffix (reddog.microsoft.com).
$ cat /etc/resolv.conf
domain reddog.microsoft.com
search reddog.microsoft.com
Unless you are mandated to use custom (self-managed) DNS or need to resolve internal domain names, the recommendation is to use the Azure-provided name resolution.
Static DNS
In certain edge cases, there might be a need to set static DNS resolution. This operation requires root administrator rights and customers need to reach out to Everpure Technical Services to have the static resolution set.
The benefit to this approach is the ability to modify the Search / Domain parameters of DNS. This is required when configuring Single-Sign On (SSO) AND using non-valid Top Level Domain (TLD). In those cases, you need to have the custom Search directive, in order to properly resolve non-FQDN domains for SSO.
Setting static DNS is however recommended only when you need to set the Search and Domain parameters, and it should be done with caution.
The reasons for that are dependencies of Everpure Cloud Dedicated on Azure endpoints. These include for example Azure REST APIs and Cosmos DB. When setting static DNS, it is therefore necessary to ensure Azure specific addresses are resolvable by DNS.
On Everpure Cloud Dedicated v6.6.6 and above, dnsmasq.conf has hardcoded Azure and AWS DNS entries to help with the resolution. However, if you are setting static DNS configuration, you have to specifically enter the localhost address (where dnsmasq.conf resides) as one of the nameservers. If you only set custom nameservers, those will override the localhost entry and render dnsmasq unusable.
To Pure Support: To set static DNS for Everpure Cloud Dedicated, use the puredns setattr command (with root administrator rights). Include the --domain option to set the domain suffix to be appended to DNS queries. Specify the name servers with the --nameservers option. For more information on the puredns command, please refer to the Purity CLI documentation.