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.
14 .. _configuring-isisd:
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*
25 Like other daemons, *isisd* configuration is done in :abbr:`ISIS` specific
26 configuration file :file:`isisd.conf`.
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.
36 .. clicmd:: router isis WORD [vrf NAME]
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`).
43 .. clicmd:: net XX.XXXX. ... .XXX.XX
45 Set/Unset network entity title (NET) provided in ISO format.
47 .. clicmd:: hostname dynamic
49 Enable support for dynamic hostname.
51 .. clicmd:: area-password [clear | md5] <password>
53 .. clicmd:: domain-password [clear | md5] <password>
55 Configure the authentication password for an area, respectively a domain, as
56 clear text or md5 one.
58 .. clicmd:: attached-bit [receive ignore | send]
60 Set attached bit for inter-area traffic:
63 If LSP received with attached bit set, create default route to neighbor
65 If L1|L2 router, set attached bit in LSP sent to L1 router
67 .. clicmd:: log-adjacency-changes
69 Log changes in adjacency state.
71 .. clicmd:: metric-style [narrow | transition | wide]
73 Set old-style (ISO 10589) or new-style packet formats:
76 Use old style of TLVs with narrow metric
78 Send and accept both styles of TLVs during transition
80 Use new style of TLVs to carry wider metric. FRR uses this as a default value
82 .. clicmd:: set-overload-bit
84 Set overload bit to avoid any transit traffic.
86 .. clicmd:: purge-originator
88 Enable or disable :rfc:`6232` purge originator identification.
90 .. clicmd:: lsp-mtu (128-4352)
92 Configure the maximum size of generated LSPs, in bytes.
100 .. clicmd:: lsp-gen-interval [level-1 | level-2] (1-120)
102 Set minimum interval in seconds between regenerating same LSP,
103 globally, for an area (level-1) or a domain (level-2).
105 .. clicmd:: lsp-refresh-interval [level-1 | level-2] (1-65235)
107 Set LSP refresh interval in seconds, globally, for an area (level-1) or a
110 .. clicmd:: max-lsp-lifetime [level-1 | level-2] (360-65535)
112 Set LSP maximum LSP lifetime in seconds, globally, for an area (level-1) or
115 .. clicmd:: spf-interval [level-1 | level-2] (1-120)
117 Set minimum interval between consecutive SPF calculations in seconds.
119 .. _isis-fast-reroute:
124 Unless stated otherwise, commands in this section apply to all LFA
125 flavors (local LFA, Remote LFA and TI-LFA).
127 .. clicmd:: spf prefix-priority [critical | high | medium] WORD
129 Assign a priority to the prefixes that match the specified access-list.
131 By default loopback prefixes have medium priority and non-loopback prefixes
134 .. clicmd:: fast-reroute priority-limit [critical | high | medium] [level-1 | level-2]
136 Limit LFA backup computation up to the specified prefix priority.
138 .. clicmd:: fast-reroute lfa tiebreaker [downstream | lowest-backup-metric | node-protecting] index (1-255) [level-1 | level-2]
140 Configure a tie-breaker for multiple local LFA backups. Lower indexes are
143 .. clicmd:: fast-reroute load-sharing disable [level-1 | level-2]
145 Disable load sharing across multiple LFA backups.
147 .. clicmd:: fast-reroute remote-lfa prefix-list [WORD] [level-1 | level-2]
149 Configure a prefix-list to select eligible PQ nodes for remote LFA
150 backups (valid for all protected interfaces).
157 .. clicmd:: is-type [level-1 | level-1-2 | level-2-only]
159 Define the ISIS router behavior:
162 Act as a station router only
164 Act as both a station router and an area router
166 Act as an area router only
173 .. _ip-router-isis-word:
175 .. clicmd:: <ip|ipv6> router isis WORD
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``.
182 .. clicmd:: isis circuit-type [level-1 | level-1-2 | level-2]
184 Configure circuit type for interface:
187 Level-1 only adjacencies are formed
189 Level-1-2 adjacencies are formed
191 Level-2 only adjacencies are formed
193 .. clicmd:: isis csnp-interval (1-600) [level-1 | level-2]
195 Set CSNP interval in seconds globally, for an area (level-1) or a domain
198 .. clicmd:: isis hello padding
200 Add padding to IS-IS hello packets.
202 .. clicmd:: isis hello-interval (1-600) [level-1 | level-2]
204 Set Hello interval in seconds globally, for an area (level-1) or a domain
207 .. clicmd:: isis hello-multiplier (2-100) [level-1 | level-2]
209 Set multiplier for Hello holding time globally, for an area (level-1) or a
212 .. clicmd:: isis metric [(0-255) | (0-16777215)] [level-1 | level-2]
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]`).
218 .. clicmd:: isis network point-to-point
220 Set network type to 'Point-to-Point' (broadcast by default).
222 .. clicmd:: isis passive
224 Configure the passive mode for this interface.
226 .. clicmd:: isis password [clear | md5] <password>
228 Configure the authentication password (clear or encoded text) for the
231 .. clicmd:: isis priority (0-127) [level-1 | level-2]
233 Set priority for Designated Router election, globally, for the area
234 (level-1) or the domain (level-2).
236 .. clicmd:: isis psnp-interval (1-120) [level-1 | level-2]
238 Set PSNP interval in seconds globally, for an area (level-1) or a domain
241 .. clicmd:: isis three-way-handshake
243 Enable or disable :rfc:`5303` Three-Way Handshake for P2P adjacencies.
244 Three-Way Handshake is enabled by default.
246 .. clicmd:: isis fast-reroute lfa [level-1 | level-2]
248 Enable per-prefix local LFA fast reroute link protection.
250 .. clicmd:: isis fast-reroute lfa [level-1 | level-2] exclude interface IFNAME
252 Exclude an interface from the local LFA backup nexthop computation.
254 .. clicmd:: isis fast-reroute remote-lfa tunnel mpls-ldp [level-1 | level-2]
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.
260 .. clicmd:: isis fast-reroute remote-lfa maximum-metric (1-16777215) [level-1 | level-2]
262 Limit Remote LFA PQ node selection within the specified metric.
264 .. clicmd:: isis fast-reroute ti-lfa [level-1|level-2] [node-protection [link-fallback]]
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.
270 .. _showing-isis-information:
272 Showing ISIS information
273 ========================
275 .. clicmd:: show isis summary
277 Show summary information about ISIS.
279 .. clicmd:: show isis hostname
281 Show information about ISIS node.
283 .. clicmd:: show isis interface [detail] [IFNAME]
285 Show state and configuration of ISIS specified interface, or all interfaces
286 if no interface is given with or without details.
288 .. clicmd:: show isis neighbor [detail] [SYSTEMID]
290 Show state and information of ISIS specified neighbor, or all neighbors if
291 no system id is given with or without details.
293 .. clicmd:: show isis database [detail] [LSPID]
295 Show the ISIS database globally, for a specific LSP id without or with
298 .. clicmd:: show isis topology [level-1|level-2]
300 Show topology IS-IS paths to Intermediate Systems, globally, in area
301 (level-1) or domain (level-2).
303 .. clicmd:: show isis route [level-1|level-2] [prefix-sid|backup]
305 Show the ISIS routing table, as determined by the most recent SPF
308 .. clicmd:: show isis fast-reroute summary [level-1|level-2]
310 Show information about the number of prefixes having LFA protection,
311 and network-wide LFA coverage.
314 .. _isis-traffic-engineering:
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.
325 .. clicmd:: mpls-te on
327 Enable Traffic Engineering LSP flooding.
329 .. clicmd:: mpls-te router-address <A.B.C.D>
331 Configure stable IP address for MPLS-TE.
333 .. clicmd:: mpls-te router-address ipv6 <X:X::X:X>
335 Configure stable IPv6 address for MPLS-TE.
337 .. clicmd:: show isis mpls-te interface
339 .. clicmd:: show isis mpls-te interface INTERFACE
341 Show MPLS Traffic Engineering parameters for all or specified interface.
343 .. clicmd:: show isis mpls-te router
345 Show Traffic Engineering router parameters.
349 :ref:`ospf-traffic-engineering`
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.
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
368 .. clicmd:: segment-routing on
370 Enable Segment Routing.
372 .. clicmd:: segment-routing global-block (16-1048575) (16-1048575) [local-block (16-1048575) (16-1048575)]
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.
379 .. clicmd:: segment-routing local-block (16-1048575) (16-1048575)
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.
386 .. clicmd:: segment-routing node-msd (1-16)
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
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]
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.
401 .. clicmd:: show isis segment-routing nodes
403 Show detailed information about all learned Segment Routing Nodes.
408 .. clicmd:: debug isis adj-packets
410 IS-IS Adjacency related packets.
412 .. clicmd:: debug isis checksum-errors
414 IS-IS LSP checksum errors.
416 .. clicmd:: debug isis events
420 .. clicmd:: debug isis local-updates
422 IS-IS local update packets.
424 .. clicmd:: debug isis packet-dump
428 .. clicmd:: debug isis protocol-errors
430 IS-IS LSP protocol errors.
432 .. clicmd:: debug isis route-events
434 IS-IS Route related events.
436 .. clicmd:: debug isis snp-packets
438 IS-IS CSNP/PSNP packets.
440 .. clicmd:: debug isis spf-events
441 .. clicmd:: debug isis spf-statistics
442 .. clicmd:: debug isis spf-triggers
444 IS-IS Shortest Path First Events, Timing and Statistic Data and triggering
447 .. clicmd:: debug isis update-packets
450 Update related packets.
452 .. clicmd:: debug isis sr-events
455 IS-IS Segment Routing events.
457 .. clicmd:: debug isis lfa
462 .. clicmd:: show debugging isis
464 Print which ISIS debug level is activate.
466 .. _isis-config-examples:
468 ISIS Configuration Examples
469 ===========================
471 A simple example, with MD5 authentication enabled:
478 isis network point-to-point
479 isis circuit-type level-2-only
482 net 47.0023.0000.0000.0000.0000.0000.0000.1900.0004.00
487 A Traffic Engineering configuration, with Inter-ASv2 support.
489 First, the :file:`zebra.conf` part:
495 log file /var/log/zebra.log
498 ip address 10.2.2.2/24
513 ip address 10.1.1.1/24
527 neighbor 10.1.1.2 as 65000
530 Then the :file:`isisd.conf` itself:
536 log file /var/log/isisd.log
547 isis net 47.0023.0000.0000.0000.0000.0000.0000.1900.0004.00
549 mpls-te router-address 10.1.1.1
553 A Segment Routing configuration, with IPv4, IPv6, SRGB and MSD configuration.
559 log file /var/log/isisd.log
564 isis network point-to-point
571 net 49.0000.0000.0000.0001.00
573 topology ipv6-unicast
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
582 .. _isis-vrf-config-examples:
584 ISIS Vrf Configuration Examples
585 ===============================
587 A simple vrf example:
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
597 router isis FOO vrf RED
598 net 47.0023.0000.0000.0000.0000.0000.0000.1900.0004.00