]> git.proxmox.com Git - mirror_frr.git/blame - doc/user/ospf6d.rst
Merge pull request #9636 from donaldsharp/unchecked_return
[mirror_frr.git] / doc / user / ospf6d.rst
CommitLineData
11ab5329 1.. _ospfv3:
42fc5d26
QY
2
3******
4OSPFv3
5******
6
c1a54c05
QY
7*ospf6d* is a daemon support OSPF version 3 for IPv6 network. OSPF for IPv6 is
8described in :rfc:`2740`.
42fc5d26 9
11ab5329 10.. _ospf6-router:
42fc5d26
QY
11
12OSPF6 router
13============
14
487df450 15.. clicmd:: router ospf6 [vrf NAME]
42fc5d26 16
cb762746 17.. clicmd:: ospf6 router-id A.B.C.D
42fc5d26 18
c1a54c05 19 Set router's Router-ID.
42fc5d26 20
1e31580f 21.. clicmd:: timers throttle spf (0-600000) (0-600000) (0-600000)
42fc5d26 22
c1a54c05
QY
23 This command sets the initial `delay`, the `initial-holdtime`
24 and the `maximum-holdtime` between when SPF is calculated and the
25 event which triggered the calculation. The times are specified in
26 milliseconds and must be in the range of 0 to 600000 milliseconds.
42fc5d26 27
c1a54c05
QY
28 The `delay` specifies the minimum amount of time to delay SPF
29 calculation (hence it affects how long SPF calculation is delayed after
30 an event which occurs outside of the holdtime of any previous SPF
31 calculation, and also serves as a minimum holdtime).
42fc5d26 32
d1e7591e 33 Consecutive SPF calculations will always be separated by at least
c1a54c05
QY
34 'hold-time' milliseconds. The hold-time is adaptive and initially is
35 set to the `initial-holdtime` configured with the above command.
36 Events which occur within the holdtime of the previous SPF calculation
37 will cause the holdtime to be increased by `initial-holdtime`, bounded
38 by the `maximum-holdtime` configured with this command. If the adaptive
d1e7591e 39 hold-time elapses without any SPF-triggering event occurring then
9eb95b3b
QY
40 the current holdtime is reset to the `initial-holdtime`.
41
42 .. code-block:: frr
42fc5d26 43
42fc5d26
QY
44 router ospf6
45 timers throttle spf 200 400 10000
a8c90e15 46
42fc5d26 47
c1a54c05
QY
48 In this example, the `delay` is set to 200ms, the initial holdtime is set
49 to 400ms and the `maximum holdtime` to 10s. Hence there will always be at
50 least 200ms between an event which requires SPF calculation and the actual
51 SPF calculation. Further consecutive SPF calculations will always be
d1e7591e 52 separated by between 400ms to 10s, the hold-time increasing by 400ms each
c1a54c05
QY
53 time an SPF-triggering event occurs within the hold-time of the previous
54 SPF calculation.
42fc5d26 55
c1a54c05 56.. clicmd:: auto-cost reference-bandwidth COST
42fc5d26 57
42fc5d26 58
c1a54c05
QY
59 This sets the reference bandwidth for cost calculations, where this
60 bandwidth is considered equivalent to an OSPF cost of 1, specified in
61 Mbits/s. The default is 100Mbit/s (i.e. a link of bandwidth 100Mbit/s
62 or higher will have a cost of 1. Cost of lower bandwidth links will be
63 scaled with reference to this cost).
42fc5d26 64
c1a54c05
QY
65 This configuration setting MUST be consistent across all routers
66 within the OSPF domain.
42fc5d26 67
a874b986 68.. clicmd:: maximum-paths (1-64)
1958143e
MR
69
70 Use this command to control the maximum number of parallel routes that
71 OSPFv3 can support. The default is 64.
72
44db98df
PR
73.. clicmd:: write-multiplier (1-100)
74
75 Use this command to tune the amount of work done in the packet read and
76 write threads before relinquishing control. The parameter is the number
77 of packets to process before returning. The default value of this parameter
78 is 20.
79
f71ed6df
YR
80.. clicmd:: clear ipv6 ospf6 process [vrf NAME]
81
82 This command clears up the database and routing tables and resets the
83 neighborship by restarting the interface state machine. This will be
84 helpful when there is a change in router-id and if user wants the router-id
85 change to take effect, user can use this cli instead of restarting the
86 ospf6d daemon.
a874b986 87
84405582
MR
88ASBR Summarisation Support in OSPFv3
89====================================
90
91 External routes in OSPFv3 are carried by type 5/7 LSA (external LSAs).
92 External LSAs are generated by ASBR (Autonomous System Boundary Router).
93 Large topology database requires a large amount of router memory, which
94 slows down all processes, including SPF calculations.
95 It is necessary to reduce the size of the OSPFv3 topology database,
96 especially in a large network. Summarising routes keeps the routing
97 tables smaller and easier to troubleshoot.
98
99 External route summarization must be configured on ASBR.
100 Stub area do not allow ASBR because they don’t allow type 5 LSAs.
101
102 An ASBR will inject a summary route into the OSPFv3 domain.
103
104 Summary route will only be advertised if you have at least one subnet
105 that falls within the summary range.
106
107 Users will be allowed an option in the CLI to not advertise range of
108 ipv6 prefixes as well.
109
110 The configuration of ASBR Summarisation is supported using the CLI command
111
112.. clicmd:: summary-address X:X::X:X/M [tag (1-4294967295)] [{metric (0-16777215) | metric-type (1-2)}]
113
114 This command will advertise a single External LSA on behalf of all the
115 prefixes falling under this range configured by the CLI.
116 The user is allowed to configure tag, metric and metric-type as well.
117 By default, tag is not configured, default metric as 20 and metric-type
118 as type-2 gets advertised.
119 A summary route is created when one or more specific routes are learned and
120 removed when no more specific route exist.
121 The summary route is also installed in the local system with Null0 as
122 next-hop to avoid leaking traffic.
123
124.. clicmd:: no summary-address X:X::X:X/M [tag (1-4294967295)] [{metric (0-16777215) | metric-type (1-2)}]
125
126 This command can be used to remove the summarisation configuration.
127 This will flush the single External LSA if it was originated and advertise
128 the External LSAs for all the existing individual prefixes.
129
130.. clicmd:: summary-address X:X::X:X/M no-advertise
131
132 This command can be used when user do not want to advertise a certain
133 range of prefixes using the no-advertise option.
134 This command when configured will flush all the existing external LSAs
135 falling under this range.
136
137.. clicmd:: no summary-address X:X::X:X/M no-advertise
138
139 This command can be used to remove the previous configuration.
140 When configured, tt will resume originating external LSAs for all the prefixes
141 falling under the configured range.
142
143.. clicmd:: aggregation timer (5-1800)
144
145 The summarisation command takes effect after the aggregation timer expires.
146 By default the value of this timer is 5 seconds. User can modify the time
147 after which the external LSAs should get originated using this command.
148
149.. clicmd:: no aggregation timer (5-1800)
150
151 This command removes the timer configuration. It reverts back to default
152 5 second timer.
153
154.. clicmd:: show ipv6 ospf6 summary-address [detail] [json]
155
156 This command can be used to see all the summary-address related information.
157 When detail option is used, it shows all the prefixes falling under each
158 summary-configuration apart from other information.
159
11ab5329 160.. _ospf6-area:
42fc5d26
QY
161
162OSPF6 area
163==========
164
7e5e3c19
IR
165.. clicmd:: area A.B.C.D range X:X::X:X/M [<advertise|not-advertise|cost (0-16777215)>]
166
167.. clicmd:: area (0-4294967295) range X:X::X:X/M [<advertise|not-advertise|cost (0-16777215)>]
168
169 Summarize a group of internal subnets into a single Inter-Area-Prefix LSA.
170 This command can only be used at the area boundary (ABR router).
171
172 By default, the metric of the summary route is calculated as the highest
173 metric among the summarized routes. The `cost` option, however, can be used
174 to set an explicit metric.
175
176 The `not-advertise` option, when present, prevents the summary route from
177 being advertised, effectively filtering the summarized routes.
178
8a60820f 179.. clicmd:: area A.B.C.D nssa [no-summary]
fb00683a 180
8a60820f 181.. clicmd:: area (0-4294967295) nssa [no-summary]
1e29f449
IR
182
183 Configure the area to be a NSSA (Not-So-Stubby Area).
184
185 The following functionalities are implemented as per RFC 3101:
186
187 1. Advertising Type-7 LSA into NSSA area when external route is
188 redistributed into OSPFv3.
189 2. Processing Type-7 LSA received from neighbor and installing route in the
190 route table.
191 3. Support for NSSA ABR functionality which is generating Type-5 LSA when
192 backbone area is configured. Currently translation of Type-7 LSA to
193 Type-5 LSA is enabled by default.
194 4. Support for NSSA Translator functionality when there are multiple NSSA
195 ABR in an area.
42fc5d26 196
8a60820f
RW
197 An NSSA ABR can be configured with the `no-summary` option to prevent the
198 advertisement of summaries into the area. In that case, a single Type-3 LSA
199 containing a default route is originated into the NSSA.
200
11ab5329 201.. _ospf6-interface:
42fc5d26
QY
202
203OSPF6 interface
204===============
205
aa47a69b
IR
206.. clicmd:: ipv6 ospf6 area <A.B.C.D|(0-4294967295)>
207
208 Enable OSPFv3 on the interface and add it to the specified area.
209
c1a54c05 210.. clicmd:: ipv6 ospf6 cost COST
42fc5d26 211
c1a54c05
QY
212 Sets interface's output cost. Default value depends on the interface
213 bandwidth and on the auto-cost reference bandwidth.
42fc5d26 214
c1a54c05 215.. clicmd:: ipv6 ospf6 hello-interval HELLOINTERVAL
42fc5d26 216
2de01166 217 Sets interface's Hello Interval. Default 10
42fc5d26 218
c1a54c05 219.. clicmd:: ipv6 ospf6 dead-interval DEADINTERVAL
42fc5d26 220
c1a54c05 221 Sets interface's Router Dead Interval. Default value is 40.
42fc5d26 222
c1a54c05 223.. clicmd:: ipv6 ospf6 retransmit-interval RETRANSMITINTERVAL
42fc5d26 224
c1a54c05 225 Sets interface's Rxmt Interval. Default value is 5.
42fc5d26 226
c1a54c05 227.. clicmd:: ipv6 ospf6 priority PRIORITY
42fc5d26 228
c1a54c05 229 Sets interface's Router Priority. Default value is 1.
42fc5d26 230
c1a54c05 231.. clicmd:: ipv6 ospf6 transmit-delay TRANSMITDELAY
42fc5d26 232
c1a54c05 233 Sets interface's Inf-Trans-Delay. Default value is 1.
42fc5d26 234
c1a54c05 235.. clicmd:: ipv6 ospf6 network (broadcast|point-to-point)
42fc5d26 236
d1e7591e 237 Set explicitly network type for specified interface.
42fc5d26 238
243892e0
DA
239OSPF6 route-map
240===============
241
242Usage of *ospfd6*'s route-map support.
243
243892e0
DA
244.. clicmd:: set metric [+|-](0-4294967295)
245
246 Set a metric for matched route when sending announcement. Use plus (+) sign
247 to add a metric value to an existing metric. Use minus (-) sign to
248 substract a metric value from an existing metric.
249
11ab5329 250.. _redistribute-routes-to-ospf6:
42fc5d26
QY
251
252Redistribute routes to OSPF6
253============================
254
476e9575 255.. clicmd:: redistribute <babel|bgp|connected|isis|kernel|openfabric|ripng|sharp|static|table> [metric-type (1-2)] [metric (0-16777214)] [route-map WORD]
42fc5d26 256
476e9575
RW
257 Redistribute routes of the specified protocol or kind into OSPFv3, with the
258 metric type and metric set if specified, filtering the routes using the
259 given route-map if specified.
42fc5d26 260
94e1125e
YR
261.. clicmd:: default-information originate [{always|metric (0-16777214)|metric-type (1-2)|route-map WORD}]
262
263 The command injects default route in the connected areas. The always
264 argument injects the default route regardless of it being present in the
265 router. Metric values and route-map can also be specified optionally.
42fc5d26 266
71165098
RW
267Graceful Restart
268================
269
270.. clicmd:: graceful-restart [grace-period (1-1800)]
271
272
273 Configure Graceful Restart (RFC 5187) restarting support.
274 When enabled, the default grace period is 120 seconds.
275
276 To perform a graceful shutdown, the "graceful-restart prepare ipv6 ospf"
277 EXEC-level command needs to be issued before restarting the ospf6d daemon.
6539d9ef 278
279.. clicmd:: graceful-restart helper-only [A.B.C.D]
280
281
282 Configure Graceful Restart (RFC 5187) helper support.
283 By default, helper support is disabled for all neighbours.
284 This config enables/disables helper support on this router
285 for all neighbours.
286 To enable/disable helper support for a specific
287 neighbour, the router-id (A.B.C.D) has to be specified.
288
289.. clicmd:: graceful-restart helper strict-lsa-checking
290
291
292 If 'strict-lsa-checking' is configured then the helper will
293 abort the Graceful Restart when a LSA change occurs which
294 affects the restarting router.
295 By default 'strict-lsa-checking' is enabled"
296
297.. clicmd:: graceful-restart helper supported-grace-time (10-1800)
298
299
300 Supports as HELPER for configured grace period.
301
302.. clicmd:: graceful-restart helper planned-only
303
304
305 It helps to support as HELPER only for planned
306 restarts. By default, it supports both planned and
307 unplanned outages.
308
71165098
RW
309.. clicmd:: graceful-restart prepare ipv6 ospf
310
311
312 Initiate a graceful restart for all OSPFv3 instances configured with the
313 "graceful-restart" command. The ospf6d daemon should be restarted during
314 the instance-specific grace period, otherwise the graceful restart will fail.
315
316 This is an EXEC-level command.
317
318
11ab5329 319.. _showing-ospf6-information:
42fc5d26
QY
320
321Showing OSPF6 information
322=========================
323
487df450 324.. clicmd:: show ipv6 ospf6 [vrf <NAME|all>] [json]
42fc5d26 325
487df450
IR
326 Show information on a variety of general OSPFv3 and area state and
327 configuration information. JSON output can be obtained by appending 'json'
328 to the end of command.
42fc5d26 329
487df450 330.. clicmd:: show ipv6 ospf6 [vrf <NAME|all>] database [<detail|dump|internal>] [json]
42fc5d26 331
e4bacbaa
YR
332 This command shows LSAs present in the LSDB. There are three view options.
333 These options helps in viewing all the parameters of the LSAs. JSON output
334 can be obtained by appending 'json' to the end of command. JSON option is
335 not applicable with 'dump' option.
336
487df450 337.. clicmd:: show ipv6 ospf6 [vrf <NAME|all>] database <router|network|inter-prefix|inter-router|as-external|group-membership|type-7|link|intra-prefix> [json]
e4bacbaa
YR
338
339 These options filters out the LSA based on its type. The three views options
340 works here as well. JSON output can be obtained by appending 'json' to the
341 end of command.
342
487df450 343.. clicmd:: show ipv6 ospf6 [vrf <NAME|all>] database adv-router A.B.C.D linkstate-id A.B.C.D [json]
e4bacbaa
YR
344
345 The LSAs additinally can also be filtered with the linkstate-id and
346 advertising-router fields. We can use the LSA type filter and views with
347 this command as well and visa-versa. JSON output can be obtained by
348 appending 'json' to the end of command.
349
487df450 350.. clicmd:: show ipv6 ospf6 [vrf <NAME|all>] database self-originated [json]
e4bacbaa
YR
351
352 This command is used to filter the LSAs which are originated by the present
353 router. All the other filters are applicable here as well.
42fc5d26 354
487df450 355.. clicmd:: show ipv6 ospf6 [vrf <NAME|all>] interface [json]
42fc5d26 356
f16ae8cf 357 To see OSPF interface configuration like costs. JSON output can be
358 obtained by appending "json" in the end.
42fc5d26 359
487df450 360.. clicmd:: show ipv6 ospf6 [vrf <NAME|all>] neighbor [json]
42fc5d26 361
6a5bb300 362 Shows state and chosen (Backup) DR of neighbor. JSON output can be
363 obtained by appending 'json' at the end.
42fc5d26 364
487df450 365.. clicmd:: show ipv6 ospf6 [vrf <NAME|all>] interface traffic [json]
ba30b376 366
367 Shows counts of different packets that have been recieved and transmitted
368 by the interfaces. JSON output can be obtained by appending "json" at the
369 end.
370
c1a54c05 371.. clicmd:: show ipv6 route ospf6
42fc5d26 372
c1a54c05 373 This command shows internal routing table.
42fc5d26 374
9ebb75c5 375.. clicmd:: show ipv6 ospf6 zebra [json]
42fc5d26 376
9ebb75c5 377 Shows state about what is being redistributed between zebra and OSPF6.
378 JSON output can be obtained by appending "json" at the end.
42fc5d26 379
487df450 380.. clicmd:: show ipv6 ospf6 [vrf <NAME|all>] redistribute [json]
dd726234 381
382 Shows the routes which are redistributed by the router. JSON output can
383 be obtained by appending 'json' at the end.
384
487df450 385.. clicmd:: show ipv6 ospf6 [vrf <NAME|all>] route [<intra-area|inter-area|external-1|external-2|X:X::X:X|X:X::X:X/M|detail|summary>] [json]
eacd0828
YR
386
387 This command displays the ospfv3 routing table as determined by the most
388 recent SPF calculations. Options are provided to view the different types
389 of routes. Other than the standard view there are two other options, detail
390 and summary. JSON output can be obtained by appending 'json' to the end of
391 command.
392
487df450 393.. clicmd:: show ipv6 ospf6 [vrf <NAME|all>] route X:X::X:X/M match [detail] [json]
eacd0828
YR
394
395 The additional match option will match the given address to the destination
396 of the routes, and return the result accordingly.
397
487df450 398.. clicmd:: show ipv6 ospf6 [vrf <NAME|all>] interface [IFNAME] prefix [detail|<X:X::X:X|X:X::X:X/M> [<match|detail>]] [json]
35aeb295
YR
399
400 This command shows the prefixes present in the interface routing table.
401 Interface name can also be given. JSON output can be obtained by appending
402 'json' to the end of command.
403
487df450 404.. clicmd:: show ipv6 ospf6 [vrf <NAME|all>] spf tree [json]
305b639b
YR
405
406 This commands shows the spf tree from the recent spf calculation with the
407 calling router as the root. If json is appended in the end, we can get the
408 tree in JSON format. Each area that the router belongs to has it's own
409 JSON object, with each router having "cost", "isLeafNode" and "children" as
410 arguments.
51d0d8f3 411
6539d9ef 412.. clicmd:: show ipv6 ospf6 graceful-restart helper [detail] [json]
413
414 This command shows the graceful-restart helper details including helper
415 configuration parameters.
416
df175bc8
IR
417.. _ospf6-debugging:
418
419OSPFv3 Debugging
420================
421
422The following debug commands are supported:
423
424.. clicmd:: debug ospf6 abr
425
426 Toggle OSPFv3 ABR debugging messages.
427
428.. clicmd:: debug ospf6 asbr
429
430 Toggle OSPFv3 ASBR debugging messages.
431
432.. clicmd:: debug ospf6 border-routers
433
434 Toggle OSPFv3 border router debugging messages.
435
436.. clicmd:: debug ospf6 flooding
437
438 Toggle OSPFv3 flooding debugging messages.
439
440.. clicmd:: debug ospf6 interface
441
442 Toggle OSPFv3 interface related debugging messages.
443
444.. clicmd:: debug ospf6 lsa
445
446 Toggle OSPFv3 Link State Advertisements debugging messages.
447
448.. clicmd:: debug ospf6 lsa aggregation
449
450 Toggle OSPFv3 Link State Advertisements summarization debugging messages.
451
452.. clicmd:: debug ospf6 message
453
454 Toggle OSPFv3 message exchange debugging messages.
455
456.. clicmd:: debug ospf6 neighbor
457
458 Toggle OSPFv3 neighbor interaction debugging messages.
459
460.. clicmd:: debug ospf6 nssa
461
462 Toggle OSPFv3 Not So Stubby Area (NSSA) debugging messages.
463
464.. clicmd:: debug ospf6 route
465
466 Toggle OSPFv3 routes debugging messages.
467
468.. clicmd:: debug ospf6 spf
469
470 Toggle OSPFv3 Shortest Path calculation debugging messages.
471
472.. clicmd:: debug ospf6 zebra
473
474 Toggle OSPFv3 zebra interaction debugging messages.
475
724739e5
IR
476.. clicmd:: debug ospf6 graceful-restart
477
478 Toggle OSPFv3 graceful-restart helper debugging messages.
479
b832909b
QY
480Sample configuration
481====================
42fc5d26
QY
482
483Example of ospf6d configured on one interface and area:
484
9eb95b3b 485.. code-block:: frr
42fc5d26 486
c1a54c05 487 interface eth0
aa47a69b 488 ipv6 ospf6 area 0.0.0.0
c1a54c05
QY
489 ipv6 ospf6 instance-id 0
490 !
491 router ospf6
349ee664 492 ospf6 router-id 212.17.55.53
c1a54c05 493 area 0.0.0.0 range 2001:770:105:2::/64
c1a54c05 494 !
b832909b
QY
495
496
497Larger example with policy and various options set:
498
499
500.. code-block:: frr
501
502 debug ospf6 neighbor state
503 !
504 interface fxp0
aa47a69b 505 ipv6 ospf6 area 0.0.0.0
b832909b
QY
506 ipv6 ospf6 cost 1
507 ipv6 ospf6 hello-interval 10
508 ipv6 ospf6 dead-interval 40
509 ipv6 ospf6 retransmit-interval 5
510 ipv6 ospf6 priority 0
511 ipv6 ospf6 transmit-delay 1
512 ipv6 ospf6 instance-id 0
513 !
514 interface lo0
515 ipv6 ospf6 cost 1
516 ipv6 ospf6 hello-interval 10
517 ipv6 ospf6 dead-interval 40
518 ipv6 ospf6 retransmit-interval 5
519 ipv6 ospf6 priority 1
520 ipv6 ospf6 transmit-delay 1
521 ipv6 ospf6 instance-id 0
522 !
523 router ospf6
524 router-id 255.1.1.1
525 redistribute static route-map static-ospf6
b832909b
QY
526 !
527 access-list access4 permit 127.0.0.1/32
528 !
529 ipv6 access-list access6 permit 3ffe:501::/32
530 ipv6 access-list access6 permit 2001:200::/48
531 ipv6 access-list access6 permit ::1/128
532 !
533 ipv6 prefix-list test-prefix seq 1000 deny any
534 !
535 route-map static-ospf6 permit 10
536 match ipv6 address prefix-list test-prefix
537 set metric-type type-2
538 set metric 2000
539 !
540 line vty
541 access-class access4
542 ipv6 access-class access6
543 exec-timeout 0 0
544 !