> For the complete documentation index, see [llms.txt](https://documentation.2pintsoftware.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://documentation.2pintsoftware.com/2pxe-server/4.0/2pxe-overview.md).

# 2PXE Overview

{% hint style="danger" %}
**Configuration Manager compatibility**

2PXE Server 4.0 is not currently compatible with Microsoft Configuration Manager (ConfigMgr). This page retains technical background and examples describing the Configuration Manager integration for reference only. They should not be treated as supported 2PXE Server 4.0 deployment instructions.
{% endhint %}

## What is 2PXE Server?

2PXE Server is the Windows-based network boot component of iPXE Anywhere. It handles the initial PXE exchange, provides the iPXE Network Boot Program (NBP), and supplies boot instructions and content to iPXE clients. The NBP then communicates with 2PXE over HTTPS and can retrieve boot content over HTTP or HTTPS, depending on the configured boot flow.

2PXE can operate with the PowerShell request handler or the DeployR request handler. The optional iPXE Anywhere Web Service can add scripting, reporting, and other integration capabilities. Configuration Manager integration is described in this page for historical and reference purposes only; it is not currently supported by 2PXE Server 4.0.

## How network boot works

1. A client starts a PXE boot and sends a network boot request.
2. 2PXE responds with the appropriate network boot program for the client.
3. The client downloads and starts the iPXE NBP.
4. iPXE contacts 2PXE over HTTPS to obtain the next boot instructions.
5. The selected request handler determines the boot action. The client then retrieves the required boot content using the configured transfer method.

The exact flow depends on the selected request handler, client firmware, and network configuration.

iPXE Anywhere is a network booting solution that uses the open-source iPXE network boot program. For details about this open-source project, visit <http://ipxe.org/>.

2Pint Software has funded the implementation of several components in iPXE and is a driving force behind iPXE development. One of these add-ons is a Microsoft BranchCache client in the iPXE software. This is now part of the iPXE software available to everybody, contributed by 2Pint Software for all to use and enjoy.

2Pint Software adds the “Anywhere” part, which consists of the following two components:

* A proxy DHCP/TFTP/HTTPS server called **iPXE Anywhere 2PXE Server**, the main PXE server.
* An optional web service component called **iPXE Anywhere Web Service**, which adds extra functionality and control over your build sequences.

These “Anywhere” components make the iPXE network boot loader sing and dance by enabling communication, configuration and reporting between the iPXE clients and the back-end server infrastructure, such as Configuration Manager.

![](https://content.gitbook.com/content/FSXaKC2Zqibd4KXt4dvD/blobs/RFTVuAvcSITQqKeYoedw/4.png)

Figure 1 shows a Configuration Manager integrated menu from 2PXE, with two deployments of the same task sequence: one available (A) and one required (R).

### How it Works – the simple version

A machine PXE boot request is picked up by the network boot server. The server parses the request and sends the corresponding boot file (BIOS or EFI) to the client. This file is very small and is well suited to low bandwidth situations.

Once the iPXE Network Boot Program (NBP) is downloaded, it contacts the 2PXE Server over HTTPS, which then checks for any configured actions for that client to execute. If there are none, the NBP exits and the device continues with its next boot device. If any configured actions are found, the server sends back a corresponding script to the client. The client then runs this script, which typically involves loading a high-level OS over HTTP. Thanks to the built-in BranchCache functionality, when the system is instructed to load the Windows PE boot image this can be downloaded rapidly from local BranchCache peers rather than being transferred over the WAN from a remote server.

### About iPXE Network Boot Program

iPXE is the leading open source network boot firmware. It provides a full PXE implementation enhanced with additional features such as:

* Boot from a web server via HTTP
* HTTP supports BranchCache V1 & V2
* Boot from an iSCSI SAN
* Boot from a Fibre Channel SAN via FCoE
* Boot from an AoE SAN
* Boot from a wireless network
* Boot from a wide-area network
* Boot from an Infiniband network
* Control the boot process with a script

You can use iPXE to replace the existing PXE ROM on your network card, or you can chain load into iPXE to obtain the features of iPXE without the need to re-flash.

iPXE is free, open-source software licensed under the GNU GPL (with some portions under GPL-compatible licenses), and is included in products from several network card manufacturers and OEMs.

### iPXE and BranchCache

If you plan to use 2PXE with BranchCache but are not familiar with BranchCache, read the 2Pint Software BranchCache page first, because it covers several key factors of BranchCache that might affect your design and setup.

<http://2pintsoftware.com/microsoftbranchcache>

#### 2Pint Software OSD Toolkit

This nifty (free!) toolkit enables BranchCache in the Windows Pre-Installation Environment (WinPE) and also for non-BranchCache enabled systems like the Windows Professional family. This is only needed for integrating BranchCache and BITS into WinPE. It is not required to make iPXE Anywhere function. However, it is highly recommended, because enabling BranchCache in a resource-intensive process like OSD means that more systems on the network share the load, ensuring a fast and effortless deployment without hogging bandwidth and system resources from other computers or the network.

If you only want to use HTTP boot without BranchCache, you can skip this section. For more information about how to generate these WinPE images, see the 2Pint OSD Toolkit documentation: <https://2pintsoftware.com/products/osd-toolkit/>

You can also add BranchCache to WinPE at a later stage depending on your testing and requirements.

### Other System Management Tools

iPXE Anywhere can obtain the appropriate boot actions from other SMTs by:

1. Configuring 2PXE PowerShell scripts to interact with the other system.
2. Configuring the iPXE Anywhere Web Service to talk to the other system directly.

For more information, contact <support@2pintsoftware.com>.

### Main iPXE Anywhere Components

The iPXE Anywhere solution consists of four major components:

![](https://content.gitbook.com/content/FSXaKC2Zqibd4KXt4dvD/blobs/9kOr6rOcP3uoeHQClqmy/iPXE_components.png)

Figure 3: iPXE Anywhere main components. The web service and database are optional components.

### Detailed iPXE Anywhere Component Information

![](https://content.gitbook.com/content/FSXaKC2Zqibd4KXt4dvD/blobs/agMFVJvFHds9pmDP6VUl/IPXEAW_SolutionOverviewDiagram.jpg)

#### iPXE Anywhere 2PXE Server

The 2PXE service is a proxy DHCP server that responds to the initial PXE request. It has built-in proxy DHCP, TFTP and HTTP services. Do not confuse the 2PXE web service with the iPXE Anywhere Web Service; they are different animals. The iPXE Anywhere Web Service is the big brother of the 2PXE web service. The 2PXE service is typically your entry point to PXE booting, because it is the service that parses requests and hands out the iPXE network boot loader.

#### iPXE Network Boot Program (NBP)

This is the core of iPXE Anywhere: a specially configured version of the open-source iPXE solution, tailored to work with the iPXE Anywhere server environment. Importantly, one of the components that is now enabled as part of the default iPXE build is BranchCache. Having BranchCache enabled in an NBP lets you load WinPE content from peer BranchCache systems that have that content stored in their local cache.

#### iPXE Anywhere Web Service (Optional)

This adds extra functionality to the boot process. With the iPXE Anywhere Web Service in place, the Network Boot Program can be configured to talk to this service directly. The service talks HTTP with the client, and SQL with the SQL database (optional; see below). It is used for extended functionality such as BIOS updates, interacting with Microsoft MDT, and creating custom iPXE menus. See the separate documentation for that component.

**iPXE Anywhere SQL Database(s) (Optional)**

This is part of the iPXE Anywhere Web Service. The database stores information about PXE-booted computers and their capabilities. Traffic to this database is relatively light, so the database can be hosted on SQL Express if required. Also connected to the iPXE Anywhere Web Service database is a SQL Server Reporting Services instance, which is used to generate the reports that are included as part of the installation.

### Security

Unlike most network boot products, iPXE Anywhere uses a number of technologies that ensure that the boot process can be made 100% secure to protect any sensitive data.

#### Authentication

Before allowing the network boot, a user can be authenticated against a central repository, such as on-premises Active Directory or Azure.

Credentials can either be sent as clear text protected by SSL certificates or, for servers that are not SSL capable, by using NTLM or IIS Digest Authentication. iPXE Anywhere supports NTLM authentication against Windows Authentication for Configuration Manager distribution points.

Using SSL ensures that unauthenticated users have no way to access media containing user names or passwords. Unlike most network booting systems, the password can be provided at actual boot time, before loading any large image, which frees up time while increasing security.

#### Certificates

iPXE supports the HTTPS protocol, which allows you to encrypt all web server communication and to verify the server's identity. All HTTP traffic between the iPXE boot loader and the 2PXE server is secured using SSL.

For maximum security, there is the option to bind a public TLS certificate to iPXE.

#### Secure Boot

The iPXE boot loader supports Secure Boot, which is a feature of UEFI that only allows certain operating systems to be loaded.

**Note:** Due to how Hyper-V uses boot verification, Secure Boot must be disabled on VMs when using iPXE to build clients.

#### Custom Certificates

iPXE supports the use of third-party certificates (that is, certificates other than iPXE or 2Pint Software certificates). Contact <support@2pintsoftware.com> for further setup information.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://documentation.2pintsoftware.com/2pxe-server/4.0/2pxe-overview.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
