Hello my friend,

In this article I’ll show you how to establish basic virtual network between Alcatel-Lucent (or already Nokia) virtualized service router (VSR) and Cisco IOS XR virtual (IOS XRv). Such installation has three main goals:

  • Test interoperability of certain features between popular and respectable vendors before deployment
  • Develop best practices design in case of multivendor network
  • Learning and education

If you are excited about these ideas how I do, I welcome you to read this article till the end.

Disclaimer

All the thoughts in this article are my own and may not reflect the official position of Nokia.

Introduction

For a long time I’ve been Cisco fan. Almost 10 years ago started my exciting journey in the networking world from learning networks basic in Cisco CCNA course, which was recommended to me by my brother. Year by year I’ve been gathering practical experience in service provider (SP) and enterprise fields as well as preparing to new certification. Besides working, I had a lab at home and my parents had long sleepless nights, when I was learning. At the end my wife inspired me to achieve one of the topmost certification in the networking and IT world – Cisco CCIE, what I’ve done the last year.

On the other hand many times I saw that it is very common for big companies to have so called dual-vendor strategy in their network. Such strategy has both pros and cons, as usual, but the main advantage for the network is to be on the safe side, if there are some problems with one of the vendors. There are a lot causes for such problems, like political, technical or even trust for instance. In such environment the interoperability between different networking vendors becomes a key driver. For sure each vendor tends to increase its presence in the customers network, because it leads to increase of revenue. I fully support this idea, but we must support our customers in all cases. The Greenfield installation is very rare nowadays, so we have to be interoperable in order to satisfy our customers and conqueror their respect and loyalty.

In this year I’ve taken a good chance to join the Nokia team. Being passionate about networking in general and IP and Optical technologies in particular I’m very glad to be part of this company, because in its portfolio joint Nokia and Alcatel-Lucent company provides very solid solution in all the telecommunication field. As I’m now representing Nokia, I’m eager to have at least the same knowledge in Nokia devices as I have in Cisco.

So I decided just to connect the most popular Cisco virtual device in SP segment (Cisco IOS XRv) to the most popular Nokia virtual device in SP segment (Nokia VSR) and try to configure whatever I know at Cisco in such mixed environment. I don’t know how far I can be at the end, but now I’m very excited about this idea and I start.

Getting started

Apparently the installation of Nokia VSR or Cisco XRv is out of scope for this document. What I’ve found to my disappointment is that it’s much more difficult to find information about Nokia Routers in the free access than about Cisco ones. For Cisco Systems you can just type in your browser “Cisco IOSXRv installation” and you get lots of links to official information and forums, where all details are discussed, for Nokia I’ve seen only a couple of links to official documentation. So we need to be more popular, I think J For your reference I place here links to official documents, which help to install virtual routers:

I strictly recommend you to read both articles, because I don’t want to repeat them in my article. I will just provide a bridge between them.

Upon reading these articles you will ask yourself about the ways of getting images. Well, if you are employee of the mentioned company, you can get the necessary images and keys. If not, it’s a bit tricky. I know that several old images of Cisco IOS XRv (like 4.3.2) was possible to officially download from Cisco web-site. About Nokia (Alcatel-Licent) VSR I haven’t heard anything about free license, so you have to ask the marketing employees, maybe they have the answer.

Starting from this point let’s assume that you have managed to get both virtual images and licensed for them.

Lab that is always with you

There are multiple ways how you can install and use virtual images. The most powerful way is to install them directly into hypervisor (like VMware ESXi, for instance) at the server. In case if you don’t have the server, you can use your laptop. For a simple installation you should have at least 4 core CPUs and 8 GB RAM. Then you should install any program that can run virtual machines (VM), like Oracle VirtualBox or VMware Player (both are free).

What’s about Cisco IOS XRv, you just launch downloaded image, which usually goes as OVA file and can be just launched in any player. There is a couple of manipulation that should be used with VM’s parameters. You should have configured the following:

  • Memory: 2 Gb RAM
  • CPU: 1 core
  • Network: 2 interfaces
  • Serial: it must be configured as network type and mapped to localhost IP/port.

012_net_01_xrv

