ISIS Basic Configuration & Verification

Task

Configure the routers in the given topology below, with the following requirements:

  • VR111 and R1 form area 49.0001
  • VR112 and R2 form area 49.0002
  • R1 & R2 are L1/L2 routers, while VR111 and VR112 are L1 routers only.
  • All internal router interfaces are reachable from other routers.
  • No need to have reachability to/from the Internet.

Configuration

Enable ISO family on all interfaces & assign ISO address to at least one interface, preferably to the loopback

lab@R1> show configuration interfaces 
em1 {
    vlan-tagging;
    unit 77 {
        vlan-id 77;
        family inet {
            address 172.20.77.1/30;
        }
        family iso;
    }
}
em2 {
    vlan-tagging;
    unit 66 {
        vlan-id 66;
        family inet {
            address 172.20.66.1/30;
        }
        family iso;
    }
}
em4 {
    vlan-tagging;
    unit 111 {
        vlan-id 111;
        family inet {
            address 172.20.111.1/24;
        }
        family iso;
    }
}
lo0 {
    unit 1 {
        family inet {
            address 192.168.1.1/32;
        }
        family iso {
            address 49.0001.1921.6800.1001.00;
        }
    }
}

Note the following under the interface configuration:

  • IP addresses assigned to the interfaces at the initial configuration are just for connectivity verification, and later for IP route advertisement demonstration. They are not used for ISIS protocol. ISIS relies on L2 for transport, and NOT for IP.
  • ISO address include the Area ID portion. In this case, R1 belong to Area 49.0001. This is a very important piece of information. Two L1 routers can only form a neighbor relationship if they belong to the same area. Two L2, or L1/L2 routers on the other hand can form a neighbor relationship if they belong to two different areas.

Configure ISIS protocol:

lab@R1> show configuration protocols isis 
interface em1.77 {
    level 1 disable;
}
interface em2.66 {
    level 1 disable;
}
interface em4.111 {
    level 2 disable;
}
interface lo0.1 {
    level 1 disable;
}

By default, a router try to peer up with other routers at L1 or L2. Both L1 and L2 are enabled on all ISIS enabled interfaces. If we want to specify a specific level to run on an interface, we need to disable the other level.

Verification

lab@R1> show isis interface 
IS-IS interface database:
Interface             L CirID Level 1 DR        Level 2 DR        L1/L2 Metric
em1.77                2   0x1 Disabled          R2.02                  10/10
em2.66                2   0x1 Disabled          R2.03                  10/10
em4.111               1   0x2 R1.02             Disabled               10/10
lo0.1                 0   0x1 Disabled          Passive                 0/0

lab@R1> show isis adjacency 
Interface             System         L State        Hold (secs) SNPA
em1.77                R2             2  Up                    7  0:50:56:33:f0:c
em2.66                R2             2  Up                    6  0:50:56:26:f3:c0
em4.111               vr             1  Up                   22  0:50:56:3b:2:1a

lab@R1> show isis database 
IS-IS level 1 link-state database:
LSP ID                      Sequence Checksum Lifetime Attributes
R1.00-00                        0x1c   0x519d      792 L1 L2 Attached
R1.02-00                        0x17   0x799d      590 L1 L2
vr.00-00                        0x1b   0xd7c5     1038 L1 L2
  3 LSPs

IS-IS level 2 link-state database:
LSP ID                      Sequence Checksum Lifetime Attributes
R1.00-00                        0x20    0x263      792 L1 L2
R2.00-00                        0x14   0x74d0      613 L1 L2
R2.02-00                        0x11   0x915d     1185 L1 L2
R2.03-00                        0x10   0x8c62      798 L1 L2
  4 LSPs

lab@R1> show isis route 
 IS-IS routing table             Current version: L1: 34 L2: 39
IPv4/IPv6 Routes
----------------
Prefix             L Version   Metric Type Interface       NH   Via
172.20.112.0/24    2      39       20 int  em1.77          IPV4 R2                 
                                           em2.66          IPV4 R2                 
192.168.1.2/32     1      34       10 int  em4.111         IPV4 vr                 
192.168.2.1/32     2      39       10 int  em1.77          IPV4 R2                 
                                           em2.66          IPV4 R2                 
192.168.2.2/32     2      39       20 int  em1.77          IPV4 R2                 
                                           em2.66          IPV4 R2                 

lab@R1> show route protocol isis 

inet.0: 15 destinations, 15 routes (15 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

172.20.112.0/24    *[IS-IS/18] 01:56:39, metric 20
                    > to 172.20.77.2 via em1.77
                      to 172.20.66.2 via em2.66
192.168.1.2/32     *[IS-IS/15] 01:56:44, metric 10
                    > to 172.20.111.10 via em4.111
192.168.2.1/32     *[IS-IS/18] 01:56:39, metric 10
                    > to 172.20.77.2 via em1.77
                      to 172.20.66.2 via em2.66
192.168.2.2/32     *[IS-IS/18] 01:56:39, metric 20
                    > to 172.20.77.2 via em1.77
                      to 172.20.66.2 via em2.66

iso.0: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden)

lab@R1> ping 192.168.2.1 source 192.168.1.1 rapid count 5 
PING 192.168.2.1 (192.168.2.1): 56 data bytes
!!!!!
--- 192.168.2.1 ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max/stddev = 0.254/0.299/0.452/0.076 ms

lab@R1> ping 192.168.2.2 source 192.168.1.1 rapid count 5    
PING 192.168.2.2 (192.168.2.2): 56 data bytes
!!!!!
--- 192.168.2.2 ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max/stddev = 0.454/0.609/0.709/0.088 ms

Trouble-shooting

The following config and output demonstrate an issue forming adjecency between R1 and VR111, when the area does not match. There’s no issue with adjacency between R1 & R2, because the interfaces between R1 and R2 are set for level 2.

