04-17-2020 09:41 AM - edited 06-10-2020 10:10 AM
This how-to is a step-by-step quick start guide to help you in setting up IOx on IE3400 industrial ethernet switches and running a simple docker container via CLI.
With the introduction of IOS-XE 17.2.1 all variants of IE3400 and IE3400H support application hosting with IOx and running of vanilla docker containers. Much in the same way as Catalyst 9300 does.
No additional license is needed, as IOx on IE3400 is supported in the Network Essentials feature set.
IE3400(H) provides the following Hardware Resources:
Resource | IE3400(H) HW Spec | Available for IOx |
CPU | ARM Cortex-A53, 64bit, 4cores @ 1.2GHz (aarch64) | 2cores @ 1.2GHz (1400cpu units*) |
Memory | 4GB DRAM | 2GB DRAM |
On-board Flash | 1.5GB | - |
SD-Card** | 3.8GB | 3.8GB |
*Artificial benchmark number for comparison of different IOx platforms
**SD-Card is an optional component but mandatory for IOx
For network connectivity to IOx applications, IE3400 provides an internal "virtual" switch interface called "AppGigabitEthernet1/1" which can be configured mostly like a regular switch port. This interface connects to on internal Linux bridge to which the different IOx apps are connected. Apps can have one or more interfaces and be placed in any VLAN.
Notes:
!SD-CARD needs to be formatted with ext4, else iox will fail with obscure error message
!IMPORTANT: Make sure unit boots from flash: and has its config also stored on flash:
IE3400#show boot
Current Boot Variables:
BOOT variable = flash:ie3x00-universalk9.17.02.01.SPA.bin;
Boot Variables on next reload:
BOOT variable = flash:ie3x00-universalk9.17.02.01.SPA.bin;
Config file = flash:/nvram_config
ENABLE_FLASH_PRIMARY_BOOT = no
MANUAL_BOOT variable = no
ENABLE_BREAK variable = yes
IE3400#
!IMPORTANT: All data on sdflash: will be lost after formatting.
IE3400#format sdflash: ext4
Format operation may take a while. Continue? [confirm]
Format operation will destroy all data in "sdflash:". Continue? [confirm]
format completed with no errors
Format of sdflash: complete
IE3400#
! Enabling IOX is a simple one line command. Be patient and wait until it is ready
IE3400#term mon
IE3400#conf t
IE3400(config)#iox
Warning: Do not remove SD flash card when IOx is enabled or errors on SD device could occur.
*Apr 9 00:50:38.145: %UICFGEXP-6-SERVER_NOTIFIED_START: R0/0: psd: Server iox has been notified to start
*Apr 9 00:51:44.766: %IM-6-IOX_ENABLEMENT: R0/0: ioxman: IOX is ready.
! Verify via show command that the services are running
IE3400(config)#end
IE3400#show iox
IOx Infrastructure Summary:
---------------------------
IOx service (CAF) 1.10.0.1 : Running
IOx service (HA) : Not Supported
IOx service (IOxman) : Running
IOx service (Sec storage) : Not Supported
Libvirtd 1.3.4 : Running
Dockerd 18.03.0 : Running
IE3400#
IE3400#conf t
Enter configuration commands, one per line. End with CNTL/Z.
IE3400(config)#interface AppGigabitEthernet1/1
IE3400(config-if)#switchport mode trunk
IE3400(config-if)#switchport trunk allowed vlan 1-4
IE3400(config-if)#end
IE3400#
IE3400#conf t
Enter configuration commands, one per line. End with CNTL/Z.
IE3400(config)#app-hosting appid iperf3
IE3400(config-app-hosting)#app-vnic AppGigabitEthernet trunk
IE3400(config-config-app-hosting-trunk)#vlan 1 guest-interface 0 !place eth0 in Vlan 1
IE3400(config-config-app-hosting-vlan-access-ip)#guest-ipaddress 100.64.1.11 netmask 255.255.255.0
IE3400(config-config-app-hosting-vlan-access-ip)#exit
IE3400(config-config-app-hosting-trunk)#vlan 3 guest-interface 1 !place eth1 in Vlan 2
IE3400(config-config-app-hosting-vlan-access-ip)#guest-ipaddress 192.168.3.2 netmask 255.255.255.0
IE3400(config-config-app-hosting-vlan-access-ip)#exit
IE3400(config-config-app-hosting-trunk)#exit
IE3400(config-app-hosting)#app-default-gateway 100.64.1.1 guest-interface 0
IE3400(config-app-hosting)#app-resource profile custom
IE3400(config-app-resource-profile-custom)#cpu 1400
IE3400(config-app-resource-profile-custom)#memory 256
IE3400(config-app-resource-profile-custom)#vcpu 2
IE3400(config-app-resource-profile-custom)#end
IE3400#
IE3400#term mon
IE3400#copy http://192.168.3.3/tftp/iperf3_eft_dockerimage_aarch64.tar flash:
Destination filename [iperf3_eft_dockerimage_aarch64.tar]?
Accessing http://192.168.3.3/tftp/iperf3_eft_dockerimage_aarch64.tar...
Loading http://192.168.3.3/tftp/iperf3_eft_dockerimage_aarch64.tar !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
7281152 bytes copied in 3.901 secs (1866195 bytes/sec)
IE3400#app-hosting install appid iperf3 package flash:iperf3_eft_dockerimage_aarch64.tar
Installing package 'flash:iperf3_eft_dockerimage_aarch64.tar' for 'iperf3'. Use 'show app-hosting list' for progress.
IE3400#
*Apr 9 05:28:59.605: %IM-6-INSTALL_MSG: R0/0: ioxman: app-hosting: Install succeeded: iperf3 installed successfully Current state is DEPLOYED
IE3400#app-hosting activate appid iperf3
iperf3 activated successfully
Current state is: ACTIVATED
IE3400#
*Apr 9 05:30:32.088: %IM-6-ACTIVATE_MSG: R0/0: ioxman: app-hosting: Activate succeeded: iperf3 activated successfully Current state is in ACTIVATED
IE3400#app-hosting start appid iperf3
iperf3 started successfully
Current state is: RUNNING
IE3400#
Congratulations, you are running a docker container on your IE3400 switch!
Is it possible to partition the SD card to allow for both iOX and the ability to boot the devices from sdflash?
in reply to previous comment, the answer is Yes.
starting with IOS-XE 17.5.1 on IE3400, the SDFlash: file system can be partitioned to allow both the IOX required EFT4, and IOS-XE required FAT32.
you'll have to install 17.5.1 or later onto the IE3400 first.
see config guide on how to setup the SDFlash:
Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community: