ISIS — FRR 7.5.1/frr-7.5.1 documentation

# ISIS

ISIS is a routing protocol which is described in ISO10589, RFC 1195, RFC 5308. ISIS is an IGP. Compared with RIP, ISIS can provide scalable network support and faster convergence times like OSPF. ISIS is widely used in large networks such as ISP and carrier backbone networks.

## Configuring isisd

There are no isisd specific options. Common options can be specified (Common Invocation Options) to isisd. isisd needs to acquire interface information from zebra in order to function. Therefore zebra must be running before invoking isisd. Also, if zebra is restarted then isisd must be too.

Like other daemons, isisd configuration is done in ISIS specific configuration file `isisd.conf`.

## ISIS router

To start the ISIS process you have to specify the ISIS router. As of this writing, isisd does not support multiple ISIS processes.

`[no] router isis WORD [vrf NAME]`

  Enable or disable the ISIS process by specifying the ISIS domain with 'WORD'. isisd does not yet support multiple ISIS processes but you must specify the name of ISIS process. The ISIS process name 'WORD' is then used for interface (see command `ip router isis WORD`).

`net XX.XXXX. ... .XXX.XX`

`no net XX.XXXX. ... .XXX.XX`

  Set/Unset network entity title (NET) provided in ISO format.

`hostname dynamic`

`no hostname dynamic`

  Enable support for dynamic hostname.

`area-password [clear | md5] <password>`

`domain-password [clear | md5] <password>`

`no area-password`

`no domain-password`

  Configure the authentication password for an area, respectively a domain, as clear text or md5 one.

`log-adjacency-changes`

`no log-adjacency-changes`

  Log changes in adjacency state.

`metric-style [narrow | transition | wide]`

`no metric-style`

  Set old-style (ISO 10589) or new-style packet formats:

  - narrow Use old style of TLVs with narrow metric

  - transition Send and accept both styles of TLVs during transition

  - wide Use new style of TLVs to carry wider metric

`set-overload-bit`

`no set-overload-bit`

  Set overload bit to avoid any transit traffic.

`purge-originator`

`no purge-originator`

  Enable or disable RFC 6232 purge originator identification.

`[no] lsp-mtu (128-4352)`

  Configure the maximum size of generated LSPs, in bytes.

## ISIS Timer

`lsp-gen-interval (1-120)`

`lsp-gen-interval [level-1 | level-2] (1-120)`

`no lsp-gen-interval`

`no lsp-gen-interval [level-1 | level-2]`

  Set minimum interval in seconds between regenerating same LSP, globally, for an area (level-1) or a domain (level-2).

`lsp-refresh-interval [level-1 | level-2] (1-65235)`

`no lsp-refresh-interval [level-1 | level-2]`

  Set LSP refresh interval in seconds, globally, for an area (level-1) or a domain (level-2).

`max-lsp-lifetime (360-65535)`

`max-lsp-lifetime [level-1 | level-2] (360-65535)`

`no max-lsp-lifetime`

`no max-lsp-lifetime [level-1 | level-2]`

  Set LSP maximum LSP lifetime in seconds, globally, for an area (level-1) or a domain (level-2).

`spf-interval (1-120)`

`spf-interval [level-1 | level-2] (1-120)`

`no spf-interval`

`no spf-interval [level-1 | level-2]`

  Set minimum interval between consecutive SPF calculations in seconds.

## ISIS region

`is-type [level-1 | level-1-2 | level-2-only]`

`no is-type`

  Define the ISIS router behavior:

  - level-1 Act as a station router only

  - level-1-2 Act as both a station router and an area router

  - level-2-only Act as an area router only

## ISIS interface

`[no] <ip|ipv6> router isis WORD [vrf NAME]`

  Activate ISIS adjacency on this interface. Note that the name of ISIS instance must be the same as the one used to configure the ISIS process (see command `router isis WORD`). To enable IPv4, issue `ip router isis WORD`; to enable IPv6, issue `ipv6 router isis WORD`.

`isis circuit-type [level-1 | level-1-2 | level-2]`

`no isis circuit-type`

  Configure circuit type for interface:

  - level-1 Level-1 only adjacencies are formed

  - level-1-2 Level-1-2 adjacencies are formed

  - level-2-only Level-2 only adjacencies are formed

`isis csnp-interval (1-600)`

`isis csnp-interval (1-600) [level-1 | level-2]`

`no isis csnp-interval`

`no isis csnp-interval [level-1 | level-2]`

  Set CSNP interval in seconds globally, for an area (level-1) or a domain (level-2).

`isis hello padding`

  Add padding to IS-IS hello packets.

`isis hello-interval (1-600)`

`isis hello-interval (1-600) [level-1 | level-2]`

`no isis hello-interval`

`no isis hello-interval [level-1 | level-2]`

  Set Hello interval in seconds globally, for an area (level-1) or a domain (level-2).