[edit protocols isis]
lab@R1# set traceoptions file isis 

[edit protocols isis]
lab@R1# set traceoptions flag error detail 

[edit protocols isis]

[edit interfaces lo0 unit 1]
lab@R1# show 
family inet {
    address 192.168.1.1/32;
}
family iso {
    address 49.0001.1921.6800.1001.00;
}

[edit interfaces lo0 unit 1]
lab@R1# rename family iso address 49.0001.1921.6800.1001.00 to address 49.0003.1921.6800.1001.00  
[edit interfaces lo0 unit 1]
lab@R1# show      
family inet {
    address 192.168.1.1/32;
}
family iso {
    address 49.0003.1921.6800.1001.00;
}

[edit interfaces lo0 unit 1]
lab@R1# commit and-quit 
commit complete
Exiting configuration mode

lab@R1> clear log isis                       

lab@R1> show log isis 
Aug 9 11:37:51 R1 clear-log[97178]: logfile cleared
Aug  9 11:37:54.441910 ERROR: IIH from vr with no matching areas, interface em4.111
Aug  9 11:37:54.441946     local area  49.0003
Aug  9 11:37:54.441952     remote area 49.0001 (3 bytes)

IS-IS Metrics

Standard metrics are between 1-63.
Wide metrics support a link metric of up to 2^24, and allow up to 256 hops, resulting in a maximum total path value of 2^32.

By default Junos sends both standard and wide metrics. However, the software limits the wide metrics to 63 if it also sends standard metrics. To make use of large number configured for wide metrics, we need to disable standard metrics via the follow statement (per level 1 or 2 basis), with a command wide-metrics-only

Following config and show output demonstrate that since R1

[edit protocols isis]
lab@R1# show 
level 2 wide-metrics-only;
interface em2.66 {
    level 1 disable;
    level 2 metric 2000;
}

[edit protocols isis]
lab@R2# show 
interface em1.77 {
    level 1 disable;
    level 2 metric 1000;
}

lab@R1> show isis interface 
IS-IS interface database:
Interface             L CirID Level 1 DR        Level 2 DR        L1/L2 Metric
em1.77                2   0x1 Disabled          R2.02                  10/10
em2.66                2   0x1 Disabled          R2.03                  10/2000
em4.111               1   0x2 R1.02             Disabled               10/10
lo0.1                 0   0x1 Disabled          Passive                 0/0

lab@R1> show isis database level 2 detail 
IS-IS level 2 link-state database:

R1.00-00 Sequence: 0x29, Checksum: 0x46b6, Lifetime: 808 secs
   IS neighbor: R2.02                         Metric:       10
   IS neighbor: R2.03                         Metric:     2000
   IP prefix: 172.20.66.0/30                  Metric:     2000 Internal Up
   IP prefix: 172.20.77.0/30                  Metric:       10 Internal Up
   IP prefix: 172.20.111.0/24                 Metric:       10 Internal Up
   IP prefix: 192.168.1.1/32                  Metric:        0 Internal Up
   IP prefix: 192.168.1.2/32                  Metric:       10 Internal Up

R2.00-00 Sequence: 0x1c, Checksum: 0xf077, Lifetime: 507 secs
   IS neighbor: R2.02                         Metric:       63
   IS neighbor: R2.03                         Metric:       10
   IP prefix: 172.20.66.0/30                  Metric:       10 Internal Up
   IP prefix: 172.20.77.0/30                  Metric:       63 Internal Up
   IP prefix: 172.20.112.0/24                 Metric:       10 Internal Up
   IP prefix: 192.168.2.1/32                  Metric:        0 Internal Up
   IP prefix: 192.168.2.2/32                  Metric:       10 Internal Up

lab@R2> show isis interface    
IS-IS interface database:
Interface             L CirID Level 1 DR        Level 2 DR        L1/L2 Metric
em1.77                2   0x2 Disabled          R2.02                  10/1000
em2.66                2   0x3 Disabled          R2.03                  10/10
em4.112               1   0x1 vr.02             Disabled               10/10
lo0.2                 0   0x1 Disabled          Passive                 0/0

lab@R2> show isis database level 2 detail 
IS-IS level 2 link-state database:

R1.00-00 Sequence: 0x29, Checksum: 0x46b6, Lifetime: 753 secs
   IS neighbor: R2.02                         Metric:       10
   IS neighbor: R2.03                         Metric:     2000
   IP prefix: 172.20.66.0/30                  Metric:     2000 Internal Up
   IP prefix: 172.20.77.0/30                  Metric:       10 Internal Up
   IP prefix: 172.20.111.0/24                 Metric:       10 Internal Up
   IP prefix: 192.168.1.1/32                  Metric:        0 Internal Up
   IP prefix: 192.168.1.2/32                  Metric:       10 Internal Up

R2.00-00 Sequence: 0x1c, Checksum: 0xf077, Lifetime: 457 secs
   IS neighbor: R2.02                         Metric:       63
   IS neighbor: R2.03                         Metric:       10
   IP prefix: 172.20.66.0/30                  Metric:       10 Internal Up
   IP prefix: 172.20.77.0/30                  Metric:       63 Internal Up
   IP prefix: 172.20.112.0/24                 Metric:       10 Internal Up
   IP prefix: 192.168.2.1/32                  Metric:        0 Internal Up
   IP prefix: 192.168.2.2/32                  Metric:       10 Internal Up

It is shown that even though a metric of 1000 is configured on em1.77 of R2, only metric of 63 is actually used. Whereas on R1 a metric of 2000 is configured on em2.66, and that’s the actual metric seen by R2. This is because the standard metric is disabled on R1, while it is not disabled on R2.