Everything besides the 4th point can be done from GUI. The 4th point can be done in the following way:

  • You open .vmx file of your Cisco IOS XRv, which is created automatically in VMware Player
  • Add there the following strings:

    serial0.present = “TRUE”
    serial0.fileType = “network”
    serial0.fileName = “telnet://127.0.0.1:9001”
    serial0.startConnected = “TRUE”
    serial0.yieldOnMsrRead = “TRUE”

  • Save and close the file

The main issue here is that you can add Serial port from GUI, but you can’t configure its type as network. And this is crucial, if you don’t have physical COM. Several times I’ve faced the issue that named pipe (another type of virtual serial interface) doesn’t work, if you don’t have local COM port at your laptop at all. May be there is another solution, but I know that network console works really well.

Now you can launch your virtual Cisco IOS XRv and connect to it:

012_net_02_putty

012_net_03_xrv_telnet

Let’s configure an interface at IOS XRv, which we can further ping from Linux host and from VSR:

configure
interface GigabitEthernet0/0/0/0
ipv4 address 10.0.0.2 255.255.255.0
no shutdown
!

The easiest part of our installation is done. Now let’s go to Nokia VSR.

Usually image of Nokia VSR is delivered as .qcow2 file, which used in KVM hypervisor. I’ve seen .ova files as well for Nokia VSR, but I haven’t managed to launch them, so they are not covered in the article. Maybe you are luckier and will manage to launch it. If so, it will significantly simplify your life. If not, just read further.

To launch .qcow2 image of Nokia (ALU) VSR you have to have KVM. The easiest way is to install some Linux OS in VM and there launch VSR. Afterwards the last task will be the establishment of connection between VSR and IOS XRv.

Here is the parameter of VM, as I have them configured:

012_net_04_centos

