Vyatta Network OS Documentation

Learn how to install, configure and operate the Vyatta NOS, which helps drive our virtual networking & physical platforms portfolio.

Show Page Sections

OSPFv3 Configuration

Open Shortest Path First Version 3 (OSPFv3) is a link-state Interior Gateway Protocol (IGP) developed by IETF and is based on OSPF Version 2 (OSPFv2), which supports IPv4.

OSPFv3 overview

For more information about OSPFv2, refer to Ciena Vyatta Network OS OSPF Configuration Guide. OSPFv3 adds support for IPv6 in the OSPF routing protocol and is described in RFC 5340. OSPFv3 works as in OSPFv2, that is, OSPFv3 router IDs, area IDs, and LSA link-state IDs are 32 bits as in OSPFv2 IPv4. In addition, all optional capabilities of OSPFv2 for IPv4, for example, NSSA, are supported in OSPFv3 for IPv6. Most OSPFv3 capabilities are expanded from OSPFv2 to support the IPv6 address family, but OSPFv3 does not depend on OSPFv2 configurations. OSPFv3 works independently.

However, some significant changes exist in OSPFv3 for IPv6 and these changes include the following:

  • Router LSAs and network LSAs no longer carry prefix information. In OSPFv3, these LSAs carry only the topology information.
  • New and modified LSAs have been created to handle the flow of IPv6 addresses and prefixes in an OSPFv3 network.
  • OSPFv3 runs on a per-link basis, instead of a per-IP-subnet basis. Two nodes can communicate over a link even when they do not share a common IPv6 prefix.
  • OSPFv3 supports stub areas.
  • IPv6 link-local addresses are used for OSPFv3 neighbor exchanges, except over virtual links. Link-local addresses have local significance only.
  • The 32-bit router ID in OSPFv3 always identifies neighboring routers.
  • The flooding scope for LSAs is generalized into three categories for OSPFv3:
    • Link-local scope. The OSPFv3 packet is flooded only to the members connected on a link.
    • Area scope. The OSPFv3 packet is flooded to all members of an OSPFv3 area.
    • AS scope. The OSPFv3 packet is flooded to all members of an AS.
  • LSPs and traffic engineering are not supported in OSPFv3.
  • In OSPFv3, the Options field is available in only Hello packets, DD packets, Router LSAs, Network LSAs, Inter-Area-Router LSAs, and Link LSAs.
  • OSPFv3 has two new LSAs: Link LSA and Intra Area Prefix LSA.
  • OSPFv3 communicates over IPv6, but can carry routing data for other address families, that is IPv4 and multicast.

OSPFv3 adds support for address families which helps OSPFv3 IPv6 networks to support both IPv6 and IPv4 nodes. For more information on this feature, refer to Support for OSPFv3 address families.

Support for OSPFv3 address families

OSPFv3 communicates with peer routers over IPv6, but can carry routing data for other address families. By default, OSPFv3 supports the IPv6 unicast address family. However, OSPFv3 can support other address families when configured to do so. The vRouter OSPFv3 implementation provides support for carrying IPv4 and IPv6 unicast routing data.

It is important to understand that instance identifiers not only identify a routing instance, but also identify an address family. The following are the instance IDs breakdown:

  • Instance ID 0 to 31: IPv6 unicast AF
  • Instance ID 32 to 63: IPv6 multicast AF
  • Instance ID 64 to 95: IPv4 unicast AF
  • Instance ID 96 to 127: IPv4 multicast AF

OSPFv3 supports multiple OSPFv3 processes under default VRF and each process may support one address family.

Note: OSPFv3 supports only one OSPFv3 process under non-default VRF.

Supports one routing instance within each OSPFv3 process.

Supports only IPv4 address family

Default OSPFv3 process does not provide address family support.

Supported standard

The Ciena implementation of OSPFv3 complies with the following standards:

  • RFC 5340, OSPF for IPv6
  • RFC 5838, Support of Address Families in OSPFv3
  • RFC 3101, The OSPF Not-SO-Stubby Area (NSSA) Option
  • RFC 5643, Management Information Base for OSPFv3

