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