Hello my friend,
In the time, when the IPv4 addresses are almost exhausted at our planet, the transition to IPv6 becomes more and more important and urgent task. The top content providers (like Google or Facebook) already provide access to their resources via IPv6 . Let’s see, how we can implement this technology in our mixed Cisco IOS XRv and Nokia (Alcatel-Lucent) VSR environment.
IPv6 world today
IPv6 isn’t new technology at all. It was introduced in 1998, so it’s almost 20 years old. On the other hand its deployment is still very low comparing to IPv4 Internet. Take a look at the graphs above.
The most significant event in IPv6 world was on the 6 June 2011, where “World IPv6 Launch Day” took place. We can consider this day as starting point in IPv6 commercial internet.
You see that the amount of IPv6 prefixes (so called IPv6 Internet) is almost 20 times less than IPv6. There is technology, called NAT (Network address translation), which for a long time has been helping us to save public IPv4 address, especially in case of more aggressive CGN (Carrier-Grade NAT) implementations. But its possibilities are also not endless, and in IoT (Internet of Things) era we really have to use IPv6; otherwise we won’t be able to connect all this stuff (sensors, cars, telemetric devices, etc) to the Internet. So the necessity to launch IPv6 is obvious, let’s take a look on our lab.
Simple IPv6 lab
There are a couple of differences in operation between IPv4 and IPv6, but if you understand good IPv4 operation, there is no problem for you to understand IPv6 as well. For instance IPv6 doesn’t have broadcast addresses, which are replaced by specific multicast group, as well as IPv6 has also specific link-local unicast address, which are often used by routing protocols and another control plane services.
In this article we’ll focus on configuration of IPv6 on Nokia (Alcatel-Lucent) SR OS and Cisco IOS XR, which are represented by VSR and XRv virtual routers respectively.
The topology, which is used in our lab is already familiar to you (link to first article). On the picture below you can find addressing information:
First of all we need to check, whether IPv6 operation is activated at our platform. At Cisco IOS XR it’s always on by default, so you don’t have to care about it (For Cisco IOS / IOS XE platform the story is quite different). You just assign IPv6 address to the interface and that’s it:
RP/0/0/CPU0:XR1(config)#int gig 0/0/0/0 |
You see that there are two IPv6 addresses assigned to the interface. The first one is unicast link-local address and it’s configured automatically based on MAC address of the router’s interface. The second one is actually what you have configured. For loopback interfaces we make the same assignment of IPv6 addresses.
At Nokia (Alcatel-Lucent) SR OS it depends on your device. It might be necessary to activate it or it can be activated by default. It’s fully depends on the parameter, which is called “chassis mode”:
A:SR3>config>router# interface “toXR1” |
In the official SR OS documentations I’ve managed to find the following, regarding this parameter:
To support a particular chassis-mode, all provisioned IOMs must meet the corresponding IOM level.
The chassis Mode corresponds to scaling and feature sets associated with a given card. The base mode is chassis mode A which supports all IOM card types.
IOM cards that are not compatible with more recent chassis modes will be put into an operationally failed state if the configuration chassis mode “force” option is used.
- Chassis mode A corresponds to iom-20g, chassis mode backwards compatible for iom-20g-b, iom2-20g, iom3-xp
- Chassis mode B corresponds to iom-20g-b, chassis mode backwards compatible for iom2-20g, iom3-xp
- Chassis mode C corresponds to iom2-20g, chassis mode backwards compatible for iom3-xp
- Chassis mode D corresponds to iom3-xp
So, in our case we aren’t able to configure IPv6 addresses at Nokia (Alcatel-Lucent) VSR by default, therefore first of all we need to check, whether our IOM modules supports another chassis mode:
A:SR3>config>router>if# show card |
We have IOM module “iom3-xp-b”, what means for us that we can change chassis mode to “D”. Let’s change it in an appropriate way then configure IPv6 addresses at the interface afterwards:
A:SR3# configure system chassis-mode d |
Let’s verify which IPv6 addresses we have at our interface at Nokia (Alcatel-Lucent) VSR now:
A:SR3# show router interface “toXR1” detail |
As you see link local address is configured automatically here as well based MAC address. Actually such approach is standard and it’s called EUI-64. Now it’s time to check our ipv6 connectivity between Cisco IOS XRv and Nokia (Alcatel-Lucent) VSR:
A:SR3# ping fc00::10:0:0:1 |
Here is small hint for those of you, who aren’t very familiar with IPv6. There is no ARP in IPv6, though the resolution of L2 (MAC) addresses to L3 (IPv6) addresses must somehow work. It is covered by ND (neighbor discovery) protocol, which is part of ICMPv6. At Cisco IOS XR you can check it as:
RP/0/0/CPU0:XR1#sh ipv6 neighbors |
At Nokia (Alcatel-Lucent) SR OS it’s done by very similar command:
A:SR3# show router neighbor |
In the same way we add IPv6 addresses to the loopback interfaces at VSR.
IPv6 static routing
Now let’s configure the simplest type of the routing, which is actually static routing, for IPv6. As next-hop addresses we use so called IPv6 GUA (global unicast addresses):
Nokia (Alcatel-Lucent) SR OS (VSR) | Cisco IOS XR (XRv) |
A:SR3>config>router#info |
RP/0/0/CPU0:XR1(config)#show conf |
Let’s test the operation of basic IPv6 connectivity:
RP/0/0/CPU0:XR1#ping fc00::10:0:10:1 so fc00::10:0:11:1 |
In general there is also another possibility to add static route using IPv6 LLA (link-local addresses). At Cisco IOS XR you can do it in the following way:
RP/0/0/CPU0:XR1(config-static-afi)#show conf |
In Nokia (Alcatel-Lucent) SR OS you do it with the following command:
*A:SR3>config>router# static-route fc00::10:0:102:1/128 next-hop fe80::250:56ff:fe34:2a3d-“toXR1_p1” |
So you configure next-hop IPv6 LLA and outgoing interface together. To be honest, I haven’t figured it out from the CLI help. Just saw this at Nokia (Alcatel-Lucent) IGP course.
Now we can test whether the traffic between another pair of loopback can be transmitted:
A:SR3# ping fc00::10:0:102:1 source fc00::10:0:101:1 |
Lessons learned
The devil is hidden in the details. Small nuances, like “chassis mode”, can significantly delay your implementation (or the article writing in my case) of IPv6 or other technologies, if you don’t have Internet access (as it was with me, as the major part of this article I’ve written in the train).
Conclusion
In this article we’ve covered basics of IPv6 configuration and operation at our two chosen vendors, which are Nokia (Alcatel-Lucent) and Cisco Systems. The configuration was done in our virtual lab based in Cisco IOS XRv (running IOS XR) and Nokia (Alcatel-Lucent) VSR (running SR OS). I have a significant reason to do it in the beginning of my journey in the world of service provider networks, because starting from this time I will consider in my articles configuration of dual stack for all the technologies, where it’s possible. The root cause is above, we really need to implement IPv6. The side reason is that I want to improve my own skills in IPv6 while preparing for Nokia (Alcatel-Lucent) SRA and Cisco CCIE SP.
Support us
BR,
Anton Karneliuk