]>
Commit | Line | Data |
---|---|---|
1 | .. _ospfv2: | |
2 | ||
3 | ****** | |
4 | OSPFv2 | |
5 | ****** | |
6 | ||
7 | :abbr:`OSPF (Open Shortest Path First)` version 2 is a routing protocol which | |
8 | is described in :rfc:`2328`. OSPF is an :abbr:`IGP (Interior Gateway | |
9 | Protocol)`. Compared with :abbr:`RIP`, :abbr:`OSPF` can provide scalable | |
10 | network support and faster convergence times. OSPF is widely used in large | |
11 | networks such as :abbr:`ISP (Internet Service Provider)` backbone and | |
12 | enterprise networks. | |
13 | ||
14 | .. include:: ospf_fundamentals.rst | |
15 | ||
16 | .. _configuring-ospfd: | |
17 | ||
18 | Configuring OSPF | |
19 | ================ | |
20 | ||
21 | *ospfd* accepts all :ref:`common-invocation-options`. | |
22 | ||
23 | .. option:: -n, --instance | |
24 | ||
25 | Specify the instance number for this invocation of *ospfd*. | |
26 | ||
27 | .. option:: -a, --apiserver | |
28 | ||
29 | Enable the OSPF API server. This is required to use ``ospfclient``. | |
30 | ||
31 | *ospfd* must acquire interface information from *zebra* in order to function. | |
32 | Therefore *zebra* must be running before invoking *ospfd*. Also, if *zebra* is | |
33 | restarted then *ospfd* must be too. | |
34 | ||
35 | Like other daemons, *ospfd* configuration is done in :abbr:`OSPF` specific | |
36 | configuration file :file:`ospfd.conf` when the integrated config is not used. | |
37 | ||
38 | .. _ospf-multi-instance: | |
39 | ||
40 | Multi-instance Support | |
41 | ---------------------- | |
42 | ||
43 | OSPF supports multiple instances. Each instance is identified by a positive | |
44 | nonzero integer that must be provided when adding configuration items specific | |
45 | to that instance. Enabling instances is done with :file:`/etc/frr/daemons` in | |
46 | the following manner: | |
47 | ||
48 | :: | |
49 | ||
50 | ... | |
51 | ospfd=yes | |
52 | ospfd_instances=1,5,6 | |
53 | ... | |
54 | ||
55 | The ``ospfd_instances`` variable controls which instances are started and what | |
56 | their IDs are. In this example, after starting FRR you should see the following | |
57 | processes: | |
58 | ||
59 | .. code-block:: shell | |
60 | ||
61 | # ps -ef | grep "ospfd" | |
62 | frr 11816 1 0 17:30 ? 00:00:00 /usr/lib/frr/ospfd --daemon -A 127.0.0.1 -n 1 | |
63 | frr 11822 1 0 17:30 ? 00:00:00 /usr/lib/frr/ospfd --daemon -A 127.0.0.1 -n 2 | |
64 | frr 11828 1 0 17:30 ? 00:00:00 /usr/lib/frr/ospfd --daemon -A 127.0.0.1 -n 3 | |
65 | ||
66 | ||
67 | The instance number should be specified in the config when addressing a particular instance: | |
68 | ||
69 | .. code-block:: frr | |
70 | ||
71 | router ospf 5 | |
72 | ospf router-id 1.2.3.4 | |
73 | area 0.0.0.0 authentication message-digest | |
74 | ... | |
75 | ||
76 | .. _ospf-router: | |
77 | ||
78 | Routers | |
79 | ------- | |
80 | ||
81 | To start OSPF process you have to specify the OSPF router. | |
82 | ||
83 | .. clicmd:: router ospf [{(1-65535)|vrf NAME}] | |
84 | ||
85 | ||
86 | Enable or disable the OSPF process. | |
87 | ||
88 | Multiple instances don't support `vrf NAME`. | |
89 | ||
90 | .. clicmd:: ospf router-id A.B.C.D | |
91 | ||
92 | ||
93 | This sets the router-ID of the OSPF process. The router-ID may be an IP | |
94 | address of the router, but need not be - it can be any arbitrary 32bit | |
95 | number. However it MUST be unique within the entire OSPF domain to the OSPF | |
96 | speaker - bad things will happen if multiple OSPF speakers are configured | |
97 | with the same router-ID! If one is not specified then *ospfd* will obtain a | |
98 | router-ID automatically from *zebra*. | |
99 | ||
100 | .. clicmd:: ospf abr-type TYPE | |
101 | ||
102 | ||
103 | `type` can be cisco|ibm|shortcut|standard. The "Cisco" and "IBM" types | |
104 | are equivalent. | |
105 | ||
106 | The OSPF standard for ABR behaviour does not allow an ABR to consider | |
107 | routes through non-backbone areas when its links to the backbone are | |
108 | down, even when there are other ABRs in attached non-backbone areas | |
109 | which still can reach the backbone - this restriction exists primarily | |
110 | to ensure routing-loops are avoided. | |
111 | ||
112 | With the "Cisco" or "IBM" ABR type, the default in this release of FRR, this | |
113 | restriction is lifted, allowing an ABR to consider summaries learned from | |
114 | other ABRs through non-backbone areas, and hence route via non-backbone | |
115 | areas as a last resort when, and only when, backbone links are down. | |
116 | ||
117 | Note that areas with fully-adjacent virtual-links are considered to be | |
118 | "transit capable" and can always be used to route backbone traffic, and | |
119 | hence are unaffected by this setting (:clicmd:`area A.B.C.D virtual-link A.B.C.D`). | |
120 | ||
121 | More information regarding the behaviour controlled by this command can | |
122 | be found in :rfc:`3509`, and :t:`draft-ietf-ospf-shortcut-abr-02.txt`. | |
123 | ||
124 | Quote: "Though the definition of the :abbr:`ABR (Area Border Router)` | |
125 | in the OSPF specification does not require a router with multiple | |
126 | attached areas to have a backbone connection, it is actually | |
127 | necessary to provide successful routing to the inter-area and | |
128 | external destinations. If this requirement is not met, all traffic | |
129 | destined for the areas not connected to such an ABR or out of the | |
130 | OSPF domain, is dropped. This document describes alternative ABR | |
131 | behaviors implemented in Cisco and IBM routers." | |
132 | ||
133 | .. clicmd:: ospf rfc1583compatibility | |
134 | ||
135 | ||
136 | :rfc:`2328`, the successor to :rfc:`1583`, suggests according | |
137 | to section G.2 (changes) in section 16.4 a change to the path | |
138 | preference algorithm that prevents possible routing loops that were | |
139 | possible in the old version of OSPFv2. More specifically it demands | |
140 | that inter-area paths and intra-area backbone path are now of equal preference | |
141 | but still both preferred to external paths. | |
142 | ||
143 | This command should NOT be set normally. | |
144 | ||
145 | .. clicmd:: log-adjacency-changes [detail] | |
146 | ||
147 | ||
148 | Configures ospfd to log changes in adjacency. With the optional | |
149 | detail argument, all changes in adjacency status are shown. Without detail, | |
150 | only changes to full or regressions are shown. | |
151 | ||
152 | .. clicmd:: passive-interface default | |
153 | ||
154 | Make all interfaces that belong to this router passive by default. For the | |
155 | description of passive interface look at :clicmd:`ip ospf passive [A.B.C.D]`. | |
156 | Per-interface configuration takes precedence over the default value. | |
157 | ||
158 | .. clicmd:: timers throttle spf (0-600000) (0-600000) (0-600000) | |
159 | ||
160 | This command sets the initial `delay`, the `initial-holdtime` | |
161 | and the `maximum-holdtime` between when SPF is calculated and the | |
162 | event which triggered the calculation. The times are specified in | |
163 | milliseconds and must be in the range of 0 to 600000 milliseconds. | |
164 | ||
165 | The `delay` specifies the minimum amount of time to delay SPF | |
166 | calculation (hence it affects how long SPF calculation is delayed after | |
167 | an event which occurs outside of the holdtime of any previous SPF | |
168 | calculation, and also serves as a minimum holdtime). | |
169 | ||
170 | Consecutive SPF calculations will always be separated by at least | |
171 | 'hold-time' milliseconds. The hold-time is adaptive and initially is | |
172 | set to the `initial-holdtime` configured with the above command. | |
173 | Events which occur within the holdtime of the previous SPF calculation | |
174 | will cause the holdtime to be increased by `initial-holdtime`, bounded | |
175 | by the `maximum-holdtime` configured with this command. If the adaptive | |
176 | hold-time elapses without any SPF-triggering event occurring then | |
177 | the current holdtime is reset to the `initial-holdtime`. The current | |
178 | holdtime can be viewed with :clicmd:`show ip ospf`, where it is expressed as | |
179 | a multiplier of the `initial-holdtime`. | |
180 | ||
181 | .. code-block:: frr | |
182 | ||
183 | router ospf | |
184 | timers throttle spf 200 400 10000 | |
185 | ||
186 | ||
187 | In this example, the `delay` is set to 200ms, the initial holdtime is set to | |
188 | 400ms and the `maximum holdtime` to 10s. Hence there will always be at least | |
189 | 200ms between an event which requires SPF calculation and the actual SPF | |
190 | calculation. Further consecutive SPF calculations will always be separated | |
191 | by between 400ms to 10s, the hold-time increasing by 400ms each time an | |
192 | SPF-triggering event occurs within the hold-time of the previous SPF | |
193 | calculation. | |
194 | ||
195 | This command supersedes the *timers spf* command in previous FRR | |
196 | releases. | |
197 | ||
198 | .. clicmd:: max-metric router-lsa [on-startup (5-86400)|on-shutdown (5-100)] | |
199 | ||
200 | .. clicmd:: max-metric router-lsa administrative | |
201 | ||
202 | ||
203 | This enables :rfc:`3137` support, where the OSPF process describes its | |
204 | transit links in its router-LSA as having infinite distance so that other | |
205 | routers will avoid calculating transit paths through the router while still | |
206 | being able to reach networks through the router. | |
207 | ||
208 | This support may be enabled administratively (and indefinitely) or | |
209 | conditionally. Conditional enabling of max-metric router-lsas can be for a | |
210 | period of seconds after startup and/or for a period of seconds prior to | |
211 | shutdown. | |
212 | ||
213 | Enabling this for a period after startup allows OSPF to converge fully first | |
214 | without affecting any existing routes used by other routers, while still | |
215 | allowing any connected stub links and/or redistributed routes to be | |
216 | reachable. Enabling this for a period of time in advance of shutdown allows | |
217 | the router to gracefully excuse itself from the OSPF domain. | |
218 | ||
219 | Enabling this feature administratively allows for administrative | |
220 | intervention for whatever reason, for an indefinite period of time. Note | |
221 | that if the configuration is written to file, this administrative form of | |
222 | the stub-router command will also be written to file. If *ospfd* is | |
223 | restarted later, the command will then take effect until manually | |
224 | deconfigured. | |
225 | ||
226 | Configured state of this feature as well as current status, such as the | |
227 | number of second remaining till on-startup or on-shutdown ends, can be | |
228 | viewed with the :clicmd:`show ip ospf` command. | |
229 | ||
230 | .. clicmd:: auto-cost reference-bandwidth (1-4294967) | |
231 | ||
232 | ||
233 | This sets the reference | |
234 | bandwidth for cost calculations, where this bandwidth is considered | |
235 | equivalent to an OSPF cost of 1, specified in Mbits/s. The default is | |
236 | 100Mbit/s (i.e. a link of bandwidth 100Mbit/s or higher will have a | |
237 | cost of 1. Cost of lower bandwidth links will be scaled with reference | |
238 | to this cost). | |
239 | ||
240 | This configuration setting MUST be consistent across all routers within the | |
241 | OSPF domain. | |
242 | ||
243 | .. clicmd:: network A.B.C.D/M area A.B.C.D | |
244 | ||
245 | .. clicmd:: network A.B.C.D/M area (0-4294967295) | |
246 | ||
247 | ||
248 | ||
249 | This command specifies the OSPF enabled interface(s). If the interface has | |
250 | an address from range 192.168.1.0/24 then the command below enables ospf | |
251 | on this interface so router can provide network information to the other | |
252 | ospf routers via this interface. | |
253 | ||
254 | .. code-block:: frr | |
255 | ||
256 | router ospf | |
257 | network 192.168.1.0/24 area 0.0.0.0 | |
258 | ||
259 | Prefix length in interface must be equal or bigger (i.e. smaller network) than | |
260 | prefix length in network statement. For example statement above doesn't enable | |
261 | ospf on interface with address 192.168.1.1/23, but it does on interface with | |
262 | address 192.168.1.129/25. | |
263 | ||
264 | Note that the behavior when there is a peer address | |
265 | defined on an interface changed after release 0.99.7. | |
266 | Currently, if a peer prefix has been configured, | |
267 | then we test whether the prefix in the network command contains | |
268 | the destination prefix. Otherwise, we test whether the network command prefix | |
269 | contains the local address prefix of the interface. | |
270 | ||
271 | It is also possible to enable OSPF on a per interface/subnet basis | |
272 | using the interface command (:clicmd:`ip ospf area AREA [ADDR]`). | |
273 | However, mixing both network commands (:clicmd:`network`) and interface | |
274 | commands (:clicmd:`ip ospf`) on the same router is not supported. | |
275 | ||
276 | .. clicmd:: proactive-arp | |
277 | ||
278 | ||
279 | This command enables or disables sending ARP requests to update neighbor | |
280 | table entries. It speeds up convergence for /32 networks on a P2P | |
281 | connection. | |
282 | ||
283 | This feature is enabled by default. | |
284 | ||
285 | .. clicmd:: clear ip ospf [(1-65535)] process | |
286 | ||
287 | This command can be used to clear the ospf process data structures. This | |
288 | will clear the ospf neighborship as well and it will get re-established. | |
289 | This will clear the LSDB too. This will be helpful when there is a change | |
290 | in router-id and if user wants the router-id change to take effect, user can | |
291 | use this cli instead of restarting the ospfd daemon. | |
292 | ||
293 | .. clicmd:: clear ip ospf [(1-65535)] neighbor | |
294 | ||
295 | This command can be used to clear the ospf neighbor data structures. This | |
296 | will clear the ospf neighborship and it will get re-established. This | |
297 | command can be used when the neighbor state get stuck at some state and | |
298 | this can be used to recover it from that state. | |
299 | ||
300 | .. clicmd:: maximum-paths (1-64) | |
301 | ||
302 | Use this command to control the maximum number of equal cost paths to reach | |
303 | a specific destination. The upper limit may differ if you change the value | |
304 | of MULTIPATH_NUM during compilation. The default is MULTIPATH_NUM (64). | |
305 | ||
306 | .. clicmd:: write-multiplier (1-100) | |
307 | ||
308 | Use this command to tune the amount of work done in the packet read and | |
309 | write threads before relinquishing control. The parameter is the number | |
310 | of packets to process before returning. The defult value of this parameter | |
311 | is 20. | |
312 | ||
313 | .. clicmd:: socket buffer <send | recv | all> (1-4000000000) | |
314 | ||
315 | This command controls the ospf instance's socket buffer sizes. The | |
316 | 'no' form resets one or both values to the default. | |
317 | ||
318 | .. clicmd:: no socket-per-interface | |
319 | ||
320 | Ordinarily, ospfd uses a socket per interface for sending | |
321 | packets. This command disables those per-interface sockets, and | |
322 | causes ospfd to use a single socket per ospf instance for sending | |
323 | and receiving packets. | |
324 | ||
325 | .. _ospf-area: | |
326 | ||
327 | Areas | |
328 | ----- | |
329 | ||
330 | .. clicmd:: area A.B.C.D range A.B.C.D/M [advertise [cost (0-16777215)]] | |
331 | ||
332 | .. clicmd:: area (0-4294967295) range A.B.C.D/M [advertise [cost (0-16777215)]] | |
333 | ||
334 | ||
335 | ||
336 | Summarize intra area paths from specified area into one Type-3 summary-LSA | |
337 | announced to other areas. This command can be used only in ABR and ONLY | |
338 | router-LSAs (Type-1) and network-LSAs (Type-2) (i.e. LSAs with scope area) can | |
339 | be summarized. Type-5 AS-external-LSAs can't be summarized - their scope is AS. | |
340 | ||
341 | .. code-block:: frr | |
342 | ||
343 | router ospf | |
344 | network 192.168.1.0/24 area 0.0.0.0 | |
345 | network 10.0.0.0/8 area 0.0.0.10 | |
346 | area 0.0.0.10 range 10.0.0.0/8 | |
347 | ||
348 | ||
349 | With configuration above one Type-3 Summary-LSA with routing info 10.0.0.0/8 is | |
350 | announced into backbone area if area 0.0.0.10 contains at least one intra-area | |
351 | network (i.e. described with router or network LSA) from this range. | |
352 | ||
353 | .. clicmd:: area A.B.C.D range A.B.C.D/M not-advertise | |
354 | ||
355 | .. clicmd:: area (0-4294967295) range A.B.C.D/M not-advertise | |
356 | ||
357 | ||
358 | Instead of summarizing intra area paths filter them - i.e. intra area paths from this | |
359 | range are not advertised into other areas. | |
360 | This command makes sense in ABR only. | |
361 | ||
362 | .. clicmd:: area A.B.C.D range A.B.C.D/M {substitute A.B.C.D/M|cost (0-16777215)} | |
363 | ||
364 | .. clicmd:: area (0-4294967295) range A.B.C.D/M {substitute A.B.C.D/M|cost (0-16777215)} | |
365 | ||
366 | ||
367 | Substitute summarized prefix with another prefix. | |
368 | ||
369 | .. code-block:: frr | |
370 | ||
371 | router ospf | |
372 | network 192.168.1.0/24 area 0.0.0.0 | |
373 | network 10.0.0.0/8 area 0.0.0.10 | |
374 | area 0.0.0.10 range 10.0.0.0/8 substitute 11.0.0.0/8 | |
375 | ||
376 | ||
377 | One Type-3 summary-LSA with routing info 11.0.0.0/8 is announced into backbone area if | |
378 | area 0.0.0.10 contains at least one intra-area network (i.e. described with router-LSA or | |
379 | network-LSA) from range 10.0.0.0/8. | |
380 | ||
381 | By default, the metric of the summary route is calculated as the highest | |
382 | metric among the summarized routes. The `cost` option, however, can be used | |
383 | to set an explicit metric. | |
384 | ||
385 | This command makes sense in ABR only. | |
386 | ||
387 | .. clicmd:: area A.B.C.D virtual-link A.B.C.D | |
388 | ||
389 | .. clicmd:: area (0-4294967295) virtual-link A.B.C.D | |
390 | ||
391 | ||
392 | ||
393 | .. clicmd:: area A.B.C.D shortcut | |
394 | ||
395 | .. clicmd:: area (0-4294967295) shortcut | |
396 | ||
397 | ||
398 | ||
399 | Configure the area as Shortcut capable. See :rfc:`3509`. This requires | |
400 | that the 'abr-type' be set to 'shortcut'. | |
401 | ||
402 | .. clicmd:: area A.B.C.D stub | |
403 | ||
404 | .. clicmd:: area (0-4294967295) stub | |
405 | ||
406 | ||
407 | ||
408 | Configure the area to be a stub area. That is, an area where no router | |
409 | originates routes external to OSPF and hence an area where all external | |
410 | routes are via the ABR(s). Hence, ABRs for such an area do not need | |
411 | to pass AS-External LSAs (type-5s) or ASBR-Summary LSAs (type-4) into the | |
412 | area. They need only pass Network-Summary (type-3) LSAs into such an area, | |
413 | along with a default-route summary. | |
414 | ||
415 | .. clicmd:: area A.B.C.D stub no-summary | |
416 | ||
417 | .. clicmd:: area (0-4294967295) stub no-summary | |
418 | ||
419 | ||
420 | ||
421 | Prevents an *ospfd* ABR from injecting inter-area | |
422 | summaries into the specified stub area. | |
423 | ||
424 | .. clicmd:: area A.B.C.D nssa | |
425 | ||
426 | .. clicmd:: area (0-4294967295) nssa | |
427 | ||
428 | Configure the area to be a NSSA (Not-So-Stubby Area). This is an area that | |
429 | allows OSPF to import external routes into a stub area via a new LSA type | |
430 | (type 7). An NSSA autonomous system boundary router (ASBR) will generate this | |
431 | type of LSA. The area border router (ABR) translates the LSA type 7 into LSA | |
432 | type 5, which is propagated into the OSPF domain. NSSA areas are defined in | |
433 | RFC 3101. | |
434 | ||
435 | .. clicmd:: area A.B.C.D nssa suppress-fa | |
436 | ||
437 | .. clicmd:: area (0-4294967295) nssa suppress-fa | |
438 | ||
439 | Configure the router to set the forwarding address to 0.0.0.0 in all LSA type 5 | |
440 | translated from LSA type 7. The router needs to be elected the translator of the | |
441 | area for this command to take effect. This feature causes routers that are | |
442 | configured not to advertise forwarding addresses into the backbone to direct | |
443 | forwarded traffic to the NSSA ABR translator. | |
444 | ||
445 | .. clicmd:: area A.B.C.D nssa default-information-originate [metric-type (1-2)] [metric (0-16777214)] | |
446 | ||
447 | .. clicmd:: area (0-4294967295) nssa default-information-originate [metric-type (1-2)] [metric (0-16777214)] | |
448 | ||
449 | NSSA ABRs and ASBRs can be configured with the `default-information-originate` | |
450 | option to originate a Type-7 default route into the NSSA area. In the case | |
451 | of NSSA ASBRs, the origination of the default route is conditioned to the | |
452 | existence of a default route in the RIB that wasn't learned via the OSPF | |
453 | protocol. | |
454 | ||
455 | .. clicmd:: area A.B.C.D nssa range A.B.C.D/M [<not-advertise|cost (0-16777215)>] | |
456 | ||
457 | .. clicmd:: area (0-4294967295) nssa range A.B.C.D/M [<not-advertise|cost (0-16777215)>] | |
458 | ||
459 | Summarize a group of external subnets into a single Type-7 LSA, which is | |
460 | then translated to a Type-5 LSA and avertised to the backbone. | |
461 | This command can only be used at the area boundary (NSSA ABR router). | |
462 | ||
463 | By default, the metric of the summary route is calculated as the highest | |
464 | metric among the summarized routes. The `cost` option, however, can be used | |
465 | to set an explicit metric. | |
466 | ||
467 | The `not-advertise` option, when present, prevents the summary route from | |
468 | being advertised, effectively filtering the summarized routes. | |
469 | ||
470 | .. clicmd:: area A.B.C.D default-cost (0-16777215) | |
471 | ||
472 | ||
473 | Set the cost of default-summary LSAs announced to stubby areas. | |
474 | ||
475 | .. clicmd:: area A.B.C.D export-list NAME | |
476 | ||
477 | .. clicmd:: area (0-4294967295) export-list NAME | |
478 | ||
479 | ||
480 | ||
481 | Filter Type-3 summary-LSAs announced to other areas originated from intra- | |
482 | area paths from specified area. | |
483 | ||
484 | .. code-block:: frr | |
485 | ||
486 | router ospf | |
487 | network 192.168.1.0/24 area 0.0.0.0 | |
488 | network 10.0.0.0/8 area 0.0.0.10 | |
489 | area 0.0.0.10 export-list foo | |
490 | ! | |
491 | access-list foo permit 10.10.0.0/16 | |
492 | access-list foo deny any | |
493 | ||
494 | With example above any intra-area paths from area 0.0.0.10 and from range | |
495 | 10.10.0.0/16 (for example 10.10.1.0/24 and 10.10.2.128/30) are announced into | |
496 | other areas as Type-3 summary-LSA's, but any others (for example 10.11.0.0/16 | |
497 | or 10.128.30.16/30) aren't. | |
498 | ||
499 | This command is only relevant if the router is an ABR for the specified | |
500 | area. | |
501 | ||
502 | .. clicmd:: area A.B.C.D import-list NAME | |
503 | ||
504 | .. clicmd:: area (0-4294967295) import-list NAME | |
505 | ||
506 | ||
507 | ||
508 | Same as export-list, but it applies to paths announced into specified area | |
509 | as Type-3 summary-LSAs. | |
510 | ||
511 | .. clicmd:: area A.B.C.D filter-list prefix NAME in | |
512 | ||
513 | .. clicmd:: area A.B.C.D filter-list prefix NAME out | |
514 | ||
515 | .. clicmd:: area (0-4294967295) filter-list prefix NAME in | |
516 | ||
517 | .. clicmd:: area (0-4294967295) filter-list prefix NAME out | |
518 | ||
519 | ||
520 | ||
521 | ||
522 | ||
523 | Filtering Type-3 summary-LSAs to/from area using prefix lists. This command | |
524 | makes sense in ABR only. | |
525 | ||
526 | .. clicmd:: area A.B.C.D authentication | |
527 | ||
528 | .. clicmd:: area (0-4294967295) authentication | |
529 | ||
530 | ||
531 | ||
532 | Specify that simple password authentication should be used for the given | |
533 | area. | |
534 | ||
535 | .. clicmd:: area A.B.C.D authentication message-digest | |
536 | ||
537 | .. clicmd:: area (0-4294967295) authentication message-digest | |
538 | ||
539 | Specify that OSPF packets must be authenticated with MD5 HMACs within the | |
540 | given area. Keying material must also be configured on a per-interface basis | |
541 | (:clicmd:`ip ospf message-digest-key`). | |
542 | ||
543 | MD5 authentication may also be configured on a per-interface basis | |
544 | (:clicmd:`ip ospf authentication message-digest`). Such per-interface | |
545 | settings will override any per-area authentication setting. | |
546 | ||
547 | .. _ospf-interface: | |
548 | ||
549 | Interfaces | |
550 | ---------- | |
551 | ||
552 | .. clicmd:: ip ospf area AREA [ADDR] | |
553 | ||
554 | ||
555 | Enable OSPF on the interface, optionally restricted to just the IP address | |
556 | given by `ADDR`, putting it in the `AREA` area. If you have a lot of | |
557 | interfaces, and/or a lot of subnets, then enabling OSPF via this command | |
558 | instead of (:clicmd:`network A.B.C.D/M area A.B.C.D`) may result in a | |
559 | slight performance improvement. | |
560 | ||
561 | Notice that, mixing both network commands (:clicmd:`network`) and interface | |
562 | commands (:clicmd:`ip ospf`) on the same router is not supported. | |
563 | If (:clicmd:`ip ospf`) is present, (:clicmd:`network`) commands will fail. | |
564 | ||
565 | .. clicmd:: ip ospf authentication-key AUTH_KEY | |
566 | ||
567 | ||
568 | Set OSPF authentication key to a simple password. After setting `AUTH_KEY`, | |
569 | all OSPF packets are authenticated. `AUTH_KEY` has length up to 8 chars. | |
570 | ||
571 | Simple text password authentication is insecure and deprecated in favour of | |
572 | MD5 HMAC authentication. | |
573 | ||
574 | .. clicmd:: ip ospf authentication message-digest | |
575 | ||
576 | Specify that MD5 HMAC authentication must be used on this interface. MD5 | |
577 | keying material must also be configured. Overrides any authentication | |
578 | enabled on a per-area basis | |
579 | (:clicmd:`area A.B.C.D authentication message-digest`) | |
580 | ||
581 | Note that OSPF MD5 authentication requires that time never go backwards | |
582 | (correct time is NOT important, only that it never goes backwards), even | |
583 | across resets, if ospfd is to be able to promptly reestablish adjacencies | |
584 | with its neighbours after restarts/reboots. The host should have system time | |
585 | be set at boot from an external or non-volatile source (e.g. battery backed | |
586 | clock, NTP, etc.) or else the system clock should be periodically saved to | |
587 | non-volatile storage and restored at boot if MD5 authentication is to be | |
588 | expected to work reliably. | |
589 | ||
590 | .. clicmd:: ip ospf message-digest-key KEYID md5 KEY | |
591 | ||
592 | ||
593 | Set OSPF authentication key to a cryptographic password. The cryptographic | |
594 | algorithm is MD5. | |
595 | ||
596 | KEYID identifies secret key used to create the message digest. This ID is | |
597 | part of the protocol and must be consistent across routers on a link. | |
598 | ||
599 | KEY is the actual message digest key, of up to 16 chars (larger strings will | |
600 | be truncated), and is associated with the given KEYID. | |
601 | ||
602 | .. clicmd:: ip ospf cost (1-65535) | |
603 | ||
604 | ||
605 | Set link cost for the specified interface. The cost value is set to | |
606 | router-LSA's metric field and used for SPF calculation. | |
607 | ||
608 | .. clicmd:: ip ospf dead-interval (1-65535) | |
609 | ||
610 | .. clicmd:: ip ospf dead-interval minimal hello-multiplier (2-20) | |
611 | ||
612 | ||
613 | Set number of seconds for RouterDeadInterval timer value used for Wait Timer | |
614 | and Inactivity Timer. This value must be the same for all routers attached | |
615 | to a common network. The default value is 40 seconds. | |
616 | ||
617 | If 'minimal' is specified instead, then the dead-interval is set to 1 second | |
618 | and one must specify a hello-multiplier. The hello-multiplier specifies how | |
619 | many Hellos to send per second, from 2 (every 500ms) to 20 (every 50ms). | |
620 | Thus one can have 1s convergence time for OSPF. If this form is specified, | |
621 | then the hello-interval advertised in Hello packets is set to 0 and the | |
622 | hello-interval on received Hello packets is not checked, thus the | |
623 | hello-multiplier need NOT be the same across multiple routers on a common | |
624 | link. | |
625 | ||
626 | .. clicmd:: ip ospf hello-interval (1-65535) | |
627 | ||
628 | ||
629 | Set number of seconds for HelloInterval timer value. Setting this value, | |
630 | Hello packet will be sent every timer value seconds on the specified interface. | |
631 | This value must be the same for all routers attached to a common network. | |
632 | The default value is 10 seconds. | |
633 | ||
634 | This command has no effect if | |
635 | :clicmd:`ip ospf dead-interval minimal hello-multiplier (2-20)` is also | |
636 | specified for the interface. | |
637 | ||
638 | .. clicmd:: ip ospf graceful-restart hello-delay (1-1800) | |
639 | ||
640 | Set the length of time during which Grace-LSAs are sent at 1-second intervals | |
641 | while coming back up after an unplanned outage. During this time, no hello | |
642 | packets are sent. | |
643 | ||
644 | A higher hello delay will increase the chance that all neighbors are notified | |
645 | about the ongoing graceful restart before receiving a hello packet (which is | |
646 | crucial for the graceful restart to succeed). The hello delay shouldn't be set | |
647 | too high, however, otherwise the adjacencies might time out. As a best practice, | |
648 | it's recommended to set the hello delay and hello interval with the same values. | |
649 | The default value is 10 seconds. | |
650 | ||
651 | .. clicmd:: ip ospf network (broadcast|non-broadcast|point-to-multipoint [delay-reflood]|point-to-point [dmvpn]) | |
652 | ||
653 | When configuring a point-to-point network on an interface and the interface | |
654 | has a /32 address associated with then OSPF will treat the interface | |
655 | as being `unnumbered`. If you are doing this you *must* set the | |
656 | net.ipv4.conf.<interface name>.rp_filter value to 0. In order for | |
657 | the ospf multicast packets to be delivered by the kernel. | |
658 | ||
659 | When used in a DMVPN network at a spoke, this OSPF will be configured in | |
660 | point-to-point, but the HUB will be a point-to-multipoint. To make this | |
661 | topology work, specify the optional 'dmvpn' parameter at the spoke. | |
662 | ||
663 | When the network is configured as point-to-multipoint and `delay-reflood` | |
664 | is specified, LSAs received on the interface from neighbors on the | |
665 | interface will not be flooded back out on the interface immediately. | |
666 | Rather, they will be added to the neighbor's link state retransmission | |
667 | list and only sent to the neighbor if the neighbor doesn't acknowledge | |
668 | the LSA prior to the link state retransmission timer expiring. | |
669 | ||
670 | Set explicitly network type for specified interface. | |
671 | ||
672 | .. clicmd:: ip ospf priority (0-255) | |
673 | ||
674 | ||
675 | Set RouterPriority integer value. The router with the highest priority will | |
676 | be more eligible to become Designated Router. Setting the value to 0, makes | |
677 | the router ineligible to become Designated Router. The default value is 1. | |
678 | ||
679 | .. clicmd:: ip ospf retransmit-interval (1-65535) | |
680 | ||
681 | ||
682 | Set number of seconds for RxmtInterval timer value. This value is used when | |
683 | retransmitting Database Description and Link State Request packets. The | |
684 | default value is 5 seconds. | |
685 | ||
686 | .. clicmd:: ip ospf transmit-delay (1-65535) [A.B.C.D] | |
687 | ||
688 | ||
689 | Set number of seconds for InfTransDelay value. LSAs' age should be | |
690 | incremented by this value when transmitting. The default value is 1 second. | |
691 | ||
692 | .. clicmd:: ip ospf passive [A.B.C.D] | |
693 | ||
694 | Do not speak OSPF on the interface, but do advertise the interface as a stub | |
695 | link in the router-:abbr:`LSA (Link State Advertisement)` for this router. | |
696 | This allows one to advertise addresses on such connected interfaces without | |
697 | having to originate AS-External/Type-5 LSAs (which have global flooding | |
698 | scope) - as would occur if connected addresses were redistributed into | |
699 | OSPF (:ref:`redistribute-routes-to-ospf`). This is the only way to | |
700 | advertise non-OSPF links into stub areas. | |
701 | ||
702 | .. clicmd:: ip ospf area (A.B.C.D|(0-4294967295)) | |
703 | ||
704 | ||
705 | Enable ospf on an interface and set associated area. | |
706 | ||
707 | OSPF route-map | |
708 | ============== | |
709 | ||
710 | Usage of *ospfd*'s route-map support. | |
711 | ||
712 | .. clicmd:: set metric [+|-](0-4294967295) | |
713 | ||
714 | Set a metric for matched route when sending announcement. Use plus (+) sign | |
715 | to add a metric value to an existing metric. Use minus (-) sign to | |
716 | substract a metric value from an existing metric. | |
717 | ||
718 | .. _redistribute-routes-to-ospf: | |
719 | ||
720 | Redistribution | |
721 | -------------- | |
722 | ||
723 | .. _ospf-redistribute: | |
724 | ||
725 | .. clicmd:: redistribute <babel|bgp|connected|eigrp|isis|kernel|openfabric|ospf|rip|sharp|static|table> [metric-type (1-2)] [metric (0-16777214)] [route-map WORD] | |
726 | ||
727 | Redistribute routes of the specified protocol or kind into OSPF, with the | |
728 | metric type and metric set if specified, filtering the routes using the | |
729 | given route-map if specified. Redistributed routes may also be filtered | |
730 | with distribute-lists, see | |
731 | :ref:`ospf distribute-list configuration <ospf-distribute-list>`. | |
732 | ||
733 | Redistributed routes are distributed as into OSPF as Type-5 External LSAs | |
734 | into links to areas that accept external routes, Type-7 External LSAs for | |
735 | NSSA areas and are not redistributed at all into Stub areas, where external | |
736 | routes are not permitted. | |
737 | ||
738 | Note that for connected routes, one may instead use the | |
739 | :clicmd:`ip ospf passive [A.B.C.D]` configuration. | |
740 | ||
741 | .. clicmd:: default-information originate | |
742 | ||
743 | .. clicmd:: default-information originate metric (0-16777214) | |
744 | ||
745 | .. clicmd:: default-information originate metric (0-16777214) metric-type (1|2) | |
746 | ||
747 | .. clicmd:: default-information originate metric (0-16777214) metric-type (1|2) route-map WORD | |
748 | ||
749 | .. clicmd:: default-information originate always | |
750 | ||
751 | .. clicmd:: default-information originate always metric (0-16777214) | |
752 | ||
753 | .. clicmd:: default-information originate always metric (0-16777214) metric-type (1|2) | |
754 | ||
755 | .. clicmd:: default-information originate always metric (0-16777214) metric-type (1|2) route-map WORD | |
756 | ||
757 | ||
758 | Originate an AS-External (type-5) LSA describing a default route into all | |
759 | external-routing capable areas, of the specified metric and metric type. If | |
760 | the 'always' keyword is given then the default is always advertised, even | |
761 | when there is no default present in the routing table. | |
762 | ||
763 | .. _ospf-distribute-list: | |
764 | ||
765 | .. clicmd:: distribute-list NAME out <kernel|connected|static|rip|isis|bgp|eigrp|nhrp|table|vnc|babel|openfabric> | |
766 | ||
767 | Apply the access-list filter, NAME, to redistributed routes of the given | |
768 | type before allowing the routes to be redistributed into OSPF | |
769 | (:ref:`ospf redistribution <ospf-redistribute>`). | |
770 | ||
771 | .. clicmd:: default-metric (0-16777214) | |
772 | ||
773 | ||
774 | .. clicmd:: distance (1-255) | |
775 | ||
776 | ||
777 | .. clicmd:: distance ospf (intra-area|inter-area|external) (1-255) | |
778 | ||
779 | ||
780 | ||
781 | Graceful Restart | |
782 | ================ | |
783 | ||
784 | .. clicmd:: graceful-restart [grace-period (1-1800)] | |
785 | ||
786 | ||
787 | Configure Graceful Restart (RFC 3623) restarting support. | |
788 | When enabled, the default grace period is 120 seconds. | |
789 | ||
790 | To perform a graceful shutdown, the "graceful-restart prepare ip ospf" | |
791 | EXEC-level command needs to be issued before restarting the ospfd daemon. | |
792 | ||
793 | When Graceful Restart is enabled and the ospfd daemon crashes or is killed | |
794 | abruptely (e.g. SIGKILL), it will attempt an unplanned Graceful Restart once | |
795 | it restarts. | |
796 | ||
797 | .. clicmd:: graceful-restart helper enable [A.B.C.D] | |
798 | ||
799 | ||
800 | Configure Graceful Restart (RFC 3623) helper support. | |
801 | By default, helper support is disabled for all neighbours. | |
802 | This config enables/disables helper support on this router | |
803 | for all neighbours. | |
804 | To enable/disable helper support for a specific | |
805 | neighbour, the router-id (A.B.C.D) has to be specified. | |
806 | ||
807 | .. clicmd:: graceful-restart helper strict-lsa-checking | |
808 | ||
809 | ||
810 | If 'strict-lsa-checking' is configured then the helper will | |
811 | abort the Graceful Restart when a LSA change occurs which | |
812 | affects the restarting router. | |
813 | By default 'strict-lsa-checking' is enabled" | |
814 | ||
815 | .. clicmd:: graceful-restart helper supported-grace-time | |
816 | ||
817 | ||
818 | Supports as HELPER for configured grace period. | |
819 | ||
820 | .. clicmd:: graceful-restart helper planned-only | |
821 | ||
822 | ||
823 | It helps to support as HELPER only for planned | |
824 | restarts. By default, it supports both planned and | |
825 | unplanned outages. | |
826 | ||
827 | ||
828 | .. clicmd:: graceful-restart prepare ip ospf | |
829 | ||
830 | ||
831 | Initiate a graceful restart for all OSPF instances configured with the | |
832 | "graceful-restart" command. The ospfd daemon should be restarted during | |
833 | the instance-specific grace period, otherwise the graceful restart will fail. | |
834 | ||
835 | This is an EXEC-level command. | |
836 | ||
837 | ||
838 | .. _showing-ospf-information: | |
839 | ||
840 | Showing Information | |
841 | =================== | |
842 | ||
843 | .. _show-ip-ospf: | |
844 | ||
845 | .. clicmd:: show ip ospf [vrf <NAME|all>] [json] | |
846 | ||
847 | Show information on a variety of general OSPF and area state and | |
848 | configuration information. | |
849 | ||
850 | .. clicmd:: show ip ospf interface [INTERFACE] [json] | |
851 | ||
852 | Show state and configuration of OSPF the specified interface, or all | |
853 | interfaces if no interface is given. | |
854 | ||
855 | .. clicmd:: show ip ospf neighbor [json] | |
856 | ||
857 | .. clicmd:: show ip ospf [vrf <NAME|all>] neighbor INTERFACE [json] | |
858 | ||
859 | .. clicmd:: show ip ospf neighbor detail [json] | |
860 | ||
861 | .. clicmd:: show ip ospf [vrf <NAME|all>] neighbor A.B.C.D [detail] [json] | |
862 | ||
863 | .. clicmd:: show ip ospf [vrf <NAME|all>] neighbor INTERFACE detail [json] | |
864 | ||
865 | Display lsa information of LSDB. | |
866 | Json o/p of this command covers base route information | |
867 | i.e all LSAs except opaque lsa info. | |
868 | ||
869 | .. clicmd:: show ip ospf [vrf <NAME|all>] database [self-originate] [json] | |
870 | ||
871 | Show the OSPF database summary. | |
872 | ||
873 | .. clicmd:: show ip ospf [vrf <NAME|all>] database max-age [json] | |
874 | ||
875 | Show all MaxAge LSAs present in the OSPF link-state database. | |
876 | ||
877 | .. clicmd:: show ip ospf [vrf <NAME|all>] database detail [LINK-STATE-ID] [adv-router A.B.C.D] [json] | |
878 | ||
879 | .. clicmd:: show ip ospf [vrf <NAME|all>] database detail [LINK-STATE-ID] [self-originate] [json] | |
880 | ||
881 | .. clicmd:: show ip ospf [vrf <NAME|all>] database (asbr-summary|external|network|router|summary|nssa-external|opaque-link|opaque-area|opaque-as) [LINK-STATE-ID] [adv-router A.B.C.D] [json] | |
882 | ||
883 | .. clicmd:: show ip ospf [vrf <NAME|all>] database (asbr-summary|external|network|router|summary|nssa-external|opaque-link|opaque-area|opaque-as) [LINK-STATE-ID] [self-originate] [json] | |
884 | ||
885 | Show detailed information about the OSPF link-state database. | |
886 | ||
887 | .. clicmd:: show ip ospf route [json] | |
888 | ||
889 | Show the OSPF routing table, as determined by the most recent SPF | |
890 | calculation. | |
891 | ||
892 | .. clicmd:: show ip ospf [vrf <NAME|all>] border-routers [json] | |
893 | ||
894 | Show the list of ABR and ASBR border routers summary learnt via | |
895 | OSPFv2 Type-3 (Summary LSA) and Type-4 (Summary ASBR LSA). | |
896 | User can get that information as JSON format when ``json`` keyword | |
897 | at the end of cli is presented. | |
898 | ||
899 | .. clicmd:: show ip ospf graceful-restart helper [detail] [json] | |
900 | ||
901 | Displays the Grcaeful Restart Helper details including helper | |
902 | config changes. | |
903 | ||
904 | .. _opaque-lsa: | |
905 | ||
906 | Opaque LSA | |
907 | ========== | |
908 | ||
909 | .. clicmd:: ospf opaque-lsa | |
910 | ||
911 | .. clicmd:: capability opaque | |
912 | ||
913 | ||
914 | ||
915 | *ospfd* supports Opaque LSA (:rfc:`2370`) as partial support for | |
916 | MPLS Traffic Engineering LSAs. The opaque-lsa capability must be | |
917 | enabled in the configuration. An alternate command could be | |
918 | "mpls-te on" (:ref:`ospf-traffic-engineering`). Note that FRR | |
919 | offers only partial support for some of the routing protocol | |
920 | extensions that are used with MPLS-TE; it does not support a | |
921 | complete RSVP-TE solution. | |
922 | ||
923 | .. clicmd:: show ip ospf [vrf <NAME|all>] database (opaque-link|opaque-area|opaque-external) | |
924 | ||
925 | .. clicmd:: show ip ospf [vrf <NAME|all>] database (opaque-link|opaque-area|opaque-external) LINK-STATE-ID | |
926 | ||
927 | .. clicmd:: show ip ospf [vrf <NAME|all>] database (opaque-link|opaque-area|opaque-external) LINK-STATE-ID adv-router ADV-ROUTER | |
928 | ||
929 | .. clicmd:: show ip ospf [vrf <NAME|all>] database (opaque-link|opaque-area|opaque-external) adv-router ADV-ROUTER | |
930 | ||
931 | .. clicmd:: show ip ospf [vrf <NAME|all>] database (opaque-link|opaque-area|opaque-external) LINK-STATE-ID self-originate | |
932 | ||
933 | .. clicmd:: show ip ospf [vrf <NAME|all>] database (opaque-link|opaque-area|opaque-external) self-originate | |
934 | ||
935 | Show Opaque LSA from the database. | |
936 | ||
937 | .. clicmd:: show ip ospf (1-65535) reachable-routers | |
938 | ||
939 | .. clicmd:: show ip ospf [vrf <NAME|all>] reachable-routers | |
940 | ||
941 | Show routing table of reachable routers. | |
942 | ||
943 | .. _ospf-traffic-engineering: | |
944 | ||
945 | Traffic Engineering | |
946 | =================== | |
947 | ||
948 | .. note:: | |
949 | ||
950 | At this time, FRR offers partial support for some of the routing | |
951 | protocol extensions that can be used with MPLS-TE. FRR does not | |
952 | support a complete RSVP-TE solution currently. | |
953 | ||
954 | .. clicmd:: mpls-te on | |
955 | ||
956 | ||
957 | Enable Traffic Engineering LSA flooding. | |
958 | ||
959 | .. clicmd:: mpls-te router-address <A.B.C.D> | |
960 | ||
961 | Configure stable IP address for MPLS-TE. This IP address is then advertise | |
962 | in Opaque LSA Type-10 TLV=1 (TE) option 1 (Router-Address). | |
963 | ||
964 | .. clicmd:: mpls-te inter-as area <area-id>|as | |
965 | ||
966 | ||
967 | Enable :rfc:`5392` support - Inter-AS TE v2 - to flood Traffic Engineering | |
968 | parameters of Inter-AS link. 2 modes are supported: AREA and AS; LSA are | |
969 | flood in AREA <area-id> with Opaque Type-10, respectively in AS with Opaque | |
970 | Type-11. In all case, Opaque-LSA TLV=6. | |
971 | ||
972 | .. clicmd:: mpls-te export | |
973 | ||
974 | Export Traffic Engineering Data Base to other daemons through the ZAPI | |
975 | Opaque Link State messages. | |
976 | ||
977 | .. clicmd:: show ip ospf mpls-te interface | |
978 | ||
979 | .. clicmd:: show ip ospf mpls-te interface INTERFACE | |
980 | ||
981 | Show MPLS Traffic Engineering parameters for all or specified interface. | |
982 | ||
983 | .. clicmd:: show ip ospf mpls-te router | |
984 | ||
985 | Show Traffic Engineering router parameters. | |
986 | ||
987 | .. clicmd:: show ip ospf mpls-te database [verbose|json] | |
988 | ||
989 | .. clicmd:: show ip ospf mpls-te database vertex [self-originate|adv-router ADV-ROUTER] [verbose|json] | |
990 | ||
991 | .. clicmd:: show ip ospf mpls-te database edge [A.B.C.D] [verbose|json] | |
992 | ||
993 | .. clicmd:: show ip ospf mpls-te database subnet [A.B.C.D/M] [verbose|json] | |
994 | ||
995 | Show Traffic Engineering Database | |
996 | ||
997 | .. _router-information: | |
998 | ||
999 | Router Information | |
1000 | ================== | |
1001 | ||
1002 | .. clicmd:: router-info [as | area] | |
1003 | ||
1004 | ||
1005 | Enable Router Information (:rfc:`4970`) LSA advertisement with AS scope | |
1006 | (default) or Area scope flooding when area is specified. Old syntax | |
1007 | `router-info area <A.B.C.D>` is always supported but mark as deprecated | |
1008 | as the area ID is no more necessary. Indeed, router information support | |
1009 | multi-area and detect automatically the areas. | |
1010 | ||
1011 | .. clicmd:: pce address <A.B.C.D> | |
1012 | ||
1013 | ||
1014 | .. clicmd:: pce domain as (0-65535) | |
1015 | ||
1016 | ||
1017 | .. clicmd:: pce neighbor as (0-65535) | |
1018 | ||
1019 | ||
1020 | .. clicmd:: pce flag BITPATTERN | |
1021 | ||
1022 | ||
1023 | .. clicmd:: pce scope BITPATTERN | |
1024 | ||
1025 | ||
1026 | The commands are conform to :rfc:`5088` and allow OSPF router announce Path | |
1027 | Computation Element (PCE) capabilities through the Router Information (RI) | |
1028 | LSA. Router Information must be enable prior to this. The command set/unset | |
1029 | respectively the PCE IP address, Autonomous System (AS) numbers of | |
1030 | controlled domains, neighbor ASs, flag and scope. For flag and scope, please | |
1031 | refer to :rfc`5088` for the BITPATTERN recognition. Multiple 'pce neighbor' | |
1032 | command could be specified in order to specify all PCE neighbours. | |
1033 | ||
1034 | .. clicmd:: show ip ospf router-info | |
1035 | ||
1036 | Show Router Capabilities flag. | |
1037 | ||
1038 | .. clicmd:: show ip ospf router-info pce | |
1039 | ||
1040 | Show Router Capabilities PCE parameters. | |
1041 | ||
1042 | Segment Routing | |
1043 | =============== | |
1044 | ||
1045 | This is an EXPERIMENTAL support of Segment Routing as per `RFC 8665` for MPLS | |
1046 | dataplane. | |
1047 | ||
1048 | .. clicmd:: segment-routing on | |
1049 | ||
1050 | Enable Segment Routing. Even if this also activate routing information | |
1051 | support, it is preferable to also activate routing information, and set | |
1052 | accordingly the Area or AS flooding. | |
1053 | ||
1054 | .. clicmd:: segment-routing global-block (16-1048575) (16-1048575) [local-block (16-1048575) (16-1048575)] | |
1055 | ||
1056 | Set the Segment Routing Global Block i.e. the label range used by MPLS to | |
1057 | store label in the MPLS FIB for Prefix SID. Optionally also set the Local | |
1058 | Block, i.e. the label range used for Adjacency SID. The negative version | |
1059 | of the command always unsets both ranges. | |
1060 | ||
1061 | .. clicmd:: segment-routing node-msd (1-16) | |
1062 | ||
1063 | Fix the Maximum Stack Depth supported by the router. The value depend of the | |
1064 | MPLS dataplane. E.g. for Linux kernel, since version 4.13 it is 32. | |
1065 | ||
1066 | .. clicmd:: segment-routing prefix A.B.C.D/M [index (0-65535)|no-php-flag|explicit-null] | |
1067 | ||
1068 | prefix with /32 corresponding to a loopback interface are currently | |
1069 | supported. The 'no-php-flag' means NO Penultimate Hop Popping that allows SR | |
1070 | node to request to its neighbor to not pop the label. The 'explicit-null' means that | |
1071 | neighbor nodes must swap the incoming label by the MPLS Explicit Null label | |
1072 | before delivering the packet. | |
1073 | ||
1074 | .. clicmd:: show ip ospf database segment-routing <adv-router ADVROUTER|self-originate> [json] | |
1075 | ||
1076 | Show Segment Routing Data Base, all SR nodes, specific advertised router or | |
1077 | self router. Optional JSON output can be obtained by appending 'json' to the | |
1078 | end of the command. | |
1079 | ||
1080 | External Route Summarisation | |
1081 | ============================ | |
1082 | This feature summarises originated external LSAs(Type-5 and Type-7). | |
1083 | Summary Route will be originated on-behalf of all matched external LSAs. | |
1084 | ||
1085 | .. clicmd:: summary-address A.B.C.D/M [tag (1-4294967295)] | |
1086 | ||
1087 | This command enable/disables summarisation for the configured address | |
1088 | range. Tag is the optional parameter. If tag configured Summary route | |
1089 | will be originated with the configured tag. | |
1090 | ||
1091 | .. clicmd:: summary-address A.B.C.D/M no-advertise | |
1092 | ||
1093 | This command to ensure not advertise the summary lsa for the matched | |
1094 | external LSAs. | |
1095 | ||
1096 | .. clicmd:: aggregation timer (5-1800) | |
1097 | ||
1098 | Configure aggregation delay timer interval. Summarisation starts only after | |
1099 | this delay timer expiry. By default, delay interval is 5 seconds. | |
1100 | ||
1101 | ||
1102 | The no form of the command resets the aggregation delay interval to default | |
1103 | value. | |
1104 | ||
1105 | .. clicmd:: show ip ospf [vrf <NAME|all>] summary-address [detail] [json] | |
1106 | ||
1107 | Show configuration for display all configured summary routes with | |
1108 | matching external LSA information. | |
1109 | ||
1110 | TI-LFA | |
1111 | ====== | |
1112 | ||
1113 | Experimental support for Topology Independent LFA (Loop-Free Alternate), see | |
1114 | for example 'draft-bashandy-rtgwg-segment-routing-ti-lfa-05'. Note that | |
1115 | TI-LFA requires a proper Segment Routing configuration. | |
1116 | ||
1117 | .. clicmd:: fast-reroute ti-lfa [node-protection] | |
1118 | ||
1119 | Configured on the router level. Activates TI-LFA for all interfaces. | |
1120 | ||
1121 | Note that so far only P2P interfaces are supported. | |
1122 | ||
1123 | .. _debugging-ospf: | |
1124 | ||
1125 | Debugging OSPF | |
1126 | ============== | |
1127 | ||
1128 | .. clicmd:: debug ospf [(1-65535)] bfd | |
1129 | ||
1130 | Enable or disable debugging for BFD events. This will show BFD integration | |
1131 | library messages and OSPF BFD integration messages that are mostly state | |
1132 | transitions and validation problems. | |
1133 | ||
1134 | .. clicmd:: debug ospf [(1-65535)] client-api | |
1135 | ||
1136 | Show debug information for the OSPF opaque data client API. | |
1137 | ||
1138 | .. clicmd:: debug ospf [(1-65535)] default-information | |
1139 | ||
1140 | Show debug information of default information | |
1141 | ||
1142 | .. clicmd:: debug ospf [(1-65535)] packet (hello|dd|ls-request|ls-update|ls-ack|all) (send|recv) [detail] | |
1143 | ||
1144 | ||
1145 | Dump Packet for debugging | |
1146 | ||
1147 | .. clicmd:: debug ospf [(1-65535)] ism [status|events|timers] | |
1148 | ||
1149 | ||
1150 | ||
1151 | Show debug information of Interface State Machine | |
1152 | ||
1153 | .. clicmd:: debug ospf [(1-65535)] nsm [status|events|timers] | |
1154 | ||
1155 | ||
1156 | ||
1157 | Show debug information of Network State Machine | |
1158 | ||
1159 | .. clicmd:: debug ospf [(1-65535)] event | |
1160 | ||
1161 | ||
1162 | Show debug information of OSPF event | |
1163 | ||
1164 | .. clicmd:: debug ospf [(1-65535)] nssa | |
1165 | ||
1166 | ||
1167 | Show debug information about Not So Stub Area | |
1168 | ||
1169 | .. clicmd:: debug ospf [(1-65535)] ldp-sync | |
1170 | ||
1171 | Show debug information about LDP-Sync | |
1172 | ||
1173 | .. clicmd:: debug ospf [(1-65535)] lsa [aggregate|flooding|generate|install|refresh] | |
1174 | ||
1175 | ||
1176 | ||
1177 | Show debug detail of Link State messages | |
1178 | ||
1179 | .. clicmd:: debug ospf [(1-65535)] sr | |
1180 | ||
1181 | Show debug information about Segment Routing | |
1182 | ||
1183 | .. clicmd:: debug ospf [(1-65535)] te | |
1184 | ||
1185 | ||
1186 | Show debug information about Traffic Engineering LSA | |
1187 | ||
1188 | .. clicmd:: debug ospf [(1-65535)] ti-lfa | |
1189 | ||
1190 | Show debug information about SR TI-LFA | |
1191 | ||
1192 | .. clicmd:: debug ospf [(1-65535)] zebra [interface|redistribute] | |
1193 | ||
1194 | ||
1195 | ||
1196 | Show debug information of ZEBRA API | |
1197 | ||
1198 | .. clicmd:: debug ospf [(1-65535)] graceful-restart | |
1199 | ||
1200 | ||
1201 | Enable/disable debug information for OSPF Graceful Restart Helper | |
1202 | ||
1203 | .. clicmd:: show debugging ospf | |
1204 | ||
1205 | ||
1206 | ||
1207 | Sample Configuration | |
1208 | ==================== | |
1209 | ||
1210 | A simple example, with MD5 authentication enabled: | |
1211 | ||
1212 | .. code-block:: frr | |
1213 | ||
1214 | ! | |
1215 | interface bge0 | |
1216 | ip ospf authentication message-digest | |
1217 | ip ospf message-digest-key 1 md5 ABCDEFGHIJK | |
1218 | ! | |
1219 | router ospf | |
1220 | network 192.168.0.0/16 area 0.0.0.1 | |
1221 | area 0.0.0.1 authentication message-digest | |
1222 | ||
1223 | ||
1224 | An :abbr:`ABR` router, with MD5 authentication and performing summarisation | |
1225 | of networks between the areas: | |
1226 | ||
1227 | .. code-block:: frr | |
1228 | ||
1229 | ! | |
1230 | password ABCDEF | |
1231 | log file /var/log/frr/ospfd.log | |
1232 | service advanced-vty | |
1233 | ! | |
1234 | interface eth0 | |
1235 | ip ospf authentication message-digest | |
1236 | ip ospf message-digest-key 1 md5 ABCDEFGHIJK | |
1237 | ! | |
1238 | interface ppp0 | |
1239 | ip ospf passive | |
1240 | ! | |
1241 | interface br0 | |
1242 | ip ospf authentication message-digest | |
1243 | ip ospf message-digest-key 2 md5 XYZ12345 | |
1244 | ! | |
1245 | router ospf | |
1246 | ospf router-id 192.168.0.1 | |
1247 | redistribute connected | |
1248 | network 192.168.0.0/24 area 0.0.0.0 | |
1249 | network 10.0.0.0/16 area 0.0.0.0 | |
1250 | network 192.168.1.0/24 area 0.0.0.1 | |
1251 | area 0.0.0.0 authentication message-digest | |
1252 | area 0.0.0.0 range 10.0.0.0/16 | |
1253 | area 0.0.0.0 range 192.168.0.0/24 | |
1254 | area 0.0.0.1 authentication message-digest | |
1255 | area 0.0.0.1 range 10.2.0.0/16 | |
1256 | ! | |
1257 | ||
1258 | ||
1259 | A Traffic Engineering configuration, with Inter-ASv2 support. | |
1260 | ||
1261 | First, the :file:`zebra.conf` part: | |
1262 | ||
1263 | .. code-block:: frr | |
1264 | ||
1265 | interface eth0 | |
1266 | ip address 198.168.1.1/24 | |
1267 | link-params | |
1268 | enable | |
1269 | admin-grp 0xa1 | |
1270 | metric 100 | |
1271 | max-bw 1.25e+07 | |
1272 | max-rsv-bw 1.25e+06 | |
1273 | unrsv-bw 0 1.25e+06 | |
1274 | unrsv-bw 1 1.25e+06 | |
1275 | unrsv-bw 2 1.25e+06 | |
1276 | unrsv-bw 3 1.25e+06 | |
1277 | unrsv-bw 4 1.25e+06 | |
1278 | unrsv-bw 5 1.25e+06 | |
1279 | unrsv-bw 6 1.25e+06 | |
1280 | unrsv-bw 7 1.25e+06 | |
1281 | ! | |
1282 | interface eth1 | |
1283 | ip address 192.168.2.1/24 | |
1284 | link-params | |
1285 | enable | |
1286 | metric 10 | |
1287 | max-bw 1.25e+07 | |
1288 | max-rsv-bw 1.25e+06 | |
1289 | unrsv-bw 0 1.25e+06 | |
1290 | unrsv-bw 1 1.25e+06 | |
1291 | unrsv-bw 2 1.25e+06 | |
1292 | unrsv-bw 3 1.25e+06 | |
1293 | unrsv-bw 4 1.25e+06 | |
1294 | unrsv-bw 5 1.25e+06 | |
1295 | unrsv-bw 6 1.25e+06 | |
1296 | unrsv-bw 7 1.25e+06 | |
1297 | neighbor 192.168.2.2 as 65000 | |
1298 | hostname HOSTNAME | |
1299 | password PASSWORD | |
1300 | log file /var/log/zebra.log | |
1301 | ! | |
1302 | interface eth0 | |
1303 | ip address 198.168.1.1/24 | |
1304 | link-params | |
1305 | enable | |
1306 | admin-grp 0xa1 | |
1307 | metric 100 | |
1308 | max-bw 1.25e+07 | |
1309 | max-rsv-bw 1.25e+06 | |
1310 | unrsv-bw 0 1.25e+06 | |
1311 | unrsv-bw 1 1.25e+06 | |
1312 | unrsv-bw 2 1.25e+06 | |
1313 | unrsv-bw 3 1.25e+06 | |
1314 | unrsv-bw 4 1.25e+06 | |
1315 | unrsv-bw 5 1.25e+06 | |
1316 | unrsv-bw 6 1.25e+06 | |
1317 | unrsv-bw 7 1.25e+06 | |
1318 | ! | |
1319 | interface eth1 | |
1320 | ip address 192.168.2.1/24 | |
1321 | link-params | |
1322 | enable | |
1323 | metric 10 | |
1324 | max-bw 1.25e+07 | |
1325 | max-rsv-bw 1.25e+06 | |
1326 | unrsv-bw 0 1.25e+06 | |
1327 | unrsv-bw 1 1.25e+06 | |
1328 | unrsv-bw 2 1.25e+06 | |
1329 | unrsv-bw 3 1.25e+06 | |
1330 | unrsv-bw 4 1.25e+06 | |
1331 | unrsv-bw 5 1.25e+06 | |
1332 | unrsv-bw 6 1.25e+06 | |
1333 | unrsv-bw 7 1.25e+06 | |
1334 | neighbor 192.168.2.2 as 65000 | |
1335 | ||
1336 | Then the :file:`ospfd.conf` itself: | |
1337 | ||
1338 | .. code-block:: frr | |
1339 | ||
1340 | hostname HOSTNAME | |
1341 | password PASSWORD | |
1342 | log file /var/log/ospfd.log | |
1343 | ! | |
1344 | ! | |
1345 | interface eth0 | |
1346 | ip ospf hello-interval 60 | |
1347 | ip ospf dead-interval 240 | |
1348 | ! | |
1349 | interface eth1 | |
1350 | ip ospf hello-interval 60 | |
1351 | ip ospf dead-interval 240 | |
1352 | ! | |
1353 | ! | |
1354 | router ospf | |
1355 | ospf router-id 192.168.1.1 | |
1356 | network 192.168.0.0/16 area 1 | |
1357 | ospf opaque-lsa | |
1358 | mpls-te | |
1359 | mpls-te router-address 192.168.1.1 | |
1360 | mpls-te inter-as area 1 | |
1361 | ! | |
1362 | line vty | |
1363 | ||
1364 | A router information example with PCE advertisement: | |
1365 | ||
1366 | .. code-block:: frr | |
1367 | ||
1368 | ! | |
1369 | router ospf | |
1370 | ospf router-id 192.168.1.1 | |
1371 | network 192.168.0.0/16 area 1 | |
1372 | capability opaque | |
1373 | mpls-te | |
1374 | mpls-te router-address 192.168.1.1 | |
1375 | router-info area 0.0.0.1 | |
1376 | pce address 192.168.1.1 | |
1377 | pce flag 0x80 | |
1378 | pce domain as 65400 | |
1379 | pce neighbor as 65500 | |
1380 | pce neighbor as 65200 | |
1381 | pce scope 0x80 | |
1382 | ! |