How To Add Cisco IOU/IOL To Eve-ng

Cisco IOU/IOL images are L2/L3 images of Switches and routers which helps you to practice for L3 devices with the same features and functions which original devices have. Cisco IOU/IOL images were released for Architecture and testing purposes but today Cisco IOU/IOL images are used for CCIE routing and switching practice for CCIE routing and switching.

Eve-ng is one of the best emulators to Practice with Cisco IOU/IOL images, where you can import the image in Eve-ng and access it via GUI. You can set up your own lab and practice as much as you want.
To install Eve-ng on your desktop check below Post-
How to install Eve-ng on Vmware.

We will explain to you step by step process – how to add IOU/IOL images in Eve-ng and how to license them.

Content
1. You can check how to install Eve-ng in windows
2. Download Cisco IOU/IOL Images.
3. Uploading Cisco IOU/IOL images to Eve-ng.
4. How to generate a license for Cisco IOU/IOL images.
5. Testing Cisco IOU/IOL images.

if you want to practice Cisco ASA or Cisco IOS Dyanamip on eve-ng for your certification or knowledge then check the below posts-

How to add Cisco ASAv to Eve-ng
How to add Cisco IOS (Dynamips Images) to Eve-ng

1. SUPPORTED IOU/IOL IMAGES

Basically, Eve-ng support all the Cisco IOU/IOL images but below are recommended one.

TypeEVE Image NameVersionvRAM
L2L2-ADVENTERPRISEK9-M-15.1-20130726.binI86BI_LINUXL2-ADVENTERPRISEK9-M 15.1(20130726:213425)192
L3L3-ADVENTERPRISEK9_IVS-M-15.3-0.9T.binI86BI_LINUX-ADVENTERPRISEK9_IVS-M 15.3(0.9)T128

2. Download Cisco IOU/IOL Images Eve-ng

Images provided below are strictly for educational purposes and are not hosted on the networkhunt.com server. We are just indexing the links found on the internet for educational purposes only.

You can download Cisco IOU/IOL images from the below links.
1. Download Cisco IOU/IOL Images.

3. Add Cisco IOU/IOL images to Eve-ng

IOL or IOS On Linux also called IOU or IOS On Unix. IOL is a simulator available for Cisco internal use only. IOL refers to the Linux version, compiled for i386 architecture. IOU refers to the Unix (Solaris) version compiled for Sparc architecture. The term IOU usually refers to IOL too.

Because IOL is an internal IOS version, IOL can be used by Cisco employees or by authorized customers only.

Upload the downloaded image to the EVE using for example FileZilla or WinSCP to:  /opt/unetlab/addons/iol/bin

Type the following command to fix permissions:

/opt/unetlab/wrappers/unl_wrapper -a fixpermissions

3. License for Cisco IOU/IOL images.

#! /usr/bin/python
print("*********************************************************************")
print("Cisco IOU License Generator - Kal 2011, python port of 2006 C version")
print("Modified to work with python3 by c_d 2014")
import os
import socket
import hashlib
import struct

# get the host id and host name to calculate the hostkey
hostid=os.popen("hostid").read().strip()
hostname = socket.gethostname()
ioukey=int(hostid,16)
for x in hostname:
 ioukey = ioukey + ord(x)
print("hostid=" + hostid +", hostname="+ hostname + ", ioukey=" + hex(ioukey)[2:])

# create the license using md5sum
iouPad1 = b'\x4B\x58\x21\x81\x56\x7B\x0D\xF3\x21\x43\x9B\x7E\xAC\x1D\xE6\x8A'
iouPad2 = b'\x80' + 39*b'\0'
md5input=iouPad1 + iouPad2 + struct.pack('!i', ioukey) + iouPad1
iouLicense=hashlib.md5(md5input).hexdigest()[:16]

