Skip to content

Edge gateways for industrial data

An edge gateway is a small computer at an industrial site that sits between the plant network and the internet. It reads controllers, meters and sensors over industrial protocols such as OPC UA and Modbus, buffers the readings when the uplink drops, and forwards them upstream over connections it opens itself.

This guide is for the people who sign off on the box. The OT engineer owns the plant network, the IT lead owns the firewall, and the asset performance team is waiting for the data. It covers what hardware to buy, where the gateway plugs in, what the firewall has to allow, and how Fleetera installs and runs its software on it.

What does an edge gateway do?

It bridges a gap that exists on purpose. Controllers and meters sit on a plant network that nothing on the internet can reach, and that is the design rather than an oversight. The analysis runs somewhere that is on the internet. So a machine inside the site has to read the equipment and carry the readings out, without opening a way back in.

That machine does four jobs, and each one fails in its own way.

  • It reads. Protocol drivers talk to each device in the language it already speaks, on a schedule or by subscription.
  • It holds. Readings land in a local buffer first, so a dropped uplink costs a delay rather than a gap, for as long as the buffer has room.
  • It sends. Batches of readings go upstream over connections the gateway opens, so the site firewall never has to accept one.
  • It answers to the cloud. It pulls configuration and software updates and reports its health, all over connections it opens, which is how a small team runs gateways at sites it rarely visits.
  • Wind turbineOPC UA
  • Battery rackModbus
  • Energy meterMQTT · REST
telemetry
Edge gateway
one process · no inbound ports
drivers
OPC UAModbusMQTTREST
store-and-forward
private link · outbound-only
telemetryconfig
Fleetera cloud
Streams · validatedHot + cold historyDashboards · alerts · KPIs
EU · per-tenant isolated
Equipment reaches the gateway over its own protocol. The gateway buffers what it reads and sends it out of the site over a link it opens itself.

The term covers a wide range. Some gateways only translate one protocol into another, and some run analysis on site. This guide is about the common case for asset performance work: a Linux machine running collection software, with the analysis in the cloud. The hardware and placement advice applies to any gateway of that kind. The firewall rules and everything after them are specific to Fleetera.

What hardware should you use?

Less processor than you might expect, and more disk than you might think. The software runs on a dual-core machine. The disk is where the real sizing decision sits, because the buffer that carries a site through an outage lives there.

ComponentMinimumRecommended
ProcessorDual-core, x86_64 or ARM64Quad-core
Memory2 GB8 GB
Storage16 GB freeAn SSD sized for the on-disk buffer
NetworkOne wired interfaceTwo, one per network
Operating system64-bit Linux with DockerA long-term support release
PowerMains supplyMains behind a UPS

The minimum runs the software. The recommended column is what we would put on a production site, and most of the memory and disk difference is the buffer. The buffer keeps its fast lane in memory and its durable lane on disk. On a 2 GB machine the fast lane, the operating system and Docker compete for the same memory.

Size the disk from the outage you want to ride out, not from a price list. The buffer's disk size and retention are set per gateway, and the store and forward guide walks through the arithmetic. Leave room beyond it for the operating system, container logs, and a second copy of each software image while an update rolls out. Choose an SSD with an endurance rating suited to steady writes, because during an outage the buffer writes to it continuously.

Two form factors cover almost every site.

  • NUC-class mini PCs, such as Intel or ASUS NUC models, suit a server room or a site office with climate control. They are cheap, quiet and easy to swap.
  • Fanless DIN-rail industrial PCs suit a control cabinet. They tolerate the cabinet's heat, dust and vibration, mount on the same rail as the rest of the equipment, and often run from the cabinet's 24 V DC supply.

Protect the power either way. Put the gateway on the site's UPS, and set its firmware to power on after an outage so the machine comes back by itself. The Fleetera runtime starts at boot and resumes from its cached configuration, even if the cloud is unreachable at that moment.

Where does the gateway sit on the network?

On a boundary your OT security design already has a name for. Industrial sites keep operational technology apart from IT for a reason. A controller that runs a process cannot be patched weekly, and it must never be reachable from the internet. The gateway is the one machine that has to talk to both sides. Where you put it is a security decision first and a networking one second.

The usual map for that decision is the Purdue model. It stacks an industrial network in levels, and the rule that matters here is simple. Nothing crosses from the plant to the business without passing a boundary.

The Purdue model's levels in plain terms, and how the gateway relates to each one.

