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.
Starting with IGEL OS 12.10.0, Distributed Peer Update also supports a helper-address configuration using HTTPS, also called Non-Broadcast Mode. In this mode, devices do not rely on UDP broadcast discovery to find peers. Instead, administrators configure a specific Distributed Peer Update Server as a repository by using its helper address. This is useful in segmented networks, networks with blocked broadcast traffic, and environments that follow zero-trust network policies.
Limitations and Known Issues
Devices Managed by Multiple UMS Servers on the Same Subnet
Currently, IGEL Discovery does not distinguish between devices managed by different UMS servers within the same subnet. When HTTPS communication is enabled, this limitation can result in SSL certificate validation errors.
For example, if a device managed by UMS-A attempts to download content from a device managed by UMS-B, the certificate mismatch will cause the connection to fail and the peer to be blacklisted. As a result, the update distribution will be delayed.
To prevent this issue, configure devices managed by different UMS servers to use separate communication ports. For example, devices managed by UMS-A should use a different port for IGEL Discovery than devices managed by UMS-B.
Downloads Fail with Many Simultaneous Clients in Non-Broadcast Mode
When many client devices simultaneously download an app or update from a single Distributed Peer Update Server, some downloads may fail because the server cannot provide sufficient bandwidth to every client. Devices that cannot be served immediately are not placed in a queue.
The issue can have the following symptoms:
-
The app download times out. The device may require a restart before the download can be started again.
-
The update does not start and no error message is displayed. This can occur when the device cannot retrieve the app metadata from the Distributed Peer Update Server.
To mitigate the issue, limit the update bandwidth on the client devices by applying the following through a profile:
-
Go to System > Update.
-
Enable Use a bandwidth limit while updating.
-
Under Limit bandwidth used for updating, enter a suitable per-device limit. The following values are recommended starting points for up to 50 simultaneous client devices:
|
Network Speed of the Peer Update Server |
Per-device Limit |
|---|---|
|
1 Gbit/s |
|
|
2.5 Gbit/s |
|
|
10 Gbit/s |
|
These values assume that the Distributed Peer Update Server does not run other services that consume significant bandwidth. For example, a VNC session can reduce the bandwidth available for updates.
For more simultaneous clients or additional network traffic, reduce the per-device limit. A lower limit increases the total time required to distribute the update.
For larger deployments, configure more than one Distributed Peer Update Server repository. If the first server cannot respond to an app metadata request, the client can try another configured server.
Community Applications
Starting from IGEL OS 12.8.3 and 12.9.0, Distributed Peer Update can be used with community applications. When using community applications with Distributed Peer Update, consider the following:
-
The application metadata must be available in a repository.
-
The required certificate must be installed on the devices before the application can be installed or distributed.
Components
Distributed Peer Update can work in two modes:
|
Mode |
Description |
|---|---|
|
Auto Discovery Mode |
Uses IGEL Discovery to find peers through UDP broadcast and unicast in the same broadcast domain. |
|
Non-Broadcast Mode (Helper Address Mode) |
Uses a manually configured Distributed Peer Update Server repository URL. Devices contact the configured peer directly and do not use UDP broadcast discovery. |
Peer-to-peer distribution relies on two components that run on IGEL OS devices:
-
IGEL Discovery
-
Distributed Peer Update Server (also known as “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 and/or HTTPS server running on the device that provides applications and updates to other IGEL OS devices. |
HTTP peer transfers HTTPS peer transfers |
Requirements
IGEL OS Version
IGEL OS 12 devices need to run IGEL OS Base System version 12.7.4 or higher.
To use non-broadcast mode, IGEL OS 12 devices need to run IGEL OS Base System version 12.10.0 or higher.
UMS Enrollment for HTTPS
To use HTTPS peer downloads, the devices must be enrolled by UMS, otherwise the internal trust-store will be not initialized.
To use non-broadcast mode, both the client device and the Distributed Peer Update Server must be enrolled in the same UMS. Otherwise, HTTPS certificate validation fails.
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 HTTP Distributed Peer Update Server |
|
HTTPS |
|
System > Update > Distributed Peer Update Server > Port of the HTTPS 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
Starting with IGEL OS 12.10.0, you can configure Distributed Peer Update with a helper address (non-broadcast mode) to avoid broadcast-based discovery. In this configuration, clients use a manually configured repository URL for the Distributed Peer Update Server.
Repository Configuration
When using non-broadcast mode, the configured peer repository must use a priority higher than 110 if Disable default repositories is enabled.
Protocol Selection for Peer Downloads
IGEL Discovery searches for possible buddies depending on:
-
the download protocols allowed in the IGEL Discovery configuration
-
the protocols provided by the available buddies, HTTP and/or HTTPS
The following Discovery settings control which peer protocols are allowed:
|
Parameter |
Description |
Default |
|---|---|---|
|
Allow HTTP |
Allows downloads from HTTP buddies |
Enabled |
|
Allow HTTPS |
Allows downloads from HTTPS buddies |
Enabled |
If both Allow HTTP and Allow HTTPS are disabled, every search request returns FALLBACK.
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?
When you configure clients to use a fixed Distributed Peer Update Server repository (non-broadcast mode), you can enable Disable default repositories under System > Update. This prevents clients from falling back to automatically available repositories if the configured peer cannot provide the application.
When this setting is enabled, the device ignores:
-
Built-in repositories
-
Repositories automatically provided by the UMS as an update proxy
-
All repositories with a priority value of
110or lower
Repositories with a priority value higher than 110 remain available and can still be used as fallback repositories.
Enabling Disable default repositories automatically disables Use only repositories provided by the management system (update.use_only_manager_repos).
If Disable default repositories is enabled and the configured Distributed Peer Update Server cannot provide the application, the update fails. The device does not fall back to the default repositories, the UMS app proxy, or the IGEL App Portal.
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 (True) |
|
|
Discovery Port |
Same on all devices (default 22336) |
|
|
Allow HTTP |
Enabled, unless HTTP peer downloads should be blocked |
|
|
Allow HTTPS |
Enabled, unless HTTPS peer downloads should be blocked |
|
|
Enable HTTP Distributed Peer Update Server |
Enabled (True) |
|
|
Port of the HTTP Distributed Peer Update Server |
Same on all devices (default 22335) |
|
|
Enable HTTPS Distributed Peer Update Server |
Enabled if HTTPS peer downloads should be provided |
|
|
Port of the HTTPS Distributed Peer Update Server |
Same on all devices that should provide HTTPS peer downloads (default 22337) |
-
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 or HTTPS. |
|
|
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.
Blacklisting Faulty or Invalid Peers
To handle faulty or invalid peers, IGEL Discovery provides an interface to blacklist IP addresses. Blacklisted IP addresses are ignored during peer selection.
If an unexpected download error occurs, the update daemon blacklists the IP address of the peer. The peer is then no longer considered as a possible candidate for download.
The blacklist can be reset by:
-
rebooting the device, or
-
restarting IGEL Discovery:
systemctl restart igel-discovery-daemon
The IGEL Discovery log shows a message when an IP address is blacklisted. To view the log, run:
journalctl -u igel-discovery-daemon
Blacklisted IP: 192.168.1.123
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 and HTTPS traffic is sent directly to local devices.
Configure Distributed Peer Update with Non-Broadcast Mode
You can configure clients to use a specific Distributed Peer Update Server as a repository. This mode does not use IGEL Discovery broadcast requests to find peers.
Use this configuration when:
-
Broadcast traffic is blocked.
-
Devices are in segmented networks.
-
You want deterministic peer selection.
-
You want clients to use only defined peer update repositories.
Configure the Distributed Peer Update Server
When many clients use the same Distributed Peer Update Server, configure a per-device bandwidth limit to prevent metadata and app download failures. See Downloads Fail with Many Simultaneous Clients in Non-Broadcast Mode.
-
Create a profile for the device or devices that should act as Distributed Peer Update Servers.
-
Configure the following in the profile:
|
Configuration Page |
Parameter |
Value |
|---|---|---|
|
System > Update > IGEL Discovery |
Enable IGEL Discovery |
Disabled, if the server should not participate in broadcast discovery |
|
System > Update > Distributed Peer Update Server |
Enable HTTP Distributed Peer Update Server |
Enabled, if HTTP peer downloads should be provided |
|
System > Update > Distributed Peer Update Server |
Port of the HTTP Distributed Peer Update Server |
Same on all devices that should provide HTTP peer downloads. Default: |
|
System > Update > Distributed Peer Update Server |
Enable HTTPS Distributed Peer Update Server |
Enabled, if HTTPS peer downloads should be provided |
|
System > Update > Distributed Peer Update Server |
Port of the HTTPS Distributed Peer Update Server |
Same on all devices that should provide HTTPS peer downloads. Default: |
-
Save and assign the profile.
Configure the Clients
-
Create a profile for the client devices.
-
Configure the following in the profile:
|
Configuration Page |
Parameter |
Value |
|---|---|---|
|
Enable IGEL Discovery |
Disabled, if clients should not use broadcast discovery |
|
|
Disable default repositories |
Enabled, if clients should only use Distributed Peer Servers and must not fall back to automatically available repositories |
|
|
System > Update > Repositories |
Repository URL |
For HTTP: |
|
System > Update > Repositories |
Repository URL |
For HTTPS: |
|
System > Update > Repositories |
Priority |
Higher than |
-
Save and assign the profile.
Make sure that the Distributed Peer Servers have the app before the clients get the update instructions.
For HTTPS peer downloads, the client and the Distributed Peer Update Server must be enrolled in the same UMS. If the devices are not enrolled in the same UMS, certificate validation fails.
When Disable default repositories is active, the update will fail if the Peer Update Server is unreachable. UMS is not available as a fallback in this mode.
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 (True) |
|
|
Discovery Port |
Same on all devices (default 22336) |
|
|
Allow HTTP sources for download |
Enabled, unless HTTP peer downloads should be blocked |
|
|
Allow HTTPS sources for downlaod |
Enabled, unless HTTPS peer downloads should be blocked |
|
|
Enable HTTP Distributed Peer Update Server |
Enabled (True) |
|
|
Port of the HTTP Distributed Peer Update Server |
Same on all devices (default 22335) |
|
|
Enable HTTPS Distributed Peer Update Server |
Enabled if HTTPS peer downloads should be provided |
|
|
Port of the HTTPS Distributed Peer Update Server |
Same on all devices that should provide HTTPS peer downloads, (default 22337) |
-
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) |
|
|
Allow HTTP sources for download |
Enabled, unless HTTP peer downloads should be blocked |
|
|
Allow HTTPS sources for download |
Enabled, unless HTTPS peer downloads should be blocked |
|
|
Enable HTTP Distributed Peer Update Server |
Disabled |
|
|
Enable HTTPS 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
Troubleshooting
Check Whether the HTTPS Buddy Is Running
To check whether the HTTPS Buddy is running, run:
systemctl status buddy-update-server-ssl
If an error occurs, check the service log:
journalctl -u buddy-update-server-ssl
Check IGEL Discovery Logs
To check IGEL Discovery activity, run:
journalctl -u igel-discovery-daemon -f
To check whether peers were blacklisted, run:
journalctl -u igel-discovery-daemon
Reset the Discovery Blacklist
To reset the peer blacklist, restart IGEL Discovery:
systemctl restart igel-discovery-daemon
HTTPS Download from a Helper Address Fails
Problem
The client cannot download an application from the configured HTTPS Distributed Peer Update Server.
Possible Cause
The client and the Distributed Peer Update Server are not enrolled in the same UMS, or the UMS trust store is not initialized.
Solution
-
Verify that both devices are enrolled in the same UMS.
-
Verify that both devices have contacted UMS successfully.
-
Check the Distributed Peer Update Server service.
-
Check the update daemon logs for certificate validation errors.
Update Fails When Disable Default Repositories Is Enabled
Problem
The client does not install the assigned application.
Possible Cause
Disable default repositories is enabled, and the configured Distributed Peer Update Server cannot provide the application.
Solution
-
Verify that the application is available on the configured Distributed Peer Update Server.
-
Verify that the helper address repository URL is correct.
-
Verify that the repository priority is higher than
110. -
If fallback is required, disable Disable default repositories or add another repository with a priority higher than
110.
Further Information
You can find more information how to
Distributed Peer Update Server Configuration in IGEL OS 12
IGEL Discovery Service Configuration in IGEL OS
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.