Configuring OSPFv3

This section provides the following topics:

This section presents a sample configuration for OSPFv3. The configuration example is based on the following reference diagram.

Figure 1. OSPFv3 configuration reference diagram

Basic OSPFv3 configuration

In this section, you configure OSPFv3 on the routers labeled R1 and R2 in the reference network diagram.

To create a basic OSPFv3 configuration, perform the following steps in configuration mode:

Table 1. Basic OSPFv3 configuration

Router

Step

Commands

Configure Interface IP addresses and OSPFv3 Configuration

R1

Set an IPv6 address on interface dp0p1p2.


vyatta@R1# set interfaces dataplane dp0p1p2 address 2001:db8:0:4::1/64

R1

Set an IPv6 address on interface dp0p1p3.


vyatta@R1# set interfaces dataplane dp0p1p3 address 2001:db8:0:8::1/64

R1

Set the OSPFv3 area on interface dp0p1p2.


vyatta@R1# set interfaces dataplane dp0p1p2 ipv6 ospfv3 area 0.0.0.0

R1

Set the OSPFv3 area on interface dp0p1p3.


vyatta@R1# set interfaces dataplane dp0p1p3 ipv6 ospfv3 area 0.0.0.0

R1

Set the OSPFv3 area for a given process ID and instance ID on interface dp0p1p2.


vyatta@R1# set interfaces dataplane dp0p1p2 ipv6 ospfv3 process labR instance-id 3 area 0.0.0.0

R1

Set the OSPFv3 area for a given process ID and instance ID on interface dp0p1p3.


vyatta@R1# set interfaces dataplane dp0p1p3 ipv6 ospfv3 process labR instance-id 3 area 0.0.0.0

R1

Display the configuration.


vyatta@R1# show interfaces
dataplane dp0p1p2 {
     address 2001:db8:0:4::1/64
     duplex auto
     hw-id 00:0c:29:09:3e:73
     ipv6 {
         dup-addr-detect-transmits 1
         ospfv3 {
             area 0.0.0.0
             process labR {
                 instance-id 3 {
                     area 0.0.0.0
                 }
             }
         }
     }
 }
 dataplane dp0p1p3 {
     address 2001:db8:0:8::1/64
     duplex auto
     hw-id 00:0c:29:09:3e:7d
     ipv6 {
         dup-addr-detect-transmits 1
         ospfv3 {
             area 0.0.0.0
             process labR {
                 instance-id 3 {
                     area 0.0.0.0
                 }
             }
         }
     }
}

Configure OSPFv3 Protocol Commands

R1

Specify the OSPFv3 address range and advertise this range.


vyatta@R1# set protocols ospfv3 process labR area 0.0.0.0 range 2001::1/128 advertise

R1

Set router ID for process labR.


vyatta@R1# set protocols ospfv3 process labR router-id 10.10.10.10

R1

Commit the configuration.


vyatta@R1# commit

R1

Display the configuration.


vyatta@R1# show protocols
 ospfv3 {
     process labR {
         area 0.0.0.0 {
             }
router-id 10.10.10.10
     }
 }

Configure Interface IP Addresses and OSPFv3 Configuration

R2

Set an IPv6 address on interface dp0p1p2.


vyatta@R2# set interfaces dataplane dp0p1p2 address 2001:db8:0:4::2/64

R2

Set an IPv6 address on interface dp0p1p3.


vyatta@R2# set interfaces dataplane dp0p1p3 address 2001:db8:0:200::/64

R2

Set the OSPFv3 area on interface dp0p1p2.


vyatta@R2# set interfaces dataplane dp0p1p2 ipv6 ospfv3 area 0.0.0.0

R2

Set the OSPFv3 area for a given process ID and instance ID on interface dp0p1p2.


vyatta@R2# set interfaces dataplane dp0p1p2 ipv6 ospfv3 process labR instance-id 3 area 0.0.0.0