LevelWhat lives thereThe gateway's relationship to it
Levels 0 and 1The physical process, its sensors and drives, and the controllers that run itThe equipment it reads, through the controllers' own protocols
Level 2Supervisory control: SCADA and operator screensLeft in charge of the process. The gateway can read from it where it exposes data
Level 3Site operations: historians and site serversOften the easiest place to read many signals at once
Level 3.5The OT DMZ, a buffer network between the plant and the businessWhere the gateway belongs
Levels 4 and 5Business IT and the enterprise network, with the internet beyondReached only outbound, through the site firewall

IEC 62443, the main security standard for industrial control systems, describes the same idea as zones joined by conduits. Either way the gateway belongs where a boundary already is, never in the middle of the plant network with a cable run to the office.

In practice that leaves two good placements.

  • In the OT DMZ, where the site has one. The inner firewall lets the gateway open connections to the specific devices it reads, and the outer firewall lets it out to the internet. This is the textbook answer and the one a security reviewer expects.
  • Dual-homed, where the site has no DMZ. The gateway gets two network interfaces, one on the plant network and one on a network that reaches the internet. It reads on the first, sends on the second, and routes nothing between them. The gateway itself becomes the boundary, so it has to be hardened like one.
Every connection that crosses the firewall starts at the gateway, including the private network that brings diagnostics and commands back down to it.

A dual-homed gateway is a boundary device, and a reviewer will check it as one.

  • Nothing routes between the interfaces. Docker switches IP forwarding on for its own containers, so do not rely on that setting alone. Confirm that the host firewall drops traffic crossing from one interface to the other, and test it from a machine on the plant side.
  • The routes are specific. The plant interface carries routes to the device subnets it reads and no default gateway. The default route points out of the uplink interface.
  • The plant side is offered nothing. The Fleetera runtime publishes its local web interface only on its private network address, and its discovery companion only on the loopback address. Hold anything else installed on the machine, remote login included, to the same rule.

The shortcut to avoid

One interface on a flat network that reaches both the equipment and the internet will work on day one. It also leaves the controllers one routing mistake away from the internet, and a security review will rightly stop it.

What does the firewall need to allow?

Very little, and nothing inbound. Every connection starts at the gateway and goes out. Nothing on the internet ever opens a connection to the site, so the firewall needs no inbound rule and no port forwarding.

Every firewall rule a Fleetera gateway needs, all of them outbound.

DestinationPortWhat it carries
Fleetera API443/TCP outRegistration at install, then a configuration check every 30 seconds and a heartbeat every 60 seconds
Image registry443/TCP outThe runtime's software, at install and on every update
VPN coordinator443/TCP outJoining the private network, and coordinating it afterwards
Configuration storage443/TCP outThe install bundle, downloaded during installation
Private network peers41641/UDP out, optionalDirect WireGuard traffic. If this is blocked, the same traffic is relayed over 443/TCP

No row in that table is inbound. The install guide on docs.fleetera.ai lists the exact hostname behind each destination. The install script probes the API, the registry and the configuration storage before it installs Docker, and the VPN coordinator as soon as registration tells it the address. A missing rule stops the install early, with the hostname in the error.

Two details catch firewall teams out. During installation, and only if they are missing, the script downloads Docker and the VPN client from their publishers, so either preinstall both or allow those downloads for the install window. And the UDP rule is optional. Without it the private network still connects, relayed through a server on 443/TCP rather than sent directly, and allowing the rule only gives it the shorter path.

How does the private network work?

Each organization gets its own private network, built on WireGuard and coordinated by a Headscale server that Fleetera runs. The coordinator hands out keys and tells each machine how to reach the others. WireGuard encrypts the traffic between them.

A gateway joins once, during installation.

  1. Creating the gateway in the app mints a key for it. The key works once, expires 24 hours after it is minted, and carries your organization's tag.
  2. The install script spends the key to join the gateway to your organization's network, under the alias you gave the gateway.
  3. From then on the gateway holds a stable private address, which the app shows on the gateway's page.

Organizations are kept apart by the coordinator's access rules. A tagged gateway may reach the Fleetera cloud and the other gateways of its own organization, and nothing that belongs to anyone else.

What travels over the private network, and in which direction.

TrafficDirectionWhat it is for
ReadingsGateway to cloudThe uplink of every buffered reading
Remote diagnosticsCloud to gatewayLogs, restarts, connectivity tests and OPC UA discovery, without a site visit
CommandsCloud to gatewayCommands to equipment over the OPC UA and Modbus TCP drivers, risk-checked before they are sent and recorded

Traffic flows from the cloud to the gateway only because the gateway built the tunnel first, from the inside out. That is why the firewall table above has no inbound row, even though diagnostics and commands travel inward.

