A computer connects to Wi-Fi or Ethernet, but there is no Internet access. You check its network configuration and discover an address such as:
169.254.47.21 Or the device has a normal-looking address such as 192.168.1.50, yet it cannot reach the default gateway. Another client receives an IP address but gets the wrong DNS servers. In an enterprise network, an entire VLAN suddenly stops receiving addresses after a network change.
These symptoms often point toward DHCP troubleshooting.
The Dynamic Host Configuration Protocol automatically provides clients with critical network configuration such as an IP address, subnet mask, default gateway, DNS servers, and lease information. DHCP is formally specified by RFC 2131.
When DHCP fails, the correct solution is not simply to restart the router or repeatedly run ipconfig /renew.
A DHCP failure can occur at several different points:
Client
|
v
VLAN / Broadcast Domain
|
v
DHCP Relay
|
v
DHCP Server
|
v
Scope / Address Pool
|
v
DHCP Options The fastest troubleshooting method is therefore to identify where the DHCP exchange stops.
This guide explains how to diagnose DHCP problems systematically, including DORA failures, 169.254 APIPA addresses, expired leases, DHCP scope exhaustion, DHCP relay problems, wrong gateways, incorrect DNS settings, VLAN issues, UDP ports 67/68, rogue DHCP servers, and packet-level troubleshooting.
For the networking foundation behind DHCP, see Computer Networking Explained and TCP/IP Explained.
DHCP troubleshooting is often oversimplified into:
The client cannot get an IP address.
But DHCP can fail in many different ways.
A client might receive:
No IP address or:
169.254.x.x or even a valid-looking address such as:
192.168.20.45 while receiving an incorrect:
Default Gateway
DNS Server
Subnet Mask
Domain Name A more accurate DHCP troubleshooting model is:
| Problem | Possible Layer |
|---|---|
| No address | Client, relay, server, scope |
| 169.254.x.x | DHCP exchange failed |
| Wrong subnet | Wrong scope/VLAN |
| Wrong gateway | DHCP option configuration |
| Wrong DNS | DHCP DNS option |
| Some clients fail | Scope exhaustion, policy, VLAN |
| One VLAN fails | Relay/VLAN/routing |
| Intermittent addressing | Rogue DHCP or multiple servers |
| Renewal fails | Server/relay/path/state issue |
The first task is therefore not:
How do I restart DHCP?
It is:
At which stage did DHCP fail?
The classic DHCPv4 address-acquisition process is often summarized as:
DORA meaning:
Discover
Offer
Request
Acknowledgement A simplified exchange is:
DHCP Client DHCP Server
| |
|------ DHCPDISCOVER ----------->|
| |
|<------- DHCPOFFER --------------|
| |
|------- DHCPREQUEST ------------>|
| |
|<-------- DHCPACK ---------------|
| | After the exchange succeeds, the client can configure the leased network parameters.
Understanding DORA is the single most useful concept for troubleshooting DHCP.
Instead of saying:
DHCP is broken. you can ask:
Did the client send DHCPDISCOVER?
Did the server receive it?
Did the server send DHCPOFFER?
Did the client receive the offer?
Did it send DHCPREQUEST?
Did the server return DHCPACK? Each missing message narrows the problem dramatically.
When a DHCP client does not yet have usable IPv4 configuration, it must locate a DHCP server.
It sends:
DHCPDISCOVER Because the client may not yet know:
Its own usable IP address
DHCP server IP address
Default gateway initial DHCP communication relies heavily on broadcast behavior on the local network.
Conceptually:
Client
IP: 0.0.0.0
|
| DHCPDISCOVER
v
Broadcast domain
|
+---- DHCP Server A
|
+---- DHCP Server B If the client is not on the same broadcast domain as the DHCP server, a DHCP relay can forward the request.
This distinction becomes critical in VLAN-based enterprise networks.
A DHCP server that can serve the client may respond with:
DHCPOFFER The offer can contain proposed configuration including:
IP address
Subnet mask
Lease duration
Default gateway
DNS servers
DHCP server identifier The exact information depends on the DHCP configuration and requested options.
Conceptually:
Client
|
| DHCPDISCOVER
v
Server
|
| DHCPOFFER
v
Client If packet capture shows:
DISCOVER but no:
OFFER the investigation should move toward the server, relay, scope, or network path.
The client selects an offered configuration and sends:
DHCPREQUEST During initial allocation, this also helps indicate which offered server/configuration the client selected when multiple offers exist.
Conceptually:
Server A ---- OFFER A ----\
\
Client --------------------> REQUEST selected lease
/
Server B ---- OFFER B ----/ The details of DHCP client state and message fields are more nuanced than this diagram, but the model is useful for troubleshooting.
The selected DHCP server responds with:
DHCPACK confirming the lease and configuration.
Now the client can configure the interface.
Conceptually:
DHCPACK
|
v
Client configures:
IP address
Subnet mask
Gateway
DNS
Lease timers At this point, however, DHCP success does not guarantee Internet connectivity.
The assigned:
Gateway
DNS
Subnet mask could still be wrong.
Therefore:
DHCP lease obtained does not automatically mean:
Network configuration is correct. For DHCPv4, the familiar UDP ports are:
| Component | UDP Port |
|---|---|
| DHCP Server | 67 |
| DHCP Client | 68 |
A simplified path is:
Client UDP 68
|
v
Server UDP 67 Microsoft’s DHCP troubleshooting guidance likewise identifies UDP ports 67 and 68 for DHCP client/server communication.
Firewalls, ACLs, security appliances, virtualization filters, or network policies that interfere with these packets can prevent DHCP from working.
This differs from DNS, which primarily uses port 53. For DNS-specific failures after DHCP succeeds, see DNS Explained.
When a device cannot connect, first inspect its actual configuration.
On Windows:
ipconfig /all Look for:
IPv4 Address
Subnet Mask
Default Gateway
DHCP Enabled
DHCP Server
DNS Servers
Lease Obtained
Lease Expires Do not look only at the IPv4 address.
A device might receive:
IPv4: 192.168.10.40 but:
Gateway: 192.168.20.1 which would indicate a configuration problem.
A useful troubleshooting sequence is:
IP address
|
v
Subnet mask
|
v
Gateway
|
v
DHCP server
|
v
DNS servers
|
v
Lease timing Then determine whether the failure is actually DHCP-related.
One of the most recognizable DHCP symptoms on Windows is:
169.254.x.x Microsoft calls this Automatic Private IP Addressing, or APIPA.
Microsoft documents the APIPA range as:
169.254.0.0 – 169.254.255.255 with the client using a link-local address when configured for automatic addressing but unable to obtain normal DHCP configuration.
In practical troubleshooting terms:
169.254.x.x is a strong signal that the client did not obtain the expected DHCP lease.
But there is an important nuance.
Do not treat every address beginning with 169.254 anywhere in every operating system or networking context as proof of the exact same Windows DHCP failure mechanism.
The useful troubleshooting question is:
Was this client expected to receive a normal DHCP lease, and did it instead self-configure a link-local address?
If yes, investigate the DHCP path.
A Windows host using APIPA may communicate with appropriately configured hosts on the same local link.
It normally does not provide normal routed connectivity to remote networks through your intended default gateway.
Conceptually:
PC-A
169.254.10.20
|
| Local link
v
PC-B
169.254.10.30 may have limited local communication.
But:
169.254.x.x
|
X
Router / Internet does not provide the expected routed enterprise or home-network configuration.
Therefore, if a user says:
I have Wi-Fi but no Internet.
and ipconfig shows:
169.254.x.x start with DHCP connectivity—not DNS.
This distinction prevents wasted troubleshooting.
If the client has:
169.254.x.x and no usable default gateway, changing DNS from:
192.168.1.1 to:
8.8.8.8 will not repair the underlying DHCP failure.
The client first needs valid IP-layer connectivity.
The correct troubleshooting order is:
Link
↓
IP configuration
↓
Gateway
↓
Routing
↓
DNS
↓
Application This is one reason understanding TCP/IP is so valuable for troubleshooting.
Start by checking whether the client is actually configured for DHCP.
On Windows:
ipconfig /all Verify:
DHCP Enabled . . . . . . . : Yes Then try renewing the lease:
ipconfig /release
ipconfig /renew Afterward:
ipconfig /all If the client still receives APIPA, do not repeatedly run the same commands.
Move to the next question:
Are DHCP messages reaching the server?
This is one of the most useful packet-capture patterns:
Client → DHCPDISCOVER
Client → DHCPDISCOVER
Client → DHCPDISCOVER
No DHCPOFFER This proves something important:
Client DHCP process is at least transmitting Discover messages. Now investigate why no offer returns.
Possible causes include:
The next step depends heavily on whether the server is on the same subnet.
Consider:
VLAN 10
Client
|
+--------- DHCP Server Both devices share the same Layer 2 broadcast domain.
A DHCPDISCOVER should normally be able to reach the server without a router forwarding the broadcast.
If packet capture on the client shows Discover packets but the server never sees them, investigate:
VLAN membership
Switch configuration
Wireless isolation
Port security
Firewall
Virtual switch
Physical network For the role of switches and routers in this path, see Routers, Switches and Network Devices.
Now consider:
VLAN 10
Client
|
v
Router / L3 Switch
|
v
VLAN 100
DHCP Server DHCP broadcast traffic from the client is not simply routed across subnets like ordinary unicast application traffic.
A DHCP/BOOTP relay function is commonly used.
Conceptually:
Client
|
| Broadcast DHCPDISCOVER
v
Default-Gateway / Relay
|
| Relayed DHCP request
v
DHCP Server The DHCP server uses relay information to determine which client subnet needs an address.
This allows centralized DHCP servers to serve many VLANs.
A classic enterprise incident looks like this:
VLAN 10 → DHCP works
VLAN 20 → DHCP works
VLAN 30 → DHCP fails
VLAN 40 → DHCP works Do not immediately restart the DHCP server.
If the same server successfully serves three other VLANs, investigate the unique path for VLAN 30.
A common suspect is:
DHCP relay configuration sometimes configured on network platforms through an IP helper mechanism.
Conceptually:
VLAN 30 client
|
v
VLAN 30 gateway
|
X relay missing/wrong
|
DHCP Server The client repeatedly broadcasts Discover messages locally, but they never reach the centralized DHCP server.
For the failing VLAN, verify:
1. Client is actually in the expected VLAN
2. VLAN interface/gateway is operational
3. DHCP relay is configured
4. Relay points to correct DHCP server
5. Route exists between relay and server
6. ACL/firewall permits the traffic
7. Server has a scope for that subnet
8. Return traffic can reach the relay/client This isolates the issue far more effectively than simply asking whether:
DHCP service is running. A DHCP server serving multiple networks must know which subnet the requesting client belongs to.
The relay agent provides information that helps the server associate the request with the appropriate network.
Conceptually:
Client has no usable IP yet
|
v
DHCP Relay
|
| identifies client-side network
v
DHCP Server
|
v
Select correct scope If relay information points to a subnet for which the server has no usable scope, the server may not be able to offer an address.
A DHCP scope has a finite number of usable addresses.
Example:
Network:
192.168.10.0/24 Suppose the DHCP pool is:
192.168.10.100
through
192.168.10.199 That is a limited pool.
If all available leases are allocated and no reusable addresses remain, new clients may fail to receive an offer.
Conceptually:
DHCP Pool
192.168.10.100 ───────── 192.168.10.199
[used][used][used][used]...[used]
New Client
|
v
No available lease This commonly occurs in:
Guest Wi-Fi
Schools
Hotels
Conference networks
Large offices
High-device-density environments On the DHCP server, inspect:
Total addresses
Active leases
Available addresses
Reservations
Exclusions
Lease duration
Declined/conflict addresses Do not immediately enlarge the subnet.
First determine why the pool is exhausted.
Possible reasons include:
Legitimate growth
Very long lease duration
Large number of transient clients
Unexpected devices
Incorrect exclusions
Old/stale leases
Wrong scope design If the subnet itself truly lacks sufficient capacity, subnet/VLAN redesign may eventually be required.
Lease duration affects how long clients can retain assigned addresses.
Consider a guest network where thousands of transient devices connect but leases remain allocated for a long time.
Even after users leave, addresses may remain leased until they can be reclaimed according to the server’s lease behavior.
Reducing lease duration can sometimes help high-turnover networks, but it creates more DHCP renewal traffic.
Therefore:
Short lease is not automatically better than:
Long lease Lease duration should reflect network behavior.
DHCP does not normally wait until the lease expires before trying to renew it.
RFC 2131 defines client state transitions involving renewal and rebinding.
In the common default timing model:
T1 ≈ 50% of lease
T2 ≈ 87.5% of lease Microsoft’s DHCP troubleshooting documentation likewise describes unicast renewal after 50% of the lease duration and rebinding after 87.5% when the directed renewal did not succeed.
A simplified timeline:
Lease begins
0%
|
| normal operation
|
50% -------- T1
| |
| +--> Try to renew
|
87.5% ------ T2
| |
| +--> Rebind more broadly
|
100% ------- Lease expires The exact values can be supplied by DHCP options rather than always being fixed at these defaults.
At T1, the client enters the renewal process.
It normally tries to contact the DHCP server associated with its lease.
Conceptually:
Client
|
| DHCPREQUEST
v
Original DHCP Server If successful:
DHCPACK extends the lease.
The client does not need to perform a complete fresh DORA exchange every time half the lease passes.
If renewal does not succeed and T2 is reached, the client moves toward rebinding.
Conceptually:
Original server
X
Client
|
| DHCPREQUEST
v
Available DHCP server This allows the client to attempt to preserve valid configuration even when the original server is unavailable.
If no successful renewal/rebinding occurs before lease expiration, the client can no longer simply continue treating the expired lease as valid indefinitely.
Consider a DHCP server failure at:
09:00 Clients already holding leases may continue operating normally for some time.
New clients may fail immediately.
Existing clients begin experiencing problems later as they need renewal.
This creates an incident pattern such as:
09:00 DHCP server fails
09:05 Existing PCs work
09:05 New PC fails
Later:
More clients begin renewal/rebinding attempts
Eventually:
More visible failures appear Therefore:
Existing clients still work
does not prove the DHCP service is healthy.
Another packet pattern is:
DISCOVER
OFFER but no successful completion.
Now we know:
Client can reach DHCP server
Server can generate an offer
Offer can reach client capture point Investigate the next stages:
Does client send DHCPREQUEST?
Does server receive REQUEST?
Does server send ACK or NAK?
Does client receive ACK? The troubleshooting scope is now much smaller than it was before packet capture.
A DHCP server can send:
DHCPNAK to indicate that the requested network configuration is not acceptable in the current context.
For example, a client may attempt to use configuration that is no longer valid for its network.
Conceptually:
Client
|
| REQUEST old/invalid configuration
v
Server
|
| DHCPNAK
v
Client The client must then return to an appropriate initialization process rather than continuing to use invalid configuration.
DHCP may successfully assign:
IP: 192.168.10.50
Mask: 255.255.255.0 but incorrectly provide:
Gateway: 192.168.20.1 The client has a lease.
Yet remote connectivity fails.
This is not:
DHCP server unreachable. It is:
DHCP option/configuration error. On Windows, inspect:
ipconfig /all Then test the expected gateway.
For example:
ping 192.168.10.1 The gateway should normally be reachable according to the local subnet architecture.
A client might receive:
IP address ✓
Subnet mask ✓
DNS server ✓
Default gateway ✗ Local-subnet communication may work while remote networks fail.
Conceptually:
Client
|
+---- Same subnet ✓
|
X
Router / Internet Check the DHCP scope/options.
Do not diagnose this as DNS simply because websites fail to load.
DHCP commonly supplies DNS resolver addresses to clients.
Suppose the client receives:
IP: 192.168.10.50
Gateway: 192.168.10.1
DNS: 192.168.50.53 but 192.168.50.53 is no longer a working resolver.
Now:
ping 1.1.1.1 may work while:
nslookup example.com fails.
This indicates:
IP connectivity works
Routing works
DNS resolution fails The root problem may be the DNS configuration distributed through DHCP.
For DNS-specific diagnostics, use the dedicated DNS Explained foundation and your DNS troubleshooting workflow rather than rebuilding the DHCP lease unnecessarily.
A useful sequence is:
1. Check client IP
2. Check subnet mask
3. Check gateway
4. Ping/reach gateway
5. Test known IP destination
6. Test DNS resolution
7. Test application For example:
ping 192.168.1.1 then, where network policy allows ICMP:
ping 1.1.1.1 then:
nslookup example.com Interpret the layers carefully.
If IP connectivity works but name resolution does not:
Investigate DNS. If the client never received a usable address:
Investigate DHCP first. DHCP can tell the client:
"Use DNS server 192.168.10.53" but DHCP does not itself perform the client’s DNS resolution.
Conceptually:
DHCP
|
+---- IP address
+---- subnet
+---- gateway
+---- DNS server address
|
v
DNS
|
v
Name resolution A successful DHCP transaction can therefore be followed by a DNS failure.
Keeping the protocols separate conceptually makes troubleshooting faster.
A client can receive an address that conflicts with another device if network addressing is poorly managed.
A common cause is mixing:
DHCP pool with manually assigned static addresses inside the same range without reservations or exclusions.
Example:
DHCP pool:
192.168.1.100 – 192.168.1.200 Administrator manually configures a printer:
192.168.1.120 DHCP may later attempt to lease that same address to another client unless the address is appropriately excluded/reserved or conflict handling prevents it.
Better design:
Static infrastructure range
192.168.1.2 – 192.168.1.49
DHCP pool
192.168.1.100 – 192.168.1.200 or manage fixed devices using DHCP reservations where appropriate.
These concepts are related but not identical.
A static IP is manually configured on the client.
A DHCP reservation instructs the DHCP system to consistently allocate a particular address to an identified client.
Simplified comparison:
| Method | Client Uses DHCP? | Central Management |
|---|---|---|
| Static IP | No | Limited |
| DHCP reservation | Yes | Yes |
| Dynamic DHCP lease | Yes | Yes |
Reservations are useful for devices that need predictable addresses while retaining centralized DHCP configuration.
A particularly dangerous network problem occurs when an unauthorized DHCP server begins answering clients.
Example:
Client
|
| DISCOVER
|
+------> Legitimate DHCP
|
+------> Rogue DHCP The rogue server may offer:
Wrong gateway
Wrong DNS server
Wrong subnet
Unexpected routes/options Users may experience intermittent failures because some clients accept legitimate offers while others receive configuration from the unauthorized server.
Look for clients receiving different:
DHCP Server
Default Gateway
DNS Server
Subnet despite connecting to the same expected network.
On Windows:
ipconfig /all inspect:
DHCP Server Compare several affected and unaffected machines.
If one group shows:
DHCP Server: 192.168.1.1 and another:
DHCP Server: 192.168.1.200 investigate immediately.
Managed network switches may support:
DHCP Snooping which can help control which switch ports are allowed to send DHCP server responses.
Conceptually:
Trusted Port
|
v
Legitimate DHCP Server
Untrusted Port
|
X
Unauthorized DHCP Offer However, DHCP snooping itself can also break DHCP if configured incorrectly.
If a legitimate server’s path is treated incorrectly, valid DHCP replies can be dropped.
Therefore, when DHCP fails after a switch security change, inspect:
DHCP snooping
Trusted ports
VLAN configuration
Relay path rather than assuming the DHCP server failed.
Enterprise DHCP troubleshooting frequently becomes VLAN troubleshooting.
Consider:
Switch Port
|
v
VLAN 20
|
v
Gateway / Relay
|
v
DHCP Server
|
v
Scope for VLAN 20 All of these pieces must agree.
If the access port accidentally belongs to:
VLAN 30 the client may receive:
VLAN 30 address or fail to receive an address depending on the network design.
This is why an unexpected subnet can be just as important a symptom as no address at all.
Suppose the expected network is:
10.20.0.0/24 but the client receives:
10.30.0.54 Investigate:
Switch access VLAN
SSID-to-VLAN mapping
802.1X assignment
DHCP relay
Server policy
Rogue DHCP
Virtual switch configuration Do not simply replace the address manually with:
10.20.0.54 because that hides the infrastructure problem.
Start with:
ipconfig /all Then check:
DHCP Enabled
IPv4 Address
Subnet Mask
Default Gateway
DHCP Server
DNS Servers
Lease Obtained
Lease Expires Release the lease:
ipconfig /release Request new configuration:
ipconfig /renew Then verify again:
ipconfig /all If the machine continues receiving:
169.254.x.x move upstream instead of repeatedly renewing.
On systems where DHCP client behavior appears locally broken, verify the relevant Windows networking services and adapter state.
You can inspect services using:
Get-Service Dhcp The goal is to determine whether the client-side DHCP mechanism is operational.
But remember:
DHCP Client service running does not prove:
DHCP Server reachable. Both sides and the network path matter.
After obtaining a lease:
route print or:
Get-NetRoute can help confirm whether the expected default route exists.
A DHCP configuration problem may manifest as:
Valid IP
+
No usable default route which can make the client appear connected locally but unable to reach external networks.
Inspect IPv4 configuration:
Get-NetIPConfiguration Inspect addresses:
Get-NetIPAddress Inspect adapters:
Get-NetAdapter Inspect routes:
Get-NetRoute These commands can help distinguish:
Adapter problem
Addressing problem
Gateway problem
Routing problem before you move to server-side troubleshooting.
Linux DHCP behavior depends on the distribution and network-management stack.
Modern systems may use:
NetworkManager
systemd-networkd
Other network managers Start with:
ip addr Then:
ip route Check DNS configuration using the tools appropriate to the system, for example:
resolvectl status on systems using systemd-resolved.
For broader Linux networking and administration, see Linux Server Administration.
On systems using NetworkManager:
nmcli device status shows device state.
Inspect a connection:
nmcli connection show Inspect a device:
nmcli device show Look for:
IP address
Gateway
DNS
Connection state Do not assume every Linux system uses the same DHCP client or network manager.
That is why troubleshooting instructions that blindly prescribe one legacy command can be misleading.
When basic troubleshooting fails, packet capture can show exactly where the DHCP exchange stops.
A healthy initial transaction should resemble:
Client Server
DISCOVER ----->
<----- OFFER
REQUEST ----->
<----- ACK If instead you see:
DISCOVER ----->
DISCOVER ----->
DISCOVER -----> the question becomes:
Why is there no OFFER?
If you see:
DISCOVER ----->
<----- OFFER
REQUEST ----->
REQUEST -----> the question becomes:
Why is there no ACK?
This is dramatically more precise than saying:
DHCP doesn't work. On Linux, a useful capture filter is:
sudo tcpdump -ni any 'udp port 67 or udp port 68' You can then trigger a DHCP request and observe the exchange.
The exact interface can also be specified instead of any.
For example:
sudo tcpdump -ni eth0 'udp port 67 or udp port 68' Look for:
Discover
Offer
Request
ACK
NAK and the source/destination path.
In Wireshark, DHCPv4 traffic can be inspected using the BOOTP/DHCP dissector.
A commonly useful display filter is:
bootp depending on Wireshark version/protocol naming.
Packet details can reveal:
Client MAC
Transaction ID
Requested IP
Server identifier
Relay information
Subnet mask
Router option
DNS server option
Lease time This is extremely useful when the client receives an address but the associated options are wrong.
For difficult enterprise failures, capture at:
Client VLAN
Relay interface
DHCP server Then compare.
Example:
Client capture:
DISCOVER visible
|
v
Relay capture:
DISCOVER visible
|
v
Server capture:
Nothing Now investigate:
Relay-to-server path
ACL
Routing
Firewall Another scenario:
Server:
OFFER sent
Relay:
OFFER received
Client:
No OFFER Now investigate the relay-to-client path.
This is how packet capture converts a vague network outage into a specific packet-delivery problem.
Do not assume the server lease table tells the complete story.
The server may have processed:
DISCOVER
OFFER
REQUEST
ACK while the final response failed to reach the client.
Conceptually:
DHCP Server
|
| ACK
v
Relay
|
X
Client The server may therefore record a lease even though the client never successfully configured it.
This is another reason to capture traffic at multiple points when necessary.
DHCP traffic can be affected by:
Host firewall
Router ACL
Cloud firewall
Switch security
Hypervisor networking
VPN filter
Endpoint security For basic DHCPv4 client/server communication, investigate UDP 67 and 68.
But do not create broad firewall rules without understanding the topology.
A DHCP server should not automatically be exposed to every untrusted network.
Security policy should permit only the traffic required by the intended architecture.
For broader firewall architecture, see Firewalls Explained.
Virtualization adds another layer.
A virtual machine may connect through:
Bridged networking
NAT
Host-only network
Virtual switch
Cloud virtual network The DHCP server seen by the VM depends on that design.
For example:
VM
|
v
NAT Virtual Network
|
v
Hypervisor DHCP may use a completely different DHCP service than:
VM
|
v
Bridged Interface
|
v
Physical LAN DHCP Therefore, if the host receives a valid lease but the VM receives APIPA, investigate the virtual network rather than immediately blaming the physical DHCP server.
For virtualization fundamentals, see Virtualization Explained.
Cloud networking abstracts some traditional DHCP infrastructure.
A virtual machine may receive configuration through mechanisms integrated into the cloud virtual network rather than from a DHCP server you directly administer.
The troubleshooting principles remain similar:
Does the interface have an address?
Is it from the correct subnet?
Is the expected route present?
Is DNS correct?
Are network policies correct? But the control plane may be:
AWS
Azure
Google Cloud rather than a traditional DHCP server appliance.
For the broader architecture, see Cloud Networking Explained.
A client receiving no lease could have a lower-layer connectivity problem.
Before investigating complex DHCP configuration, verify:
Ethernet link
Wi-Fi association
Switch port
VLAN
NIC state Conceptually:
No Layer 2 connectivity
|
v
No DHCP packets
|
v
No IP lease DHCP may merely be the first protocol that makes the underlying failure visible.
The opposite is also true.
A client can successfully complete DHCP:
DISCOVER
OFFER
REQUEST
ACK and still fail to access remote networks.
Possible reasons:
Wrong gateway
Router failure
Routing table
Firewall
NAT
Upstream outage Therefore:
DHCP works means:
DHCP works. It does not mean every higher network layer works.
Use this sequence instead of random configuration changes.
Verify:
Ethernet link
Wi-Fi association
Adapter enabled
Switch port operational
Correct SSID If the client cannot participate in the local network, DHCP cannot succeed.
Windows:
ipconfig /all Linux:
ip addr
ip route Determine whether the client has:
Expected IP
APIPA/link-local address
Wrong subnet
No address Verify that the interface is actually configured to obtain addressing automatically.
If it is manually configured with a static address, ipconfig /renew is not the solution.
If Windows shows:
169.254.x.x and a normal DHCP lease was expected, investigate why the DHCP exchange failed.
Windows:
ipconfig /release
ipconfig /renew Then inspect:
ipconfig /all If the problem persists, stop repeating renew commands and inspect the packet path.
Determine which pattern exists:
DISCOVER only or:
DISCOVER → OFFER or:
DISCOVER → OFFER → REQUEST or:
DISCOVER → OFFER → REQUEST → ACK This identifies the failing stage.
Check:
Service running
Correct interface
Correct network
Scope active
Available leases
Policies
Reservations
Exclusions
Logs Determine:
Pool size
Used addresses
Available addresses
Lease duration If the pool is exhausted, identify why before expanding it.
Verify that the client is in the intended:
VLAN A wrong VLAN can produce:
No DHCP or:
DHCP from wrong subnet. If the server is on another subnet, verify:
Relay enabled
Correct server destination
Correct client-facing interface
Routing
ACL
Return path After a lease succeeds, verify:
IP
Mask
Gateway
DNS
Lease duration A successful DORA exchange can still deliver incorrect configuration.
Verify local routing.
If the client cannot reach its expected gateway, investigate:
Subnet mismatch
VLAN
ARP
Gateway availability
Firewall If gateway connectivity works, test an appropriate remote IP destination.
This separates:
Routing/connectivity from:
DNS. Only after IP connectivity is confirmed should you focus on name resolution.
Check which DNS server DHCP supplied.
Then test:
nslookup example.com or:
dig example.com Compare the DHCP server identifier/configuration seen by multiple clients.
Unexpected differences can reveal an unauthorized DHCP service.
Client has no network
|
v
Check IP configuration
|
+----+------------------+
| |
169.254.x.x Valid-looking IP
| |
v v
DHCP likely failed Check gateway
| |
v +----+----+
Capture DORA | |
| FAIL WORKS
v | |
DISCOVER? v v
| | VLAN/ Test remote IP
NO YES subnet |
| | gateway v
v v IP works?
Client OFFER? | |
NIC | | NO YES
Link NO YES | |
VLAN | | v v
v v Routing Test DNS
Server REQUEST? firewall
Relay | |
Scope NO YES
| |
v v
Client ACK?
| |
NO YES
| |
v v
Server/path Verify
DHCP options This workflow keeps troubleshooting evidence-driven.
| Symptom | Likely Areas to Investigate |
|---|---|
| 169.254.x.x | DHCP exchange/path failed |
| Discover, no Offer | Server, relay, scope, ACL |
| Offer, no Request | Client or return-path issue |
| Request, no ACK | Server/policy/path |
| One VLAN fails | Relay, VLAN, scope |
| All VLANs fail | DHCP server/common infrastructure |
| Wrong subnet | VLAN, rogue DHCP, server policy |
| Wrong gateway | DHCP options |
| Wrong DNS | DHCP DNS option |
| New devices fail | Scope exhaustion |
| Existing devices work, new fail | Server/scope issue |
| Intermittent config | Rogue DHCP/multiple paths |
| Lease renewal fails | Server/path/relay availability |
This table is a starting point, not a substitute for packet evidence.
When responding to a DHCP incident, collect:
Client MAC:
Interface:
VLAN:
Expected subnet:
Actual IP:
Subnet mask:
Default gateway:
DHCP server:
DNS servers:
Lease obtained:
Lease expires:
APIPA present:
DHCPDISCOVER seen:
DHCPOFFER seen:
DHCPREQUEST seen:
DHCPACK seen:
DHCPNAK seen:
Scope active:
Scope utilization:
Relay configured:
Relay destination:
UDP 67/68 permitted:
Recent VLAN changes:
Recent DHCP changes:
Recent firewall changes: A report like this is much more useful than:
"Users have no Internet." DHCP stands for Dynamic Host Configuration Protocol. It provides network configuration to clients and can automatically allocate reusable IP addresses.
DORA is a common shorthand for:
Discover
Offer
Request
Acknowledgement representing the typical initial DHCPv4 lease process.
On Windows, an address in the 169.254.0.0/16 APIPA range commonly indicates that a DHCP-configured interface could not obtain the expected DHCP lease and self-configured a link-local address.
It is link-local addressing, not normal globally routed Internet addressing.
No. It usually points to an addressing/DHCP problem when a normal DHCP lease was expected. Fix IP configuration before focusing on DNS.
Use:
ipconfig /release
ipconfig /renew Then verify using:
ipconfig /all ipconfig /renew keep failing?Possible causes include an unavailable DHCP server, missing relay, wrong VLAN, exhausted scope, firewall/ACL issue, or client/network problem.
DHCPv4 commonly uses UDP port 67 on the server side and UDP port 68 on the client side.
The server may not receive the request, may not have a usable scope, may be unavailable, or the offer may be blocked on the return path.
A DHCP relay forwards DHCP communication between clients and DHCP servers located on different IP networks.
Not necessarily. DHCP relay functionality allows centralized servers to serve clients on multiple subnets.
On network platforms, an IP helper mechanism is commonly used to relay certain UDP broadcasts—including DHCP in typical configurations—to a server on another subnet. Exact behavior is platform-specific.
Investigate the failing VLAN’s relay configuration, scope, VLAN membership, gateway, ACLs, and routing.
It occurs when the DHCP server has no usable addresses remaining in the relevant allocation pool for new clients.
Lease duration and client turnover can contribute to pool pressure, but investigate actual server lease state before deleting leases indiscriminately.
T1 is the renewal timer. In the normal default model described by RFC 2131, it is 50% of the lease duration unless another value is specified.
T2 is the rebinding timer. Its common default is 87.5% of the lease duration unless another value is supplied.
No. DHCP clients normally attempt renewal before expiration.
Possible causes include DHCP server failure or scope exhaustion. Existing clients may still have valid leases while new clients need immediate allocation.
DHCP can distribute an incorrectly configured gateway option if the scope/server configuration is wrong.
Yes. DHCP can distribute incorrect DNS resolver addresses even when the IP lease itself succeeds.
A client can receive an unexpected subnet because of VLAN errors, rogue DHCP, server policy, or other DHCP/network configuration problems.
It is an unauthorized or unintended DHCP server that responds to client requests and may distribute incorrect network configuration.
Compare DHCP server identifiers, gateways, DNS servers, and lease information across clients and capture DHCP Offer packets to identify responding servers.
DHCP snooping is a switch security capability that can restrict DHCP server responses to trusted paths and help protect against rogue DHCP servers.
Yes. Incorrect trusted/untrusted port or VLAN configuration can cause legitimate DHCP messages to be dropped.
The VM may use a separate virtual switch, NAT network, VLAN, or virtual DHCP service. Troubleshoot the virtual networking path.
No. DHCP only provides network configuration. Routing, NAT, firewall, DNS, and application services can still fail.
Not completely. Verify the subnet mask, gateway, DNS servers, lease information, and whether the address came from the intended DHCP server.
Packet capture is extremely valuable because it reveals exactly where the Discover → Offer → Request → ACK sequence stops.
DHCP troubleshooting becomes much easier when the protocol is treated as a sequence rather than a black box.
Start with:
DHCPDISCOVER
|
v
DHCPOFFER
|
v
DHCPREQUEST
|
v
DHCPACK If there is no Discover:
Investigate the client, interface, link, VLAN, or local networking stack. If there is Discover but no Offer:
Investigate the DHCP server, relay, scope, VLAN, ACL, and network path. If an Offer arrives but the transaction does not complete:
Investigate the Request/ACK path and client/server behavior. If DORA completes successfully but connectivity still fails:
Inspect the IP address
Subnet mask
Default gateway
DNS servers
Routing
Firewall A Windows client unexpectedly using:
169.254.x.x should lead you toward the DHCP/addressing path—not immediately toward DNS.
And when only one VLAN fails, investigate what is unique to that VLAN:
VLAN membership
|
v
Gateway
|
v
DHCP Relay
|
v
Routing / ACL
|
v
DHCP Scope The most useful rule is:
Do not troubleshoot DHCP by repeatedly renewing the lease. Find the exact DHCP message or network layer where communication stops.
Once the client has a valid IP configuration, continue troubleshooting through TCP/IP, Computer Networking, Routers and Switches, Firewalls, and DNS according to the layer that actually fails.
AI Agents as Code: Managing AI Agent Configurations, Prompts and Tools with Git AI agents…
Data Center Power Distribution Architecture: UPS, PDU, Redundancy and Rack Power Explained Data center power…
DNSSEC Troubleshooting: Fix SERVFAIL & DNSKEY Errors DNSSEC Troubleshooting: How to Fix SERVFAIL, DS, DNSKEY…
Terraform State Management Explained: Remote State, Locking, Backends and Best Practices Terraform makes infrastructure reproducible…
RTO vs RPO Explained: Disaster Recovery Objectives, Examples and Planning A disaster recovery plan is…
Network Intrusion Detection Explained: NIDS, Sensors, Signatures and Traffic Analysis A firewall can decide whether…