R2

Display the interface configuration.


vyatta@R2# show interfaces
  dataplane dp0p1p2 {
     address 2001:db8:0:4::2/64
     duplex auto
     hw-id 00:0c:29:4b:d8:ff
     ipv6 {
         dup-addr-detect-transmits 1
         ospfv3 {
             area 0.0.0.0
             process labR {
                 instance-id 3 {
                     area 0.0.0.0
                 }
             }
         }
     }
 }
 dataplane dp0p1p3 {
     address 2001:db8:0:200::/64
     duplex auto
     hw-id 00:0c:29:4b:d8:09
     speed auto
 }

Configure OSPFv3 Protocol Commands

R2

Specify the OSPFv3 address range and advertise this range.


vyatta@R2# set protocols ospfv3 process labR area 0.0.0.0 range 2001::2/128 advertise

R2

Set the global OSPFv3 parameter of a router ID.


vyatta@R2# set protocols ospfv3 process labR router-id 10.10.10.11

R2

Commit the configuration.


vyatta@R2# commit

R2

Display the configuration.


vyatta@R2# show protocols
 ospfv3 {
     process labR {
         area 0.0.0.0 {
             range 2001::2/128 {
                 advertise
             }
         }
         router-id 10.10.10.11
     }
 }

Verifying the OSPFv3 configuration

The following operational mode commands can be used to verify the OSPFv3 configuration.

R1: show ipv6 ospfv3 neighbor

The following example shows the output of the show ipv6 ospfv3 neighbor command for router R1.

Verifying OSPFv3 on R1: "show ipv6 ospfv3 neighbor”

vyatta@R1:~$ show ipv6 ospfv3 neighbor
OSPFv3 Process (labR)
Neighbor ID     Pri   State           Dead Time   Interface  Instance ID
10.10.10.11       1   Full/DR         00:00:34    dp0p1p2 3

R1: show ipv6 route

The following example shows the output of the show ipv6 route command for router R1.

Verifying OSPFv3 on R1: ”show ipv6 route”

vyatta@R1:~$ show ipv6 route
IPv6 Routing Table
Codes: K - kernel route, C - connected, S - static, R - RIP, O - OSPF,
       IA - OSPF inter area, E1 - OSPF external type 1,
       E2 - OSPF external type 2, I - IS-IS, B - BGP
       > - selected route, * - FIB route, p - stale info
Timers: Uptime
C   *> ::1/128 is directly connected, lo
O      2001:db8:0:4::/64 [110/1] is directly connected, dp0p1p2, 23:39:41
C   *> 2001:db8:0:4::/64 is directly connected, dp0p1p2
O      2001:db8:0:8::/64 [110/1] is directly connected, dp0p1p3, 23:39:41
C   *> 2001:db8:0:8::/64 is directly connected, dp0p1p3
C   *  fe80::/64 is directly connected, dp0p1p2
C   *  fe80::/64 is directly connected, dp0p1p1
C   *> fe80::/64 is directly connected, dp0p1p3
K   *> ff00::/8 is directly connected, dp0p1p2
K   *  ff00::/8 is directly connected, dp0p1p1
K   * ff00::/8 is directly connected, dp0p1p3

R2: show ipv6 ospfv3 neighbor

The following example shows the output of the show ipv6 ospfv3 neighbor command for router R2.

Verifying OSPFv3 on R2: ”show ipv6 ospfv3 neighbor”

vyatta@R2:~$ show ipv6 ospfv3 neighbor
OSPFv3 Process (labR)
Neighbor ID     Pri   State           Dead Time   Interface  Instance ID
10.10.10.10       1   Full/Backup     00:00:36    dp0p1p2 3

R2: show ipv6 route

The following example shows the output of the show ipv6 route command for router R2.

Verifying OSPFv3 on R2: ”show ipv6 route”

