Intermediate System to Intermediate System

Introduction

IS-IS is an interior gateway protocol (IGP) widely used in large backbone provider networks and is defined in ISO/IEC 10589:2002. Within BISDN Linux, IS-IS can be configured and managed with the FRR daemon isisd.

This section provides an overview on how to configure IS-IS in BISDN Linux.

IS-IS configuration

To use IS-IS within FRR, the IS-IS daemon isisd must first be enabled via the /etc/frr/daemons file to be automatically started and managed via the frr.service in systemd.

/etc/frr/daemons

...
isisd=yes
...

The following configuration guide will explain how to configure a simple IS-IS toplogy containing two switches and two servers, each exchanging routes via IS-IS like shown below.

 +-------------------------------------------------------------+        +----------------------------------------------------------------+
 |                                                          +--+        +--+                                                             |
 |                                                   port54 |  |        |  | port54                                                      |
 |                                              10.0.0.1/24 |  +--------+  | 10.0.0.2/24              switch-2                           |
 |                 switch-1                            L2   |  |  IS-IS |  |   L2                                                        |
 |  10.0.1.1/24                                             +--+        +--+                                                 10.0.2.1/24 |
 |  port7                                                      |        |                                                    port7       |
 |  +---+                                   area 0             |        | area 0                                             +---+       |
 |  |   | L2                                100.100.100.100.00 |        | 100.100.100.101.00                                 |   |  L2   |
 +--+-+-+------------------------------------------------------+        +----------------------------------------------------+-+-+-------+
      |                                                                                                                        |
      |                                                                                                                        |
      |IS-IS                                                                                                                   |IS-IS
      |                                                                                                                        |
      |                                                                                                                        |
 +--+-+-+------------------------------------------------------+       +-----------------------------------------------------+-+-+-------+
 |  |   | L2                                200.200.200.200.00 |       |  200.200.200.201.00                                 |   | L2    |
 |  +---+                                   area 1             |       |  area 2                                             +---+       |
 |  eno7                     +---+                             |       |             +---+                                   eno7        |
 |  10.0.1.2/24    server-1  | lo|                             |       |             | lo|            server-2               10.0.2.2/24 |
 |                           +---+                             |       |             +---+                                               |
 |                           10.0.100.2/32                     |       |             10.0.101.2/32                                       |
 |                                                             |       |                                                                 |
 +-------------------------------------------------------------+       +-----------------------------------------------------------------+

To allow all switches and servers to communicate with each other, we first have to make sure all directly connected elements share at least one common network for each connection. In the topology shown above, these networks will be 10.0.0.0/24, 10.0.1.0/24 and 10.0.2.0/24. The goal of this example is to exchange routes for the two networks 10.0.100.2/32 and 10.0.101.2/32 configured on each of the loopback interfaces of the servers between all involved elements via IS-IS.

switch-1: /etc/frr/zebra.conf

interface port7
  ip address 10.0.1.1/24
interface port54
  ip address 10.0.0.1/24

switch-2: /etc/frr/zebra.conf

interface port7
  ip address 10.0.2.1/24
interface port54
  ip address 10.0.0.2/24

server-1: /etc/frr/zebra.conf

interface eno7
  ip address 10.0.1.2/24
interface lo
  ip address 10.0.100.2/32

server-2: /etc/frr/zebra.conf

interface eno7
  ip address 10.0.2.2/24
interface lo
  ip address 10.0.101.2/32

To configure IS-IS between all elements shown in the topology above, we need to assign unique network entity titles in ISO format (“net”) to all of them and configure which interfaces we want to use within the IS-IS routing domain. The examples shown below create an IS-IS router named BISDN, add the needed ports to this router and configure level-2 circuits between all adjacent elements. Additionally they add the lo interface to the BISDN router on the servers, so that the route to the /32 address configured on it will also be announced to all other routers.

switch-1: /etc/frr/isisd.conf

router isis BISDN
  is-type level-1-2
  net 49.0001.0100.0100.0100.00
interface port54
  ip route isis BISDN
  isis circuit-type level-2
  isis network point-to-point
interface port7
  ip router isis BISDN
  isis circuit-type level-2

switch-2: /etc/frr/isisd.conf

router isis BISDN
  is-type level-1-2
  net 49.0001.0100.0100.0101.00
interface port54
  ip route isis BISDN
  isis circuit-type level-2
  isis network point-to-point
interface port7
  ip router isis BISDN
  isis circuit-type level-2

server-1: /etc/frr/isisd.conf

router isis BISDN
  is-type level-1-2
  net 49.0001.0200.0200.0200.0200.00
interface eno7
  ip router isis BISDN
  isis circuit-type level-2
interface lo
  ip router isis BISDN

server-2: /etc/frr/isisd.conf

router isis BISDN
  is-type level-1-2
  net 49.0001.0200.0200.0200.0201.00
interface eno7
  ip router isis BISDN
  isis circuit-type level-2
interface lo
  ip router isis BISDN

After this configuration has been applied and the frr.service was restarted, server-1 and server-2 should both have received routes via IS-IS similar to the ones shown below:

IS-IS routes on server-1

10.0.0.0/24 via 10.0.1.1 dev eno7 proto isis metric 20
10.0.1.0/24 dev eno7 proto kernel scope link src 10.0.1.2
10.0.2.0/24 via 10.0.1.1 dev eno7 proto isis metric 20
10.0.101.2 via 10.0.1.1 dev eno7 proto isis metric 20

With these routes, both servers should now be able to reach the /32 network configured on the loopback interface of the corresponding other server while using the two in-between routers switch-1 and switch-2 as hops.

For all possible configuration options within isisd in FRR, please refer to the official FRR documentation here

Cisco Interoperability

When connecting Cisco routers and switches running BISDN Linux and FRR with ISIS, it is essential to correctly configure the metric-style setting. Per default, the Cisco Routers have the metric-style narrow configuration, while FRR chooses the wide metrics. Refer to CISCO docs for further documentation on configuring Cisco routers with ISIS. For specific information on metric-syle configurations, refer to CISCO and FRR.