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.
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.
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:
Router |
Step |
Commands |
---|---|---|
Configure Interface IP addresses and OSPFv3 Configuration | ||
R1 |
Set an IPv6 address on interface dp0p1p2. |
|
R1 |
Set an IPv6 address on interface dp0p1p3. |
|
R1 |
Set the OSPFv3 area on interface dp0p1p2. |
|
R1 |
Set the OSPFv3 area on interface dp0p1p3. |
|
R1 |
Set the OSPFv3 area for a given process ID and instance ID on interface dp0p1p2. |
|
R1 |
Set the OSPFv3 area for a given process ID and instance ID on interface dp0p1p3. |
|
R1 |
Display the configuration. |
|
Configure OSPFv3 Protocol Commands | ||
R1 |
Specify the OSPFv3 address range and advertise this range. |
|
R1 |
Set router ID for process labR. |
|
R1 |
Commit the configuration. |
|
R1 |
Display the configuration. |
|
Configure Interface IP Addresses and OSPFv3 Configuration | ||
R2 |
Set an IPv6 address on interface dp0p1p2. |
|
R2 |
Set an IPv6 address on interface dp0p1p3. |
|
R2 |
Set the OSPFv3 area on interface dp0p1p2. |
|
R2 |
Set the OSPFv3 area for a given process ID and instance ID on interface dp0p1p2. |
|
R2 |
Display the interface configuration. |
|
Configure OSPFv3 Protocol Commands | ||
R2 |
Specify the OSPFv3 address range and advertise this range. |
|
R2 |
Set the global OSPFv3 parameter of a router ID. |
|
R2 |
Commit the configuration. |
|
R2 |
Display the configuration. |
|
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.
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]
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
...
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]
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.