vyatta@R2:~$ show ipv6 route
IPv6 Routing Table
Codes: K - kernel route, C - connected, S - static, R - RIP, O - OSPF,
       IA - OSPF inter area, E1 - OSPF external type 1,
       E2 - OSPF external type 2, I - IS-IS, B - BGP
       > - selected route, * - FIB route, p - stale info
Timers: Uptime
C   *> ::1/128 is directly connected, lo
O      2001:db8:0:4::/64 [110/1] is directly connected, dp0p1p2, 23:44:53
C   *> 2001:db8:0:4::/64 is directly connected, dp0p1p2
O   *> 2001:db8:0:8::/64 [110/2] via fe80::20c:29ff:fe09:3e73, dp0p1p2, 23:44:02
C   *> 2001:db8:0:200::/64 is directly connected, dp0p1p3
C   *> 2004::/64 is directly connected, lo
C   *  fe80::/64 is directly connected, dp0p1p2
C   *  fe80::/64 is directly connected, dp0p1p1
C   *> fe80::/64 is directly connected, dp0p1p3
K   *> ff00::/8 is directly connected, dp0p1p2
K   *  ff00::/8 is directly connected, dp0p1p1
K   *  ff00::/8 is directly connected, dp0p1p3

R2: ping 2001:db8:0:8::1

Using the ping command from R2, we can verify that we can reach hosts on remote networks. In this case we ping an IP address on R1. This verification is shown in the following example.

Verifying OSPF on R2: “ping6 2001:db8:0:8::1”

vyatta@R2# ping6 2001:db8:0:8::1
PING 2001:db8:0:8::1(2001:db8:0:8::1) 56 data bytes
64 bytes from 2001:db8:0:8::1: icmp_seq=1 ttl=64 time=0.460 ms
64 bytes from 2001:db8:0:8::1: icmp_seq=2 ttl=64 time=0.153 ms
64 bytes from 2001:db8:0:8::1: icmp_seq=3 ttl=64 time=0.209 ms
64 bytes from 2001:db8:0:8::1: icmp_seq=4 ttl=64 time=0.156 ms
64 bytes from 2001:db8:0:8::1: icmp_seq=5 ttl=64 time=0.163 ms
64 bytes from 2001:db8:0:8::1: icmp_seq=6 ttl=64 time=0.159 ms
--- 2001:db8:0:8::1 ping statistics ---
6 packets transmitted, 6 received, 0% packet loss, time 4997ms
rtt min/avg/max/mdev = 0.153/0.216/0.460/0.111 ms

The output confirms that the OSPFv3 configuration is working and that we are able to reach a remote network.

Removing router-id overlap

If the vRouter detects that multiple OSPF or OSPFv3 processes that are running in a routing instance have the same router ID, the vRouter sends router-id overlap notifications to syslog. The vRouter also displays router-id overlap notifications in the output of the show ip ospf and show ipv6 ospfv3 commands.

In the following example, the lines that start with the "**" characters indicate an overlap in the router IDs that were allocated by the vRouter.
vyatta@vyatta# set protocols ospf
[edit]
vyatta@vyatta# set protocols ospf process 7
[edit]
vyatta@vyatta# commit
[edit]
vyatta@vyatta# run show ip ospf 
 Routing Process "ospf 0" with ID 1.1.1.1
** Allocated Router ID 1.1.1.1 overlaps with one or more ospf processes - please reconfigure **
 Process uptime is 4 minutes
 Process bound to routing-instance default
 Conforms to RFC2328, and RFC1583 Compatibility flag is disabled
 Supports only single TOS(TOS0) routes
 Supports opaque LSA
 Does not support Restarting
 SPF schedule delay initial 0 secs 500 msecs
 SPF schedule delay min 0 secs 500 msecs
 SPF schedule delay max 50 secs 0 msecs
 Refresh timer 10 secs
 Number of incoming current DD exchange neighbors 0/64
 Number of outgoing current DD exchange neighbors 0/64
 Initial LSA throttle delay 0 secs 0 msecs
 Minimum hold time for LSA throttle 5 secs 0 msecs
 Maximum wait time for LSA throttle 5 secs 0 msecs
 Minimum LSA arrival 1 secs 0 msecs
 Number of external LSA 0. Checksum 0x000000
 Number of opaque AS LSA 0. Checksum 0x000000
 Number of non-default external LSA 0
 External LSA database is unlimited.
 Number of LSA originated 0
 Number of LSA received 0
 Number of areas attached to this router: 0

