The Distributed Peer Update feature in IGEL OS 12 (formerly known as Buddy Update in IGEL OS 11) allows IGEL OS 12 devices to act as local update servers. Instead of each device downloading applications and firmware updates from a central repository (for example, UMS app proxy, Distributed App Repository, IGEL App Portal), devices in the same local network can share the download load between them.
Using the Distributed Peer Update mechanism reduces:
-
bandwidth usage across WAN links
-
load on central repositories
-
time until all devices in a subnet receive the assigned updates
Starting from IGEL OS 12.7.4, the IGEL Discovery service allows endpoint devices on the same local network to automatically find and obtain updates from one another. For details, see the section How IGEL Discovery Works
Limitations and Known Issues
Community Applications Not Supported Yet
Currently, community applications are not supported by Distributed Peer Update. Including a community application in an update can break the entire update process. Fixes are planned to be added with a future IGEL OS 12 release.
Do not use Distributed Peer Update for updates that include community applications until fixes are available.
HTTPS Not Supported Yet
Currently, the communication for the Distributed Peer Update is done through HTTP by default. HTTPS support is planned to be added with a future IGEL OS 12 release.
Components
Peer-to-peer distribution relies on two components that run on IGEL OS devices:
-
IGEL Discovery
-
Distributed Peer Update Server (“Buddy”)
Together, these components allow peer-to-peer distribution of applications and updates within the same subnet.
|
Component |
Description |
Network Traffic Types |
Configuration |
|---|---|---|---|
|
IGEL Discovery |
Zero-configuration peer discovery service that automatically discovers peers that already have applications available. It also decides if a device that should download from a repository if no peer has the application. |
IGEL Discovery works only within the same broadcast domain. The Discovery uses:
|
|
|
Distributed Peer Update Server (“Buddy”) |
HTTP server running on the device that provides applications and updates to other IGEL OS devices. |
HTTP peer transfers |
Requirements
IGEL OS Version
IGEL OS 12 devices need to run IGEL OS Base System version 12.7.4 or higher.
Port Requirements
The IGEL Discovery service and the Distributed Peer Update Server use separate ports, as described in the table below:
|
Service |
Protocol |
Default Port |
Configuration |
|---|---|---|---|
|
IGEL Discovery |
UDP |
|
System > Update > IGEL Discovery > Port |
|
Distributed Peer Update Server |
HTTP |
|
System > Update > Distributed Peer Update Server > Port of the distributed peer update server |
When configuring the ports, consider the following:
-
The Distributed Peer Update Server and the IGEL Discovery service must run on different ports.
-
The same Discovery port must be configured on all devices that should discover each other.
-
The same Distributed Peer Update Server port must be configured on all devices that should act as peers for each other.
-
The configured ports must be open and allowed by any host firewall on the endpoint and by any network firewalls between devices.
Network Requirements
Some network configurations may prevent discovery from working correctly. In these environments, devices may not be able to discover peers automatically.
For example:
-
Wi-Fi networks with client isolation
-
Networks that block broadcast traffic
Fallback Behavior with Repositories
Peer-to-peer distribution relies on IGEL Discovery to locate a device that already has the requested application. If no device in the subnet can provide the application, Discovery elects one device to download the application from a configured repository. This device becomes the fallback candidate. Once the application is downloaded and installed, the device can serve it to other devices as the Distributed Peer Update Server.
No reboot is required for the Distributed Peer Update Server to start distributing newly received applications. As soon as an application is installed, it can be served to peers.
The fallback device downloads the application from the repository with the highest priority that contains the application. Supported repository types include:
-
UMS App Proxy
-
WebDAV repositories
-
IGEL App Portal
-
Other repositories configured under System > Update > Repositories
Can Fallback Be Disabled?
There is no direct setting to disable the fallback, because at least one device (the first device of the subnet) must obtain the application from a repository. However, repository usage is limited to the first download within a subnet.
Once a device has downloaded the application:
-
The device can serve the app to other peers if it is configured as Distributed Peer Update Server.
-
IGEL Discovery detects the available peer.
-
Other devices download the application directly from the peer instead of the repository.
Recommended Configuration - Intended Use Case
The intended use case is to operate Distributed Peer Update as a peer‑to‑peer network, where all devices both discover and serve updates.
To do this, you can configure devices through profiles:
-
Create a profile.
-
In the profile configurator, configure IGEL Discovery and Distributed Peer Update Server on all devices according to the table:
|
Configuration Page |
Parameter |
Value |
|---|---|---|
|
Enable IGEL Discovery |
Enabled |
|
|
Discovery Port |
Same on all devices (default 22336) |
|
|
Enable Distributed Peer Update Server |
Enabled |
|
|
Port of the distributed peer update server |
Same on all devices (default 22335) |
-
Save and assign the profile to the devices.
With this configuration:
-
You can assign applications to devices without considering server roles.
-
Discovery ensures that only one device at a time in a subnet uses the fallback to fetch the application from a repository.
-
Once a device that is configured as a Distributed Peer Update Server has the application, it becomes a peer server for other devices.
-
The distribution speed ramps up quickly due to exponential growth:
-
1 Distributed Peer Update Server with the application → 1 device can download and become Peer Update Server
-
2 Distributed Peer Update Servers → 2 devices can download and become Peer Update Server
-
4 Distributed Peer Update Servers → 4 devices can download and become Peer Update Server
-
8 Distributed Peer Update Servers … and so on …
-
Rollout Considerations for Large Environment
In very large environments or networks with limited bandwidth, application deployments can be performed in waves as a best practice.
Example rollout:
-
First wave: 100 devices
-
Second wave: next 100 devices
-
Third wave: remaining devices
This prevents excessive simultaneous downloads and reduces network congestion.
How IGEL Discovery Works
Once IGEL Discovery and Distributed Peer Update are enabled, application distribution is automated.
Distribution Process
-
A management system (for example UMS) assigns an application to a device.
-
The device’s update daemon checks whether Discovery is enabled.
-
If Discovery is enabled, the update daemon asks Discovery to find a peer with the requested application.
-
IGEL Discovery broadcasts a UDP request within the subnet asking for the application.
-
Devices respond depending on their state.
Discovery Responses
|
Response |
Meaning |
|---|---|
|
|
A peer has the application and is ready to serve it |
|
|
A peer has the application but is currently serving another download |
|
|
No peer has the application; a device must download from a repository |
To view IGEL Discovery responses, run:
journalctl -u igel-discovery-daemon -f
Update Daemon Behavior
The update daemon reacts to Discovery responses as follows.
|
Discovery Response |
Behavior of the Update Daemon |
|---|---|
|
|
Downloads the application from the peer’s Distributed Peer Update Server over HTTP. |
|
|
The update daemon waits and retries in an infinite loop, with a wait time (for example 100 seconds) between search rounds. |
|
|
The device elected as fallback downloads the application from the repository (UMS app proxy, WebDAV, IGEL App Portal, and so on). Once downloaded and installed, this device can serve the application to others via its Distributed Peer Update Server. |
Update Progress Indicator Behavior
During peer discovery and fallback selection, the update progress indicator may temporarily remain at 0%.
This can occur while:
-
Discovery searches for a peer server
-
A fallback device downloads the application
-
A peer disappears (for example powered off, network loss) and the update daemon has to request another server.
Once a peer becomes available, the download proceeds normally.
Proxy Considerations
IGEL Discovery and the update daemon behave differently when a proxy is configured.
|
Component |
Proxy Behavior |
|---|---|
|
IGEL Discovery |
Bypasses HTTP proxy configuration because it uses UDP broadcast and unicast. |
|
Update daemon |
Honors the configured HTTP proxy when downloading applications. |
This difference can lead to connectivity issues. For example:
-
Discovery identifies a peer that has the required application.
-
The update daemon attempts to download the application.
-
The request is routed through the configured proxy.
-
The proxy cannot route the request back to the local network.
Result: the peer update fails.
Workaround
To prevent peer-to-peer traffic from being routed through the proxy, add the local subnet(s) to the No Proxy for configuration:
-
Find the No Proxy for parameter.
-
Add the CIDR of the subnet, for example:
192.168.1.0/24
10.0.0.0/16
This ensures that peer-to-peer HTTP traffic is sent directly to local devices.
Alternative Configurations
Using Only a Subset of Devices as Peer Servers
You can configure a subset of devices as servers and the rest as clients.
Efficiency drawbacks of this configuration:
-
The UMS assigns applications without considering which devices are servers.
-
It is more likely that a client‑only device is elected first to use fallback.
-
Due to the election protocol:
-
only one device at a time downloads from the fallback repository
-
if the elected device is client‑only, it cannot share the application with others
-
this significantly slows down distribution
-
To configure this model:
-
Create a profile for the servers.
-
Apply the following configurations:
|
Configuration Page |
Parameter |
Value |
|---|---|---|
|
Enable IGEL Discovery |
Enabled |
|
|
Discovery Port |
Same on all devices (default 22336) |
|
|
Enable Distributed Peer Update Server |
Enabled |
|
|
Port of the distributed peer update server |
Same on all devices (default 22335) |
-
Create a profile for the clients.
-
Apply the following configurations:
|
Configuration Page |
Parameter |
Value |
|---|---|---|
|
Enable IGEL Discovery |
Enabled |
|
|
Discovery Port |
Same on all devices (default 22336) |
|
|
Enable Distributed Peer Update Server |
Disabled |
-
Save and assign the profiles to the selected devices.
Recommendations
If you want to use this model, ensure that:
-
servers are prioritized to receive the applications first
-
a sufficient number of servers is available in each network segment
-
for large environments, consider increasing the maximum number of parallel connections on server devices when such an option is available
Using Distributed Peer Update Servers Without Discovery
You can also disable Discovery entirely and configure Distributed Peer Update Servers as static repositories on the clients.
In this model:
-
no auto‑discovery or election protocol is used
-
no limitation of one client at a time coming from the election
-
clients download applications directly from configured servers
This can be useful in tightly controlled environments where you want deterministic server selection and do not need the discovery behavior.
To configure this model:
-
Create a profile for the servers.
-
Apply the following configurations:
|
Configuration Page |
Parameter |
Value |
|---|---|---|
|
Enable IGEL Discovery |
Disabled |
|
|
Enable Distributed Peer Update Server |
Enabled |
|
|
Port of the distributed peer update server |
Same on all devices (default 22335) |
-
Create a profile for the clients.
-
Apply the following configurations and configure each Distributed Update Server as repository:
|
Configuration Page |
Parameter |
Value |
|---|---|---|
|
Enable IGEL Discovery |
Disabled |
|
|
Enable Distributed Peer Update Server |
Disabled |
|
|
Repositories > Repository URL |
For each Distributed Update Server - IP address of the OS 12 device that will serve as the server:
|
|
|
Repositories > Priority |
For each Distributed Update Server - The client will try to get the updates from the repository with the highest priority. |
-
Save and assign the profiles to the selected devices.
Further Information
You might also find the following IGEL Community article useful: FAQ - Distributed Peer Update (Buddy Update).
The content of this external guide is not covered by official support channels, and the IGEL Knowledge Base Team cannot guarantee its accuracy or completeness.