Finding Feature Information

Your software release may not support all the features documented in this module. For the latest caveats and feature information, see Bug Search Tool and the release notes for your platform and software release. To find information about the features documented in this module, and to see a list of the releases in which each feature is supported, see the feature information table at the end of this module.

Use Cisco Feature Navigator to find information about platform support and Cisco software image support. To access Cisco Feature Navigator, go to http://www.cisco.com/go/cfn. An account on Cisco.com is not required.

Information About Programmability

iPXE Overview

Network bootloaders support booting from a network-based source. The bootloaders boot an image located on an HTTP, FTP, or TFTP server. A network boot source is detected automatically by using an iPXE-like solution.

iPXE enables network boot for a device that is offline. The following are the three types of iPXE boot modes:

  • iPXE Timeout—Configures a timeout in seconds for iPXE network boot by using the IPXE_TIMEOUT rommon variable. When the timeout expires, device boot is activated.

  • iPXE Forever—Boots through iPXE network boot. The device sends DHCP requests forever, when the boot ipxe forever command is configured. This is an iPXE-only boot (which means that the bootloader will not fall back to a device boot or a command prompt, because it will send DHCP requests forever until it receives a valid DHCP response.)

  • Device—Boots using the local device BOOT line configured on it. When device boot is configured, the configured IPXE_TIMEOUT rommon variable is ignored. Device boot is the default boot mode.


Note

Manual boot is another term used in this document. Manual boot is a flag that determines whether to do a rommon reload or not. When the device is in rommon mode, you have to manually issue the boot command.

If manual boot is set to 1, the rommon or device prompt is activated. If manual boot is set to 0, the device is reloaded; but rommon mode is not activated.