`isis hello-multiplier (2-100)`

`isis hello-multiplier (2-100) [level-1 | level-2]`

`no isis hello-multiplier`

`no isis hello-multiplier [level-1 | level-2]`

  Set multiplier for Hello holding time globally, for an area (level-1) or a domain (level-2).

`isis metric [(0-255) | (0-16777215)]`

`isis metric [(0-255) | (0-16777215)] [level-1 | level-2]`

`no isis metric`

`no isis metric [level-1 | level-2]`

  Set default metric value globally, for an area (level-1) or a domain (level-2). Max value depend if metric support narrow or wide value (see command `metric-style [narrow | transition | wide]`).

`isis network point-to-point`

`no isis network point-to-point`

  Set network type to 'Point-to-Point' (broadcast by default).

`isis passive`

`no isis passive`

  Configure the passive mode for this interface.

`isis password [clear | md5] <password>`

`no isis password`

  Configure the authentication password (clear or encoded text) for the interface.

`isis priority (0-127)`

`isis priority (0-127) [level-1 | level-2]`

`no isis priority`

`no isis priority [level-1 | level-2]`

  Set priority for Designated Router election, globally, for the area (level-1) or the domain (level-2).

`isis psnp-interval (1-120)`

`isis psnp-interval (1-120) [level-1 | level-2]`

`no isis psnp-interval`

`no isis psnp-interval [level-1 | level-2]`

  Set PSNP interval in seconds globally, for an area (level-1) or a domain (level-2).

`isis three-way-handshake`

`no isis three-way-handshake`

  Enable or disable RFC 5303 Three-Way Handshake for P2P adjacencies. Three-Way Handshake is enabled by default.

## Showing ISIS information

`show isis summary`

  Show summary information about ISIS.

`show isis hostname`

  Show information about ISIS node.

`show isis interface`

`show isis interface detail`

`show isis interface <interface name>`

  Show state and configuration of ISIS specified interface, or all interfaces if no interface is given with or without details.

`show isis neighbor`

`show isis neighbor <System Id>`

`show isis neighbor detail`

  Show state and information of ISIS specified neighbor, or all neighbors if no system id is given with or without details.

`show isis database`

`show isis database [detail]`

`show isis database <LSP id> [detail]`

`show isis database detail <LSP id>`

  Show the ISIS database globally, for a specific LSP id without or with details.

`show isis topology`

`show isis topology [level-1|level-2]`

  Show topology IS-IS paths to Intermediate Systems, globally, in area (level-1) or domain (level-2).

`show isis route [level-1|level-2]`

  Show the ISIS routing table, as determined by the most recent SPF calculation.

## Traffic Engineering

Note

At this time, FRR offers partial support for some of the routing protocol extensions that can be used with MPLS-TE. FRR does not support a complete RSVP-TE solution currently.

`mpls-te on`

`no mpls-te`

  Enable Traffic Engineering LSP flooding.

`mpls-te router-address <A.B.C.D>`

`no mpls-te router-address`

  Configure stable IP address for MPLS-TE.

`show isis mpls-te interface`

`show isis mpls-te interface INTERFACE`

  Show MPLS Traffic Engineering parameters for all or specified interface.

`show isis mpls-te router`

  Show Traffic Engineering router parameters.

See also

Traffic Engineering

## Segment Routing

This is an EXPERIMENTAL support of Segment Routing as per RFC8667 for MPLS dataplane. It supports IPv4, IPv6 and ECMP and has been tested against Cisco & Juniper routers.

Known limitations:

  - No support for level redistribution (L1 to L2 or L2 to L1)

  - No support for binding SID

  - No support for SRMS

  - No support for SRLB

  - Only one SRGB and default SPF Algorithm is supported

`[no] segment-routing on`

  Enable Segment Routing.

`[no] segment-routing global-block (0-1048575) (0-1048575)`

  Set the Segment Routing Global Block i.e. the label range used by MPLS to store label in the MPLS FIB for Prefix SID. Note that the block size may not exceed 65535.

`[no] segment-routing local-block (0-1048575) (0-1048575)`

  Set the Segment Routing Local Block i.e. the label range used by MPLS to store label in the MPLS FIB for Adjacency SID. Note that the block size may not exceed 65535.

`[no] segment-routing node-msd (1-16)`

  Set the Maximum Stack Depth supported by the router. The value depend of the MPLS dataplane. E.g. for Linux kernel, since version 4.13 the maximum value is 32.

`[no] segment-routing prefix <A.B.C.D/M|X:X::X:X/M> <absolute (16-1048575)|index (0-65535) [no-php-flag|explicit-null]`

  Set the Segment Routing index or absolute label value for the specified prefix. The 'no-php-flag' means NO Penultimate Hop Popping that allows SR node to request to its neighbor to not pop the label. The 'explicit-null' flag allows SR node to request to its neighbor to send IP packet with the EXPLICIT-NULL label.

