Site icon Karneliuk

Configuring IPv6/OSPFv3 between Nokia (Alcatel-Lucent) SR OS and Cisco IOS XR

Hello my friend,
Having covered IPv4/OSPFv2 in the previous article I was constantly thinking about improving topology as it’s difficult to show many interesting things having only two routers. And finally I find the way how to do it. In this article about IPv6/OSPFv3 the topology is two times bigger and now we have 4 virtual routers. Let’s discover how IPv6 traffic is routed by OSPFv3.

Disclaimer

A lot of theory regarding interface types, MTU mismatch and so on was covered in the article about IPv4/OPSFv2. I strongly recommend reading it before reading this article, as here I won’t explain them again.

Lab tuning

As I’ve already said in the very beginning, I wanted to add devices into my lab to provide better explanation of routing concepts. First my step was to remove all unnecessary application that uses my memory. That allowed me to launch one more instance of Nokia (Alcatel-Lucent) VSR. Memory usage at my laptop currently looks like:


Three devices are far better than only two, as I can configure different areas and show inter-area routes propagation. But as ABR I have to use either Cisco IOS XRv or Nokia (Alcatel-Lucent) VSR, so not both vendors are covered equally then. The next step that I’ve taken is virtualization of virtual Cisco IOS XRv router by configuring additional VRF (virtual routing and forwarding instance), which for this lab works perfectly as a separate router. It isn’t possible to use such trick for all the topologies and technologies, but here it gives me the possibility to build bigger OSPF domain. Actually I can run much more VRFs (it’s virtually unlimited number), but one additional is enough. Though configuration of VRF at Cisco IOS XR is very straightforward, I won’t explain it in this article for two reasons. First, it’s a topic for separate article, and second, the configuration of OSPFv3 in VRF is just the same as without. So for current article we consider VRF as fully functional additional router.

Such approach Cisco calls VRF-lite

Topology

Physical topology is almost the same as it was in the article about OSPFv2 besides the fact that now we have one additional KVM VM, which is attached to two internal bridges in Linux host:


Logical topology is a little bit complicated comparing to the OSPFv2 as I have more routers in the topology and therefore I have to configure trunking to satisfy my requirements:

If you have questions how to configure trunk in Nokia (Alcatel-Lucent) SR OS, Cisco IOS XR or Linux, read this article.

As you can see we have only IPv6 addresses here. Based on the findings from my article about trunking, I have to modify bridging in Linux by mapping each trunk to separate bridge. I won’t explain it, so you can dig into details yourself. Having read article about trunking it’s easy. Also I have explicitly configured IPv6 link-local addresses both at Nokia (Alcatel-Lucent) VSR (SR 7750) and Cisco IOS XR (ASR 9000). The initial configuration files you can find here: SR3_initial XR1+AREA1_final SR1_initial

Basic OSPFv3 connectivity

In general I’ll follow the same logic as it was with OSPFv2 moving from easy to more advanced topics. Nevertheless here we’ll configure multi-area topology from the beginning. Interface (or network) types will be the following:

Media type SR1 SR3 XR1 XR1 (vrf AREA1)
Point-to-point toXR1_p1 toXR1 Gig0/0/0/1.211
Gig0/0/0/0.10
Broadcast toXR1_p2
toXR2
Gig0/0/0/1.10 Gig0/0/0/0.111

Types of all areas at the beginning will be default. We will change some of them later to see the differences. The mapping of interfaces to the areas will be the following:

Area Prefix
0.0.0.0 fc00::10:0:x:x/96
0.0.0.1 fc00::10:1:x:x/96
0.0.0.2 fc00::10:2:x:x/96

Basic guidelines are established, so now it’s CONFIG time! Pay also attention how OSPFv3 process defined in Nokia (Alcatel-Lucent) SR OS. In OSPFv2 I have configured it with distinct process-id though here I don’t mention it. In general you can omit process-id if you have only one topology or if you configure core network (not CE-facing process):

Nokia (Alcatel-Lucent) VSR (SR 7750) Cisco IOS XR (ASR 9000)
SR1 XR1

*A:SR1>config>router>ospf3$ info
——————————–
router-id 10.0.255.1
area 0.0.0.0
interface “system”
no shutdown
exit
interface “toXR1_p1”
interface-type point-to-point
hello-interval 2
dead-interval 8
no shutdown
exit
interface “toXR1_p2”
interface-type broadcast
priority 10
hello-interval 2
dead-interval 8
no shutdown
exit
exit
area 0.0.0.1
interface “toXR2”
interface-type broadcast
hello-interval 2
dead-interval 8
no shutdown
exit
exit
no shutdown
——————————–

RP/0/0/CPU0:XR1(config)#show conf
router ospfv3 XR1
router-id 10.0.255.2
auto-cost reference-bandwidth 100000
area 0.0.0.0
interface Loopback0
!
interface GigabitEthernet0/0/0/0.10
network point-to-point
hello-interval 2
!
interface GigabitEthernet0/0/0/1.10
network broadcast
hello-interval 2
!
!
area 0.0.0.2
interface GigabitEthernet0/0/0/1.211
network point-to-point
hello-interval 2
!
!
!
end

SR3 XR1 (vrf AREA1)

*A:SR3>config>router>ospf3$ info
——————————–
router-id 10.2.255.33
area 0.0.0.2
interface “system”
no shutdown
exit
interface “Lo11”
no shutdown
exit
interface “Lo12”
no shutdown
exit
interface “toXR1”
interface-type point-to-point
hello-interval 2
dead-interval 8
no shutdown
exit
exit
no shutdown
——————————–

RP/0/0/CPU0:XR1(config)#show conf
router ospfv3 AREA1
vrf AREA1
router-id 10.1.255.11
capability vrf-lite
auto-cost reference-bandwidth 100000
area 0.0.0.1
interface Loopback10
!
interface Loopback11
!
interface Loopback12
!
interface GigabitEthernet0/0/0/0.111
network broadcast
hello-interval 2
!
!
!
!
end

When the configuration is done first of all we should check, whether we have OSPF adjacency established. SR1 tells us that he has three neighbors:

A:SR1# show router ospf3 neighbor
============================================================================
OSPFv3 (0) all neighbors
============================================================================
Interface-Name      Rtr Id       State     Pri   RetxQ   TTL
Area-Id
—————————————————————————-
toXR1_p1            10.0.255.2   Full      1     0       6
0.0.0.0
toXR1_p2            10.0.255.2   Full      1     0       6
0.0.0.0
toXR2               10.1.255.11  Full      1     0       7
0.0.0.1
—————————————————————————-
No. of Neighbors: 3
============================================================================

You see that router-id (RID) is looks like IPv4 address, though we haven’t configured any single IPv4 addresses. Previously in Cisco IOS there was a requirement to have configured at least one interface with IPv4 address; otherwise the router-id can’t be assigned. Cisco IOS XR as well as Nokia (Alcatel-Lucent) SR OS doesn’t have such requirement. Let’s check our virtual router AREA, which is VRF at XR1:

RP/0/0/CPU0:XR1#show ospfv3 AREA1 vrf AREA1 neighbor
Neighbors for OSPFv3 AREA1, VRF AREA1
Neighbor ID      Pri   State     Dead Time    Int ID   Interface
10.0.255.1       1     FULL/BDR  00:00:06     4        GigabitEthernet0/0/0/0.111
Neighbor is up for 00:29:20
Total neighbor count: 1

As you see, dealing our AREA1 has also established OSPFv3 adjacency with its peer. What is also worth mentioning is that I haven’t configured authentication though for IPv4/OSPFv2 it was done. The reason for that is absence of MD5/SHA1 authentication options for OSPFv3. The only option is to manual configuration of SPI parameters (IPSec actually), which neither convenient nor scalable.
Let’s check what we have in the routing table at SR1:

A:SR1# show router route-table ipv6
============================================================================
IPv6 Route Table (Router: Base)
============================================================================
Dest Prefix[Flags]                        Type    Proto    Age       Pref
Next Hop[Interface Name]                                 Metric
—————————————————————————-
fc00::10:0:0:0/127                        Local   Local    00h32m15s 0
toXR1_p1                                                 0
fc00::10:0:0:2/127                        Local   Local    00h32m15s 0
toXR1_p2                                                 0
fc00::10:0:255:1/128                      Local   Local    01h38m26s 0
system                                                   0
fc00::10:0:255:2/128                      Remote  OSPF3    00h23m59s 10
fe80::c5c0:0:0:10-“toXR1_p1”                             100
fc00::10:1:0:0/127                        Local   Local    00h32m15s 0
toXR2                                                    0
fc00::10:1:11:1/128                       Remote  OSPF3    00h16m24s 10
fe80::c5c0:0:1:111-“toXR2”                               100
fc00::10:1:12:1/128                       Remote  OSPF3    00h16m24s 10
fe80::c5c0:0:1:111-“toXR2”                               100
fc00::10:1:255:11/128                     Remote  OSPF3    00h16m24s 10
fe80::c5c0:0:1:111-“toXR2”                               100
fc00::10:2:0:0/127                        Remote  OSPF3    00h25m20s 10
fe80::c5c0:0:0:10-“toXR1_p1”                             101
fc00::10:2:11:1/128                       Remote  OSPF3    00h25m18s 10
fe80::c5c0:0:0:10-“toXR1_p1”                             101
fc00::10:2:12:1/128                       Remote  OSPF3    00h25m18s 10
fe80::c5c0:0:0:10-“toXR1_p1”                             101
fc00::10:2:255:33/128                     Remote  OSPF3    00h25m18s 10
fe80::c5c0:0:0:10-“toXR1_p1”                             101
—————————————————————————–
No. of Routes: 12

ECMP is disabled in Nokia (Alcatel-Lucent) SR OS by default. In order to activate it use “configure router ecmp 2”, where 2 is number of equal cost routes.
In general you should add parameter “ipv6” to the show commands in order to see IPv6-related information. Now I want to point out the next-hop. You can see that it is link-local IPv6 address, not global unicast address. Let’s review OSPFv3 neighbor in details:

A:SR1# show router ospf3 neighbor 10.0.255.2 detail | match expression “Neighbor|Local”
Neighbor Rtr Id  : 10.0.255.2 Interface: toXR1_p1
Neighbor IP Addr : fe80::c5c0:0:0:10-“toXR1_p1”
Local IF IP Addr : fe80::51:0:0:1-“toXR1_p1”
Neighbor State   : Full                  Priority : 1
Neighbor Rtr Id  : 10.0.255.2 Interface: toXR1_p2
Neighbor IP Addr : fe80::c5c0:0:0:10-“toXR1_p2”
Local IF IP Addr : fe80::51:0:0:1-“toXR1_p2”
Neighbor State   : Full                  Priority : 1

You see that adjacency is build using link-local addresses only. This is very important fact and to be honest IPv6 global unicast addresses aren’t necessary to be configured at point-to-point links, which connect routers with each other. I’ll review such design and its configuration in the end of the article.

Now let’s briefly compare LSDBs at Nokia (Alcatel-Lucent) SR OS and Cisco IOS XR as there is one interesting difference. We’ll compare them at SR3 and AREA1, as databases are smaller there. So SR3 has the following LSAs:

A:SR3# show router ospf3 database
============================================================================
OSPFv3 (0) Link State Database (Type : All)
============================================================================
Type     Area Id   Link State Id   Adv Rtr Id  Age  Sequence   Cksum
—————————————————————————
Router   0.0.0.2   0.0.0.0         10.0.255.2  395 0x80000011 0x91a9
Router   0.0.0.2   0.0.0.0         10.2.255.33 730 0x80000009 0x7ae9
IE Pfx   0.0.0.2   0.0.0.11        10.0.255.2  395 0x80000004 0xe340
IE Pfx   0.0.0.2   0.0.0.12        10.0.255.2  395 0x80000006 0xa15
IE Pfx   0.0.0.2   0.0.0.15        10.0.255.2  665 0x80000004 0xca5f
IE Pfx   0.0.0.2   0.0.0.19        10.0.255.2  395 0x80000002 0xe6dd
IE Pfx   0.0.0.2   0.0.0.20        10.0.255.2  395 0x80000002 0xd0d2
IE Pfx   0.0.0.2   0.0.0.21        10.0.255.2  395 0x80000002 0xaef4
IE Pfx   0.0.0.2   0.0.0.22        10.0.255.2  395 0x80000002 0xda71
IE Pfx   0.0.0.2   0.0.0.23        10.0.255.2  395 0x80000002 0xdfd4
IA Pfx   0.0.0.2   0.0.0.0         10.0.255.2  395 0x80000004 0x9858
IA Pfx   0.0.0.2   0.0.0.0         10.2.255.33 730 0x80000012 0x19e3
—————————————————————————-
No. of LSAs: 12
============================================================================

