Configuring a Custom DNS for Azure SQL Database Managed Instance
An Azure SQL Database Managed Instance must be deployed within an Azure virtual network (VNet). There are a few scenarios (for example, db mail, linked servers to other SQL instances in your cloud or hybrid environment) that require private host names to be resolved from the Managed Instance. In this case, you need to configure a custom DNS inside Azure. Since Managed Instance uses the same DNS for its inner workings, the virtual network DNS configuration needs to be compatible with Managed Instance.
Always use fully-qualified domain names (FQDN) for the mail servers, SQL Servers, and other services even if they are within your private DNS zone. For example use
smtp.contoso.com for mail server because simple
smtp will not be properly resolved.
To make a custom DNS configuration is compatible with the Managed Instance, you need to:
- Configure custom DNS server so it is able to resolve public domain names
- Put Azure Recursive Resolver DNS IP address 22.214.171.124 at the end of the virtual network DNS list
Setting up custom DNS servers configuration
In the Azure portal, find custom DNS option for your VNet.
Switch to Custom and enter your custom DNS server IP address as well as Azure's recursive resolvers IP address 126.96.36.199.
Not setting Azure’s recursive resolver in the DNS list can cause the Managed Instance to enter a faulty state when the custom DNS servers are unavailable for some reason. Recovering from that state may require you to create new instance in a VNet with the compliant networking policies, create instance level data, and restore your databases. Setting the Azure’s recursive resolver as the last entry in the DNS list ensures, even when all custom DNS servers fail, public names can still be resolved.
We'd love to hear your thoughts. Choose the type you'd like to provide:
Our feedback system is built on GitHub Issues. Read more on our blog.