print("\nAdd the following text to ~/.iourc:")
print("[license]\n" + hostname + " = " + iouLicense + ";\n")
print("You can disable the phone home feature with something like:")
print(" echo '127.0.0.127 xml.cisco.com' >> /etc/hosts\n")
  • Copy the above text and create a text file and save as with the name IOUkeygen.py
  • After creating the license python script, upload it to the Eve-ng directory
    /opt/unetlab/addons/iol/bin/
  • After uploading the script go to the directory by using the below command-
    cd /opt/unetlab/addons/iol/bin/
  • Check the directory content by below command-
    ls -l
  • you will be able to see a file with the name – IOUkeygen.py
  • Now run the python script by using the below command-
    python2 IOUkeygen.py
  • it will give you some like the below output
    root@eve-ng:/opt/unetlab/addons/iol/bin# python2 ioukeygen.py
Cisco IOU License Generator - Kal 2011, python port of 2006 C version
Modified to work with python3 by c_d 2014
hostid=007f0101, hostname=eve-ng, ioukey=7f0343 Add the following text to ~/.iourc:

[license]

eve-ng = 972f30267ef51616;

Now, we will create licenses for IOU/IOL images

nano - c iourc

paste the license and press ctrl+x to save

[license]
eve-ng = 972f30267ef51616;

We have successfully added the Cisco IOU/IOL images to eve-ng with the license.

5. Testing Cisco IOU/IOL images in Eve-ng

how to add cisco iou iol images eve-ng
cd /opt/unetlab/addons/iol/bin
touch NETMAP
LD_LIBRARY_PATH=/opt/unetlab/addons/iol/lib /opt/unetlab/addons/iol/bin/<iosname.bin> 1
***************************************************************
IOS On Unix - Cisco Systems confidential, internal use only
Under no circumstances is this software to be provided to any
non Cisco staff or customers.  To do so is likely to result
in disciplinary action. Please refer to the IOU Usage policy at
wwwin-iou.cisco.com for more information.
***************************************************************

              Restricted Rights Legend

Use, duplication, or disclosure by the Government is
subject to restrictions as set forth in subparagraph
(c) of the Commercial Computer Software - Restricted
Rights clause at FAR sec. 52.227-19 and subparagraph
(c) (1) (ii) of the Rights in Technical Data and Computer
Software clause at DFARS sec. 252.227-7013.

           cisco Systems, Inc.
           170 West Tasman Drive
           San Jose, California 95134-1706

