ISIS
****

ISIS (Intermediate System to Intermediate System) is a routing protocol which is described in ISO10589, RFC1195, RFC5308.  ISIS is an IGP (Interior Gateway Protocol).  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 (Internet Service Provider) and carrier backbone networks.

Configuring isisd
=================

There are no isisd specific options.  Common options can be specified (see 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 ISIS process you have to specify the ISIS router. As of this writing, isisd does not support multiple ISIS processes.

 -- Command: router isis WORD
 -- Command: no router isis WORD
     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).

 -- ISIS Command: net XX.XXXX. ... .XXX.XX
 -- ISIS Command: no net XX.XXXX. ... .XXX.XX
     Set/Unset network entity title (NET) provided in ISO format.

 -- ISIS Command: hostname dynamic
 -- ISIS Command: no hostname dynamic
     Enable support for dynamic hostname.

 -- ISIS Command: area-password [clear | md5] <password>
 -- ISIS Command: domain-password [clear | md5] <password>
 -- ISIS Command: no area-password
 -- ISIS Command: no domain-password
     Configure the authentication password for an area, respectively a domain, as clear text or md5 one.

 -- ISIS Command: log-adjacency-changes
 -- ISIS Command: no log-adjacency-changes
     Log changes in adjacency state.

 -- ISIS Command: metric-style [narrow | transition | wide]
 -- ISIS Command: 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

 -- ISIS Command: set-overload-bit
 -- ISIS Command: no set-overload-bit
     Set overload bit to avoid any transit traffic.

ISIS Timer
==========

 -- ISIS Command: lsp-gen-interval <1-120>
 -- ISIS Command: lsp-gen-interval [level-1 | level-2] <1-120>
 -- ISIS Command: no lsp-gen-interval
 -- ISIS Command: 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).

 -- ISIS Command: lsp-refresh-interval <1-65235>
 -- ISIS Command: lsp-refresh-interval [level-1 | level-2] <1-65235>
 -- ISIS Command: no lsp-refresh-interval
 -- ISIS Command: 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).

 -- ISIS Command: lsp-refresh-interval <1-65235>
 -- ISIS Command: lsp-refresh-interval [level-1 | level-2] <1-65235>
 -- ISIS Command: no lsp-refresh-interval
 -- ISIS Command: 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).

 -- ISIS Command: max-lsp-lifetime <360-65535>
 -- ISIS Command: max-lsp-lifetime [level-1 | level-2] <360-65535>
 -- ISIS Command: no max-lsp-lifetime
 -- ISIS Command: 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).

 -- ISIS Command: spf-interval <1-120>
 -- ISIS Command: spf-interval [level-1 | level-2] <1-120>
 -- ISIS Command: no spf-interval
 -- ISIS Command: no spf-interval [level-1 | level-2]
     Set minimum interval between consecutive SPF calculations in seconds.

ISIS region
===========

 -- ISIS Command: is-type [level-1 | level-1-2 | level-2-only]
 -- ISIS Command: 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
==============

 -- Interface Command: ip router isis WORD
 -- Interface Command: no ip router isis WORD
     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).

 -- Interface Command: isis circuit-type [level-1 | level-1-2 | level-2]
 -- Interface Command: 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

 -- Interface Command: isis csnp-interval <1-600>
 -- Interface Command: isis csnp-interval <1-600> [level-1 | level-2]
 -- Interface Command: no isis csnp-interval
 -- Interface Command: no isis csnp-interval [level-1 | level-2]
     Set CSNP interval in seconds globally, for an area (level-1) or a domain (level-2).

 -- Interface Command: isis hello padding
     Add padding to IS-IS hello packets.

 -- Interface Command: isis hello-interval <1-600>
 -- Interface Command: isis hello-interval <1-600> [level-1 | level-2]
 -- Interface Command: no isis hello-interval
 -- Interface Command: no isis hello-interval [level-1 | level-2]
     Set Hello interval in seconds globally, for an area (level-1) or a domain (level-2).

 -- Interface Command: isis hello-multiplier <2-100>
 -- Interface Command: isis hello-multiplier <2-100> [level-1 | level-2]
 -- Interface Command: no isis hello-multiplier
 -- Interface Command: 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).

 -- Interface Command: isis metric [<0-255> | <0-16777215>]
 -- Interface Command: isis metric [<0-255> | <0-16777215>] [level-1 | level-2]
 -- Interface Command: no isis metric
 -- Interface Command: 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).

 -- Interface Command: isis network point-to-point
 -- Interface Command: no isis network point-to-point
     Set network type to 'Point-to-Point' (broadcast by default).

 -- Interface Command: isis passive
 -- Interface Command: no isis passive
     Configure the passive mode for this interface.

 -- Interface Command: isis password [clear | md5] <password>
 -- Interface Command: no isis password
     Configure the authentication password (clear or encoded text) for the interface.

 -- Interface Command: isis priority <0-127>
 -- Interface Command: isis priority <0-127> [level-1 | level-2]
 -- Interface Command: no isis priority
 -- Interface Command: no isis priority [level-1 | level-2]
     Set priority for Designated Router election, globally, for the area (level-1) or the domain (level-2).

 -- Interface Command: isis psnp-interval <1-120>
 -- Interface Command: isis psnp-interval <1-120> [level-1 | level-2]
 -- Interface Command: no isis psnp-interval
 -- Interface Command: no isis psnp-interval [level-1 | level-2]
     Set PSNP interval in seconds globally, for an area (level-1) or a domain (level-2).

