MYLan / DHCP education

Understanding DHCP through a practical field network tool.

Every device on a network needs an IP address before it can talk. This Event Tech Research guide explains how DHCP works, why it matters, and how MYLan can support temporary audio, production, and engineering networks.

Interactive DHCP Protocol MYLan Field Networks

Why DHCP Exists

Every device on an IP network needs a unique address to send and receive data. Without one, it cannot participate — it is invisible.

There are two ways a device can get an IP address:

Manual (Static)

Someone types the address into each device by hand. Works for small setups. Breaks at scale — one typo, one duplicate, and the network has a conflict.

Automatic (DHCP)

A server listens for new devices and hands out unique addresses from a pool. No human involvement. No duplicates. Devices just connect and work.

DHCP — Dynamic Host Configuration Protocol — is the automatic method. It has been the standard since 1993 (RFC 1531) and is used on virtually every network in the world, from home Wi-Fi to live event production.

MYLan in practice You are setting up a temporary Dante audio network for a live show. 40 devices need IP addresses: consoles, stage boxes, amplifiers, wireless receivers. You plug in your laptop, launch MYLan, click Start. Every device that connects receives an address automatically. No spreadsheet. No conflicts.

The DORA Handshake

When a device connects to a network and needs an IP address, it performs a four-step conversation with the DHCP server. This is called DORA:

💻
Client
No IP
🖧
MYLan Server
192.168.1.1
D — Discover
O — Offer
R — Request
A — Acknowledge
Step 0 / 4
Click Play to watch the full handshake, or Step to advance one message at a time.
What happens at each step

1. Discover

The client has no IP address yet. It cannot send to a specific server because it does not know if one exists. So it broadcasts to the entire network: "Is there a DHCP server out there?"

This broadcast goes to the special address 255.255.255.255 on UDP port 67. Every device on the network segment receives it, but only DHCP servers respond.

2. Offer

The server receives the Discover and selects an available IP from its pool. It broadcasts an Offer back: "I can give you 192.168.1.50 with these settings."

The Offer includes the proposed IP, the subnet mask, the gateway, the DNS server, and how long the lease is valid for.

3. Request

The client broadcasts a Request confirming it wants the offered address: "Yes, I accept 192.168.1.50 from server 192.168.1.1."

This is broadcast (not unicast) because there might be multiple DHCP servers on the network. The Request tells all of them which offer was accepted.

4. Acknowledge

The server confirms the lease and commits it to its records: "Confirmed. 192.168.1.50 is yours for 8 hours."

The client can now configure its network stack with the assigned address and begin communicating on the network.

MYLan's activity log When you watch MYLan's log during a real connection, you see exactly this sequence: DISCOVER from [MAC] → Sent OFFER → REQUEST from [MAC] → Sent ACK. Each line is timestamped so you can trace exactly when each device joined the network.

Inside a DHCP Packet

DHCP messages are carried inside UDP datagrams using the BOOTP packet format. Every message — Discover, Offer, Request, Acknowledge — uses the same structure. Click on any field group to learn what it does.

Op / HW Transaction ID Your IP (yiaddr) Server IP (siaddr) Client MAC (chaddr) Magic Cookie
Click a coloured field group above to explore that part of the packet.
Key fields explained

Op (byte 0)

1 = BOOTREQUEST (client → server). 2 = BOOTREPLY (server → client). MYLan only processes requests and only sends replies.

Transaction ID — xid (bytes 4–7)

A random 32-bit number chosen by the client. The server copies it into the reply so the client can match responses to requests, even if multiple DORA handshakes are in flight simultaneously.

yiaddr — "Your" IP Address (bytes 16–19)

In an Offer or Acknowledge, this is the IP the server is assigning to the client. In a Discover, it is all zeros because the client has no address yet.

chaddr — Client Hardware Address (bytes 28–33)

The client's MAC address. This is how the server identifies which device is which — it is the key that the lease table is indexed by.

Magic Cookie (bytes 236–239)

The fixed value 99.130.83.99 (hex 63.82.53.63). This marks the boundary between the fixed BOOTP header and the variable DHCP options that follow. Every valid DHCP packet contains this exact sequence.

Lease Management

When a server assigns an IP, it does not give it away permanently. It creates a lease — a time-limited reservation that ties a MAC address to an IP address. This is the core data structure of any DHCP server.

Live Lease Simulator

Simulate devices connecting to a MYLan server. Watch how the lease table fills.

StatusMAC AddressIP AddressExpires
Pool: 192.168.1.50 – 192.168.1.150 · 0 / 101 addresses used
Why leases expire

If leases were permanent, a device that disconnected would hold its IP address forever. Over time, all addresses would be consumed by devices that are no longer on the network.

Expiry solves this. MYLan uses an 8-hour default lease. When the lease expires, the IP returns to the pool and can be assigned to the next device that connects.

Active clients renew their lease automatically before it expires — they send a new REQUEST and receive a fresh ACK with a reset timer. The user never notices this happening.

MYLan v2.1 — Lease persistence MYLan saves active leases to mylan-leases.json on disk. If the server stops and restarts — even mid-show — it reloads the lease table and remembers which devices have which addresses. This prevents the duplicate IP issue that affects simpler DHCP implementations.

DHCP Options

After the fixed header and magic cookie, DHCP packets carry a variable list of options — key-value pairs that configure the client. Each option has a number, a length, and a value. Click any option to learn more.

Click an option above to see what it does and how MYLan uses it.

Using MYLan in the Field

MYLan is a portable DHCP server built for field deployment. It runs on Windows and macOS, requires no installation, and provides a complete DHCP service from a single executable.

Step 1 — Connect and Launch

Connect your laptop to the target network via Ethernet. Launch MYLan with elevated privileges — Run as Administrator on Windows, or sudo ./MYLan on macOS. The application window appears with the status indicator showing Idle.

If you do not run with elevated privileges, MYLan displays a warning in the footer bar. DHCP requires binding to UDP port 67, which is a privileged port on all operating systems.

Step 2 — Select Adapter and Configure

Select the correct network adapter from the dropdown. Click Refresh NICs if you plugged in after launching. Review the network configuration:

Server IP

The address MYLan assigns to itself. Default: 192.168.1.1

Subnet Mask

Defines the network boundary. Default: 255.255.255.0 (/24)

Pool Range

The range of addresses available for clients. Default: .50 – .150

Gateway

The default route for client traffic. Auto-syncs with Server IP.

DNS

Domain name resolution server. Default: 8.8.8.8 (Google Public DNS)

For Dante audio networks, a common configuration uses 10.0.0.1 with a pool of 10.0.0.10 – 10.0.0.200.

Step 3 — Start and Monitor

Click ▶ Start. MYLan configures the adapter with a static IP and begins listening for DHCP broadcasts. The status indicator turns green and the activity log begins recording.

Connect client devices. Watch the log for the DORA sequence. Each successful connection appears as four log entries (DISCOVER → OFFER → REQUEST → ACK) and a new row in the Active Leases table.

Step 4 — Stop and Tear Down

Click ■ Stop. MYLan saves all active leases to disk and closes the UDP listener. Existing clients keep their addresses for the remaining lease duration (8 hours by default).

After stopping, restore the adapter to automatic (DHCP) configuration via your OS network settings if you need to reconnect to other networks.

Troubleshooting

Click a symptom to see the diagnosis and resolution.

Test Yourself

Seven questions to check your understanding. Select the best answer for each.