`show isis segment-routing prefix-sids`

  Show detailed information about all learned Segment Routing Prefix-SIDs.

`show isis segment-routing nodes`

  Show detailed information about all learned Segment Routing Nodes.

## Debugging ISIS

`debug isis adj-packets`

`no debug isis adj-packets`

  IS-IS Adjacency related packets.

`debug isis checksum-errors`

`no debug isis checksum-errors`

  IS-IS LSP checksum errors.

`debug isis events`

`no debug isis events`

  IS-IS Events.

`debug isis local-updates`

`no debug isis local-updates`

  IS-IS local update packets.

`debug isis packet-dump`

`no debug isis packet-dump`

  IS-IS packet dump.

`debug isis protocol-errors`

`no debug isis protocol-errors`

  IS-IS LSP protocol errors.

`debug isis route-events`

`no debug isis route-events`

  IS-IS Route related events.

`debug isis snp-packets`

`no debug isis snp-packets`

  IS-IS CSNP/PSNP packets.

`debug isis spf-events`

`debug isis spf-statistics`

`debug isis spf-triggers`

`no debug isis spf-events`

`no debug isis spf-statistics`

`no debug isis spf-triggers`

  IS-IS Shortest Path First Events, Timing and Statistic Data and triggering events.

`debug isis update-packets`

`no debug isis update-packets`

  Update related packets.

`debug isis sr-events`

`no debug isis sr-events`

  IS-IS Segment Routing events.

`show debugging isis`

  Print which ISIS debug level is activate.

## ISIS Configuration Examples

A simple example, with MD5 authentication enabled:

    !
    interface eth0
     ip router isis FOO
     isis network point-to-point
     isis circuit-type level-2-only
    !
    router isis FOO
    net 47.0023.0000.0000.0000.0000.0000.0000.1900.0004.00
     metric-style wide
     is-type level-2-only

A Traffic Engineering configuration, with Inter-ASv2 support.

First, the `zebra.conf` part:

    hostname HOSTNAME
    password PASSWORD
    log file /var/log/zebra.log
    !
    interface eth0
     ip address 10.2.2.2/24
     link-params
      max-bw 1.25e+07
      max-rsv-bw 1.25e+06
      unrsv-bw 0 1.25e+06
      unrsv-bw 1 1.25e+06
      unrsv-bw 2 1.25e+06
      unrsv-bw 3 1.25e+06
      unrsv-bw 4 1.25e+06
      unrsv-bw 5 1.25e+06
      unrsv-bw 6 1.25e+06
      unrsv-bw 7 1.25e+06
      admin-grp 0xab
    !
    interface eth1
     ip address 10.1.1.1/24
     link-params
      enable
      metric 100
      max-bw 1.25e+07
      max-rsv-bw 1.25e+06
      unrsv-bw 0 1.25e+06
      unrsv-bw 1 1.25e+06
      unrsv-bw 2 1.25e+06
      unrsv-bw 3 1.25e+06
      unrsv-bw 4 1.25e+06
      unrsv-bw 5 1.25e+06
      unrsv-bw 6 1.25e+06
      unrsv-bw 7 1.25e+06
      neighbor 10.1.1.2 as 65000

Then the `isisd.conf` itself:

    hostname HOSTNAME
    password PASSWORD
    log file /var/log/isisd.log
    !
    !
    interface eth0
     ip router isis FOO
    !
    interface eth1
     ip router isis FOO
    !
    !
    router isis FOO
     isis net 47.0023.0000.0000.0000.0000.0000.0000.1900.0004.00
      mpls-te on
      mpls-te router-address 10.1.1.1
    !
    line vty

A Segment Routing configuration, with IPv4, IPv6, SRGB and MSD configuration.

    hostname HOSTNAME
    password PASSWORD
    log file /var/log/isisd.log
    !
    !
    interface eth0
     ip router isis SR
     isis network point-to-point
    !
    interface eth1
     ip router isis SR
    !
    !
    router isis SR
     net 49.0000.0000.0000.0001.00
     is-type level-1
     topology ipv6-unicast
     lsp-gen-interval 2
     segment-routing on
     segment-routing node-msd 8
     segment-routing prefix 10.1.1.1/32 index 100 explicit-null
     segment-routing prefix 2001:db8:1000::1/128 index 101 explicit-null
    !

## ISIS Vrf Configuration Examples

A simple vrf example:

    !
    interface eth0 vrf RED
     ip router isis FOO vrf RED
     isis network point-to-point
     isis circuit-type level-2-only
    !
    router isis FOO vrf RED
     net 47.0023.0000.0000.0000.0000.0000.0000.1900.0004.00
     metric-style wide
     is-type level-2-only