[edit]
vyatta@vyatta# run show ip ospf process 7
 Routing Process "ospf 7" with ID 1.1.1.1
** Allocated Router ID 1.1.1.1 overlaps with one or more ospf processes - please reconfigure **
 Process uptime is 12 minutes
...
[edit]
The following example shows an overlap between the router ID that the vRouter allocated to process 0 and the router ID that a user configured for process 4.
vyatta@vyatta# set protocols ospf process 4 parameters router-id 1.1.1.1
vyatta@vyatta# set protocols ospf 
vyatta@vyatta# commit
vyatta@vyatta# run show ip ospf 
 Routing Process "ospf 0" with ID 1.1.1.1
** Allocated Router ID 1.1.1.1 overlaps with one or more ospf processes - please reconfigure **
 Process uptime is 27 minutes
...
vyatta@vyatta# run show ip ospf process 4 
 Routing Process "ospf 4" with ID 1.1.1.1
** Configured Router ID 1.1.1.1 overlaps with one or more ospf processes - please reconfigure **
 Process uptime is 6 minutes
 ...
The following example shows overlap in router IDs allocated to OSPFv3 processes by the vRouter.
vyatta@vyatta# set protocols ospfv3
[edit]
vyatta@vyatta# set protocols ospfv3 process 1
[edit]
vyatta@vyatta# commit
[edit]
vyatta@vyatta# run show ipv6 ospfv3 
 Routing Process "OSPFv3 (*null*)" with ID 10.18.170.230
** Allocated Router ID 10.18.170.230 overlaps with one or more processes - please reconfigure **
 Process uptime is 0 minute
 Process bound to routing-instance default
 SPF schedule delay initial 0.500 secs
 SPF schedule delay min 0.500 secs
 SPF schedule delay max 50.0 secs
 Minimum LSA interval 5 secs, Minimum LSA arrival 1 secs
 Number of incoming current DD exchange neighbors 0/5
 Number of outgoing current DD exchange neighbors 0/5
 Number of external LSA 0. Checksum Sum 0x0000
 Number of AS-Scoped Unknown LSA 0
 Number of LSA originated 0
 Number of LSA received 0
 Number of areas in this router is 0
  
[edit]
vyatta@vyatta# run show ipv6 ospfv3 process 1 
 Routing Process "OSPFv3 (1)" with ID 10.18.170.230
** Allocated Router ID 10.18.170.230 overlaps with one or more processes - please reconfigure **
 Process uptime is 1 minute
 ...
[edit]
The following example shows an overlap between the router ID that the vRouter allocated to OSPFv3 process 3 and the router ID that a user configured for OSPFv3 process 0.
vyatta@vyatta# set protocols ospfv3 router-id 1.1.1.1
[edit]
vyatta@vyatta# set protocols ospfv3 process 3
[edit]
vyatta@vyatta# commit
[edit]
vyatta@vyatta# run show ipv6 ospfv3 
 Routing Process "OSPFv3 (*null*)" with ID 1.1.1.1
** Configured Router ID 10.18.170.230 overlaps with one or more processes - please reconfigure **
 Process uptime is 0 minute
...
[edit]
vyatta@vyatta# run show ipv6 ospfv3 process 3
 Routing Process "OSPFv3 (3)" with ID 1.1.1.1
** Allocated Router ID 1.1.1.1 overlaps with one or more processes - please reconfigure **
 Process uptime is 1 minute
 ...
[edit]

To remove router-id overlap, use the set protocols ospf parameters router-id and set protocols ospfv3 router-id commands to configure unique router IDs for OSPF and OSPFv3 processes, respectively.