We have here 3 types of LSA: Router (contains only topology, without any addressing), IA Pfx (intra-area prefix – information about IPv6 addresses inside area) and IE Pfx (inter-area prefix – information learned from another area). Together Router LSA and IA Pfx LSA form LSA1 (Router LSA) in OSPFv2 and IE Pfx is LSA3 (summary). Now let’s take a look at AREA, what is VRF in Cisco IOS XR:

RP/0/0/CPU0:XR1#show ospfv3 AREA1 vrf AREA1 database
OSPFv3 Router with ID (10.1.255.11) (Process ID AREA1 VRF AREA1)

Router Link States (Area 0.0.0.1)
ADV Router     Age   Seq#         Fragment ID   Link count   Bits
10.0.255.1     1109  0x80000003   0             1            B
10.1.255.11    760   0x8000000c   0             1            B

Net Link States (Area 0.0.0.1)
ADV Router     Age   Seq#         Link ID       Rtr count
10.1.255.11    1109  0x80000001   18            2

Inter Area Prefix Link States (Area 0.0.0.1)
ADV Router     Age   Seq#         Prefix
10.0.255.1     1229  0x80000002   fc00::10:0:255:1/128
10.0.255.1     1232  0x80000001   fc00::10:0:0:0/127
10.0.255.1     1104  0x80000002   fc00::10:0:0:2/127
10.0.255.1     1110  0x80000004   fc00::10:0:255:2/128
10.0.255.1     758   0x80000004   fc00::10:2:0:0/127
10.0.255.1     758   0x80000002   fc00::10:2:255:33/128
10.0.255.1     758   0x80000002   fc00::10:2:11:1/128
10.0.255.1     758   0x80000002   fc00::10:2:12:1/128

Link (Type-8) Link States (Area 0.0.0.1)
ADV Router     Age   Seq#         Link ID       Interface
10.0.255.1     1110  0x80000007   4             Gi0/0/0/0.111
10.1.255.11    1416  0x80000003   18            Gi0/0/0/0.111

Intra Area Prefix Link States (Area 0.0.0.1)
ADV Router     Age   Seq#         Link ID       Ref-lstype   Ref-LSID
10.1.255.11    1109  0x8000000c   0             0x2001       0
10.1.255.11    1109  0x80000001   18432         0x2002       18

In addition to the same LSAs you can see here one more type: LSA8. They contain information about link-local addresses, which are used as next-hops for OSPFv3 routes. Here they details:

RP/0/0/CPU0:XR1#show ospfv3 AREA1 vrf AREA1 database link
OSPFv3 Router with ID (10.1.255.11) (Process ID AREA1 VRF AREA1)

Link (Type-8) Link States (Area 0.0.0.1)

LS age: 1251
Options: (V6-Bit E-Bit R-Bit )
LS Type: Link-LSA (Interface: GigabitEthernet0/0/0/0.111)
Link State ID: 4 (Interface ID)
Advertising Router: 10.0.255.1
LS Seq Number: 80000007
Checksum: 0xfa9f
Length: 64
Router Priority: 1
Link Local Address: fe80::51:0:1:111
Number of Prefixes: 1
Prefix Address: fc00::10:1:0:0
Prefix Length: 127, Options: None

LS age: 1558
Options: (V6-Bit E-Bit R-Bit DC-Bit)
LS Type: Link-LSA (Interface: GigabitEthernet0/0/0/0.111)
Link State ID: 18 (Interface ID)
Advertising Router: 10.1.255.11
LS Seq Number: 80000003
Checksum: 0x80af
Length: 64
Router Priority: 1
Link Local Address: fe80::c5c0:0:1:111
Number of Prefixes: 1
Prefix Address: fc00::10:1:0:0
Prefix Length: 127, Options: None

So both Nokia (Alcatel-Lucent) VSR (SR 7750) and Cisco IOS XR generate this LSA, but you can’t review them in SR OS. And to be honest, I have no idea why.

UPD 22.08.2016 (thanks to Alexander Okonnikov)

To see the LSA with link-state addresses in Nokia (Alcatel-Lucent) SR OS you should use the following command:

A:SR1# show router ospf3 interface “toXR1_p1” database detail
===============================================================================
OSPFv3 (0) Link State Database (Detailed)
===============================================================================
——————————————————————————-
Link LSA
——————————————————————————-
Interface Address : 0.0.0.0               Adv Router Id : 10.0.255.1
Link State Id     : 0.0.0.4               LSA Type      : Link
Sequence No       : 0x80000002            Checksum      : 0x76dd
Age               : 1028                  Length        : 44
Options           : —-R–EV6            Rtr Priority  : 1
Link Local Addr   : fe80::51:0:0:1
No of Pfxs        : 0
——————————————————————————-
Link LSA
——————————————————————————-
Interface Address : 0.0.0.0               Adv Router Id : 10.0.255.2
Link State Id     : 0.0.0.25              LSA Type      : Link
Sequence No       : 0x80000001            Checksum      : 0x39a1
Age               : 190                   Length        : 44
Options           : –DCR–EV6            Rtr Priority  : 1
Link Local Addr   : fe80::c5c0:0:0:10
No of Pfxs        : 0
===============================================================================

Notice that you have to mention interface, at which you want to review LLA.

To test the connectivity we will ping system interface or Loopback 0 at each router:

A:SR1# ping fc00::10:0:255:2 count 1
PING fc00::10:0:255:2 56 data bytes
64 bytes from fc00::10:0:255:2 icmp_seq=1 hlim=64 time=14.2ms.
—- fc00::10:0:255:2 PING Statistics —-
1 packet transmitted, 1 packet received, 0.00% packet loss
round-trip min = 14.2ms, avg = 14.2ms, max = 14.2ms, stddev = 0.000ms

A:SR1# ping fc00::10:1:255:11 count 1
PING fc00::10:1:255:11 56 data bytes
64 bytes from fc00::10:1:255:11 icmp_seq=1 hlim=64 time=5.42ms.
—- fc00::10:1:255:11 PING Statistics —-
1 packet transmitted, 1 packet received, 0.00% packet loss
round-trip min = 5.42ms, avg = 5.42ms, max = 5.42ms, stddev = 0.000ms

A:SR1# ping fc00::10:2:255:33 count 1
PING fc00::10:2:255:33 56 data bytes
64 bytes from fc00::10:2:255:33 icmp_seq=1 hlim=63 time=23.0ms.
—- fc00::10:2:255:33 PING Statistics —-
1 packet transmitted, 1 packet received, 0.00% packet loss
round-trip min = 23.0ms, avg = 23.0ms, max = 23.0ms, stddev = 0.000ms

Inter-area tuning

As I haven’t idea how to get more routers to the lab while writing article about OSPFv2 (link), I haven’t covered different types of areas, which we have in OSPF. As OSPFv3 has the same set of area types, we’ll discuss here their configuration. I’ll remind you, we have the following area type (besides ordinary type, which is used by default):

Stub Totally stub NSSA Totally NSSA
LSA5 filtering Yes Yes Yes Yes
LSA3 filtering No Yes No Yes
Default route Yes (LSA3) Yes (LSA3) No (Yes – LSA7) Yes (LSA3)

I won’t go here in detail as I think you know it. The only thing is worth mentioning is that by default NSSA doesn’t have default route injected by ABR, though you can explicitly configure it. Then it will be distributed via LSA7 (NSSA external), whereas in other types of area default route is distributed via LSA3. In our topology we’ll use the following area types:

Area Type
0.0.0.1 NSSA
0.0.0.2 Totally stub

To accomplish this task we do the following configuration:

Nokia (Alcatel-Lucent) VSR (SR 7750) Cisco IOS XR (ASR 9000)
SR1 XR1

*A:SR1>config>router>ospf3$ info
——————————–
area 0.0.0.1
nssa
exit
——————————–

RP/0/0/CPU0:XR1(config)#show conf
router ospfv3 XR1
area 0.0.0.2
stub no-summary
!
!
end

SR3 XR1 (vrf AREA1)

*A:SR3>config>router>ospf3$ info
——————————–
area 0.0.0.2
stub
exit
——————————–

RP/0/0/CPU0:XR1(config)#show conf
router ospfv3 AREA1
vrf AREA1
area 0.0.0.1
nssa
!
!
!
end

When you change area type, the OSPF adjacency will be reestablished, so you have to take it into consideration before implementing in production. At AREA1 we won’t see any changes so far, as we don’t have external routes. At SR1 the changes are already obvious:

A:SR3# show router ospf3 database
============================================================================
OSPFv3 (0) Link State Database (Type : All)
============================================================================
Type     Area Id   Link State Id   Adv Rtr Id  Age  Sequence   Cksum
—————————————————————————
Router   0.0.0.2   0.0.0.0         10.0.255.2  26   0x80000014 0x7fba
Router   0.0.0.2   0.0.0.0         10.2.255.33 26   0x8000000c 0x68fa
IE Pfx   0.0.0.2   0.0.0.25        10.0.255.2  27   0x80000001 0x4ccc
IA Pfx   0.0.0.2   0.0.0.0         10.0.255.2  802  0x80000005 0x9659
IA Pfx   0.0.0.2   0.0.0.0         10.2.255.33 26   0x80000014 0x15e5
—————————————————————————-
No. of LSAs: 5
============================================================================
!
!
A:SR3# show router ospf3 database type inter-area-pfx detail
============================================================================
OSPFv3 (0) Link State Database (Type : IE Pfx) (Detailed)
============================================================================
—————————————————————————-
IE Pfx LSA for Area 0.0.0.2
—————————————————————————-
Area Id            : 0.0.0.2              Adv Router Id : 10.0.255.2
Link State Id      : 0.0.0.25 (25)
LSA Type           : IE Pfx
Sequence No        : 0x80000001           Checksum      : 0x4ccc
Age                : 63                   Length        : 28
Pfx Options        :                      Metric        : 1
Dest Prefix        : ::/0
============================================================================

So instead of numerous LSA3 we have only one such LSA, which contains information about default route. This simplifies the routing table significantly:

A:SR3# show router route-table ipv6
============================================================================
IPv6 Route Table (Router: Base)
============================================================================
Dest Prefix[Flags]                        Type    Proto    Age       Pref
Next Hop[Interface Name]                                 Metric
—————————————————————————-
::/0                                      Remote  OSPF3    00h06m03s 10
fe80::c5c0:0:2:211-“toXR1”                               101
fc00::10:2:0:0/127                        Local   Local    00h59m22s 0
toXR1                                                    0
fc00::10:2:11:1/128                       Local   Local    00h59m31s 0
Lo11                                                     0
fc00::10:2:12:1/128                       Local   Local    00h59m32s 0
Lo12                                                     0
fc00::10:2:255:33/128                     Local   Local    00h59m32s 0
system                                                   0
—————————————————————————-
No. of Routes: 5

The next step in reducing the amount of unnecessary information is inter-area summarization. As you recall, summarization of routes in OSPF is possible only at ABR (in Cisco IOS XR at ASBR as well). Based on our topology we’ll do the following summarization:

Direction Prefix
Area 0.0.0.0 -> Area 0.0.0.1 fc00::10:0:0:0/80
Area 0.0.0.1 -> Area 0.0.0.0 fc00::10:1:0:0/96
Area 0.0.0.2 -> Area 0.0.0.0 fc00::10:2:0:0/96

This task is achieved by the following configuration:

Nokia (Alcatel-Lucent) VSR (SR 7750) Cisco IOS XR (ASR 9000)
SR1 XR1