Showing ISIS information
========================

 -- Command: show isis summary
     Show summary information about ISIS.

 -- Command: show isis hostname
     Show information about ISIS node.

 -- Command: show isis interface
 -- Command: show isis interface detail
 -- Command: 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.

 -- Command: show isis neighbor
 -- Command: show isis neighbor <System Id>
 -- Command: 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.

 -- Command: show isis database
 -- Command: show isis database [detail]
 -- Command: show isis database <LSP id> [detail]
 -- Command: show isis database detail <LSP id>
     Show the ISIS database globally, for a specific LSP id without or with details.

 -- Command: show isis topology
 -- Command: show isis topology [level-1|level-2]
     Show topology IS-IS paths to Intermediate Systems, globally, in area (level-1) or domain (level-2).

 -- Command: show ip route isis
     Show the ISIS routing table, as determined by the most recent SPF calculation.

Traffic Engineering
===================

 -- ISIS Command: mpls-te on
 -- ISIS Command: no mpls-te
     Enable Traffic Engineering LSP flooding.

 -- ISIS Command: mpls-te router-address <A.B.C.D>
 -- ISIS Command: no mpls-te router-address
     Configure stable IP address for MPLS-TE.

 -- Command: show isis mpls-te interface
 -- Command: show isis mpls-te interface INTERFACE
     Show MPLS Traffic Engineering parameters for all or specified interface.

 -- Command: show isis mpls-te router
     Show Traffic Engineering router parameters.

Debugging ISIS
==============

 -- Command: debug isis adj-packets
 -- Command: no debug isis adj-packets
     IS-IS Adjacency related packets.

 -- Command: debug isis checksum-errors
 -- Command: no debug isis checksum-errors
     IS-IS LSP checksum errors.

 -- Command: debug isis events
 -- Command: no debug isis events
     IS-IS Events.

 -- Command: debug isis local-updates
 -- Command: no debug isis local-updates
     IS-IS local update packets.

 -- Command: debug isis packet-dump
 -- Command: no debug isis packet-dump
     IS-IS packet dump.

 -- Command: debug isis protocol-errors
 -- Command: no debug isis protocol-errors
     IS-IS LSP protocol errors.

 -- Command: debug isis route-events
 -- Command: no debug isis route-events
     IS-IS Route related events.

 -- Command: debug isis snp-packets
 -- Command: no debug isis snp-packets
     IS-IS CSNP/PSNP packets.

 -- Command: debug isis spf-events
 -- Command: debug isis spf-statistics
 -- Command: debug isis spf-triggers
 -- Command: no debug isis spf-events
 -- Command: no debug isis spf-statistics
 -- Command: no debug isis spf-triggers
     IS-IS Shortest Path First Events, Timing and Statistic Data and triggering events.

 -- Command: debug isis update-packets
 -- Command: no debug isis update-packets
     Update related packets.

 -- Command: 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
      mpls-te on
      mpls-te link metric 10
      mpls-te link max-bw 1.25e+06
      mpls-te link max-rsv-bw 1.25e+06
      mpls-te link unrsv-bw 0 1.25e+06
      mpls-te link unrsv-bw 1 1.25e+06
      mpls-te link unrsv-bw 2 1.25e+06
      mpls-te link unrsv-bw 3 1.25e+06
      mpls-te link unrsv-bw 4 1.25e+06
      mpls-te link unrsv-bw 5 1.25e+06
      mpls-te link unrsv-bw 6 1.25e+06
      mpls-te link unrsv-bw 7 1.25e+06
      mpls-te link rsc-clsclr 0xab
     !
     interface eth1
      ip address 10.1.1.1/24
      mpls-te on
      mpls-te link metric 10
      mpls-te link max-bw 1.25e+06
      mpls-te link max-rsv-bw 1.25e+06
      mpls-te link unrsv-bw 0 1.25e+06
      mpls-te link unrsv-bw 1 1.25e+06
      mpls-te link unrsv-bw 2 1.25e+06
      mpls-te link unrsv-bw 3 1.25e+06
      mpls-te link unrsv-bw 4 1.25e+06
      mpls-te link unrsv-bw 5 1.25e+06
      mpls-te link unrsv-bw 6 1.25e+06
      mpls-te link unrsv-bw 7 1.25e+06
      mpls-te link rsc-clsclr 0xab
      mpls-te 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