Let’s assume you have successfully installed CentOS 6.8 (I don’t recommend to install CentOS 7.x version as I haven’t managed to start KVM in VM), or any other Linux. Then you have install QEMU-KVM and all related packets. You can read about it here (https://wiki.centos.org/HowTos/KVM) or here (http://www.cyberciti.biz/faq/kvm-virtualization-in-redhat-centos-scientific-linux-6/). The latter is written very easy and understandable.

Before you install Nokia VSR, I suggest you to prepare the virtual network infrastructure. Then the installation of VSR will be also easy.

012_net_05_virt_net

If you carefully looked at provided VM’s configuration, you could notice that in each VM I have interface configured for VMnet3, which will be used as transit network between VSR and Cisco IOS XR. Our CentOS host, which hosts KVM VM with Nokia VSR, will also have interface in this network, which can be used for testing or other services, like syslog, AAA and so on.

Based on the topology we need to configure two bridges at CentOS host, where one will be fully internal and one will be mapped to external interface of VM.

First of all you should configure interface br0, which will be connected to management interface of VSR. Upon its boot VSR will connect to this interface via FTP in order to obtain license file:

[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=”br0″
TYPE=”Bridge”
BOOTPROTO=”none”
IPADDR=”192.168.1.1″
PREFIX=”24″

We don’t map this bridge to any physical interface. Then we should configure the second bridge and its interface:

[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-br1
DEVICE=”br1″
TYPE=”Bridge”
BOOTPROTO=”none”
IPADDR=”10.0.0.254″
PREFIX=”24″
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth2
DEVICE=”eth2″
BOOTPROTO=”none”
HWADDR=”00:0c:29:62:40:fe”
IPV6INIT=”yes”
ONBOOT=”yes”
NM_CONTROLLED=”no”
TYPE=”Ethernet”
BRIDGE=”br1″
IPV4_FAILURE_FATAL=”yes”
IPV6INIT=”no”

It’s very important to place NM_CONTROLLED=”no”, because at another interface it’s configured as “yes”:

[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 | grep “NM”
NM_CONTROLLED=”yes”

The reason for such deviation is that NM, what stands for network manager, doesn’t support bridging. More over on that here (https://www.centos.org/forums/viewtopic.php?f=13&t=42080)

Also it makes sense to compare MAC addresses in /etc/sysconfig/network-scripts/ifcfg-eth2 and /etc/udev/rules.d/70-persistent-net.rules. They must be identical, it’s obvious.

After configuring interface at your Linux host you have to restart network services:

[root@localhost ~]# service network restart
Shutting down interface br0:                               [ OK ]
Shutting down interface br1:                               [ OK ]
Shutting down interface virbr1:                             [ OK ]
Shutting down interface eth0: Device state: 3 (disconnected)[ OK ]
Shutting down interface eth2:                               [ OK ]
Shutting down loopback interface:                           [ OK ]
Bringing up loopback interface:                             [ OK ]
Bringing up interface eth0: Active connection state: activating
Active connection path: /org/freedesktop/NetworkManager/ActiveConnection/1
state: activated
Connection activated [ OK ]
Bringing up interface eth2:                               [ OK ]
Bringing up interface br0: Determining if ip address 192.168.1.1 is already in use for device br0…
[ OK ]
Bringing up interface br1: Determining if ip address 10.0.0.254 is already in use for device br1…
[ OK ]
Bringing up interface virbr1:                               [ OK ]

 

Now it’s time prepare Nokia VSR and launch it. I hope you’ve read the documentation provided in the link above. So you have seen that there is an XML file, which must be properly configured and which will be used for VM creation.

I will provide the most important part for our installation:

[root@localhost ~]# cd /var/lib/libvirt/images/
[root@localhost images]# cat sr3.xml
<domain type=’kvm’>
!…
<system>
<entry name=’product’>TIMOS:address=192.168.1.11/24@active static-route=192.168.0.0/16@192.168.1.1 license-file=ftp://aaa:aaa@192.168.1.1/FTP/sr1-lic.txt slot=A chassis=SR-c4 card=cfm-xp mda/1=m1-1gb-sfp-b</entry>
!…
<interface type=’bridge’>
<mac address=’FA:AC:A6:00:03:01’/>
<source bridge=‘br0’/>
<model type=’virtio’/>
</interface>
<interface type=’bridge’>
<mac address=’FA:AC:A6:00:03:02’/>
<source bridge=‘br1’/>
<model type=’virtio’/>
</interface>
!…
</domain>

In “system entry” you configure that license is available at FTP server, with certain credentials. The same user name and password as well as FTP server (service vsftpd at CentOS) must be configured at your Linux host. Then you map first interface of your Nokia (Alcatel-Lucnet) VSR, which is management, to br0 at Linux host and the second interface, which is first data interface, to br1 at Linux host, which actually goes to Cisco XRv further. Other parts of VSR’s XML configuration file are aligned with configuration guidelines provided in link from Nokia (Alcatel-Lucent) web-site above.

If you configure everything correct, you will be able to launch VSR:

[root@localhost images]# virsh define sr3.xml
Domain SR3 defined from sr3.xml
[root@localhost images]# virsh start SR3
Domain SR3 started

Now you are able to telnet to its console:

012_net_06_sr_booting

And after it’s booted you can log into it:

012_net_07_sr_booted

That’s it. Now we need to configure interface to ping our XRv1. But in Nokia (Alcatel-Lucent) VSR it is a bit more complex than in Cisco IOS XRv. In contrast to XRv, VSR is fully equal to physical router (actually 7750 SR). It means that you have to provision linecard (called card) and its modules (called MDA – media dependent adapter) even in virtual device. I won’t discuss it in details now, just follow the magic:

A:SR3# configure
A:SR3>config# card 1
A:SR3>config>card# card-type “iom3-xp-b”
A:SR3>config>card# mda 1
A:SR3>config>card>mda# mda-type “m5-1gb-sfp-b”

Check that you have provisioned this card and module correctly:

A:SR3>config>card>mda# show card

===============================================================================
Card Summary
===============================================================================
Slot     Provisioned Type                         Admin Operational   Comments
Equipped Type (if different)         State State
——————————————————————————-
1         iom3-xp-b                               up   up
A         sfm4-12                                 up   up/active
B         sfm4-12                                 up   down/standby
(not equipped)
===============================================================================
A:SR3>config>card>mda# show mda
===============================================================================
MDA Summary
===============================================================================
Slot Mda     Provisioned Type                           Admin     Operational
Equipped Type (if different)           State     State
——————————————————————————-
1     1       m5-1gb-sfp-b                               up       up
==============================================================================

Actually you will use the same command before configuration, because you need to know, what cards you have installed in box.

To finalize our configuration in the article we configure the physical and logical interface:

A:SR3>config# port 1/1/1
A:SR3>config>port# no shutdown
A:SR3>config>port# ethernet
A:SR3>config>port>ethernet# exit
A:SR3>config>port# exit
A:SR3>config# router
A:SR3>config>router# interface “toXR1”
A:SR3>config>router>if# address 10.0.0.1/24
*A:SR3>config>router>if# port 1/1/1
*A:SR3>config>router>if# no shutdown

At the beginning it looks strange for me after Cisco, because here in SR OS we have a strong separation between physical interface (port) and logical interface (router interface)

In other the configuration is just the same. So let’s test, that we’ve established the end-to-end connectivity between Cisco IO XRv and Nokia VSR. Nokia/Alcatel-Lucent side looks as follows:

*A:SR3# ping 10.0.0.2
PING 10.0.0.2 56 data bytes
64 bytes from 10.0.0.2: icmp_seq=1 ttl=255 time=21.2ms.
64 bytes from 10.0.0.2: icmp_seq=2 ttl=255 time=1.87ms.
64 bytes from 10.0.0.2: icmp_seq=3 ttl=255 time=3.00ms.
64 bytes from 10.0.0.2: icmp_seq=4 ttl=255 time=12.8ms.
64 bytes from 10.0.0.2: icmp_seq=5 ttl=255 time=5.65ms.

—- 10.0.0.2 PING Statistics —-
5 packets transmitted, 5 packets received, 0.00% packet loss
round-trip min = 1.87ms, avg = 8.92ms, max = 21.2ms, stddev = 7.24ms
*A:SR3# show router arp

===============================================================================
ARP Table (Router: Base)
===============================================================================
IP Address     MAC Address       Expiry   Type     Interface
——————————————————————————-
10.0.100.2     02:0d:ff:00:00:00 00h00m00s Oth   system
10.0.0.1       fa:ac:a6:00:03:02 00h00m00s Oth[I] toXR1
10.0.0.2       00:50:56:34:2a:3d 03h59m51s Dyn[I] toXR1
10.0.10.1       02:0d:ff:00:00:00 00h00m00s Oth   Lo10
10.0.12.1       02:0d:ff:00:00:00 00h00m00s Oth   Lo12
——————————————————————————-
No. of ARP Entries: 5

Cisco side is also very good:

RP/0/0/CPU0:XRv1#show arpFri Jun 3 14:07:09.843 UTC

——————————————————————————-
0/0/CPU0
——————————————————————————-
Address         Age       Hardware Addr   State       Type Interface
10.0.0.1       00:01:01   faac.a600.0302 Dynamic     ARPA GigabitEthernet0/0/0/0
10.0.0.2       –         0050.5634.2a3d Interface   ARPA GigabitEthernet0/0/0/0
10.0.0.254     00:44:10   000c.2962.40fe Dynamic     ARPA GigabitEthernet0/0/0/0
RP/0/0/CPU0:XRv1#ping 10.0.0.1
Fri Jun 3 14:07:14.262 UTC
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.0.0.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/9 ms

Lessons learned

The main problems, which I’ve faced, were related to the specifics of VMware player configuration or Linux network interfaces. Also it turns out that KVM operation significantly depends on Linux CentOS version, what wasted many hours. I hope using this article you can avoid it and establish lab much faster.

Conclusion

Actually this article is not about configuration of the Cisco or Nokia/Alcatel-Lucent device. It’s about preparation your virtual application (middleware), and configuring connectivity between different layers of virtuality (on one side you have VM in VMware, on another you have KVM VM that is launched in VMware’s VM). The image above covers this fact very good. Actually it shows that you have your own private cloud just at your laptop.

This article is useless if you don’t attend to official documentation, which covers the installation of devices. But on top of them it shows you how you can connect these two powerful vendors (Nokia/Alcatel-Lucent and Cisco Systems) together at your laptop. I think it’s really awesome, because you can learn, test and develop the networking solution wherever you want, even in the train or in plane. I’ve just started my journey in this world of operability and welcome you to follow me.

Support us





BR,

Anton Karneliuk