on 02-05-2014 10:21 PM
Big Thanks to Lim Fung for this collaborative effort.
Important: This document is intended as a quick start guide and is NOT an official document for what is officially supported. The demo version of IOS XRv is offered without support and can be run on top of any hypervisor. For information regarding supported hypervisor for simulation/production deployment, please refer to the official Release Notes.
Minimal steps to install QEMU/KVM 1.0 on Linux Ubuntu Server 12.04.LTS (x86_64)
Assuming you already have a working QEMU/KVM environment, spinning up a VM with Cisco IOS XRv on QEMU/KVM is simple and straightforward.
*This allows you to leverage on the QEMU Copy-On-Write (COW) feature.
As an illustration, two Cisco IOS XRv VMs are created and connected back-to-back.
QEMU/KVM 1.0 by default does not allow more than 8 NICs to be attached to a virtual machine. In order to remove this limitation, editing the header files and compiling the package from source is required. Below are the steps that are required to achieve this.
1. apt-get source qemu-kvm
2. cd qemu-kvm-1.0+noroms
3. edit net.h using your favourite editor (vi) and look for the line that says
/* NIC info */
#define MAX_NICS 8
4. Change the value of MAX_NICS to something larger, e.g. 16.
5. Save changes and quit editor.
6. Prepare your build environment, i.e.
7. After the build completes you will have qemu-kvm_1.0+noroms-0ubuntu14.13_amd64.deb in the parent directory.
8. If you already have kvm installed, remove it.
9. To install and use the newly compile qemu-kvm package, do (in the parent directory)
This installation guide is broken down into 5 sections:
3. Create a directory for the VMDK file.. (Tip: Use the same name that you would use for the VM)
4. Click the Upload button and browse for the VMDK file.
5. Close the dialog box when upload is done.
(Note: The first NIC will show up as MgmtEth0/0/CPU0 and the succeeding NICs will show us as GigabitEthernet0/0/0/0, GigabitEthernet0/0/0/1 and so on)
(Note: VMware may require license to add serial ports)
Note: The first serial port added to the VM will be the Console port and the second serial port will be for the Aux port.
New to Cisco IOS XR? Follow the link below to get started!
Running IOS XRv on VMware Fusion/Workstation
After some testing using qemu and tap/sockets interfaces i was able to connect two instances of IOS-XRv with Dynamips instances, Junos Olive instances and my host laptop adapters. Basic routing protocols (IGP and BGP) and MPLS seem to work without issues. Haven't managed to establish EoMPLS features (L2 VPNs P2P/VPLS) and there is a lack of 802.1q support ( i suppose that they aren't supported in the DEMO version along with other features as well). I guess that is in accordance with the supported features described on the link:
However in the release notes :
three different falvors are described (DEMO, Simulation, Production). Will there be any different approach in terms of supported features for the Simulation or Production versions ?
Great document! Two quick notes:
1) Under "Section 3: Adding Serial Ports to the VM for Console and (optional) AUX ports", step 5, can you add a note indicating that you must specify a telnet:// URI for the port. If you leave off the telnet:// and just specify an IP address and port, the port will be TCP-backed instead of telnet-backed and users will see many incorrect behaviors when connecting to the port.
2) Under "Section 5: Accessing the IOS XRv VM", step 2 (TURBOBOOT) should be removed as the released images are pre-turbobooted.
Done! Thanks for the feedback!
The supported features are the same across the different flavors of IOS XRv.
Does IOS XRv work for just one day?
I did every thing correctly yesterday and it worked perfectly for one day, when trying to get access today, the telnet session doesn't work, I checked the firewall setting every thing is correct, I can't access to all my routers, I changed the ports unchecked and checked again the serial port in firewall setting but nothing, I can get telnet access to my modem but not to my XRv routers did this happen to any one else or just me?
No, there's no limit on how long you can use IOS XRv for. Are you running this on ESXi or QEMU/KVM? If you haven't closed the previous telnet connection properly, this connection can be blocked the next time you try to connect. In my experience, on ESXi, it gives you an error message but on QEMU/KVM, it only gives you a blank screen.
Thank's for your answer, Im using it on ESXi 5.5
I realy don't remember if I closed the tenet correctly, the truth is I don't even know how properly close a telnet session, I think the only option i got is reinstall the whole ESXi and the XRv routers and restart again, is there another option?
I fixed it by reseting the ESXi, creating a new XRv RTR and reconfigure firewall setting.
Thank you for your response.
I am trying the KVM setup on RHEL 7.0, but so far unsuccessful. Below is my script for two routers, do you see issues ? Routers load successfully and I can see the MAC addresses and can do all the configs. However ping does not work, neither lldp.
[root@qemu-iosxrv xrv]# more start-tap.sh
-m 3072 \
-hda xrvr-1.qcow2 \
-serial telnet::9101,server,nowait \
-net tap,ifname=tap0,vlan=1,script=no,downscript=no \
-net nic,model=e1000,vlan=1,macaddr=00:01:00:ff:01:00 \
-net tap,ifname=tap1,vlan=2,script=no,downscript=no \
-net nic,model=e1000,vlan=2,macaddr=00:01:00:ff:01:01 \
-net tap,ifname=tap2,vlan=3,script=no,downscript=no \
-net nic,model=e1000,vlan=3,macaddr=00:01:00:ff:01:02 \
-net tap,ifname=tap3,vlan=4,script=no,downscript=no \
-m 3072 \
-hda xrvr-2.qcow2 \
-serial telnet::9102,server,nowait \
-net tap,ifname=tap4,vlan=1,script=no,downscript=no \
-net nic,model=e1000,vlan=1,macaddr=00:01:00:ff:02:00 \
-net tap,ifname=tap5,vlan=2,script=no,downscript=no \
-net nic,model=e1000,vlan=2,macaddr=00:01:00:ff:02:01 \
-net tap,ifname=tap6,vlan=3,script=no,downscript=no \
-net nic,model=e1000,vlan=3,macaddr=00:01:00:ff:02:02 \
-net tap,ifname=tap7,vlan=4,script=no,downscript=no \
brctl addbr br0
brctl addbr br1
brctl addbr br2
brctl addbr br3
brctl addif br0 tap0
brctl addif br0 tap4
brctl addif br1 tap1
brctl addif br1 tap5
brctl addif br2 tap2
brctl addif br2 tap6
brctl addif br3 tap3
brctl addif br3 tap7
[root@qemu-iosxrv xrv]# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.268a467f1dec no tap0
br1 8000.66ede4392c30 no tap1
br2 8000.12d0602c275f no tap2
br3 8000.42fae186c721 no tap3
[root@qemu-iosxrv xrv]# brctl showmacs br0
port no mac addr is local? ageing timer
1 26:8a:46:7f:1d:ec yes 0.00
2 d2:25:9d:64:b2:75 yes 0.00
[root@qemu-iosxrv xrv]# brctl showmacs br1
port no mac addr is local? ageing timer
2 66:ed:e4:39:2c:30 yes 0.00
1 8e:30:c5:9b:89:42 yes 0.00
One of the MAC here is for the bridge, while I don't know from where the second MAC is coming. Also the MAC address of router interfaces as assigned above in kvm are not listed in showmac output ?
Check that the tap interfaces are up, if not you may have to plumb it manually :-) HTH.
Yes that was the problem :) Its working fine now and I see MAC addresses from different routers.
Is there a news when the next release 5.1.3 will be available for download ?
I don't know the exact timeline but please check back within this week.
I followed your steps for IOS XRv on ESXI meticulously but get connection failed using SecureCRT. I performed all steps to the letter.
IOS XRv 5.2.2
Seems pretty straight forward from your instructions. Any ideas?
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: