Advanced · DNS · 13 of 32

Resolve names with DNS Private Resolver

Your tasks
  • Make stlogs01.blob.core.windows.net resolve to 10.0.3.4 from vm-spoke1
  • Make app.corp.contoso.com resolve to 192.168.10.5 from vm-spoke1

The hub has an Azure DNS Private Resolver, dnspr-hub, with an inbound endpoint at 10.0.5.4 and a ruleset, rs-onprem, linked to the hub. Use it for two things: private endpoint names for vm-spoke1, like stlogs01 at 10.0.3.4, and the on-premises zone corp.contoso.com, which lives on dns-onprem at 192.168.10.10. app.corp.contoso.com is srv-onprem.

You'll learn
Azure DNS Private Resolver
  1. See the inbound endpoint and its IP.

    az dns-resolver inbound-endpoint list -g rg-lab --dns-resolver-name dnspr-hub -o table
    What's this?

    Shows a DNS Private Resolver's inbound endpoints and their IP addresses.

    • -g the resource group the resources live in
  2. Use it as vnet-spoke1's DNS server.

    az network vnet update -g rg-lab --name vnet-spoke1 --dns-servers 10.0.5.4
    What's this?

    Changes a virtual network, such as its address space or the DNS servers its VMs use.

    • -g the resource group the resources live in
    • --name the name of the thing to look at or change
  3. Add a rule that sends corp.contoso.com to the on-premises DNS server.

    az dns-resolver forwarding-rule create -g rg-lab --ruleset-name rs-onprem --name corp --domain-name corp.contoso.com. --target-dns-servers "[{ip-address:192.168.10.10,port:53}]"
    What's this?

    Works with a forwarding rule: queries for one domain go to the DNS servers you name. It applies in networks linked to the rule's ruleset. If two rules match, the longer domain wins.

    • -g the resource group the resources live in
    • --name the name of the thing to look at or change
    • --domain-name corp.contoso.com. note the trailing dot
    • --target-dns-servers where matching queries go
  4. Connect to vm-spoke1.

    ssh vm-spoke1
    What's this?

    Opens a shell on vm-spoke1, so the next commands run on that VM. In this lab it's a shortcut. In real Azure you'd connect through something like Azure Bastion, or SSH to an address you can reach.

  5. Look up the private endpoint name.

    nslookup stlogs01.blob.core.windows.net
    What's this?

    Asks the VM's DNS server what IP address a name points to. Run it on the VM that has the problem, because each VM can get a different answer.

  6. Look up the on-premises name. Type exit when done.

    nslookup app.corp.contoso.com
    What's this?

    Asks the VM's DNS server what IP address a name points to. Run it on the VM that has the problem, because each VM can get a different answer.

  7. Answer the question below.

    Azure-provided DNS
    The DNS Azure gives every virtual network unless you set your own servers.
    Zone link
    Connects a private DNS zone to a virtual network, so VMs there can look up its names.
    Private DNS zone
    A DNS zone for private names, which you link to virtual networks. A privatelink zone holds the private IPs of private endpoints.
    Forwarding rule
    Sends DNS queries for one domain to DNS servers you choose. A ruleset is a group of them.
Sources on Microsoft Learn (2)
0/2 changes
Network map
?
  • Resource group, the outer dashed frame
  • Virtual network, with its address space top right
  • Subnet, with range and usable IPs (5 reserved)
  • Network security group. A small shield on a VM's NIC means the NIC has one too
  • Route table on the subnet
  • NICVM Appliance Private endpoint
  • Peering Connected Initiated or access off
  • Goal working Goal broken, X marks where it stops
  • Private DNS zone, dotted lines go to linked VNets
  • Orange pulse: what your last command changed. Drag to pan, Ctrl and scroll to zoom.
Resource grouprg-labvnet-spoke1: tap to inspectVirtual networkvnet-spoke110.1.0.0/16subnet-app: tap to inspectsubnet-app10.1.1.0/24 · 251 usablevm-spoke1 10.1.1.4: tap to inspectNICvm-spoke110.1.1.4vnet-hub: tap to inspectVirtual networkvnet-hub10.0.0.0/16subnet-shared: tap to inspectsubnet-shared10.0.1.0/24 · 251 usableGatewaySubnet: tap to inspectGatewaySubnet10.0.255.0/27 · 27 usablevgw-hub 10.0.255.4: tap to inspectVPNvgw-hub10.0.255.4subnet-pe: tap to inspectsubnet-pe10.0.3.0/24 · 251 usablepe-stlogs01 10.0.3.4: tap to inspectpe-stlogs0110.0.3.4snet-dns-in: tap to inspectsnet-dns-in10.0.5.0/28 · 11 usablednspr-hub-in 10.0.5.4: tap to inspectDNSdnspr-hub-in10.0.5.4snet-dns-out: tap to inspectsnet-dns-out10.0.5.16/28 · 11 usableonprem-dc: tap to inspectOn-premises networkonprem-dc192.168.0.0/16subnet-servers: tap to inspectsubnet-servers192.168.10.0/24 · 251 usablesrv-onprem 192.168.10.5: tap to inspectNICsrv-onprem192.168.10.5dns-onprem 192.168.10.10: tap to inspectNICdns-onprem192.168.10.10Connected: tap to inspectpeeredVPN connection from vgw-hub to onprem-dcVPNprivatelink.blob.core.windows.net: tap to inspectDNSPrivate DNS zone · privatelink.blob.core.windows.net · 1 link · stlogs01 → 10.0.3.4app.corp.contoso.com?:443 ✗
  • vm-spoke1 → app.corp.contoso.com:443should work: not working
Goals 0/3
Cloud Shell · bashVMsrg-lab · eastus2
cloudshell:~$