65 thoughts on “How To Add Cisco IOU/IOL To Eve-ng”

  1. Hi

    I seem to get an error with this script

    ——————
    root@eve-pro:/opt/unetlab/addons/iol/bin# ls -l
    total 240248
    -rw-r–r– 1 root root 1057 Jan 14 22:38 IOUkeygen.py
    -rwxr-xr-x 1 root root 73017484 Jan 14 22:28 L2-ADVENTERPRISE-M-15.1-20140814.bin
    -rwxr-xr-x 1 root root 172982492 Jan 14 22:28 L3-ADVENTERPRISE9-15.5.2T.bin
    drwxr-xr-x 2 root root 4096 Jan 14 22:35 other

    root@eve-pro:/opt/unetlab/addons/iol/bin# python2 IOUkeygen.py
    *********************************************************************
    Cisco IOU License Generator – Kal 2011, python port of 2006 C version
    Modified to work with python3 by c_d 2014
    hostid=a8c0fe02, hostname=eve-pro, ioukey=a8c100c0
    Traceback (most recent call last):
    File “IOUkeygen.py”, line 21, in
    md5input=iouPad1 + iouPad2 + struct.pack(‘!i’, ioukey) + iouPad1
    struct.error: ‘i’ format requires -2147483648 <= number <= 2147483647
    root@eve-pro:/opt/unetlab/addons/iol/bin#

    Reply
    • Short answer:
      change the ‘!i’ for ‘!q’
      i = integer
      q = long long integer

      modify the following line of the script:
      md5input=iouPad1 + iouPad2 + struct.pack(‘!i’, ioukey) + iouPad1

      use instead:
      md5input=iouPad1 + iouPad2 + struct.pack(‘!q’, ioukey) + iouPad1

      Reply
      • Hi the solution is that you have to change the next paragraph:

        md5input=iouPad1 + iouPad2 + struct.pack(‘!i’, ioukey) + iouPad1

        for this:

        md5input=iouPad1 + iouPad2 + struct.pack(‘!L’, ioukey) + iouPad1

        Simply put !L for !i

        I hope this helps you

        Reply
    • replace this line β€œβ€ md5input=iouPad1 + iouPad2 + struct.pack(β€˜!L’, ioukey) + iouPad1 β€œβ€ in script
      or replace i with L
      script work fine

      Reply
  2. i am getting licence error, any idea what to be done ?

    root@eve-ng:/opt/unetlab/addons/iol/bin# more iourc
    [license]
    eve-ng = 972f30267ef51616;
    root@eve-ng:/opt/unetlab/addons/iol/bin# /opt/unetlab/wrappers/unl_wrapper -a fixpermissions
    Feb 20 08:51:18 Feb 20 08:51:18 ERROR: Unlicensed
    root@eve-ng:/opt/unetlab/addons/iol/bin#

    Reply
    • you have to create separate license for IOU.
      follow the post and generate another license with pyhotn keygen
      let me know if it works? else we can fix on skype.

      Reply
    • I’m also getting license error, after running fix permissions command. /opt/unetlab/wrappers/unl_wrapper -a fixpermissions says ‘ERROR: Unlicensed’.
      I ran python script multiple times and it creates same license every time. I’ve tried multiple ways like deleting all the images and create license first then copy images.
      I’ve used images downloaded from the given link on this page, all failed and I’m not able to fix the permissions.
      What to do, help me out.

      Reply
      • Hi Bro, were you able to fix the permission issue? I’m getting same “Error: Unlicensed” any idea how can i fix on my side? Thanks a lot

        Reply
      • Hi bro, it is working already!

        I forgot to run the fixed permission.

        Are you able to help to install also a virtual windows inside Eve-ng?

        btw, you have a eve-ng with all image? drop me an email so we can discuss

        Reply
    • Hi Leerz. Please I have same issue. How did you resolve it then. Kindly assist please.
      It keeps shutting down the router after I have started it.

      Reply
  3. I’m getting “could not open iourc file” when changing LD_LIBRARY PATH… Permissions look fine. Scratching my head

    Reply
  4. I got a error with the script :

    root@eve-ng:/opt/unetlab/addons/iol/bin# python2 ciscoioukeygen.py
    *********************************************************************
    Cisco IOU License Generator – Kal 2011, python port of 2006 C version
    Modified to work with python3 by c_d 2014
    hostid=a8c01f64, hostname=eve-ng, ioukey=a8c021a6
    Traceback (most recent call last):
    File “ciscoioukeygen.py”, line 21, in
    md5input=iouPad1 + iouPad2 + struct.pack(‘!i’, ioukey) + iouPad1
    struct.error: ‘i’ format requires -2147483648 <= number <= 2147483647

    Any idea ?

    thank you.

    Reply
        • It’s not correct :

          root@Eve-NG:/opt/unetlab/addons/iol/bin# ./CiscoIOUKeygen.py
          *********************************************************************
          Cisco IOU License Generator – Kal 2011, python port of 2006 C version
          Modified to work with python3 by c_d 2014
          hostid=007f0101, hostname=Eve-NG, ioukey=7f02e3
          Traceback (most recent call last):
          File “./CiscoIOUKeygen.py”, line 21, in
          md5input=iouPad1 + iouPad2 + struct.pack(‘iL’, ioukey) + iouPad1
          struct.error: pack expected 2 items for packing (got 1)
          root@Eve-NG:/opt/unetlab/addons/iol/bin#

          Reply
  5. Hi,

    root@eve-ng:/opt/unetlab/addons/iol/bin# nano -c iourc
    -bash: nano: command not found

    this command didnt work for me.

    could you please advise what to do?

    thanks.

    Reply
  6. root@eve-ng:/opt/unetlab/addons/iol/bin# more iourc
    [license]
    eve-ng = 8b89064895b9bf75;
    root@eve-ng:/opt/unetlab/addons/iol/bin# LD_LIBRARY_PATH=/opt/unetlab/addons/iol/lib /opt/unetlab/addons/iol/bin/i86bi-linux-l2-adventerprisek9-15.1.bin 1
    ***************************************************************
    IOS On Unix – Cisco Systems confidential, internal use only

    IOU License Error: invalid license
    License for key 9e0aad04 required on host “eve-ng”.
    Obtain a license for this key and host from the following location:

    http://wwwin-enged.cisco.com/ios/iou/license/index.html

    Place in your iourc file as follows (see also the web page
    for further details on iourc file format and location)

    [license]
    eve-ng = ;

    Reply
  7. The images are working. L2 works just fine but the L3 images will work for about 5 mins then say “Translating cisco.com” then pin the CPU. This basically locks up the whole VM. Doesnt matter the config, DNS…etc..

    Reply
  8. Hello, you can help me to license the EVE emulator, I have done all the steps of the page and the video, but I can not license it.

    eve version:
    DISTRIB_ID=Ubuntu
    DISTRIB_RELEASE=16.04
    DISTRIB_CODENAME=xenial
    DISTRIB_DESCRIPTION=”Ubuntu 16.04.6 LTS”
    NAME=”Ubuntu”
    VERSION=”16.04.6 LTS (Xenial Xerus)”
    ID=ubuntu
    ID_LIKE=debian
    PRETTY_NAME=”Ubuntu 16.04.6 LTS”
    VERSION_ID=”16.04″

    Message after running /opt/unetlab/wrappers/unl_wrapper -a fixpermissions

    root@eve-ng:/opt/unetlab/addons/iol/bin# /opt/unetlab/wrappers/unl_wrapper -a fixpermissions

    Jul 07 16:31:48 Jul 07 16:31:48 ERROR: Unlicensed
    root@eve-ng:/opt/unetlab/addons/iol/bin#

    Reply
  9. I am following the exact same steps as explained here, however it always ends up with the following error:
    ERROR: Unlicensed

    not sure how to resolve this, kindly assist.

    Reply
  10. The test run from cli works fine, but any node start from the eve-ng stops with this error: ‘Failed to start node 12’. Any idea? Thanks

    Reply
  11. The Layer 3 router is working Great for me, except I don’t have any Serial interfaces. How can I use serial interfaces?

    Thanks

    Reply
  12. Is there anyone to assist with the below issue ???

    1)Running the script :

    root@Eve-NG:/opt/unetlab/addons/iol/bin# ./IOUkeygen.py
    *********************************************************************
    Cisco IOU License Generator – Kal 2011, python port of 2006 C version
    Modified to work with python3 by c_d 2014
    hostid=007f0101, hostname=Eve-NG, ioukey=7f02e3

    Add the following text to ~/.iourc:
    [license]
    Eve-NG = 0e2b236f5a4041d4;

    You can disable the phone home feature with something like:
    echo ‘127.0.0.127 xml.cisco.com’ >> /etc/hosts

    2)The script license matches with the below one :

    root@Eve-NG:/opt/unetlab/addons/iol/bin# cat iourc
    [license]
    Eve-NG = 0e2b236f5a4041d4;

    3)Still getting the below error

    root@Eve-NG:/opt/unetlab/addons/iol/bin# /opt/unetlab/wrappers/unl_wrapper -a fixpermissions

    Oct 20 14:19:40 Oct 20 14:19:40 ERROR: Unlicensed
    root@Eve-NG:/opt/unetlab/addons/iol/bin#

    Is the solution to buy the PRO version ???

    Reply
    • replace this line “” md5input=iouPad1 + iouPad2 + struct.pack(‘!L’, ioukey) + iouPad1 “” in script
      or replace i with L
      script work fine

      Reply
  13. hi, need your help plz, all is good, but when i get to the console, i have this error on putty “putty fatal error : network error : connection refused” can i get some help please, i’m stuck

    Reply
  14. its not working for me

    getting error:
    root@eve-networking:/opt/unetlab/addons/iol/bin# python2 ioukeygen.py
    *********************************************************************
    Cisco IOU License Generator – Kal 2011, python port of 2006 C version
    Modified to work with python3 by c_d 2014
    hostid=800a0200, hostname=eve-networking, ioukey=800a07b5
    Traceback (most recent call last):
    File “iouKeygen.py”, line 21, in
    md5input=iouPad1 + iouPad2 + struct.pack(‘!i’, ioukey) + iouPad1
    struct.error: ‘i’ format requires -2147483648 <= number <= 2147483647
    root@eve-networking:/opt/unetlab/addons/iol/bin#

    Reply

Leave a Comment