*A:SR1>config>router>ospf3$ info
——————————–
area 0.0.0.0
area-range fc00::10:0:0:0/80 advertise
exit
area 0.0.0.1
area-range fc00::10:1:0:0/96 advertise
exit
——————————–

RP/0/0/CPU0:XR1(config)#show conf
router ospfv3 XR1
area 0.0.0.2
range fc00::10:2:0:0/96 advertise
!
!
end

For example at AREA1 (VRF at Cisco IOS XR1) we have now only two OSPF routes:

RP/0/0/CPU0:XR1#show route vrf AREA1 ipv6 ospf
O IA fc00::10:0:0:0/80
.     [110/200] via fe80::51:0:1:111, 00:05:52, GigabitEthernet0/0/0/0.111
O IA fc00::10:2:0:0/96
.     [110/300] via fe80::51:0:1:111, 00:03:54, GigabitEthernet0/0/0/0.111

Summarization is done only for IA Pfx prefix in OSPFv3 (as well as only for LSA1 in OSPFv3). That’s why you see 2 routes.

Let’s check if our summarization doesn’t break anything:

RP/0/0/CPU0:XR1#ping vrf AREA1 fc00::10:0:255:1 so fc00::10:1:255:11
Sending 5, 100-byte ICMP Echos to fc00::10:0:255:1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/3/9 ms

RP/0/0/CPU0:XR1#ping vrf AREA1 fc00::10:0:255:2 so fc00::10:1:255:11
Sending 5, 100-byte ICMP Echos to fc00::10:0:255:2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/8/19 ms

RP/0/0/CPU0:XR1#ping vrf AREA1 fc00::10:2:255:33 so fc00::10:1:255:11
Sending 5, 100-byte ICMP Echos to fc00::10:2:255:33, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/7/9 ms

Redistribution of external routes

Following the same logic as have in OSPFv2 article (link) we have reached the point, where we need to redistribute external IPv6 prefixes in OSPFv3. Take a look at the image below.


The actual redistribution will be the following:

Device Prefix External type
SR1 2001:DB8:1:1::/64 E1, Metric 100
SR1 2001:DB8:1:2::/64 E2, Metric 50
AREA1 2001:DB8:11:1::/64 N1, Metric 1100
AREA1 2001:DB8:11:2::/64 N2, Metric 1050

In addition to the configuration above we’ll limit redistribution at SR1 so that redistributed IPv6 prefix won’t be injected into Area 1. If not to do it, prefixes 2001:db8:1:1::/64 and 2001:db8:1:2::/64 will be redistributed into area 0.0.0.1 as NSSA routes as SR1 has interface in area 0.0.0.1 as well the configuration what we should use:

Nokia (Alcatel-Lucent) VSR (SR 7750) Cisco IOS XR (ASR 9000)
SR1 AREA1 (VRF at XR1)

A:SR1>config>router>policy-options# info
——————————-
prefix-list “PL_IPV6_LOOPBACK_101”
prefix 2001:db8:1:1::/64 exact
exit
prefix-list “PL_IPV6_LOOPBACK_102”
prefix 2001:db8:1:2::/64 exact
exit
policy-statement “RP_RED_TO_OSPFV3”
entry 10
from
protocol direct
prefix-list “PL_IPV6_LOOPBACK_101”
exit
action accept
metric set 100
type 1
exit
exit
entry 20
from
protocol direct
prefix-list “PL_IPV6_LOOPBACK_102”
exit
action accept
metric set 50
type 2
exit
exit
default-action reject
exit
——————————-
A:SR1>config>router>ospf3# info
——————————-
asbr
export “RP_RED_TO_OSPFV3”
area 0.0.0.1
nssa
no redistribute-external
exit
exit
——————————-

RP/0/0/CPU0:XR1(config)#show conf
route-policy RP_RED_TO_OSPFV3
if destination in (2001:db8:11:1::/64) then
set ospf-metric 1100
set metric-type type-1
elseif destination in (2001:db8:11:2::/64) then
set ospf-metric 1050
set metric-type type-2
endif
end-policy
!
router ospfv3 AREA1
vrf AREA1
redistribute connected route-policy RP_RED_TO_OSPFV3
!
!
end

Don’t remember to explicitly activate ASBR functionality in Nokia (Alcatel-Lucent) SR OS.

Let’s check NSSA external LSA in LSDB at AREA1:

RP/0/0/CPU0:XR1#show ospfv3 AREA1 vrf AREA1 database nssa-external
OSPFv3 Router with ID (10.1.255.11) (Process ID AREA1 VRF AREA1)

Type-7 AS External Link States (Area 0.0.0.1)

LS age: 297
LS Type: AS External Link
Link State ID: 2
Advertising Router: 10.1.255.11
LS Seq Number: 80000001
Checksum: 0x2c2a
Length: 52
Prefix Address: 2001:db8:11:1::
Prefix Length: 64, Options: P , Priority: Low
Metric Type: 1 (Comparable directly to link state metric)
Metric: 1100
Forward Address: fc00::10:1:12:1
External Route Tag: 0

LS age: 297
LS Type: AS External Link
Link State ID: 3
Advertising Router: 10.1.255.11
LS Seq Number: 80000001
Checksum: 0x77f
Length: 52
Prefix Address: 2001:db8:11:2::
Prefix Length: 64, Options: P , Priority: Low
Metric Type: 1 (Comparable directly to link state metric)
Metric: 1050
Forward Address: fc00::10:1:12:1
External Route Tag: 0

