Skip to main content
Version: Next

Task 05: Configure DNS Servers

Runbook Azure Dell

DOCUMENT CATEGORY: Runbook SCOPE: DNS client configuration PURPOSE: Set DNS server addresses on the management NIC of all nodes using explicit values from variables.yml — adapter resolved by exact name, not auto-detected MASTER REFERENCE: Phase 03: OS Configuration

Status: Active


Overview

Configure the primary and secondary DNS server addresses on the management network adapter of each Azure Local node. DNS must be set before Active Directory operations, Azure Arc registration, and any hostname resolution required later in the deployment.

Run AFTER Task 04

Task 04 (disable DHCP) must be complete. Setting DNS before DHCP is disabled has no harmful effect, but the standard sequence is Tasks 03 → 04 → 05.

What the scripts do:

  1. Hard-fail on any REPLACE placeholder value remaining in #region CONFIGURATION
  2. Find the management adapter by exact name — exit and list adapters if not found
  3. Check idempotency — exit clean if DNS is already set to the target values
  4. Call Set-DnsClientServerAddress with the two explicit DNS IPs
  5. Read back and validate the DNS configuration

Prerequisites

RequirementDescriptionSource
Task 04 completeDHCP disabled on all adaptersTask 04: Disable DHCP
DNS IPs confirmedValidated DNS server addressesvariables.yml: dns.primary, dns.secondary
NIC name confirmedManagement adapter namevariables.yml: cluster.management_nic_name

Configuration Reference

variables.yml pathScript variableExample
cluster.management_nic_name$ManagementNICEmbedded NIC 1
dns.primary$DNSPrimary10.100.10.2
dns.secondary$DNSSecondary10.100.10.3
nodes.<name>.management_ipPSRemoting target (orchestrated only)10.100.200.11

Execution Options

Configure DNS interactively on each node via console, KVM, or RDP.

Use the Direct Script tab when running multiple nodes

SConfig requires repeating these steps on every node individually. For multi-node deployments, the Direct or Orchestrated tab is faster and less error-prone.

Steps — for each node:

  1. Open SConfig (if not already running, type sconfig in PowerShell)
  2. Select option 8 — Network settings
  3. Select the management adapter (the one configured with a static IP in Task 03)
  4. Select option 2 — Set DNS Servers
  5. Enter the Primary DNS IP from variables.ymldns.primary
  6. Enter the Secondary DNS IP from variables.ymldns.secondary
  7. Press Enter to confirm

Verify in SConfig:

After setting DNS, return to the Network settings menu and confirm the DNS servers shown match the values from variables.yml.

Alternatively, verify in PowerShell:

# Run on the node after SConfig configuration
Get-DnsClientServerAddress -AddressFamily IPv4 |
Where-Object { $_.ServerAddresses.Count -gt 0 } |
Select-Object InterfaceAlias, ServerAddresses |
Format-Table -AutoSize

Validation

Verify DNS server configuration on each node:

# Run on each node (or via PSRemoting)
Get-DnsClientServerAddress -AddressFamily IPv4 |
Where-Object { $_.ServerAddresses.Count -gt 0 } |
Select-Object InterfaceAlias, ServerAddresses |
Format-Table -AutoSize

Validation checklist:

CheckExpectedStatus
Primary DNS on management NICdns.primary from variables.yml
Secondary DNS on management NICdns.secondary from variables.yml
No other DNS entries on management NICOnly 2 servers listed
DNS resolution test

Task 06 performs a full DNS resolution validation. Basic resolution testing at this stage is optional — proceed to Task 06 for a comprehensive verification.


Troubleshooting

IssueRoot CauseRemediation
Script hard-fails on startupREPLACE placeholder values remainEdit #region CONFIGURATION with real values from variables.yml
Adapter not found errorNIC name in config doesn't matchRun Get-NetAdapter on the node; update cluster.management_nic_name in variables.yml
DNS validation fails (post-set mismatch)Transient WMI delayWait 5 seconds and re-run the validation query manually
DNS not resolving names (verified in Task 06)DNS servers unreachableVerify DNS server IPs are reachable from node; check routing and firewall
Orchestrated script: cluster.management_nic_name not foundKey missing from variables.ymlAdd cluster.management_nic_name to the cluster: block in yml
Orchestrated script: dns.primary not foundKey missing from variables.ymlAdd dns.primary and dns.secondary to the dns: block in yml
Node unreachable via PSRemotingWinRM not configured or firewall blockingVerify Task 01 (WinRM) completed; check firewall rules

Task 04: Disable DHCP↑ Phase 03: OS ConfigurationTask 06: Verify DNS →

Version Control

VersionDateAuthorChanges
1.02026-01-31Azure Local Cloud Azure Local CloudnologyInitial document
2.02026-03-05Azure Local Cloud Azure Local CloudnologyFull rewrite to standards — complete frontmatter, 3-tab structure (SConfig, Direct, Orchestrated), Standalone tab removed, full embedded scripts, explicit NIC name from variables.yml, variables.yml integration in orchestrated script