]> git.proxmox.com Git - mirror_frr.git/blob - doc/user/isisd.rst
tests: Enhance error msgs for static route auto.
[mirror_frr.git] / doc / user / isisd.rst
1 .. _isis:
2
3 ****
4 ISIS
5 ****
6
7 :abbr:`ISIS (Intermediate System to Intermediate System)` is a routing protocol
8 which is described in :t:`ISO10589`, :rfc:`1195`, :rfc:`5308`. ISIS is an
9 :abbr:`IGP (Interior Gateway Protocol)`. Compared with :abbr:`RIP`,
10 :abbr:`ISIS` can provide scalable network support and faster convergence times
11 like :abbr:`OSPF`. ISIS is widely used in large networks such as :abbr:`ISP
12 (Internet Service Provider)` and carrier backbone networks.
13
14 .. _configuring-isisd:
15
16 Configuring isisd
17 =================
18
19 There are no *isisd* specific options. Common options can be specified
20 (:ref:`common-invocation-options`) to *isisd*. *isisd* needs to acquire
21 interface information from *zebra* in order to function. Therefore *zebra* must
22 be running before invoking *isisd*. Also, if *zebra* is restarted then *isisd*
23 must be too.
24
25 Like other daemons, *isisd* configuration is done in :abbr:`ISIS` specific
26 configuration file :file:`isisd.conf`.
27
28 .. _isis-router:
29
30 ISIS router
31 ===========
32
33 To start the ISIS process you have to specify the ISIS router. As of this
34 writing, *isisd* does not support multiple ISIS processes.
35
36 .. clicmd:: router isis WORD [vrf NAME]
37
38 Enable or disable the ISIS process by specifying the ISIS domain with
39 'WORD'. *isisd* does not yet support multiple ISIS processes but you must
40 specify the name of ISIS process. The ISIS process name 'WORD' is then used
41 for interface (see command :clicmd:`ip router isis WORD`).
42
43 .. clicmd:: net XX.XXXX. ... .XXX.XX
44
45 Set/Unset network entity title (NET) provided in ISO format.
46
47 .. clicmd:: hostname dynamic
48
49 Enable support for dynamic hostname.
50
51 .. clicmd:: area-password [clear | md5] <password>
52
53 .. clicmd:: domain-password [clear | md5] <password>
54
55 Configure the authentication password for an area, respectively a domain, as
56 clear text or md5 one.
57
58 .. clicmd:: attached-bit [receive ignore | send]
59
60 Set attached bit for inter-area traffic:
61
62 - receive
63 If LSP received with attached bit set, create default route to neighbor
64 - send
65 If L1|L2 router, set attached bit in LSP sent to L1 router
66
67 .. clicmd:: log-adjacency-changes
68
69 Log changes in adjacency state.
70
71 .. clicmd:: metric-style [narrow | transition | wide]
72
73 Set old-style (ISO 10589) or new-style packet formats:
74
75 - narrow
76 Use old style of TLVs with narrow metric
77 - transition
78 Send and accept both styles of TLVs during transition
79 - wide
80 Use new style of TLVs to carry wider metric. FRR uses this as a default value
81
82 .. clicmd:: set-overload-bit
83
84 Set overload bit to avoid any transit traffic.
85
86 .. clicmd:: set-overload-bit on-startup (0-86400)
87
88 Set overload bit on startup for the specified duration, in seconds. Reference: :rfc:`3277`
89
90 .. clicmd:: purge-originator
91
92 Enable or disable :rfc:`6232` purge originator identification.
93
94 .. clicmd:: lsp-mtu (128-4352)
95
96 Configure the maximum size of generated LSPs, in bytes.
97
98
99 .. _isis-timer:
100
101 ISIS Timer
102 ==========
103
104 .. clicmd:: lsp-gen-interval [level-1 | level-2] (1-120)
105
106 Set minimum interval in seconds between regenerating same LSP,
107 globally, for an area (level-1) or a domain (level-2).
108
109 .. clicmd:: lsp-refresh-interval [level-1 | level-2] (1-65235)
110
111 Set LSP refresh interval in seconds, globally, for an area (level-1) or a
112 domain (level-2).
113
114 .. clicmd:: max-lsp-lifetime [level-1 | level-2] (360-65535)
115
116 Set LSP maximum LSP lifetime in seconds, globally, for an area (level-1) or
117 a domain (level-2).
118
119 .. clicmd:: spf-interval [level-1 | level-2] (1-120)
120
121 Set minimum interval between consecutive SPF calculations in seconds.
122
123 .. _isis-fast-reroute:
124
125 ISIS Fast-Reroute
126 =================
127
128 Unless stated otherwise, commands in this section apply to all LFA
129 flavors (local LFA, Remote LFA and TI-LFA).
130
131 .. clicmd:: spf prefix-priority [critical | high | medium] WORD
132
133 Assign a priority to the prefixes that match the specified access-list.
134
135 By default loopback prefixes have medium priority and non-loopback prefixes
136 have low priority.
137
138 .. clicmd:: fast-reroute priority-limit [critical | high | medium] [level-1 | level-2]
139
140 Limit LFA backup computation up to the specified prefix priority.
141
142 .. clicmd:: fast-reroute lfa tiebreaker [downstream | lowest-backup-metric | node-protecting] index (1-255) [level-1 | level-2]
143
144 Configure a tie-breaker for multiple local LFA backups. Lower indexes are
145 processed first.
146
147 .. clicmd:: fast-reroute load-sharing disable [level-1 | level-2]
148
149 Disable load sharing across multiple LFA backups.
150
151 .. clicmd:: fast-reroute remote-lfa prefix-list [WORD] [level-1 | level-2]
152
153 Configure a prefix-list to select eligible PQ nodes for remote LFA
154 backups (valid for all protected interfaces).
155
156 .. _isis-region:
157
158 ISIS region
159 ===========
160
161 .. clicmd:: is-type [level-1 | level-1-2 | level-2-only]
162
163 Define the ISIS router behavior:
164
165 - level-1
166 Act as a station router only
167 - level-1-2
168 Act as both a station router and an area router
169 - level-2-only
170 Act as an area router only
171
172 .. _isis-interface:
173
174 ISIS interface
175 ==============
176
177 .. _ip-router-isis-word:
178
179 .. clicmd:: <ip|ipv6> router isis WORD
180
181 Activate ISIS adjacency on this interface. Note that the name of ISIS
182 instance must be the same as the one used to configure the ISIS process (see
183 command :clicmd:`router isis WORD`). To enable IPv4, issue ``ip router isis
184 WORD``; to enable IPv6, issue ``ipv6 router isis WORD``.
185
186 .. clicmd:: isis circuit-type [level-1 | level-1-2 | level-2]
187
188 Configure circuit type for interface:
189
190 - level-1
191 Level-1 only adjacencies are formed
192 - level-1-2
193 Level-1-2 adjacencies are formed
194 - level-2-only
195 Level-2 only adjacencies are formed
196
197 .. clicmd:: isis csnp-interval (1-600) [level-1 | level-2]
198
199 Set CSNP interval in seconds globally, for an area (level-1) or a domain
200 (level-2).
201
202 .. clicmd:: isis hello padding
203
204 Add padding to IS-IS hello packets.
205
206 .. clicmd:: isis hello-interval (1-600) [level-1 | level-2]
207
208 Set Hello interval in seconds globally, for an area (level-1) or a domain
209 (level-2).
210
211 .. clicmd:: isis hello-multiplier (2-100) [level-1 | level-2]
212
213 Set multiplier for Hello holding time globally, for an area (level-1) or a
214 domain (level-2).
215
216 .. clicmd:: isis metric [(0-255) | (0-16777215)] [level-1 | level-2]
217
218 Set default metric value globally, for an area (level-1) or a domain
219 (level-2). Max value depend if metric support narrow or wide value (see
220 command :clicmd:`metric-style [narrow | transition | wide]`).
221
222 .. clicmd:: isis network point-to-point
223
224 Set network type to 'Point-to-Point' (broadcast by default).
225
226 .. clicmd:: isis passive
227
228 Configure the passive mode for this interface.
229
230 .. clicmd:: isis password [clear | md5] <password>
231
232 Configure the authentication password (clear or encoded text) for the
233 interface.
234
235 .. clicmd:: isis priority (0-127) [level-1 | level-2]
236
237 Set priority for Designated Router election, globally, for the area
238 (level-1) or the domain (level-2).
239
240 .. clicmd:: isis psnp-interval (1-120) [level-1 | level-2]
241
242 Set PSNP interval in seconds globally, for an area (level-1) or a domain
243 (level-2).
244
245 .. clicmd:: isis three-way-handshake
246
247 Enable or disable :rfc:`5303` Three-Way Handshake for P2P adjacencies.
248 Three-Way Handshake is enabled by default.
249
250 .. clicmd:: isis fast-reroute lfa [level-1 | level-2]
251
252 Enable per-prefix local LFA fast reroute link protection.
253
254 .. clicmd:: isis fast-reroute lfa [level-1 | level-2] exclude interface IFNAME
255
256 Exclude an interface from the local LFA backup nexthop computation.
257
258 .. clicmd:: isis fast-reroute remote-lfa tunnel mpls-ldp [level-1 | level-2]
259
260 Enable per-prefix Remote LFA fast reroute link protection. Note that other
261 routers in the network need to be configured to accept LDP targeted hello
262 messages in order for RLFA to work.
263
264 .. clicmd:: isis fast-reroute remote-lfa maximum-metric (1-16777215) [level-1 | level-2]
265
266 Limit Remote LFA PQ node selection within the specified metric.
267
268 .. clicmd:: isis fast-reroute ti-lfa [level-1|level-2] [node-protection [link-fallback]]
269
270 Enable per-prefix TI-LFA fast reroute link or node protection.
271 When node protection is used, option link-fallback enables the computation and use of
272 link-protecting LFAs for destinations unprotected by node protection.
273
274 .. _showing-isis-information:
275
276 Showing ISIS information
277 ========================
278
279 .. clicmd:: show isis [vrf <NAME|all>] summary [json]
280
281 Show summary information about ISIS.
282
283 .. clicmd:: show isis hostname
284
285 Show information about ISIS node.
286
287 .. clicmd:: show isis [vrf <NAME|all>] interface [detail] [IFNAME] [json]
288
289 Show state and configuration of ISIS specified interface, or all interfaces
290 if no interface is given with or without details.
291
292 .. clicmd:: show isis [vrf <NAME|all>] neighbor [detail] [SYSTEMID] [json]
293
294 Show state and information of ISIS specified neighbor, or all neighbors if
295 no system id is given with or without details.
296
297 .. clicmd:: show isis [vrf <NAME|all>] database [detail] [LSPID] [json]
298
299 Show the ISIS database globally, for a specific LSP id without or with
300 details.
301
302 .. clicmd:: show isis topology [level-1|level-2]
303
304 Show topology IS-IS paths to Intermediate Systems, globally, in area
305 (level-1) or domain (level-2).
306
307 .. clicmd:: show isis route [level-1|level-2] [prefix-sid|backup]
308
309 Show the ISIS routing table, as determined by the most recent SPF
310 calculation.
311
312 .. clicmd:: show isis fast-reroute summary [level-1|level-2]
313
314 Show information about the number of prefixes having LFA protection,
315 and network-wide LFA coverage.
316
317
318 .. _isis-traffic-engineering:
319
320 Traffic Engineering
321 ===================
322
323 .. note::
324
325 IS-IS-TE supports RFC 5305 (base TE), RFC 6119 (IPv6) and RFC 7810 / 8570
326 (Extended Metric) with or without Multi-Topology. All Traffic Engineering
327 information are stored in a database formally named TED. However, best
328 acccuracy is provided without Multi-Topology due to inconsistency of Traffic
329 Engineering Advertisement of 3rd party commercial routers when MT is enabled.
330 At this time, FRR offers partial support for some of the routing protocol
331 extensions that can be used with MPLS-TE. FRR does not currently support a
332 complete RSVP-TE solution.
333
334 .. clicmd:: mpls-te on
335
336 Enable Traffic Engineering LSP flooding.
337
338 .. clicmd:: mpls-te router-address <A.B.C.D>
339
340 Configure stable IP address for MPLS-TE.
341
342 .. clicmd:: mpls-te router-address ipv6 <X:X::X:X>
343
344 Configure stable IPv6 address for MPLS-TE.
345
346 .. clicmd:: mpls-te export
347
348 Export Traffic Engineering DataBase to other daemons through the ZAPI
349 Opaque Link State messages.
350
351 .. clicmd:: show isis mpls-te interface
352
353 .. clicmd:: show isis mpls-te interface INTERFACE
354
355 Show MPLS Traffic Engineering parameters for all or specified interface.
356
357 .. clicmd:: show isis mpls-te router
358
359 Show Traffic Engineering router parameters.
360
361 .. clicmd:: show isis [vrf <NAME|all>] mpls-te database [detail|json]
362
363 .. clicmd:: show isis [vrf <NAME|all>] mpls-te database vertex [WORD] [detail|json]
364
365 .. clicmd:: show isis [vrf <NAME|all>] mpls-te database edge [A.B.C.D|X:X::X:X] [detail|json]
366
367 .. clicmd:: show isis [vrf <NAME|all>] mpls-te database subnet [A.B.C.D/M|X:X::X:X/M] [detail|json]
368
369 Show Traffic Engineering Database
370
371 .. seealso::
372
373 :ref:`ospf-traffic-engineering`
374
375
376 .. _debugging-isis:
377
378 Segment Routing
379 ===============
380
381 This is an EXPERIMENTAL support of Segment Routing as per RFC8667
382 for MPLS dataplane. It supports IPv4, IPv6 and ECMP and has been
383 tested against Cisco & Juniper routers.
384
385 Known limitations:
386 - No support for level redistribution (L1 to L2 or L2 to L1)
387 - No support for binding SID
388 - No support for SRMS
389 - No support for SRLB
390 - Only one SRGB and default SPF Algorithm is supported
391
392 .. clicmd:: segment-routing on
393
394 Enable Segment Routing.
395
396 .. clicmd:: segment-routing global-block (16-1048575) (16-1048575) [local-block (16-1048575) (16-1048575)]
397
398 Set the Segment Routing Global Block i.e. the label range used by MPLS
399 to store label in the MPLS FIB for Prefix SID. Note that the block size
400 may not exceed 65535. Optionally sets also the Segment Routing Local Block.
401 The negative command always unsets both.
402
403 .. clicmd:: segment-routing node-msd (1-16)
404
405 Set the Maximum Stack Depth supported by the router. The value depend of the
406 MPLS dataplane. E.g. for Linux kernel, since version 4.13 the maximum value
407 is 32.
408
409 .. clicmd:: segment-routing prefix <A.B.C.D/M|X:X::X:X/M> <absolute (16-1048575)|index (0-65535) [no-php-flag|explicit-null] [n-flag-clear]
410
411 prefix. The 'no-php-flag' means NO Penultimate Hop Popping that allows SR
412 node to request to its neighbor to not pop the label. The 'explicit-null'
413 flag allows SR node to request to its neighbor to send IP packet with the
414 EXPLICIT-NULL label. The 'n-flag-clear' option can be used to explicitly
415 clear the Node flag that is set by default for Prefix-SIDs associated to
416 loopback addresses. This option is necessary to configure Anycast-SIDs.
417
418 .. clicmd:: show isis segment-routing node
419
420 Show detailed information about all learned Segment Routing Nodes.
421
422 Debugging ISIS
423 ==============
424
425 .. clicmd:: debug isis adj-packets
426
427 IS-IS Adjacency related packets.
428
429 .. clicmd:: debug isis checksum-errors
430
431 IS-IS LSP checksum errors.
432
433 .. clicmd:: debug isis events
434
435 IS-IS Events.
436
437 .. clicmd:: debug isis local-updates
438
439 IS-IS local update packets.
440
441 .. clicmd:: debug isis packet-dump
442
443 IS-IS packet dump.
444
445 .. clicmd:: debug isis protocol-errors
446
447 IS-IS LSP protocol errors.
448
449 .. clicmd:: debug isis route-events
450
451 IS-IS Route related events.
452
453 .. clicmd:: debug isis snp-packets
454
455 IS-IS CSNP/PSNP packets.
456
457 .. clicmd:: debug isis spf-events
458 .. clicmd:: debug isis spf-statistics
459 .. clicmd:: debug isis spf-triggers
460
461 IS-IS Shortest Path First Events, Timing and Statistic Data and triggering
462 events.
463
464 .. clicmd:: debug isis update-packets
465
466
467 Update related packets.
468
469 .. clicmd:: debug isis te-events
470
471 IS-IS Traffic Engineering events
472
473 .. clicmd:: debug isis sr-events
474
475
476 IS-IS Segment Routing events.
477
478 .. clicmd:: debug isis lfa
479
480
481 IS-IS LFA events.
482
483 .. clicmd:: show debugging isis
484
485 Print which ISIS debug level is activate.
486
487 .. _isis-config-examples:
488
489 ISIS Configuration Examples
490 ===========================
491
492 A simple example, with MD5 authentication enabled:
493
494 .. code-block:: frr
495
496 !
497 interface eth0
498 ip router isis FOO
499 isis network point-to-point
500 isis circuit-type level-2-only
501 !
502 router isis FOO
503 net 47.0023.0000.0000.0000.0000.0000.0000.1900.0004.00
504 metric-style wide
505 is-type level-2-only
506
507
508 A Traffic Engineering configuration, with Inter-ASv2 support.
509
510 First, the :file:`zebra.conf` part:
511
512 .. code-block:: frr
513
514 hostname HOSTNAME
515 password PASSWORD
516 log file /var/log/zebra.log
517 !
518 interface eth0
519 ip address 10.2.2.2/24
520 link-params
521 max-bw 1.25e+07
522 max-rsv-bw 1.25e+06
523 unrsv-bw 0 1.25e+06
524 unrsv-bw 1 1.25e+06
525 unrsv-bw 2 1.25e+06
526 unrsv-bw 3 1.25e+06
527 unrsv-bw 4 1.25e+06
528 unrsv-bw 5 1.25e+06
529 unrsv-bw 6 1.25e+06
530 unrsv-bw 7 1.25e+06
531 admin-grp 0xab
532 !
533 interface eth1
534 ip address 10.1.1.1/24
535 link-params
536 enable
537 metric 100
538 max-bw 1.25e+07
539 max-rsv-bw 1.25e+06
540 unrsv-bw 0 1.25e+06
541 unrsv-bw 1 1.25e+06
542 unrsv-bw 2 1.25e+06
543 unrsv-bw 3 1.25e+06
544 unrsv-bw 4 1.25e+06
545 unrsv-bw 5 1.25e+06
546 unrsv-bw 6 1.25e+06
547 unrsv-bw 7 1.25e+06
548 neighbor 10.1.1.2 as 65000
549
550
551 Then the :file:`isisd.conf` itself:
552
553 .. code-block:: frr
554
555 hostname HOSTNAME
556 password PASSWORD
557 log file /var/log/isisd.log
558 !
559 !
560 interface eth0
561 ip router isis FOO
562 !
563 interface eth1
564 ip router isis FOO
565 !
566 !
567 router isis FOO
568 isis net 47.0023.0000.0000.0000.0000.0000.0000.1900.0004.00
569 mpls-te on
570 mpls-te router-address 10.1.1.1
571 !
572 line vty
573
574 A Segment Routing configuration, with IPv4, IPv6, SRGB and MSD configuration.
575
576 .. code-block:: frr
577
578 hostname HOSTNAME
579 password PASSWORD
580 log file /var/log/isisd.log
581 !
582 !
583 interface eth0
584 ip router isis SR
585 isis network point-to-point
586 !
587 interface eth1
588 ip router isis SR
589 !
590 !
591 router isis SR
592 net 49.0000.0000.0000.0001.00
593 is-type level-1
594 topology ipv6-unicast
595 lsp-gen-interval 2
596 segment-routing on
597 segment-routing node-msd 8
598 segment-routing prefix 10.1.1.1/32 index 100 explicit-null
599 segment-routing prefix 2001:db8:1000::1/128 index 101 explicit-null
600 !
601
602
603 .. _isis-vrf-config-examples:
604
605 ISIS Vrf Configuration Examples
606 ===============================
607
608 A simple vrf example:
609
610 .. code-block:: frr
611
612 !
613 interface eth0 vrf RED
614 ip router isis FOO vrf RED
615 isis network point-to-point
616 isis circuit-type level-2-only
617 !
618 router isis FOO vrf RED
619 net 47.0023.0000.0000.0000.0000.0000.0000.1900.0004.00
620 metric-style wide
621 is-type level-2-only