As we have configured, there is no other external (or more precisely NSSA external) LSAs in its LSDB. Pay attention to the “Forwarding Address” (FA) field, as it has some non-zero value. Cisco IOS XR chose it as the highest active loopback interface number (Lo12 in our case. Each router then makes routing lookup to this address before installing route in RIB.

When there is redistribution in NSSA, FA is always set non-zero value.

Let’s take a look into LSDB at SR1:

A:SR1# show router ospf3 database | match expression “NSSA|Ext|Type|-|=”
============================================================================
OSPFv3 (0) Link State Database (Type : All)
============================================================================
Type     Area Id   Link State Id   Adv Rtr Id  Age  Sequence   Cksum
—————————————————————————-
NSSA     0.0.0.1   0.0.0.2         10.1.255.11 567  0x80000001 0x2c2a
NSSA     0.0.0.1   0.0.0.3         10.1.255.11 567  0x80000001 0x77f
AS Ext   n/a       0.0.0.2         10.0.255.1  27   0x80000002 0xb2c6
AS Ext   n/a       0.0.0.3         10.0.255.1  27   0x80000002 0x990c
AS Ext   n/a       0.0.0.6         10.0.255.1  564  0x80000001 0x4205
AS Ext   n/a       0.0.0.7         10.0.255.1  564  0x80000001 0x1d5a
—————————————————————————-
============================================================================

You see 2 LSA7 generated by AREA1 (RID 10.1.255.11), which are then translated into LSA5 by this Nokia (Alcatel-Lucent) VSR (SR 7750). Pay attention that after translation the Link State ID is changed:

A:SR1# show router ospf3 database type nssa 0.0.0.2 detail
============================================================================
OSPFv3 (0) Link State Database (Type : NSSA) (Detailed)
============================================================================
—————————————————————————-
NSSA LSA for Area 0.0.0.1
—————————————————————————-
Area Id            : 0.0.0.1              Adv Router Id : 10.1.255.11
Link State Id      : 0.0.0.2 (2)
LSA Type           : NSSA
Sequence No        : 0x80000001           Checksum      : 0x2c2a
Age                : 949                  Length        : 52
Options            : F
Pfx Options        : P                    N1-Metric     : 1100
Dest Prefix        : 2001:db8:11:1::/64
Nexthop            : fc00::10:1:12:1
============================================================================
!
!
A:SR1# show router ospf3 database type external 0.0.0.6 detail
============================================================================
OSPFv3 (0) Link State Database (Type : External) (Detailed)
============================================================================
—————————————————————————-
AS Ext LSA (0.0.0.6 (6))
—————————————————————————-
Area Id            : N/A                  Adv Router Id : 10.0.255.1
Link State Id      : 0.0.0.6 (6)
LSA Type           : AS Ext
Sequence No        : 0x80000001           Checksum      : 0x4205
Age                : 974                  Length        : 52
Options            : F
Pfx Options        :                      E1-Metric     : 1100
Dest Prefix        : 2001:db8:11:1::/64
Nexthop            : fc00::10:1:12:1
============================================================================

Basically it’s normal behavior for Nokia (Alcatel-Lucent) SR OS and for Cisco IOS XR to preserve the forwarding address. In the same time the forwarding address for routes redistributed into normal area will be zero (in Nokia (Alcatel-Lucent) SR OS you even don’t see this field):

A:SR1# show router ospf3 database type external 0.0.0.2 detail
============================================================================
OSPFv3 (0) Link State Database (Type : External) (Detailed)
============================================================================
—————————————————————————-
AS Ext LSA (0.0.0.2 (2))
—————————————————————————-
Area Id            : N/A                  Adv Router Id : 10.0.255.1
Link State Id      : 0.0.0.2 (2)
LSA Type           : AS Ext
Sequence No        : 0x80000002           Checksum      : 0xb2c6
Age                : 1138                 Length        : 36
Options            :
Pfx Options        :                      E1-Metric     : 100
Dest Prefix        : 2001:db8:1:1::/64
============================================================================

There is one exception to this rule, though it isn’t widely used. First links in google for “forwarding address ospf external” will help you.

At SR3 we don’t see any external routes as we have totally stub area there:

A:SR3# show router route-table ipv6
============================================================================
IPv6 Route Table (Router: Base)
============================================================================
Dest Prefix[Flags]                        Type    Proto    Age       Pref
Next Hop[Interface Name]                                 Metricic
—————————————————————————-
::/0                                      Remote  OSPF3    00h06m03s 10
fe80::c5c0:0:2:211-“toXR1”                               101
fc00::10:2:0:0/127                        Local   Local    00h59m22s 0
toXR1                                                    0
fc00::10:2:11:1/128                       Local   Local    00h59m31s 0
Lo11                                                     0
fc00::10:2:12:1/128                       Local   Local    00h59m32s 0
Lo12                                                     0
fc00::10:2:255:33/128                     Local   Local    00h59m32s 0
system                                                   0
—————————————————————————-
No. of Routes: 5

But at XR1 we see all these external IPv6 prefixes:

RP/0/0/CPU0:XR1#show route ipv6 ospf
O E1 2001:db8:1:1::/64
.     [110/200] via fe80::51:0:0:1, 00:46:17, GigabitEthernet0/0/0/1.10
.     [110/200] via fe80::51:0:0:1, 00:46:17, GigabitEthernet0/0/0/0.10
O E2 2001:db8:1:2::/64
.     [110/50] via fe80::51:0:0:1, 00:46:17, GigabitEthernet0/0/0/1.10
.     [110/50] via fe80::51:0:0:1, 00:46:17, GigabitEthernet0/0/0/0.10
O E1 2001:db8:11:1::/64
.     [110/1300] via fe80::51:0:0:1, 00:22:06, GigabitEthernet0/0/0/1.10
.     [110/1300] via fe80::51:0:0:1, 00:22:06, GigabitEthernet0/0/0/0.10
O E2 2001:db8:11:2::/64
.     [110/1050] via fe80::51:0:0:1, 00:00:50, GigabitEthernet0/0/0/1.10
.     [110/1050] via fe80::51:0:0:1, 00:00:50, GigabitEthernet0/0/0/0.10

We have almost finished with establishing the connectivity between all our subnets. You remember that area between AREA1 (VRF at XR1) and SR1 is NSSA so it doesn’t have any default route by default. Also we have limited the redistribution of routes at SR1 into area 0.0.0.1, so we need somehow to configure injection of default route at SR1. There are two options basically: convert configuration at SR1 from NSSA to totally NSSA or inject default route as LSA7. Let’s use the latter option:

Nokia (Alcatel-Lucent) VSR (SR 7750)
SR1

A:SR1>config>router>ospf3# info
——————————-
area 0.0.0.1
nssa
originate-default-route type-nssa
exit
exit
——————————-

If you omit “type-nssa” in Nokia (Alcatel-Lucent) SR OS the route will be injected as LSA3 without converting area to totally NSSA. Cisco IOS XR by default injects default route into NSSA as LSA7.

Now the LSDP at AREA1 must changed, so it makes sense to check it:

RP/0/0/CPU0:XR1#show ospfv3 AREA1 vrf AREA1 database
Type-7 AS External Link States (Area 0.0.0.1)
ADV Router Age Seq# Prefix
10.0.255.1 44 0x80000001 ::/0
10.1.255.11 775 0x80000002 2001:db8:11:1::/64
10.1.255.11 1466 0x80000002 2001:db8:11:2::/64

Looks good, isn’t it?

Default route in the backbone area

What I haven’t covered in the previous article is the injecting of the default route in the core. Though this topic is relatively easy, I’d provide brief configuration here. There are two possible options, which depend on presence of default route in the RIB. One option demands is, whereas another doesn’t. So let’s configure the second one both at Nokia (Alcatel-Lucent) VSR (SR 7750) and Cisco IOS XR (ASR 9000):

Nokia (Alcatel-Lucent) VSR (SR 7750) Cisco IOS XR (ASR 9000)
SR1 XR1

RP/0/0/CPU0:XR1(config)#show conf
router ospfv3 XR1
default-information originate always
!
end

Configuration at SR1 is empty, isn’t it? The reason for that is the absence of such feature in Nokia (Alcatel-Lucent) SR OS. Nevertheless Cisco IOS XR (and other Cisco IOS) has such function. Upon applying this command, Cisco IOS XR generates LSA5 with default route and distributes it across the whole OSPF domain:

A:SR1# show router ospf3 routes
============================================================================
OSPFv3 (0) Routing Table
============================================================================
Destination                      Type(Dest)        Stat
NHIP                               NHIF        Cost[E2]
—————————————————————————-
::/0                             E2 (EXT)          N (R)
fe80::c5c0:0:0:10-“toXR1_p1”       4           100:1

In the same time this route isn’t installed (even as black hole) in XR1’s RIB:

RP/0/0/CPU0:XR1#sh route ipv6 ospf ::/0
% No matching routes found

To redistribute default route in Nokia (Alcatel-Lucent) SR OS you have to have in routing table and then use export route-policy (as other external routes redistribution).

Removal of IPv6 addresses at routers interconnects

Upon analyzing routing table you can point out those next hops for IPv6 prefixes are always IPv6 link-local addresses. As I have already said before, usually you can omit IPv6 global unicast addresses from links that connect routers with each other, as they just waste the routing table. Actually you can don’t configure them only on these links, as you must configure them at customer-facing interfaces and at loopbacks. The topology will look like then as follows:

There is no any single change in the OSPFv3 configuration either at Nokia (Alcatel-Lucent) VSR (SR 7750) or Cisco IOS XRv (ASR 9000). What we do is just removal of IPv6 global unicast addresses at the following links:

We won’t notice the change in the routing table as we have already configured prefix summarization between areas and in each area we have only two routers, so all interconnect prefix are already installed in routing table as local routes. Nevertheless the information in intra-area prefix LSA will be reduced. At the example below you see output at Cisco XR1 of LSA generated by Nokia (Alcatel-Lucent) SR1:

Before After

RP/0/0/CPU0:XR1#show ospfv3 XR1 database prefix adv-router 10.0.255.1
OSPFv3 Router with ID (10.0.255.2) (Process ID XR1)

Intra Area Prefix Link States (Area 0.0.0.0)

Routing Bit Set on this LSA
LS age: 821
LS Type: Intra-Area-Prefix-LSA
Link State ID: 0
Advertising Router: 10.0.255.1
LS Seq Number: 80000005
Checksum: 0x8c6a
Length: 72
Referenced LSA Type: 2001
Referenced Link State ID: 0
Referenced Advertising Router: 10.0.255.1
Number of Prefixes: 2
Prefix Address: fc00::10:0:255:1
Prefix Length: 128, Options: LA , Metric: 0, Priority: Critical
Prefix Address: fc00::10:0:0:0
Prefix Length: 127, Options: None, Metric: 100, Priority: Low

Routing Bit Set on this LSA
LS age: 821
LS Type: Intra-Area-Prefix-LSA
Link State ID: 30005
Advertising Router: 10.0.255.1
LS Seq Number: 80000001
Checksum: 0xa702
Length: 52
Referenced LSA Type: 2002
Referenced Link State ID: 5
Referenced Advertising Router: 10.0.255.1
Number of Prefixes: 1
Prefix Address: fc00::10:0:0:2
Prefix Length: 127, Options: None, Metric: 0, Priority: Low

RP/0/0/CPU0:XR1#show ospfv3 XR1 database prefix adv-router 10.0.255.1
OSPFv3 Router with ID (10.0.255.2) (Process ID XR1)

Intra Area Prefix Link States (Area 0.0.0.0)

Routing Bit Set on this LSA
LS age: 65
LS Type: Intra-Area-Prefix-LSA
Link State ID: 0
Advertising Router: 10.0.255.1
LS Seq Number: 80000007
Checksum: 0x7981
Length: 52
Referenced LSA Type: 2001
Referenced Link State ID: 0
Referenced Advertising Router: 10.0.255.1
Number of Prefixes: 1
Prefix Address: fc00::10:0:255:1
Prefix Length: 128, Options: LA , Metric: 0, Priority: Critical

Routing Bit Set on this LSA
LS age: 65
LS Type: Intra-Area-Prefix-LSA
Link State ID: 30005
Advertising Router: 10.0.255.1
LS Seq Number: 80000003
Checksum: 0x3219
Length: 32
Referenced LSA Type: 2002
Referenced Link State ID: 5
Referenced Advertising Router: 10.0.255.1
Number of Prefixes: 0

To prove that everything works well, let’s check whether we have full connectivity between all system/loopback interfaces of all devices.

From the far right Nokia (Alcatel-Lucent) VSR (SR 7750), which is SR3, we have the following results:

A:SR3# ping fc00::10:1:255:11 count 1
PING fc00::10:1:255:11 56 data bytes
64 bytes from fc00::10:1:255:11 icmp_seq=1 hlim=62 time=24.0ms.
—- fc00::10:1:255:11 PING Statistics —-
1 packet transmitted, 1 packet received, 0.00% packet loss
round-trip min = 24.0ms, avg = 24.0ms, max = 24.0ms, stddev = 0.000ms

A:SR3# ping fc00::10:1:11:1 count 1
PING fc00::10:1:11:1 56 data bytes
64 bytes from fc00::10:1:11:1 icmp_seq=1 hlim=62 time=5.59ms.
—- fc00::10:1:11:1 PING Statistics —-
1 packet transmitted, 1 packet received, 0.00% packet loss
round-trip min = 5.59ms, avg = 5.59ms, max = 5.59ms, stddev = 0.000ms

A:SR3# ping fc00::10:1:12:1 count 1
PING fc00::10:1:12:1 56 data bytes
64 bytes from fc00::10:1:12:1 icmp_seq=1 hlim=62 time=29.8ms.
—- fc00::10:1:12:1 PING Statistics —-
1 packet transmitted, 1 packet received, 0.00% packet loss
round-trip min = 29.8ms, avg = 29.8ms, max = 29.8ms, stddev = 0.000ms

A:SR3# ping 2001:db8:11:1::1 count 1
PING 2001:db8:11:1::1 56 data bytes
64 bytes from 2001:db8:11:1::1 icmp_seq=1 hlim=62 time=4.74ms.
—- 2001:db8:11:1::1 PING Statistics —-
1 packet transmitted, 1 packet received, 0.00% packet loss
round-trip min = 4.74ms, avg = 4.74ms, max = 4.74ms, stddev = 0.000ms

A:SR3# ping 2001:db8:11:2::1 count 1
PING 2001:db8:11:2::1 56 data bytes
64 bytes from 2001:db8:11:2::1 icmp_seq=1 hlim=62 time=5.60ms.
—- 2001:db8:11:2::1 PING Statistics —-
1 packet transmitted, 1 packet received, 0.00% packet loss
round-trip min = 5.60ms, avg = 5.60ms, max = 5.60ms, stddev = 0.000ms

A:SR3# ping fc00::10:0:255:1 count 1
PING fc00::10:0:255:1 56 data bytes
64 bytes from fc00::10:0:255:1 icmp_seq=1 hlim=63 time=26.9ms.
—- fc00::10:0:255:1 PING Statistics —-
1 packet transmitted, 1 packet received, 0.00% packet loss
round-trip min = 26.9ms, avg = 26.9ms, max = 26.9ms, stddev = 0.000ms

A:SR3# ping 2001:db8:1:1::1 count 1
PING 2001:db8:1:1::1 56 data bytes
64 bytes from 2001:db8:1:1::1 icmp_seq=1 hlim=63 time=6.36ms.
—- 2001:db8:1:1::1 PING Statistics —-
1 packet transmitted, 1 packet received, 0.00% packet loss
round-trip min = 6.36ms, avg = 6.36ms, max = 6.36ms, stddev = 0.000ms

A:SR3# ping 2001:db8:1:2::1 count 1
PING 2001:db8:1:2::1 56 data bytes
64 bytes from 2001:db8:1:2::1 icmp_seq=1 hlim=63 time=17.3ms.
—- 2001:db8:1:2::1 PING Statistics —-
1 packet transmitted, 1 packet received, 0.00% packet loss
round-trip min = 17.3ms, avg = 17.3ms, max = 17.3ms, stddev = 0.000ms

A:SR3# ping fc00::10:0:255:2 count 1
PING fc00::10:0:255:2 56 data bytes
64 bytes from fc00::10:0:255:2 icmp_seq=1 hlim=64 time=10.8ms.
—- fc00::10:0:255:2 PING Statistics —-
1 packet transmitted, 1 packet received, 0.00% packet loss
round-trip min = 10.8ms, avg = 10.8ms, max = 10.8ms, stddev = 0.000ms

SR3 has the full connectivity to all the necessary IPv6 prefixes. Let’s check now the far left Cisco IOS XR router (AREA1 – VRF at XR1):

RP/0/0/CPU0:XR1#ping vrf AREA1 fc00::10:0:255:1 source fc00::10:1:255:11
Sending 5, 100-byte ICMP Echos to fc00::10:0:255:1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/6/19 ms

RP/0/0/CPU0:XR1#ping vrf AREA1 2001:db8:1:1::1 source fc00::10:1:255:11
Sending 5, 100-byte ICMP Echos to 2001:db8:1:1::1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/6/9 ms

RP/0/0/CPU0:XR1#ping vrf AREA1 2001:db8:1:2::1 source fc00::10:1:255:11
Sending 5, 100-byte ICMP Echos to 2001:db8:1:2::1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/6/19 ms

RP/0/0/CPU0:XR1#ping vrf AREA1 fc00::10:0:255:2 source fc00::10:1:255:11
Sending 5, 100-byte ICMP Echos to fc00::10:0:255:2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/13/29 ms

RP/0/0/CPU0:XR1#ping vrf AREA1 fc00::10:2:255:33 source fc00::10:1:255:11
Sending 5, 100-byte ICMP Echos to fc00::10:2:255:33, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/8/19 ms

As you can see our networks works well. If you want to compare it with your configuration or just test something, use final configs for references:

SR1_final XR1+AREA1_initial SR3_final

Lessons learned

As you can see, with the follow of my series I discover not only Nokia (Alcatel-Lucent) SR OS configuration and its interoperability with Cisco IOS XR, but many other things, like optimizing lab and so on as well. For example, building of the topology for current lab give me insight how to build topology for Service Architecture exam, which I going to pass this week.

Conclusion

So far we have covered the configuration of IPv4/OPSFv2 and IPv6/OSPFv3. These protocols (or this protocol) are one of the most popular and widely deployed routing protocols not only in the Service Provider networks, but in enterprises as well. I hope that now you have understanding how you can implement it in multivendor environment and therefore you are better prepared for real tasks. In my opinion the interoperability will be one of the most important horse forces in the networks in future, as more and more clients are implementing at least dual vendor strategy. Take care and good bye!

Support us





BR,
Anton Karneliuk

Exit mobile version