Skip to main content
Version: Next

Task 03: Create DHCP Reservations for Management NICs

Runbook Azure Dell

Optional

DOCUMENT CATEGORY: Runbook SCOPE: Azure Local hardware provisioning PURPOSE: Pre-stage DHCP reservations for management NICs so nodes receive consistent IPs on first OS boot, enabling automated remote configuration MASTER REFERENCE: Phase 01: Hardware Provisioning

Status: Active


Overview

Optional Configuration

This task is optional but strongly recommended for enterprise deployments. Creating DHCP reservations for management NICs before OS installation enables automated IP discovery, eliminating manual console access or network scanning during initial configuration.

Benefits:

  • Nodes receive a known, predictable IP the moment the OS boots for the first time
  • Eliminates network scanning or manual console access during Stage 11/12 configuration
  • Required for fully automated deployment pipelines
  • Consistent IP addressing throughout the deployment lifecycle until static IPs are configured

Create DHCP reservations for in-band management NICs using MAC addresses from variables.yml (populated from Task 02 hardware discovery) and planned IPs from variables.yml. Although these interfaces are ultimately assigned static IPs during OS configuration, DHCP reservations provide consistent temporary addressing for remote automation workflows.


Prerequisites

RequirementDescriptionSource
Task 02 CompleteManagement NIC MACs populated in variables.ymlvariables.yml: nodes.<name>.macs.onboard_port1
DHCP Server AccessFortiGate admin rights, Windows DHCP admin, or customer DHCP contactNetwork team
Management Network SubnetManagement VLAN DHCP scope configuredvariables.yml: network.vlans.management.cidr
Planned Management IPsAssigned management IP per nodevariables.yml: nodes.<name>.management_ip

Variables from variables.yml

PathTypeDescription
network.vlans.management.cidrstringManagement network CIDR (e.g., 192.168.203.0/24)
network.vlans.management.dhcp.providerstringDHCP provider type (e.g., FortiGate Firewalls)
nodes.<name>.management_ipstringPlanned management NIC IP address per node
nodes.<name>.hostnamestringNode hostname
nodes.<name>.service_tagstringDell service tag
nodes.<name>.macs.onboard_port1stringManagement NIC (onboard port 1 / Management LOM) MAC address

Execution Options

Select the tab matching your DHCP infrastructure:

When to use: Azure Local Cloud-managed environments using FortiGate firewalls for DHCP

FortiGate Web UI

  1. Open browser to https://<fortigate-ip> and log in with admin credentials
  2. Navigate to Policy & ObjectsDHCP Server
  3. Select the DHCP server for the management network and click Edit
  4. In the Reserved Addresses section, click Create New for each node:
  • IP Address: nodes.<name>.management_ip from variables.yml
  • MAC Address: nodes.<name>.macs.onboard_port1 from variables.yml
  • Description: <hostname>-mgmt (Service Tag: <service-tag>)
  1. Click OK to save

FortiOS CLI (from Management Server)

Connect via SSH from the management server and run the following for each node. Replace values with actual entries from variables.yml.

# ============================================================================
# FortiGate DHCP Reservation — FortiOS CLI
# Execution: SSH FROM management server TO FortiGate
# Prerequisites: SSH access to FortiGate, admin rights
# ============================================================================

ssh admin@<fortigate-ip>

config system dhcp server
edit "<Management-DHCP-Server-Name>"
config reserved-address
edit "<hostname>-mgmt"
set ip <nodes.<name>.management_ip>
set mac <nodes.<name>.macs.onboard_port1>
set description "Mgmt NIC for <hostname> (ST: <service_tag>)"
next
end
next
end

save config
exit

Repeat the edit block for each node.

Validation

# Verify reservations on FortiGate
show system dhcp server | grep -A5 "mgmt"

Validation Checklist

# Windows DHCP — List management NIC reservations
$config = Get-Content ".\config\variables.yml" -Raw | ConvertFrom-Yaml
$MgmtScopeId = ($config.network.vlans.management.cidr -split '/')[0]
$DHCPServer = $config.network.vlans.management.dhcp.server

Get-DhcpServerv4Reservation -ComputerName $DHCPServer -ScopeId $MgmtScopeId |
Format-Table -Property Name, IPAddress, ClientId, Description -AutoSize

Expected Output:

Name IPAddress ClientId Description
---- --------- -------- -----------
azlocal-node01-mgmt 192.168.203.11 c4-cb-e1-f9-af-e4 Mgmt NIC for azlocal-node01 (ST: 8T6GDB4)
azlocal-node02-mgmt 192.168.203.12 c4-cb-e1-f9-ca-2e Mgmt NIC for azlocal-node02 (ST: 9T6GDB4)
  • DHCP reservation created for every node (one per node)
  • IP addresses match nodes.<name>.management_ip in variables.yml
  • MAC addresses match nodes.<name>.macs.onboard_port1 in variables.yml
  • Reservation names follow convention: <hostname>-mgmt
  • Reservation descriptions include hostname and service tag
  • All reservations in the correct management DHCP scope

Troubleshooting

IssueCauseResolution
DhcpServer module not foundRSAT not installedInstall-WindowsFeature RSAT-DHCP or run directly on DHCP server
Duplicate reservationReservation already existsRemove existing: Remove-DhcpServerv4Reservation then re-add
Scope not foundWrong scope IDVerify: Get-DhcpServerv4Scope -ComputerName $DHCPServer
Access deniedInsufficient rightsRun as DHCP Administrator role member
MAC address format errorIncorrect formatUse format: AA-BB-CC-DD-EE-FF (hyphens, not colons)
FortiGate SSH access deniedSSH not enabled or wrong credentialsEnable SSH on FortiGate admin interface
DHCP server unreachableNetwork connectivityVerify management server can reach DHCP server

Task 02: Hardware Discovery↑ Phase 01: Hardware ProvisioningTask 04: BIOS/iDRAC Validation →

Version Control

VersionDateAuthorChanges
1.02026-01-31Azure Local Cloud Azure Local CloudnologyInitial document
1.12026-03-04Azure Local Cloud Azure Local CloudnologyFix tab labels, script paths, variable references, standards alignment