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

Network Bootloader 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 is an open source implementation of Preboot eXecution Environment (PXE). It 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, the switch reverts to device boot.

  • iPXE Forever—Boots through iPXE network boot. The switch sends Dynamic Host Control Protocol (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—Configures device boot by using the boot ipxe command. When device boot is configured, the configured IPXE_TIMEOUT rommon variable is ignored.

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 bootloader configuration. When a timeout occurs, the bootloader reverts to a device-based boot. The switch will send 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, the switch reverts to device boot.

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 switch 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 UUT 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 Switch MAC Address. The show inventory and show switch commands also display these values on the switch.

The following is sample output from the show inventory command:
Switch# 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 the Bootloader

SUMMARY STEPS

    1.    enable

    2.    configure terminal

    3.    boot ipxe {forever | timeout seconds} switch number

    4.    boot system {flash: | ftp: | http: | switch:| tftp:}

    5.    end


DETAILED STEPS
     Command or ActionPurpose
    Step 1 enable


    Example:
    Switch> enable
     
    Enables privileged EXEC mode.
    • Enter your password if prompted.

     
    Step 2 configure terminal


    Example:
    Switch# configure terminal
     

    Enters global configuration mode.

     
    Step 3boot ipxe {forever | timeout seconds} switch number


    Example:
    Switch(config)# boot ipxe forever switch 2
     
    Configures the BOOTMODE rommon variable as IPXE-FOREVER.
    • The timeout keyword configures the rommon variable IPXE_TIMEOUT value in seconds.

     
    Step 4boot system {flash: | ftp: | http: | switch:| tftp:}


    Example:
    Switch(config)# boot system http:
     

    Exits global configuration mode and returns to privileged EXEC mode.

     
    Step 5end


    Example:
    Switch(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

      3.    no boot ipxe

      4.    default boot ipxe

      5.    end


    DETAILED STEPS
       Command or ActionPurpose
      Step 1 enable


      Example:
      Switch> enable
       

      Enables privileged EXEC mode.

      • Enter your password if prompted.

       
      Step 2 configure terminal


      Example:
      Switch# configure terminal
       

      Enters global configuration mode.

       
      Step 3 no boot ipxe


      Example:
      Switch(config)# no boot ipxe
       

      Configures device boot.

       
      Step 4default boot ipxe


      Example:
      Switch(config)# default boot ipxe 
       

      Configures the default configuration on the box.

      • The default is device boot.

       
      Step 5end


      Example:
      Switch(config)# end
       

      Exits global configuration mode and returns to privileged EXEC mode.

       

      Configuration Examples for Programmabililty: Network Bootloader

      Example: Bootloader Configuration

      The following example shows that the bootloader keeps sending DHCP requests forever until the switch is booted with an image:

      Switch# configure terminal  
      Switch(config)# boot ipxe forever switch 2  
      Switch(config)# boot system http: image-filename  
      Switch(config)# end    
      
      
      

      The following example shows a timeout configured for bootloader configuration. When the timeout occurs, the bootloader reverts to a device-based boot.

      Switch# configure terminal  
      Switch(config)# boot ipxe timeout 200 switch 2  
      Switch(config)# boot system ftp: image-filename  
      Switch(config)# end   
      
      
      

      Additional References for Programmability: Network Bootloader

      Related Documents

      Related Topic Document Title

      YANG Data Models

      Configuring YANG Data Models

      Standards and RFCs

      Standard/RFC Title

      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 Programmability: Network Bootloader

      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 Programmability: Network Bootloader

      Feature Name

      Release

      Feature Information

      Programmability: Network Bootloader

      Cisco IOS XE Denali 16.3.2

      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.

      Programmability: Plug-N-Play Agent

      Cisco IOS XE Denali 16.3.2

      PnP agent works as a platform bootstrap agent.