Contents

Introduction

Prerequisites

Requirements

Components Used

ISR4Ks Docker installation

ASR1K Docker Installation

Catalyst 8K Docker installation

Catalyst 8200 configuration

Catalyst 8300 configuration

Catalyst 8500L configuration

Introduction

This document describes how to configure ThousandEyes on Cisco IOS-XE® platforms.

Prerequisites

Requirements

Cisco recommends validation of the requirements at the ThousandEyes documentation portal:

Support Matrix Thousand Eyes

Components Used

The information in this document is based on Routers with Cisco IOS-XE.

The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, ensure that you understand the potential impact of any command.

ISR4Ks Docker installation

Step 1.

Download the ThousandEyes agent from https://app.thousandeyes.com under the menu Cloud & Enterprise Agents > Agent settings > Add New Enterprise Agent > Cisco Application Hosting:

Step 2.

Copy the .tar file to the bootflash of the router. This can be done via TFTP. Or, download the file on a USB flash drive and copy it to the router bootflash.

Router#dir bootflash: | sec .tar

24577 -rw- 186705920 May 19 2022 16:26:31 +00:00 thousandeyes-enterprise-agent-4.2.2.cisco.tar

Step 3.

Enable the IOx daemon on the router with the iox command and validate the service status.

Router(config)#iox

*May 19 16:40:48.485: %UICFGEXP-6-SERVER_NOTIFIED_START: R0/0: psd: Server iox has been notified to start

Router#show iox-service

IOx Infrastructure Summary:

---------------------------

IOx service (CAF)              : Not Running

IOx service (HA)               : Not Supported

IOx service (IOxman)           : Not Running

IOx service (Sec storage)      : Not Supported

Libvirtd 5.5.0                 : Running

Step 4.

Install the agent previously stored on the bootflash with the command app-hosting install appid <agent_name> package bootflash:<file.tar>.

Router#app-hosting install appid ISR4k_Agent package bootflash:thousandeyes-enterprise-agent-4.2.2.cisco.tar

Installing package 'bootflash:thousandeyes-enterprise-agent-4.2.2.cisco.tar' for 'ISR4k_Agent'. Use 'show app-hosting list' for progress.

Step 5.

Verify that the agent is installed correctly with the command show app-hosting list.

Router#show app-hosting list

App id                                   State

---------------------------------------------------------

ISR4k_Agent                              DEPLOYED

Step 6.

Configure a Virtual Port Interface.

interface VirtualPortGroup1

ip address 192.168.2.254 255.255.255.0

no mop enabled

no mop sysid

end

Step 8.

Configure the VNIC for app-hosting.

Router(config)#app-hosting appid ISR4k_Agent

Router(config-app-hosting)#app-vnic gateway1 virtualportgroup 1 guest-interface 1

Router(config-app-hosting-gateway1)#guest-ipaddress 192.168.2.10 netmask 255.255.255.0

