IOL L2/L3 vrnetlab Build — Fix Summary
Missing python3 in Docker image — license generation silently failed
No .iourc license file — IOL boots but drops all traffic without it
License must match the container hostname, not the host machine hostname
Wrong netlab device type — iol generates L3 management config incompatible with L2 image
Old 32-bit binary (2014) — use 64-bit binary from CML refplat
From CML refplat ISO, rename accordingly:
L2 cp x86_64_crb_linux_l2-adventerprisek9-ms cisco_iol-L2-17.12.01.bin L3 cp x86_64_crb_linux-adventerprisek9-ms cisco_iol-17.12.01.bin
Add python3 to the apt install block:
RUN apt-get update && apt-get install -y --no-install-recommends iproute2 iputils-ping net-tools sudo curl ca-certificates gnupg python3 && apt-get clean
Generate .iourc dynamically at container startup based on container hostname:
#!/bin/bash echo "Launching IOL with PID" $IOL_PID Generate iourc license based on container hostname python3 -c " import hashlib, socket hostname = socket.gethostname() iou_id = int('$IOL_PID') seed = '{:04x}'.format(iou_id) + hostname md5 = hashlib.md5(seed.encode()).hexdigest()[:8] print('[license]') print(hostname + ' = ' + md5 + ';') " > /iol/.iourc cp /iol/.iourc /root/.iourc echo "Generated iourc for $(hostname)" Clear ip addressing on eth0 (it 'belongs' to IOL now) ip addr flush dev eth0 ip -6 addr flush dev eth0 echo "Flushed eth0 addresses" sleep 5 exec /usr/bin/iouyap 513 -q & max_eth=$(ls /sys/class/net | grep eth | grep -o -E '[0-9]+' | sort -n | tail -1) num_slots=$(( (max_eth + 4) / 4 )) exec /iol/iol.bin $IOL_PID -e $num_slots -s 0 -c config.txt -n 1024
Use the srl-labs vrnetlab fork:
cp cisco_iol-L2-17.12.01.bin /home/jaime/netsim-labs/mydownloads/srl-vrnetlab-fresh/cisco/iol/ cd /home/jaime/netsim-labs/mydownloads/srl-vrnetlab-fresh/cisco/iol make
Use the correct netlab device type:
L2 switch provider: clab defaults.device: ioll2 defaults.devices.ioll2.clab.image: vrnetlab/cisco_iol:L2-17.12.01 nodes: s1: s2: cl: links: [ s1-s2, s1-cl, s2-cl ]
L3 router provider: clab defaults.device: iol defaults.devices.iol.clab.image: vrnetlab/cisco_iol:17.12.01
| Issue | Symptom | Fix |
|---|---|---|
| Wrong device type | vrf forwarding invalid input errors | Use ioll2 for L2, iol for L3 |
| Missing license | IOL boots, SSH up, but zero traffic forwarded | Generate .iourc dynamically in entrypoint |
| Wrong hostname for license | License generated but still no traffic | Use container hostname, not host machine hostname |
| No python3 in image | License generation silently fails | Add python3 to Dockerfile |
| Old 32-bit binary | Missing 32-bit libs needed | Use 64-bit binary from CML refplat 17.x |