Search the field guide, causes, requirements, and glossary

Roaming across subnets

When a roam lands a client in a different subnet, either the network tunnels it back to its old one or the client must take a new address, and a new address ends every open connection.

On this page5 sections
  1. How it presents
  2. Why it happens
  3. How to confirm it
  4. The fix
  5. Prevent it at design time

Is this your problem? It presents like this

  • Drops happen at the same boundaries on a route, where coverage passes from one building, controller, or access point group to another.
  • Roams inside one area are clean. Only the crossing fails.
  • The gap runs to seconds, not milliseconds, and the device often comes back with a different IP address.
  • A DHCP exchange follows the roam in a capture, sometimes opening with the server refusing the old address.
  • The radio link recovers quickly, but TCP sessions and EtherNet/IP connections time out and have to be reopened.
  • Devices that stay inside one area on the same SSID see none of it.
Bands
2.4 GHz5 GHz5 GHz DFS6 GHz

Why it happens

A roam moves the radio link. It does not move the subnet. When the next access point on a route places the client in a different VLAN, the client arrives holding an address from a network that does not exist there.

Either the network hides the move or the client takes a new address. One vendor’s controllers form roaming groups that forward a client’s traffic between subnets so it keeps its address, but a client that crosses the edge of a group is fully authenticated again. Another vendor anchors the client at the first access point it joined and tunnels it back there. If the new access point cannot reach the anchor, the client has to run DHCP on the new VLAN. An industrial design guide for EtherNet/IP takes the simplest route: plant-wide roaming equipment, such as overhead cranes, gets its own SSID on one VLAN that spans every zone it crosses.

Without a tunnel, the client asks DHCP, and DHCP was not built for speed. Archived Windows CE documentation describes a client that renews its address after every move and gets a new one when it crosses into a new subnet. The server refuses the old address, and the client restarts the full exchange. A lost message waits 4 seconds, plus or minus one1, before the first retry. Checking a new address for conflicts can take as much as seven seconds. One vendor’s guide says a voice call that roams between VLANs without a tunnel goes quiet for several seconds.

A new address also ends every session the device had open. TCP identifies a connection by a pair of sockets, an address and a port at each end, so a new address means a new connection. An EtherNet/IP I/O connection is opened over TCP and then runs over UDP until it times out or is closed. The radio link can be back long before the application has waited out its timeout and reconnected.

You may already have fast roaming tuned and tested. That tuning covers the radio and the keys. It does nothing for an address that changes on the far side of a boundary. A route that stays inside one subnet roams at radio speed. A route that crosses one roams at DHCP speed, unless you have proven the tunnel that carries it.

How to confirm it

  1. Mark every drop point on the route map, and note which access point group, controller, and VLAN serve each side of it.
  2. Capture at a failing boundary and time the gap as the measurement guide describes, from the last data frame on the old access point to the first data frame after the roam.
  3. Look at what follows the reassociation. A DHCP request for the old address, a refusal from the server, and then a fresh discovery mean the client changed subnets. Traffic carrying on from the old address means the network kept it.
  4. Compare the client's IP address before and after the roam, on the client or in the controller's client table.
  5. Check whether the device takes its address from DHCP or has a fixed one, and whether the VLAN on the far side carries that subnet.
  6. Check the controller or access point logs at the drop for a mobility or anchor tunnel that failed to form, or a full authentication at the crossing.

The measurement guide shows how to probe, capture, and time a drop step by step.

The fix

  • Map the SSID that mobile devices use to one VLAN and subnet at every access point along their route.
  • Where a route must cross subnets, configure the infrastructure's mobility or anchor tunneling so the client keeps its address, and confirm that every access point on the route can reach the anchor.
  • Keep the controllers a route crosses in one roaming domain, so the crossing does not force a full authentication.
  • Give mobile devices that hold control connections an address in a subnet that is present everywhere they travel.

Prevent it at design time

  • Lay the subnet and VLAN map over the route map at design time. Every mobile route should sit inside one subnet or inside a tested tunnel.
  • When an extension adds a building, a controller, or an access point group, check which VLAN the mobile SSID lands in there before vehicles drive into it.
  • Test roaming across every boundary on the route with the real application connections open, and compare the gap with the application's timeout.

About this page

Built from 8 sources: 3 standards bodies and labs, 1 protocol owner or alliance and 4 vendor documents. Researched and drafted with AI assistance. How pages are made

First published
Last updated
Change history (1)
  • First published
Cite this page

Plain

Ben Rutter. "Roaming across subnets." OT Wireless, published October 8, 2026. https://otwireless.com/causes/roaming-across-subnets/

APA 7

Rutter, B. (2026, October 8). Roaming across subnets. OT Wireless. https://otwireless.com/causes/roaming-across-subnets/

BibTeX

@misc{rutter2026roamingacrosssubnets,
  author = {Rutter, Ben},
  title = {{Roaming across subnets}},
  year = {2026},
  howpublished = {\url{https://otwireless.com/causes/roaming-across-subnets/}},
  organization = {OT Wireless},
}