The following section describes how an iPXE bootloader works:
Figure 1. iPXE Bootloader Workflow
  1. Bootloader sends a DHCP request.

  2. The DHCP response includes the IP address and boot file name. The boot file name indicates that the boot image is to be retrieved from a TFTP server (tftp://server/filename), FTP server (ftp://userid:password@server/filename), or an HTTP server (http://server/filename). Because the current iPXE implementation works only via the management port (GigabitEthernet0/0), DHCP requests sent through the front panel ports are not supported.

  3. Bootloader downloads and boots the image from the network source.

  4. If no DHCP response is received, the bootloader keeps sending DHCP requests forever or for a specified period of time, based on the boot mode configured. When a timeout occurs, the bootloader reverts to a device-based boot. The device sends DHCP requests forever only if the configured boot mode is ipxe-forever . If the ipxe-timeout boot mode command is configured, DHCP requests are sent for the specified amount of time, and when the timeout expires, device boot mode is activated.

When manual boot is disabled, the bootloader determines whether to execute a device boot or a network boot based on the configured value of the iPXE ROMMON variable. Irrespective of whether manual boot is enabled or disabled, the bootloader uses the BOOTMODE variable to determine whether to do a device boot or a network boot. Manual boot means that the user has to manually type the boot manual switch command to start the boot process. When manual boot is disabled, and when the device reloads, the boot process starts automatically.

When iPXE is disabled, the contents of the existing BOOT variable are used to determine how to boot the device. The BOOT variable may contain a network-based uniform resource identifier (URI) (for example, http://, ftp://, tftp://), and a network boot is initiated; however DHCP is not used to get the network image path. The device IP address is taken from the IP_ADDR variable. The BOOT variable may also contain a device-based path, in which case, a device-based boot is initiated.

To identify the device on a remote DHCP server for booting purposes, use the chassis serial number (available in DHCP option 61), the Product ID (PID) (available in DHCP Option 60), or the device MAC Address. The show inventory and show switch commands also display these values on the device.

The following is sample output from the show inventory command:

Device# show inventory

NAME:“c38xx Stack”, DESCR:“c38xx Stack”
PID:WS-3850-12X-48U-L, VID:V01 ,  SN: F0C1911V01A

NAME:“Switch 1”, DESCR:“WS-C3850-12X48U-L”
PID:WS-C3850-12X48U-L, VID:V01 , SN:F0C1911V01A 

NAME:”Switch1 -Power Supply B”, DESCR:“Switch1 -Power Supply B”
PID:PWR-C1-1100WAC, VID:V01, SN:LIT1847146Q

The following rommon variables should be configured for iPXE:

  • BOOTMODE = ipxe-forever | ipxe-timeout | device

  • IPXE_TIMEOUT = seconds

Plug-N-Play Agent Overview

The Cisco Plug-N-Play (PnP) Agent works as a platform bootstrap agent. The device-based bootstrap agent interoperates with the identified bootstrap servers.

A platform bootstrap agent/PnP agent supports the following common requirements:

  • On-Premises, Out-of-Band Bootstrap—Uses DHCP over management port.

  • Off-Premises, Out-of-Band Bootstrap—Uses cloud-based connect over management port, for example, using DNS and Cisco PnP protocol.

  • Off-Premises, In-Band Bootstrap—Uses cloud-based connect over data ports, for example using DNS and Cisco PnP protocol

How to Configure Programmability: Network Bootloader

Configuring iPXE

SUMMARY STEPS

  1. enable
  2. configure terminal
    • boot ipxe forever switch number
    • boot ipxe timeout seconds switch number
  3. boot system {switch switch-number | all} {flash: | ftp: | http: | tftp:}
  4. end

DETAILED STEPS

  Command or Action Purpose
Step 1

enable

Example:

Device> enable

Enables privileged EXEC mode.

  • Enter your password if prompted.

Step 2

configure terminal

Example:

Device# configure terminal

Enters global configuration mode.

Step 3

  • boot ipxe forever switch number
  • boot ipxe timeout seconds switch number

Example:

Device(config)# boot ipxe forever switch 2

Example:

Device(config)# boot ipxe timeout 30 switch 2

Configures the BOOTMODE rommon variable.

  • The forever keyword configures the BOOTMODE rommon variable as IPXE-FOREVER.

  • The timeout keyword configures the BOOTMODE rommon variable as IPXE-TIMEOUT.

Step 4

boot system {switch switch-number | all} {flash: | ftp: | http: | tftp:}

Example:

Device(config)# boot system switch 1 http://192.0.2.42/image-filename

or

Device(config)# boot system switch 1 http://[2001:db8::1]/image-filename

Boots an image from the specified location.

  • You can either use an IPv4 or an IPv6 address for the remote FTP/HTTP/TFTP servers.

  • You must enter the IPv6 address inside the square brackets (as per RFC 2732); if not the device will not boot.

Step 5

end

Example:

Device(config)# end

Exits global configuration mode and returns to privileged EXEC mode.

Configuring Device Boot

You can either use the no boot ipxe or the default boot ipxe command to configure device boot.

SUMMARY STEPS

  1. enable
  2. configure terminal
    • no boot ipxe
    • default boot ipxe
  3. end

DETAILED STEPS

  Command or Action Purpose
Step 1

enable

Example:

Device> enable

Enables privileged EXEC mode.

  • Enter your password if prompted.

Step 2

configure terminal

Example:

Device# configure terminal

Enters global configuration mode.

Step 3

  • no boot ipxe
  • default boot ipxe

Example:

Device(config)# no boot ipxe

Example:

Device(config)# default boot ipxe 

Configures device boot. The default bot mode is device boot.

Enables default configuration on the device.

Step 4

end

Example:

Device(config)# end

Exits global configuration mode and returns to privileged EXEC mode.

Configuration Examples for Programmabililty: Network Bootloader

Example: iPXE Configuration

The following example shows that iPXE is configured to send DHCP requests forever until the device boots with an image:

Device# configure terminal  
Device(config)# boot ipxe forever switch 2    
Device(config)# end    


The following example shows how to configure the boot mode to ipxe-timeout. The configured timeout is 200 seconds. If an iPXE boot failure occurs after the configured timeout expires, the configured device boot is activated. In this example, the configured device boot is http://[2001:db8::1]/image-filename.

Device# configure terminal  
Device(config)# boot ipxe timeout 200 switch 2  
Device(config)# boot system http://[2001:db8::1]/image-filename  
Device(config)# end   


Additional References for iPXE

Related Documents

Related Topic Document Title

Programmability commands

Command Reference, (Catalyst 3650 Switches)

Standards and RFCs

Standard/RFC Title

RFC 3315

Dynamic Host Configuration Protocol for IPv6 (DHCPv6)

RFC 3986

Uniform Resource Identifier (URI): Generic Syntax

Technical Assistance

Description Link

The Cisco Support website provides extensive online resources, including documentation and tools for troubleshooting and resolving technical issues with Cisco products and technologies.

To receive security and technical information about your products, you can subscribe to various services, such as the Product Alert Tool (accessed from Field Notices), the Cisco Technical Services Newsletter, and Really Simple Syndication (RSS) Feeds.

Access to most tools on the Cisco Support website requires a Cisco.com user ID and password.

http://www.cisco.com/support

Feature Information for iPXE

The following table provides release information about the feature or features described in this module. This table lists only the software release that introduced support for a given feature in a given software release train. Unless noted otherwise, subsequent releases of that software release train also support that feature.

Use Cisco Feature Navigator to find information about platform support and Cisco software image support. To access Cisco Feature Navigator, go to www.cisco.com/go/cfn. An account on Cisco.com is not required.
Table 1. Feature Information for iPXE

Feature Name

Release

Feature Information

iPXE

Cisco IOS XE Denali 16.5.1a

Network Bootloaders support booting from a device-based or network-based source. A network boot source must be detected automatically by using an iPXE-like solution.