How to: Create a BIG-IP Next instance locally on KVM

Use these instructions to install a new BIG-IP Next Instance virtual machine on a KVM hypervisor, set the password, and apply a base configuration. After completing the steps, the BIG-IP Next Instance is ready to be discovered and managed by the BIG-IP Next Central Manager.

Prerequisites

  • KVM QEMU 6.2 on Ubuntu 22.04.

  • Supported machine types are i440fx and q35.

  • BIG-IP Next VE is compatible with most KVM-based hypervisor setups under the following conditions:

    • Utilization of the standard KVM qcow2 or ova image for BIG-IP Next VE from MyF5 Downloads.

    • Implementation of the virtio networking driver (Note: SR-IOV compatibility may vary).

    • Possession of a standard BIG-IP Next VE license.

    • Ensuring that neither you nor any third-party cloud/hypervisor vendor has altered the base image to accommodate environment-specific or hypervisor-specific customizations.

    • Deployment with either the i440FX or QEMU Q35 machine types when utilizing F5’s virtio synthetic driver.

  • CLI utilities to work with KVM images: virtinst, virt-inst, virt-viewer, virsh, cloud-localds

  • Instance - sizes for deployment:

vCPUs Memory
2 8 GB
4 10 GB
6 12 GB
8 16 GB
12 24 GB
16 32 GB
24 48 GB
  • Disk resource: 80GB of disk per BIG-IP Next virtual machine (VM)

  • Access to MyF5 for downloads

  • Inputs for your network

  • Review the appropriate Release Notes

Procedures

Download a KVM Cloud Image (qcow2)

  1. Log in to MyF5 Downloads.

  2. Accept the EULA and click Next.

  3. Under Group, select BIG-IP_Next.

  4. Under Product Line, select Virtual Edition.

  5. Under Select a product container, choose the appropriate version.

  6. Under Select a download file select the qcow2 image file.

  7. Under Download locations, select the appropriate location.

  8. Click Download.

  9. Repeat these steps to also download the appropriate checksum file.

  10. Move the cloud image file to a desired location.

Create a disk image

Use the cloud image to create a new disk image for your instance.

  1. Start a terminal and navigate to the path where you placed the cloud image.

  2. Decompress the cloud image: tar -xvf <downloaded qemu file>.
    Note the extracted filename.

  3. Copy the default cloud image to a new image: cp <extracted filename> my-bigip-next.img.

  4. Create a new instance (8 vCPU and 16 GB of RAM).

  5. Allocate at least two network interfaces that use a Virtio network driver.

  6. If you need to configure a static IP address for the primary network interface (management), proceed to Enable a static IP address.

Enable a DHCP IP address

If you plan on using DHCP you must download the kvm-boot.iso to deploy your KVM instance. This will speed-up the boot time (and address a problem where DHCP may fail) and provide an experience similar to VMWare (it will enable you to login via the console using admin/admin)

Download the kvm-boot.iso for DHCP deployments you can also use this to configure a static IP address using the setup script instead of using cloud-localds to create a custom ISO image.

Enable a static IP address

Complete if you need to configure a static IP address; skip if using DHCP.

  1. Create a file for your network configuration; it resembles a netplan format.

    network:
      version: 2
      ethernets:
        ens3:
          dhcp4: false
          addresses:
            - (Your Management IP)/(Network Mask for Management Network)
          routes:
          - to: default
            via: (IPv4 Gateway Address)
          nameservers:
            addresses: [(comma separated list of DNS servers)]
    

    Example

    network:
      version: 2
      ethernets:
        ens3:
          addresses:
            - 192.168.122.245/24
          routes:
          - to: default
           via: 192.168.122.1
          nameservers:
            addresses: [192.168.122.1]
    
  2. Use cloud-localds to create an ISO image.

    # you can also use "/dev/null" instead of "userdata"
    # if you do not want to allow console login 
    cat userdata
    #cloud-config
    chpasswd:
      expire: false
      users:
        - name: admin
          password: admin
          type: text
    cloud-localds (name of file).iso -H (hostname of instance) -N (file with network config).yaml -m local userdata
    
  3. Copy the ISO file to a location where it can be mounted on your instance as a CD-ROM device.

  4. Create a virtual machine.

This example will create an instance that has 8 vCPU / 16 GB of RAM.

