Often the DNS Solutions are straightforward and are managed by the CSP when the architecture is simple. The need for complex DNS solutions stems from systems that involve either a
- highly distributed cloud components that span multiple Virtual Networks and regions in the public cloud with different DNS domains (or)
- a hybrid architecture where the application components need to resolve the fully qualified domain names (FQDN) before exchanging the packets through the network
Azure has a handful of DNS solutions that address specific scenarios. Azure-managed DNS service that is available for every VNET handles the name resolution of the VMs and the Cloud services within the same network either registered with the default DNS-specific domain or a Private DNS Zone. The scenarios mentioned above require more than the intra-network name resolution. The scenarios provided at Name Resolution for Resources in Virtual Networks can alone be daunting and overwhelming if you try to decrypt them all at once.
I am glad to have completed a GitHub Repo that you can use to try all the stated scenarios and much more. I have taken an incremental approach w.r.t the complexity in the architecture.
The diagram above shows the sequence in which we drive the DNS experiments. Steps 3 through 6 can be performed independently of the preceding step but atop step 2 with a slight modification in step 6 wherein we won’t need to set up a Custom DNS server in a VM or a group of VMs.
Deployment Templates and Scripts can be found in my GITHUB Repo – Networking-DNS