Advanced · DNS · 15 of 32

Spoke can't resolve on-premises names

Problem

vm-spoke1 can't resolve app.corp.contoso.com.

Your job
  • Make app.corp.contoso.com resolve to 192.168.10.5 from vm-spoke1
Without breaking
  • Get vm-spoke1 reaching app.corp.contoso.com on 443broken
Background

The app on vm-spoke1 needs app.corp.contoso.com, which only the on-premises DNS server dns-onprem at 192.168.10.10 knows. The hub's resolver dnspr-hub has an outbound endpoint and a forwarding ruleset, rs-onprem, with a rule for corp.contoso.com, copied from the old design. Nobody can resolve the name yet, and vm-spoke1 is where it's needed.

How to work it
  1. 1See it fail

    Prove the problem yourself before you change anything. Reports are often wrong.

    VM commands forVMs
    1. 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.

    2. 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.

    3. nc -zv app.corp.contoso.com 443
      What's this?

      netcat, a standard Linux tool. Tries to open a TCP connection and reports whether it worked.

      • -z only check whether the port answers. Send no data
      • -v print the result in words
      • app.corp.contoso.com where to connect
      • 443 the port to try

    Ticks off when the test runs on vm-spoke1.

  2. 2Find where it stops
  3. 3Name the cause
  4. 4Fix it and test again
  5. 5Explain it
Sources on Microsoft Learn (3)
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 usablevm-hub 10.0.1.4: tap to inspectNICvm-hub10.0.1.4GatewaySubnet: tap to inspectGatewaySubnet10.0.255.0/27 · 27 usablevgw-hub 10.0.255.4: tap to inspectVPNvgw-hub10.0.255.4snet-dns-out: tap to inspectsnet-dns-out10.0.5.16/28 · 11 usablesnet-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.4onprem-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.10dns-onprem-old 192.168.10.11: tap to inspectNICdns-onprem-o…192.168.10.11Connected: tap to inspectpeeredVPN connection from vgw-hub to onprem-dcVPNapp.corp.contoso.com?:443 ✗
  • vm-spoke1 → app.corp.contoso.com:443should work: not working
Goals 0/3
Cloud Shell · bashVMsrg-lab · eastus2
cloudshell:~$