It will create two network interfaces. The first interface will be bridging a physical interface. The second interface is using the “default” network (internal). Adjust to match your environment.
A minimum of two interfaces is required.
Note: If you require the q35 machine type, then in the following example use --machine pc-q35-jammy.

   virt-install \
  --name bigip-next-abcd \
  --virt-type kvm \
  --machine pc \
  --vcpus 8 \
  --memory 16384 \
  --network type=direct,source=[physical interface to bridge i.e. ens1f0],source_mode=bridge,model=virtio
  --network model=virtio,network=external \
  --disk path=/var/lib/libvirt/images/bigip-next-abcd.qcow2,device=disk \
  --disk path=/var/lib/libvirt/images/bigip-next-abcd.iso,device=cdrom \
  --os-variant ubuntu22.04 \
  --cpuset=auto \
  --noautoconsole \
  --import
  1. After the VM is deployed, verify it is running.

    virsh list --all
    
  2. Obtain the IP address of the device.
    The virsh utility allows you to retrieve the IP using the domifaddr command.

    # domifaddr my-bigip-next
     Name       MAC address          Protocol     Address
    -------------------------------------------------------------------------------
     vnet6      52:54:00:6c:5c:8c    ipv4         192.168.122.245/24
    

Run the setup script

Use the setup script to configure management networking in a static IP address environment and also assist in creating data plane networking configuration.

This requires that you used the kvm-boot.iso previously when installing Next on KVM and that you have serial console access to your instance.

Help text for the script:

This setup script will help you initially configure the basic network settings for this instance.

Please answer the questions below. A default value for each parameter is indicated within the brackets. Example inputs are included within parentheses.

  1. At the prompt, type setup.

  2. Type inputs.

    Network with DHCP

    • Hostname:

    • Primary NTP server address (i.e. 0.pool.ntp.org) (optional):

    • Alternate NTP server address (i.e. 1.pool.ntp.org (optional):

    Network with a management IP address (No DHCP)

    • Hostname:

    • Management IP Address & Network Mask [192.168.1.245/24]:

    • Management Network Default Gateway [192.168.1.1]:

    • Primary DNS nameserver (i.e. 192.168.1.2):

    • Alternate DNS nameserver (i.e. 192.168.1.3) (optional):

    • Primary NTP server address (i.e. 0.pool.ntp.org) (optional):

    • Alternate NTP server address (i.e. 1.pool.ntp.org (optional):

    Configure Data Plane Networking

    After configuring management networking, configure data plane networking.

    Important: Use VLAN names with a maximum of only 15 characters; if longer, traffic originating from the debug sidecar will not work correctly and can cause issues when troubleshooting.

    • VLAN1 name (external) (optional)

      • VLAN1 interface [1.1]

      • VLAN1 self IPv4 [10.0.0.1/24]

    • VLAN2 name (internal) (optional)

      • VLAN2 interface [1.2]

      • VLAN2 self IPv4 [172.16.0.1/24]

    • Configure Static Route? (Y/n) [N]

      • Data-Plane Route [0.0.0.0/0]

      • Data-Plane Route Gateway [10.0.0.254]

      • Data-Plane Interface [1.1]

    Admin Password

    There is a prompt to set an admin password used by both the API and Linux console. SSH access to the admin account is blocked in the SSH server configuration.

    • Please enter a new password for the ‘admin’ user:

    • Please confirm the new password for the ‘admin’ user:

      Note: The password must be a minimum of 15 characters and contain mixed-case letters, numbers, and special characters from the set !@#$%^&*()”””)

    Summary

    The Summary provides an opportunity to review the inputs. There is also the setup command with additional CLI arguments for running the setup script again or on another host (for example, set up a secondary instance).

    Sample output

      Summary
       -------
    
       Hostname: bigipnext1
       Management Network Already Configured: False
       Management IP Address: 192.168.1.245/24
       Management Gateway: 192.168.1.1
       DNS Servers: 192.168.1.1
       NTP Servers: 0.pool.ntp.org
    
    • Would you like to complete configuration with these parameters (Y/n) [N]: –> type Y.

    The script runs. It may take several minutes to complete.

    Sample output

    ...
    [info] Setting hostname to bigipnext1...
    [info] Waiting for BIG-IP Next API to be ready.  This can take up to 5 minutes ...
    [info] Setting admin password
    [info] Getting login token
    [info] Waiting for all services to be ready
    [info] Sending initial onboarding request
    [info] Sending data plane route request
    [info] Setup completed successfully.
    

Onboard via Postman

Use this method to onboard the Next instance if you are unable to use the setup script.

  1. Download the F5 Postman collection.

  2. Modify the Postman variables.
    Create an environment or modify the collection variables.

    bigip_next_1_name: (i.e. my-bigip-next)
    domain_name: (i.e. example.com)
    bigip_next_1_mgmt_ip: (i.e. value that you configured above 192.168.122.245)
    bigip_next_admin_password: (i.e. preferred password, minimum 15 characters)
    

    Note: The password must be a minimum of 15 characters and contain mixed-case letters, numbers, and special characters from the set !@#$%^&*()”””)

  3. Find the folder Virtual Edition Onboarding.

  4. Execute the requests Reset Admin Password through Check Onboarding Job.

Add an instance to BIG-IP Next Central Manager

Installation is now complete. You can add the new instance to BIG-IP Next Central Manager. See: How to: Add a locally-onboarded BIG-IP Next instance to BIG-IP Next Central Manager