Router(config-app-hosting-gateway#)#exit

Router(config-app-hosting)#app-default-gateway 192.168.2.254 guest-interface 1

Router(config-app-hosting)#name-server1 8.8.8.8

Router(config-app-hosting)#end

NOTE: The IP Address of the name-server command can be an internal or an external DNS server.

Step 7.

Set up Docker. The required token can be obtained at https://app.thousandeyes.com under the menu Cloud & Enterprise Agents > Agent settings > Add a New Enterprise Agent > Cisco Application Hosting.

Click on the small eye icon. This displays the Token number unencrypted. Copy the string and proceed with the installation on the router.

Docker installation commands:

Router(config-app-hosting)#app-resource docker

Router(config-app-hosting-docker)#prepend-pkg-opts

Router(config-app-hosting-docker)#run-opts 1 "-e TEAGENT_ACCOUNT_TOKEN= EAGENT_ACCOUNT_TOKEN= xxxxxxxxxxxxxxxxxxxx"

Router(config-app-hosting-docker)#run-opts 2 "--hostname ISR_Agent"

Router(config-app-hosting)#start

Router(config-app-hosting)#end

Router#

*May 30 20:10:00.282: %SYS-5-CONFIG_I: Configured from console by console

*May 30 20:10:06.980: %IM-6-START_MSG: R0/0: ioxman: app-hosting: Start succeeded: ISR_Agent started successfully Current state is RUNNING

Step 9.

Verify that the agent is active with the command show app-hosting list.

Router#show app-hosting list

App id                                   State

---------------------------------------------------------

ISR_Agent                                RUNNING

ASR1K Docker Installation

Step 1.

Download the agent .tar archive from the Thousand Eyes website thousandeyes-enterprise-agent-x.x.x.cisco.tar.

Step 2.

Copy the .tar file to the bootflash of the router. This can be done via TFTP. Or, download the file on a USB flash drive and copy it to the router bootflash.

Router#dir bootflash: | sec .tar

16 -rw- 186705920 Sep 21 2022 15:02:21 +00:00 thousandeyes-enterprise-agent-4.2.2.cisco.tar

Step 3.

Enable the IOx daemon on the router with the command iox and validate the service status.

Router(config)#iox

Router#show iox-service

IOx Infrastructure Summary:

---------------------------

IOx service (CAF)              : Running

IOx service (HA)               : Not Supported

IOx service (IOxman)           : Running

IOx service (Sec storage)      : Not Supported

Libvirtd 5.5.0                 : Running

Step 4.

Install the agent previously stored on the bootflash with the command app-hosting install appid <agent_name> package bootflash:<file.tar>.

Router#app-hosting install appid ASR_TE package bootflash:thousandeyes-enterprise-agent-4.2.2.cisco.tar

Installing package 'bootflash:thousandeyes-enterprise-agent-4.2.2.cisco.tar' for 'ASR_TE'. Use 'show app-hosting list' for progress.

*Sep 21 16:10:12.900: %IOXCAF-6-INSTALL_MSG: R0/0: ioxman: app-hosting: ASR_TE installed successfully Current state is DEPLOYED

Router#show app-hosting list

App id                                   State

---------------------------------------------------------

ASR1k_TE                                 DEPLOYED

Step 5.

Configure a Virtual Port Interface with a private IP address.

interface VirtualPortGroup0

ip address 192.168.2.254 255.255.255.0

no mop enabled

no mop sysid

end

Step 6.

Configure the VNIC for app-hosting.

Router(config)#app-hosting appid ASR1k_TE

Router(config-app-hosting)#app-vnic gateway1 virtualportgroup 0 guest-interface 0

Router(config-app-hosting-gateway0)#guest-ipaddress 192.168.2.1 netmask 255.255.255.0

Router(config-app-hosting-gateway0)#exit

Router(config-app-hosting)#app-default-gateway 192.168.2.254 guest-interface 0

Router(config-app-hosting)#name-server0 8.8.8.8

Router(config-app-hosting)#app-resource docker

Router(config-app-hosting-docker)#prepend-pkg-opts

Router(config-app-hosting-docker)#run-opts 1 "--hostname ASR1kTE"

Router(config-app-hosting-docker)#run-opts 1 "-e TEAGENT_ACCOUNT_TOKEN=XXXXXXXXXXXXXXXXX"

Router(config-app-hosting-docker)#exit

Step 7.

Activate app-hosting for the cited App ID.

Router(config)#app-hosting appid ASR1k_TE

Router(config-app-hosting)#start

Step 8.

Install the ThousandEyes agent and verify that it is active with the command show app-hosting list.

Router#app-hosting install appid ASR1k_TE package bootflash:thousandeyes-enterprise-agent-4.2.2.cisco.tar

Installing package 'bootflash:thousandeyes-enterprise-agent-4.2.2.cisco.tar' for 'ASR1k_TE'. Use 'show app-hosting list' for progress.

Router#show app-hosting list

App id                                   State

---------------------------------------------------------

ASR1k_TE                                 RUNNING

Catalyst 8K Docker installation

Catalyst 8200 configuration

Step 1.

Download the agent .tar file from the ThousandEyes website thousandeyes-enterprise-agent-x.x.x.cisco.tar

Step 2.

Copy the .tar file to the harddisk of the device.

C8200k#dir harddisk:thousandeyes-enterprise-agent-4.3.0.cisco.tar

Directory of harddisk:/thousandeyes-enterprise-agent-4.3.0.cisco.tar

12      -rw-        123064320  Nov 12 2022 21:35:06 +00:00  thousandeyes-enterprise-agent-4.3.0.cisco.tar

15239921664 bytes total (14280880128 bytes free)

C8200k#

Step 3.

Enable the IOx daemon on the router with the command iox and validate the service status.

C8200k(config)#iox

*Nov 12 21:46:51.539: %UICFGEXP-6-SERVER_NOTIFIED_START: R0/0: psd: Server iox has been notified to start

*Nov 12 21:46:52.443: %SYS-5-CONFIG_I: Configured from console by console

*Nov 12 21:47:13.866: %IM-6-IOX_ENABLEMENT: R0/0: ioxman: IOX is ready.

C8200k#show iox-service

IOx Infrastructure Summary:

---------------------------

IOx service (CAF)              : Running

IOx service (HA)               : Not Supported

IOx service (IOxman)           : Running

IOx service (Sec storage)      : Not Supported

Libvirtd 5.5.0                 : Running

Step 4.

Configure platform resource app-heavy. Save the configuration changes and reload the chassis.

C8200k(config)#platform resource service-plane-heavy

C8200k(config)#end

C8200k#wr

C8200k#reload

Step 5.

Configure a Virtual Port Interface.

interface virtualportgroup 0

ip address 192.168.2.254 255.255.255.0

exit

Step 6.

Configure the VNIC for app-hosting.

C8200k(config)#app-hosting appid TEcat8k

C8200k(config-app-hosting)#app-vnic gateway1 virtualportgroup 0 guest-interface 0

C8200k(config-app-hosting-gateway1)#guest-ipaddress 192.168.2.10 netmask 255.255.255.0

C8200k(config-app-hosting-gateway1)#exit

C8200k(config-app-hosting)#app-default-gateway 192.168.2.254 guest-interface 0

C8200k(config)#app-hosting appid TEcat8k

C8200k(config-app-hosting)#app-resource docker

C8200k(config-app-hosting-docker)#prepend-pkg-opts

C8200k(config-app-hosting-docker)#run-opts 1 "-e TEAGENT_ACCOUNT_TOKEN=xxxxxxxxxxxxxxxxxxxx"

C8200k(config-app-hosting-docker)#run-opts 2 "--hostname TEcat8k"

C8200k(config-app-hosting)#name-server0 8.8.8.8

C8200k(config-app-hosting)#end

Step 7.

Activate app-hosting for the cited App ID.

C8200k(config)#app-hosting appid TEcat8k

C8200k(config-app-hosting)#start

Step 8.

Install the ThousandEyes agent and verify that it is running.

C8200k#app-hosting install appid TEcat8k package harddisk:thousandeyes-enterprise-agent-4.3.0.cisco.tar

Installing package 'harddisk:thousandeyes-enterprise-agent-4.3.0.cisco.tar' for 'TEcat8k'. Use 'show app-hosting list' for progress.

*Jan 21 21:30:17.194: %IM-6-INSTALL_MSG: R0/0: ioxman: app-hosting: Install succeeded: TEcat8k installed successfully Current state is DEPLOYED

*Jan 21 21:30:41.019: %IM-6-START_MSG: R0/0: ioxman: app-hosting: Start succeeded: TEcat8k started successfully Current state is RUNNING

C8200k#show app-hosting list

App id                                   State

---------------------------------------------------------

TEcat8k                                  RUNNING

Catalyst 8300 configuration

Step 1.

Download the agent .tar file from the Thousand Eyes website thousandeyes-enterprise-agent-x.x.x.cisco.tar

Step 2.

Copy the .tar file to the harddisk of the device.

Router#dir harddisk:thousandeyes-enterprise-agent-4.2.2.cisco.tar

Directory of harddisk:/thousandeyes-enterprise-agent-4.2.2.cisco.tar

12 -rw- 186705920 Sep 14 2022 19:02:02 +00:00 thousandeyes-enterprise-agent-4.2.2.cisco.tar

Step 3.

Enable the IOx daemon on the router with the command iox and validate the service status.

Router(config)#iox

*Sep 5 17:48:31.952: %UICFGEXP-6-SERVER_NOTIFIED_START: R0/0: psd: Server iox has been notified to start

*Sep 5 17:48:40.953: %IM-6-IOX_ENABLEMENT: R0/0: ioxman: IOX is ready.

Router#show iox-service

IOx Infrastructure Summary:

---------------------------

IOx service (CAF)              : Running

IOx service (HA)               : Not Supported

IOx service (IOxman)           : Running

IOx service (Sec storage)      : Not Supported

Libvirtd 5.5.0                 : Running

Step 4.

Configure a Virtual Port Interface.

interface VirtualPortGroup1

ip address 192.168.2.254 255.255.255.0

no mop enabled

no mop sysid

end

Step 5.

Configure the VNIC for app-hosting.

Router(config)#app-hosting appid Cat8k_TE

Router(config-app-hosting)#app-vnic gateway1 virtualportgroup 1 guest-interface 1

Router(config-app-hosting-gateway1)#guest-ipaddress 192.168.2.1 netmask 255.255.255.0

Router(config-app-hosting)#app-default-gateway 192.168.2.254 guest-interface 1

Router(config-app-hosting)#app-resource docker

Router(config-app-hosting-docker)#prepend-pkg-opts

Router(config-app-hosting-docker)#run-opts 1 "--hostname C8k_TE"

Router(config-app-hosting-docker)#run-opts 2 "-e TEAGENT_ACCOUNT_TOKEN=xxxxxxxxxxxxxxxxxxxx"

Router(config-app-hosting)#name-server1 8.8.8.8

Router(config-app-hosting)#start

Step 6.

Configure the start command to initiate the application.

Router(config)#app-hosting appid Cat8k_TE

Router(config-app-hosting)#start

Step 7.

Install the ThousandEyes agent and verify that it is deployed.

Router#app-hosting install appid TEcat8k package harddisk:thousandeyes-enterprise-agent-4.2.2.cisco.tar

Router#show app-hosting list

App id                                   State

---------------------------------------------------------

Cat8k_TE                                 DEPLOYED

Catalyst 8500L configuration

Step 1.

Download the agent .tar file from the ThousandEyes website thousandeyes-enterprise-agent-x.x.x.cisco.tar

Step 2.

Copy the .tar file on the harddisk of the device.

Router#dir harddisk:thousandeyes-enterprise-agent-4.2.2.cisco.tar

Directory of harddisk:/thousandeyes-enterprise-agent-4.2.2.cisco.tar

12 -rw- 186705920 Sep 14 2022 19:02:02 +00:00 thousandeyes-enterprise-agent-4.2.2.cisco.tar

Step 3.

Enable the IOx daemon on the router with the command iox and validate the service status.

Router#conf t

Enter configuration commands, one per line. End with CNTL/Z.

Router(config)#iox

Router(config)#end

*Sep 15 15:41:23.992: %UICFGEXP-6-SERVER_NOTIFIED_START: R0/0: psd: Server iox has been notified to startsh

*Sep 15 15:41:25.006: %SYS-5-CONFIG_I: Configured from console by console

*Sep 15 15:41:32.914: %IM-6-IOX_ENABLEMENT: R0/0: ioxman: IOX is ready.

Router#show iox-service

IOx Infrastructure Summary:

---------------------------

IOx service (CAF)              : Not Running

IOx service (HA)               : Not Supported

IOx service (IOxman)           : Not Running

IOx service (Sec storage)      : Not Supported

Libvirtd 5.5.0                 : Running

Step 4.

Configure the Virtual Port interface.

interface VirtualPortGroup1

ip address 192.168.2.254 255.255.255.0

no mop enabled

no mop sysid

end

Step 5.

Configure the VNIC for app-hosting.

Router(config)#app-hosting appid Cat8500L_TE

Router(config-app-hosting)#app-vnic gateway0 virtualportgroup 0 guest-interface 0

Router(config-app-hosting-gateway0)#guest-ipaddress 192.168.2.1 netmask 255.255.255.0

Router(config-app-hosting-gateway0)#exit

Router(config-app-hosting)#guest-gateway 192.168.2.254 guest-interface 0

Router(config-app-hosting)#app-resource docker

Router(config-app-hosting-docker)#prepend-pkg-opts

Router(config-app-hosting-docker)#run-opts 1 "--hostname Cat8500L_TE"

Router(config-app-hosting-docker)#run-opts 2 "-e TEAGENT_ACCOUNT_TOKEN=TEAGENT_ACCOUNT_TOKEN=xxxxxxxxxxxxxxxxxxxx"

Router(config-app-hosting)#name-server1 8.8.8.8

Router(config-app-hosting)#start

Step 6.

Configure platform resource app-heavy. Next, save the configuration changes and reload the chassis.

Router(config)#platform resource app-heavy

Please reboot to activate this template

Router(config)#exit

Router#wr

Router#reload

Step 7.

Install the ThousandEyes agent and verify that it is deployed.

Router#app-hosting install appid Cat8500L_TE package harddisk:thousandeyes-enterprise-agent-4.2.2.cisco.tar

Installing package 'harddisk:thousandeyes-enterprise-agent-4.2.2.cisco.tar' for 'Cat8500L_TE'. Use 'show app-hosting list' for progress.

Router#show app-hosting list

App id                                   State

---------------------------------------------------------

Cat8500L_TE                              DEPLOYED

Note: NAT can be used with ThousandEyes.

The Virtual Port interface can be used as inside interface for NAT.

Example:

Router(config)#ip nat inside source list NAT interface gi0/0/0 overload

Router(config)#ip access-list extended NAT

Router(config-ext-nacl)#permit ip 192.168.2.0 0.0.0.255 any

interface VirtualPortGroup1

description ThousandEyes

192.168.2.254 255.255.255.0

ip nat inside

interface GigabitEthernet0/0/0

description WAN interface

192.168.114.10 255.255.255.252

ip nat outside