The gateway advertises no routes into the private network. The platform reaches the gateway and nothing behind it. Your controllers never become addresses on this network, and the runtime is the only software that talks to them. The runtime's own web interface listens on port 8080 on the private network address only, so it is not reachable from the plant or office interfaces.

What the private network is not

It is not a remote-access path into your plant. It connects the Fleetera cloud to your gateways, and it routes nothing onward into the plant network.

What is the Fleetera runtime?

The software a Fleetera gateway runs. It is one process, shipped as a Docker image, holding everything a gateway needs in one place: the protocol drivers, the buffer, the uplink, and the loops that keep it in step with the cloud. Two small companions normally run beside it, one for OPC UA discovery and one that applies updates.

The parts of the Fleetera runtime and the job each one does at the site.

PartWhat it does
DriversFour, built in: OPC UA with subscriptions or polling, Modbus TCP, MQTT and REST
BufferMemory for the steady state, disk for anything that has to outlast an outage or a restart, with size and age limits set per gateway
UplinkSends batches of readings to the cloud, and puts any batch that fails back into the buffer to try again
Configuration syncChecks the cloud for new configuration every 30 seconds, applies it to the drivers, reports what it applied, and keeps a copy on disk
HeartbeatReports every 60 seconds: runtime version, each driver's status, buffer use, and the host's CPU, memory and disk
UpdatesNew versions roll out automatically, so the fleet stays on a known-good build without a site visit

The gateway pulls its configuration on its own schedule, so the cloud never reaches into the site to change it. A change made in the app arrives at the next check, within about half a minute, and the app shows when the gateway reports it applied.

When the uplink drops, the drivers keep reading, new readings go to the buffer's disk lane, and the backlog goes out when the link returns. The buffer has limits. An outage longer than they allow discards the oldest undelivered readings, and the runtime counts and reports every one. The store and forward guide covers exactly where that boundary sits.

The runtime behind every gateway

Four drivers, a two-lane buffer and one outbound uplink, configured from the cloud and updated without a site visit.

Explore Fabric

How does the platform deploy it?

From the app, with one command on the gateway. With the firewall rules in place, a new site is a short sitting.

  1. Open the site in the app, go to Gateways and choose Add gateway. Name it, pick x86_64 or ARM64, and optionally limit it to part of the site's asset tree or change its buffer sizes.
  2. The app mints a single-use install token and the private network key, both valid for 24 hours, and shows one install command.
  3. Run the command on the gateway as root. The script checks the operating system family and the processor architecture, then probes the outbound destinations before it installs Docker.
  4. It installs Docker and the VPN client if they are missing, registers the gateway with the platform, and joins it to your organization's private network.
  5. It writes the gateway's files to their own install directory, starts the runtime, and installs a system service so the runtime comes back after every reboot.
  6. The gateway's page in the app shows each step as the script reports it, and the gateway turns Online at its first heartbeat.

Then the work moves back into the app. Connectors define which equipment the gateway reads and how. Discovery browses an OPC UA server's address space from the gateway itself. Binding maps each raw signal to a named variable on a real asset. None of it needs another visit, because every change reaches the gateway as configuration.

If the token expires

Install tokens work once and last 24 hours. If one expires, or an install fails partway, regenerate it from the gateway's page. That invalidates the old command and mints a new private network key with the new token.

What should you check before going live?

Each check below takes minutes at a desk, and each one is far more expensive to discover on the day of the site visit.

Checks to run before a gateway goes live, and how to confirm each one.

CheckHow to confirm it
1. The outbound rules are openFrom the gateway, connect to each destination on 443/TCP. The install script runs the same probes and stops at the first that fails
2. The plant side reaches every deviceFrom the plant interface, connect to each device's address and port. After install, the platform can run the same test from the gateway
3. Nothing routes between the interfacesFrom a machine on the plant network, try to reach an office or internet address through the gateway. It should fail
4. The clock is synchronizedPoint the gateway at a time source, and an internal one is fine. Modbus, MQTT and REST readings carry the time the gateway read them
5. The disk covers your outageSize the buffer from the longest outage you want to ride out, then add room for the operating system, logs and updates
6. It comes back by itselfCut the power. The gateway should boot, start the runtime and turn Online again with nobody touching it
7. Someone with root is on handThe install needs root on the gateway for Docker, the VPN client and the system service

Then watch the first hour. The heartbeat carries each driver's status and the buffer's fill level, so a device refusing connections or a buffer that keeps growing shows on the gateway's page long before it shows as a gap in a chart. A gateway that sends no heartbeat for five minutes turns Offline.

Common questions

Terms on this page

The vocabulary this guide uses, defined plainly in the industrial data glossary. Each one opens at its own entry.

Edge gateway hardware, networking and security | Fleetera