Appearance
ordyn-net
ordyn-net is the local PXE and network utility service for Ordyn.
It is enrolled through an edge node, so the Ordyn server does not require a direct network connection to it.
Responsibilities
- send Wake-on-LAN packets
- perform ping checks
- run IPAM network scans and lightweight service probes
- provide PXE boot support for OS installations
Runtime configuration
Ordyn sends signed runtime configuration to a net node when the net node connects and when relevant configuration changes.
Background probe targets are resolved from approved endpoint network interfaces. A target is included when the endpoint's effective net node matches the connected net node, the interface has an IP address, and ICMP or common protocol probing is enabled on that interface.
Net-node routing can be assigned directly to an endpoint or inherited from folder and tenant assignments. Direct endpoint assignments override folder and tenant routing.
Probe results are reported back to Ordyn and shown on endpoint interface panels. They can also create IPAM observations for the probed address.
The endpoint background probe interval controls how often reachable targets are checked. It defaults to 60 seconds and can be configured from 30 to 3,600 seconds. Unreachable targets use retry delays of 2, 4, 8, and 10 minutes. A successful probe returns the target to the configured interval.
IPAM scans
ordyn-net executes IPAM network scans for networks configured in Inventory > IPAM.
Ordyn sends the network CIDR and the network probe settings to the selected net node. A scan can include:
- ICMP reachability checks, when ICMP probing is enabled for the network
- common protocol probes, when common protocol probing is enabled for the network
Common protocol probes are passive reachability and banner checks. HTTP and HTTPS probes collect lightweight metadata such as the response server header and page title. HTTPS probes accept invalid certificates so internal devices can still be identified.
Current common protocol probes are:
| Port | Protocol |
|---|---|
| 21 | FTP |
| 22 | SSH |
| 23 | Telnet |
| 80 | HTTP |
| 443 | HTTPS |
| 445 | SMB |
| 631 | IPP |
| 3389 | RDP |
| 5900 | VNC |
| 8080 | HTTP alternate |
| 8443 | HTTPS alternate |
The net node reports scan start, positive result batches, progress, and completion while remaining available for other commands. By default, it can run two IPAM network scans at the same time.
The scan covers usable IPv4 addresses only. Network and broadcast addresses are skipped for /0 through /30; /31 and /32 include every address. Ordyn applies the configured maximum-address limit before the scan starts.
The scan results are sent back to Ordyn as IPAM observations. Ordyn reconciles those observations into the IPAM address table. Reachable hosts appear in IPAM even when they are not endpoints. If an endpoint already owns an address, its identity takes precedence while scan telemetry and discovered services remain available in IPAM.
PXE
When a device reaches iPXE through a Net node, an active waiting PXE job takes priority and starts immediately. A known endpoint without an active PXE job continues normal boot. An unknown device creates a pending PXE request and waits for a decision for up to five minutes. Approval creates a staged endpoint and starts a compatible provisioning job during the current boot. Rejection or expiration stops that boot attempt.
The Endpoints sidebar shows a shortcut while an unknown-device request is waiting. Known-endpoint normal boots and MAC conflicts are recorded in the PXE request audit without appearing in the pending queue.
See Pending PXE Requests for the decision workflow and PXE Request Audit for retained history.
OS image kinds
The current provisioning stack uses four distinct image kinds:
pxe_bootstrap_image- the firmware-to-iPXE bootstrap layer
- uploaded as:
- one upstream
ipxeboot.tar.gzarchive - explicit BIOS and UEFI x64 bootstrap paths
- one upstream
wimboot_image- the standalone
wimbootbinary - used by the WinPE boot-image build pipeline
- the standalone
boot_image- the iPXE-to-operating-system boot layer
- Windows boot images must contain:
wimbootBCDboot.sdiboot.wim
- Linux boot images must contain:
- a Linux installer kernel
- a Linux installer initrd
- a distribution-signed UEFI shim
- kernel arguments containing
{{ ordyn.install_answer_file_url }}
os_image- the Windows install media used later by the installer runtime
iPXE
For Ordyn PXE boot, the upstream artifacts come from the iPXE release archive published in the official v2.0.0 release:
upload the provided
ipxeboot.tar.gzBIOS PXE:
- typically
undionly.kpxe
- typically
UEFI x64:
- typically
ipxe.efi - or
snponly.efiif that works better on your hardware - for Secure Boot, typically
x86_64-sb/snponly-shim.efiorx86_64-sb/ipxe-shim.efi
- typically
wimboot- Download from https://ipxe.org/wimboot
- uploaded separately
- used by the WinPE boot path and by the WinPE build job
snponly.efi is also valid. This is a firmware and NIC compatibility choice, not an Ordyn-specific requirement.
Some UEFI firmware requests /ipxe.efi after starting the Secure Boot shim because it cannot identify the original shim filename. For these devices, enable Secure Boot firmware compatibility fallback on the PXE bootstrap image and use one of these supported file pairs in the same archive directory:
snponly-shim.efiwithsnponly.efito use the firmware SNP network driveripxe-shim.efiwithipxe.efito use iPXE's native network driver
Ordyn serves the corresponding signed second stage when the firmware uses the fallback request, preserving the driver selected by the configured shim. After changing the setting, sync the PXE bootstrap image to every affected net node. See iPXE issue #1684 for upstream tracking of the firmware behavior.
iPXE can briefly display Verification failed: Security Policy Violation while loading a kernel under Secure Boot even when the subsequent shim handoff succeeds. If the installer continues after the shim is loaded, this message is cosmetic. See iPXE issue #1653 for upstream tracking.
The ipxeboot.tar.gz archive contains the iPXE boot files. Upload it as an OS image with the PXE bootstrap kind.
After creating the image, select it on the net node detail page and choose Sync PXE bootstrap image.
Debian netboot files
For Debian PXE installation, create a Linux boot image and upload the Debian installer netboot files:
linuxas the Linux kernelinitrd.gzas the Linux initrdbootnetx64.efias the Linux Secure Boot shim
Upload all three files from the same Debian amd64 netboot installer tree. The Linux Secure Boot shim is required for every Linux boot image, including environments where Secure Boot is currently disabled. Ordyn includes the shim command in every Linux iPXE script; iPXE skips the shim download when the client uses BIOS, Secure Boot is disabled, or the selected kernel does not require it.
The distribution shim in the Linux boot image is separate from the iPXE bootstrap shim configured in DHCP. The iPXE bootstrap shim starts the signed iPXE binary. The distribution shim authorizes the handoff from iPXE to the selected Linux installer kernel.
Debian publishes these files in its netboot installer tree. See:
Set the Linux boot image kernel arguments to include the install answer file URL placeholder. A typical Debian preseed boot line is:
text
auto=true priority=critical interface=auto netcfg/dhcp_timeout=60 preseed/url={{ ordyn.install_answer_file_url }}Ordyn replaces {{ ordyn.install_answer_file_url }} with a temporary URL served by the assigned net node for the current PXE run. Debian also accepts url= as the short form of preseed/url=. Keep the complete kernel argument value on one line.
Linux installation jobs use PXE boot endpoint as the installation step. Configure that step with the Linux boot image, operating system, and install answer file. Do not add Install OS image; that step runs Windows installation workflows in WinPE.
A typical Linux job sequence is:
PXE boot endpoint- post-install steps that run on the newly installed agent
The running job shows generated Wait for endpoint enrollment and Wait for agent instruction readiness steps between these authored steps.
Configure each Linux operating-system entry with its distribution, release codename, and architecture. Debian PXE supports amd64, arm64, and armhf. Ordyn selects the newest approved Debian agent release that exactly matches all three values and stages that package on the assigned cache node before publishing the PXE configuration.
Linux install answer files can use these placeholders:
{{ endpoint.id }}{{ endpoint.hostname }}{{ ordyn.endpoint_id }}{{ ordyn.enrollment_token }}{{ ordyn.edge_host }}{{ ordyn.agent_install_command }}
Every Linux install answer file must contain exactly one {{ ordyn.agent_install_command }} placeholder in its d-i preseed/late_command directive. Ordyn replaces it with a managed command that downloads the staged Debian package, installs it in the target system, and enrolls the agent with the session-bound token. Install answer files are limited to 1 MiB.
For example:
text
d-i preseed/late_command string \
{{ ordyn.agent_install_command }}Linux kernel arguments must be a single line without control characters and must include {{ ordyn.install_answer_file_url }}.
Debian 13 (Trixie) amd64 install answer file example
The following preseed is a starting point for a Debian 13 server installed through DHCP. It uses LVM on the first disk detected by Debian Installer and installs the standard and SSH server tasks.
Destructive partitioning
This example erases the first disk returned by list-devices disk. Disk discovery order is not a stable hardware identity and can include USB storage, SAN devices, or another unintended disk. Use this selection only when the first detected disk is the intended installation target. For systems where multiple disks may be present, replace the dynamic selection with an explicit d-i partman-auto/disk string /dev/... value after verifying the device. Ordyn does not inspect or validate the selected disk.
Debian Installer documents this dynamic selection in its advanced preseed options.
Before saving the file, replace example.internal and REPLACE_WITH_SHA512_CRYPT_HASH. Generate a SHA-512 crypt password hash with mkpasswd -m sha-512. Adapt locale, keyboard, mirror, time zone, package selection, partitioning, and boot-loader settings to the target environment.
text
### Localization
d-i debian-installer/locale string en_US.UTF-8
d-i keyboard-configuration/xkb-keymap select us
### Network
d-i netcfg/choose_interface select auto
d-i netcfg/hostname string {{ endpoint.hostname }}
d-i netcfg/get_domain string example.internal
d-i netcfg/wireless_wep string
### Debian mirror
d-i mirror/country string manual
d-i mirror/http/hostname string deb.debian.org
d-i mirror/http/directory string /debian
d-i mirror/http/proxy string
### Clock and time zone
d-i clock-setup/utc boolean true
d-i time/zone string UTC
d-i clock-setup/ntp boolean true
### Local user
d-i passwd/root-login boolean false
d-i passwd/user-fullname string Ordyn Administrator
d-i passwd/username string ordynadmin
d-i passwd/user-password-crypted password REPLACE_WITH_SHA512_CRYPT_HASH
### Whole-disk LVM partitioning
d-i partman/early_command string \
debconf-set partman-auto/disk "$(list-devices disk | head -n1)"
d-i partman-auto/method string lvm
d-i partman-auto-lvm/guided_size string max
d-i partman-lvm/device_remove_lvm boolean true
d-i partman-md/device_remove_md boolean true
d-i partman-lvm/confirm boolean true
d-i partman-lvm/confirm_nooverwrite boolean true
d-i partman-auto/choose_recipe select atomic
d-i partman-partitioning/confirm_write_new_label boolean true
d-i partman/choose_partition select finish
d-i partman/confirm boolean true
d-i partman/confirm_nooverwrite boolean true
### Package selection
d-i apt-setup/cdrom/set-first boolean false
tasksel tasksel/first multiselect standard, ssh-server
d-i pkgsel/include string ca-certificates
d-i pkgsel/upgrade select safe-upgrade
popularity-contest popularity-contest/participate boolean false
### Boot loader and completion
d-i grub-installer/only_debian boolean true
d-i grub-installer/with_other_os boolean true
d-i grub-installer/bootdev string default
d-i finish-install/reboot_in_progress note
### Install and enroll the managed Ordyn Agent
d-i preseed/late_command string \
{{ ordyn.agent_install_command }}Use the Debian preseed example for additional settings and architecture-specific guidance.
Building a Windows PE image
For licensing reasons Ordyn can't ship a built Windows PE image, but it enables you to easily build it yourself.
For this purpose, install the Windows ADK with the Windows PE Extension on an endpoint running the Ordyn agent. A dedicated build endpoint is recommended to make sure the built image is trustworthy.
You may download the Windows ADK & Windows PE add-on for Windows ADK here: https://learn.microsoft.com/en-us/windows-hardware/get-started/adk-install
After installing the ADK, you can build a Windows PE Image using a Ordyn Job with the task Build WinPE boot image.
This task will directly use the Windows ADK on the endpoint, upload any required files, built the image and upload it back to the Ordyn server.
This image will contain the selected Ordyn Agent Release and allow communicating with the Windows PE environment from Ordyn and automatic enrollment of Windows endpoints deployed with this image.
PXE flow
The implemented bootstrap flow is:
- DHCP/PXE infrastructure points the client at
ordyn-net ordyn-netserves the staged BIOS or UEFI bootstrap file frompxe_bootstrap_imageover TFTP- that bootstrap reaches
iPXE iPXEloads the dynamicboot.ipxescript fromordyn-net- that script loads the
boot_imageassets directly from the assigned cache node over signed HTTPS URLs - Windows boot images start WinPE and launch the Ordyn Agent
- Linux boot images start the Linux installer and fetch the configured install answer file from the net node
For Linux PXE jobs, Ordyn records when iPXE requests the boot script and when the installer retrieves the install answer file. The PXE configuration remains available until the session-bound enrollment token is consumed or the provisioning session expires. Consuming that token completes the provisioning session. A Wait for endpoint enrollment step only succeeds after this token has been consumed and the newly installed endpoint connects.
Linux PXE has these operational limits:
- Linux installation does not run an Ordyn preboot runtime. After the install answer file is retrieved, installer progress is not reported until the installed agent enrolls.
- Kernel, initrd, and distribution shim architecture, Debian release, preseed, mirror, and target firmware compatibility are operator-managed and are not cross-validated.
- The Debian installer must trust the TLS certificate used by the net-node install-answer-file URL.
- A Linux boot image supports one kernel, one initrd, and one distribution shim. Required firmware must be embedded in those assets or obtained by the installer.
Cache certificate trust
During PXE boot, iPXE downloads boot assets from the assigned cache node. If the cache node uses HTTPS with a certificate that is not publicly trusted by iPXE, the download can fail before the selected operating system installer starts. Use a publicly trusted certificate for cache nodes that serve PXE boot assets, or make sure the selected iPXE build trusts the certificate chain used by the cache node.
Deployment
Prerequisites:
Checkout the Net deployment folder from the Ordyn compose repository:
bash
if [ ! -d /opt/ordyn-compose/.git ]; then
git clone --filter=blob:none --sparse https://github.com/ordyn-project/compose.git /opt/ordyn-compose
fi
cd /opt/ordyn-compose
git sparse-checkout add netCreate the environment file:
bash
cd /opt/ordyn-compose/net
cp .env.example .envCreate the net node in Ordyn and copy the generated runtime values into .env:
The net node's public base URL must use HTTPS. Its certificate chain must be trusted by iPXE, WinPE, and any Linux installer that downloads provisioning data.
dotenv
SERVICE_DOMAIN=ordyn-net.example.com
ORDYN_NET_SERVICE_CLIENT_ID=<service-client-id>
ORDYN_NET_EDGE_HOST=ordyn-edge.example.com
ORDYN_NET_HTTP_BIND=172.17.0.1:8080
ORDYN_NET_SMB_USERNAME=<generated-smb-username>
ORDYN_NET_SMB_PASSWORD=<generated-smb-password>
ORDYN_NET_INSTALL_MEDIA_CACHE_PATH=/var/lib/ordyn-net/install-media-cache
ORDYN_NET_LOG_LEVEL=infoStart the service:
bash
docker compose pull
python3 /opt/cosign-docker-verify/verify.pyContinue with docker compose up -d only when the Net image verifies successfully and no failed verification message appears.
bash
docker compose up -dThe container remains running while it waits for its first enrollment.
Issue a service-client enrollment token scoped to the net node. Enroll the service once:
bash
printf '%s' '<enrollment-token>' | docker compose exec -T net ordyn-net enroll --token-stdinAfter the enrollment command succeeds, the Net service begins normal operation automatically. A container restart is not required.
The Net service uses host networking because PXE, TFTP, and SMB need to be reachable directly on the local network. Public boot handoff is routed through Traefik over HTTPS. The default ORDYN_NET_HTTP_BIND=172.17.0.1:8080 is an internal listener on the Docker host bridge; Traefik terminates HTTPS and forwards to it without exposing that listener on every host interface.
The net node detail page shows connection state, version, current certificate serial, certificate expiration, enrollment timestamps, runtime state, and net-node runtime settings. Admins can enable or disable the net node from the edit dialog and revoke the current certificate. A revoked certificate requires the net node to enroll again before it can connect. See service-client certificate lifetime and renewal for planned renewal and recovery after expiration.
The container bootstraps a built-in writable SMB share automatically. The default share name is ordyn-install and the default local staging root is /var/lib/ordyn-net/install-media. The built-in Samba account defaults to uid/gid 999:998, overridable with ORDYN_NET_SMB_UID and ORDYN_NET_SMB_GID.
Install media cache
Windows installation media can be cached on each net node. The cache stores the verified, extracted install source by its SHA-256 checksum. The first use of an image is a cache miss and downloads and extracts it. Later uses of the same checksum are cache hits and reuse the prepared source without downloading or extracting it again.
Each installation session receives its own writable source directory. Changes made while preparing one Windows installation do not modify the cached source or another active installation session.
Configure the cache from the net node create or edit form:
Enable install-media cachingcontrols whether Windows install sources use the cache.Cache capacity (GiB)controls the maximum logical size of cached images. The default is 50 GiB.
When the configured capacity is exceeded, the net node removes the least recently used images after preparing the current session. Disabling the cache bypasses it for new sessions but keeps existing entries available for a later re-enable or manual clear.
The net node detail page shows:
- enabled state and configured capacity
- logical cache usage and image count
- cumulative cache hits and misses since the service started
- last activity, pruning, and clear timestamps
Users with the Update net nodes permission can select Clear cache while the net node is connected. The action requires confirmation. Active installation sessions keep their isolated source directories.
Set ORDYN_NET_INSTALL_MEDIA_CACHE_PATH to place the persistent cache on another local path. The default is /var/lib/ordyn-net/install-media-cache. Size the volume for the configured cache capacity plus a complete copy for every active session. The cache works on any writable filesystem available to the net node, including ext4, and does not require special filesystem features.
For WinPE/SMB troubleshooting, ordyn-net also supports ORDYN_NET_DEBUG_PRESERVE_INSTALL_MEDIA_SESSIONS=true. When enabled, staged install-media session directories are not cleaned up after provisioning results or PXE config refreshes, which makes it possible to inspect or manually test the SMB share contents after a failed run. This should only be enabled temporarily, because extracted Windows install media will accumulate on disk.
Install workflow execution
install_os_image executes the OS image install_steps inside the installer environment before Windows Setup starts:
- activate installer session
- receive the SMB UNC path and credentials for the extracted install source
- map the SMB share and stage answer-file/bootstrap artifacts into that install source
- execute the OS image
install_steps - launch Windows Setup
Caveats:
- reboot/resume control flow is not supported inside the installer workflow
- exit-code mappings can classify command and script results, but they do not add installer reboot/resume control flow
The generated install-source preparation step reports separate download, extraction, and session-copy progress. Its completed result is labeled Cache hit, Cache miss, or Cache disabled so operators can see how the source was prepared.
Windows install local admin variables
Ordyn supports two system endpoint variables for Windows local-admin provisioning:
windows.local_admin_usernamewindows.local_admin_password
Current behavior:
- if
windows.local_admin_usernameis unset, Ordyn defaults it toAdministrator - if
windows.local_admin_passwordis unset, Ordyn generates a random password during installer-session creation and persists it back as an endpoint-level variable assignment - if an endpoint already has a
windows.local_admin_passwordvalue, Ordyn reuses that existing password on later installs
Available Windows answer file placeholders:
The shipped default Windows answer file uses these values to either:
- set the built-in
Administratorpassword, or - create a custom local admin user and add it to the local
Administratorsgroup
WinPE build script override
The WinPE boot-image build normally runs the standard PowerShell script shipped with the agent:
agent/src/runtime/assets/build-winpe-boot-image.ps1
For host-local testing or troubleshooting, you can create your own custom endpoint variable definition with this exact key:
windows.winpe.build_script_override_path
Ordyn does not create this variable for you automatically. It is just a documented convention key. If you create that custom variable definition yourself and assign a value through the Variables tabs, the WinPE build runtime will:
- read that host-local file path on the Windows build machine
- copy that file into the per-run build workspace as
build-winpe-boot-image.ps1 - execute the copied workspace version instead of the embedded script
If the variable does not exist, is unset, or resolves to an empty string, the embedded agent script is used.
Important constraints:
- the value must be a host-local absolute path on the Windows build endpoint
- Ordyn does not validate that path, because it only exists on the target host
- if the configured file does not exist or is unreadable on the host, the WinPE build job fails clearly
- this is a testing and troubleshooting option, not a signed artifact mechanism
WinPE install troubleshooting logging
For WinPE OS-install troubleshooting, you can create your own custom endpoint variable definition with this exact key:
windows.winpe.debug_logging_enabled
If you create a variable override for this and assign a truthy value through the Variables tabs, the WinPE installer runtime will enable verbose local logging for that install session.
Important constraints:
- the extra logging is intended for local WinPE troubleshooting only
- when enabled, WinPE logs sensitive material locally, including the SMB password used for the install-source share mapping
- those secret-bearing logs are not reported back to
ordyn-netor Ordyn, but anyone with local WinPE console or log-file access can read them - leave this variable unset or false for normal installs
Prepared endpoints and claim rules
The intended endpoint lifecycle for PXE/install is:
- an admin creates a prepared endpoint
- the admin seeds one or more endpoint network interfaces with MAC addresses
- the admin starts a normal
install_os_imagerun for that endpoint - Ordyn exposes that MAC to
ordyn-netas a valid PXE target for that install run
This rule is important:
- a MAC match only authorizes PXE installer admission when there is an actual started waiting OS install run for that prepared endpoint
So a prepared endpoint with a MAC address but no waiting install run is not claimable by PXE just because the MAC exists in Ordyn.
For non-PXE flows, prepared endpoints can also be claimed by a bound enrollment token created specifically for that endpoint.
Detailed boot handoff
The exact handoff from PXE into WinPE is:
- endpoint firmware starts a PXE boot
- DHCP tells the client to fetch the initial bootstrap file from
ordyn-net ordyn-netserves the staged BIOS or UEFI bootstrap binary frompxe_bootstrap_imageover TFTP- that bootstrap reaches an
iPXEenvironment iPXErequests the dynamicboot.ipxescript fromordyn-netordyn-netmatches the client by MAC address against active waiting install targets- the PXE configuration for that target contains:
- the one-time boot/session metadata for that waiting install target
- the signed cache URLs for the
boot_imageassets - the install-image metadata for the later installer phase
ordyn-netgeneratesboot.ipxeon the fly from that config- the generated script tells
iPXEwhere to fetch:wimbootBCDboot.sdiboot.wim- and forces those logical filenames with iPXE
initrd -n ...sowimbootsees the canonical WinPE filenames even when the signed cache URLs are opaque UUID-based paths
iPXEdownloads those files from cache and boots WinPE- WinPE starts
ordyn-agent-winpe ordyn-agent-winpeactivates againstordyn-netand receives the installer-session payload for that specific target
That MAC match is not based on all prepared endpoints. It is based only on prepared endpoints that currently have a waiting installer session behind them.
The WinPE asset URLs are selected for the active install target and provided through boot.ipxe, which ordyn-net renders for that request.
The signed cache URLs for the WinPE assets originate in Ordyn:
- Ordyn resolves a ready Windows
boot_imageasset set on the assigned cache node - Ordyn generates signed cache download URLs for
wimboot,BCD,boot.sdi, andboot.wim - Ordyn sends those URLs to
ordyn-netinside the signed PXE configuration ordyn-netuses that trusted payload to renderboot.ipxeiPXEdownloads the WinPE assets from cache using those signed URLs
iPXE validates the HTTPS certificate presented by the cache node before downloading those assets. Certificates from private or internal certificate authorities are commonly not trusted by iPXE builds, which can make the boot fail at the cache download step. Use a publicly trusted cache-node certificate for PXE boot paths unless your iPXE build is prepared to trust your private certificate chain.
For the optional ordyn-net-base-url.txt handoff file, ordyn-net injects it by plain filename rather than Windows/System32/.... wimboot places injected files in the expected WinPE system location, and startnet.cmd reads %SystemRoot%\System32\ordyn-net-base-url.txt from there after boot.
So the download authorization for the WinPE asset fetch itself is carried by the signed cache URLs.
DHCP requirements
Ordyn does not manage DHCP. You must configure your DHCP server to point PXE clients at ordyn-net.
At minimum DHCP must provide:
- next-server / TFTP server address
- boot filename for BIOS clients
- boot filename for UEFI x64 clients
Those filenames must exactly match the configured bootstrap paths from the selected pxe_bootstrap_image.
Typical filenames are:
- BIOS:
undionly.kpxe - UEFI x64:
ipxe.efi
An example isc-dhcpd style configuration looks like:
conf
next-server 192.168.1.10;
if exists user-class and option user-class = "iPXE" {
filename "";
} elsif option arch = 00:07 or option arch = 00:09 {
filename "ipxe.efi";
} else {
filename "undionly.kpxe";
}Notes:
192.168.1.10should be the LAN address of yourordyn-nethost- the exact UEFI architecture matching rules depend on your DHCP server and environment
- if you choose
snponly.efiinstead ofipxe.efi, DHCP must hand outsnponly.efiinstead - DHCP must hand out the exact uploaded filename, not a derived alias
If your DHCP server supports separate policies for BIOS and UEFI, that is the simplest model for Ordyn.
Security note
The PXE boot path does not give iPXE a way to verify Ordyn-generated signatures on the boot_image asset set during firmware boot.
The security model is:
- Ordyn signs the configuration that tells
ordyn-netwhich boot assets to expose ordyn-netverifies and serves that signed configurationiPXEthen downloads the referenced WinPE boot assets from the assigned cache node over signed Ordyn URLs
However, iPXE itself does not verify an Ordyn signature on wimboot, BCD, boot.sdi, or boot.wim before executing the boot chain.
That means the integrity of this process relies on:
- trust in the local provisioning network
- trust in the assigned cache node and signed URL issuance
- integrity of the files and cache distribution path
:::