lab03-ISIS-CLOS
Task Underlay. IS-IS
Set up IS-IS in the underlay network to establish IP connectivity between all network devices.
Network diagram

The lab is built using the following role-based device mapping host- linux, leaf - frr, spine - arista
Underlay IP Address Allocation
• Underlay addressing follows the format 10.x.y.z, where:
◦ x = Data Center ID
◦ y = Spine switch ID
◦ z = Sequential host address per leaf connection
• Host addressing uses the 172.16.x.z/24 format, where:
◦ x = Leaf switch ID
◦ z = Sequential host address
◦ Each leaf switch uses .1 as its own IP in the corresponding subnet
• Loopback addressing uses 192.168.a.b/32, where:
◦ a = 1 for spine switches
◦ a = 2 for leaf switches
◦ b = Spine or leaf ID (assigned sequentially)
• IPv6 addressing uses fd00::[IPv4]
Interconnect ipv4 ipv6
Spine-1
Eth1
10.1.1.0/31
fd00::10:1:1:0/127
Leaf-1
Eth8
10.1.1.1/31
fd00::10:1:1:1/127
Spine-1
Eth2
10.1.1.2/31
fd00::10:1:1:2/127
Leaf-2
Eth8
10.1.1.3/31
fd00::10:1:1:3/127
Spine-1
Eth3
10.1.1.4/31
fd00::10:1:1:4/127
Leaf-3
Eth8
10.1.1.5/31
fd00::10:1:1:5/127
Spine-2
Eth2
10.1.2.0/31
fd00::10:2:1:0/127
Leaf-1
Eth9
10.1.2.1/31
fd00::10:2:1:1/127
Spine-2
Eth2
10.1.2.2/31
fd00::10:2:1:2/127
Leaf-2
Eth9
10.1.2.3/31
fd00::10:2:1:3/127
Spine-2
Eth3
10.1.2.4/31
fd00::10:2:1:4/127
Leaf-3
Eth9
10.1.2.5/31
fd00::10:2:1:5/127
Host-1
Eth1
172.16.1.2/24
fd00::172:16:1:2/116
Leaf-1
Eth1
172.16.1.1/24
fd00::172:16:1:1/116
Host-2
Eth1
172.16.2.2/24
fd00::172:16:2:2/116
Leaf-2
Eth1
172.16.2.1/24
fd00::172:16:2:1/116
Host-3
Eth1
172.16.3.2/24
fd00::172:16:3:2/116
Leaf-3
Eth1
172.16.3.1/24
fd00::172:16:3:1/116
Host-4
Eth1
172.16.4.2/24
fd00::172:16:4:2/116
Leaf-3
Eth2
172.16.4.1/24
fd00::172:16:4:1/116
loopback
Spine-1
192.168.1.1
fd00::192:168:1:1
Spine-2
192.168.1.2
fd00::192:168:1:2
Leaf-1
192.168.2.1
fd00::192:168:2:1
Leaf-2
192.168.2.2
fd00::192:168:2:2
Leaf-3
192.168.2.3
fd00::192:168:2:3
isis.net is configured manually. System id derived from loopback IP address, area id 1.
Table net
Spine-1
49.0001.1921.6801.0001.00
Spine-2
49.0001.1921.6801.0002.00
Leaf-1
49.0001.1921.6802.0001.00
Leaf-2
49.0001.1921.6802.0002.00
Leaf-3
49.0001.1921.6802.0003.00
Once the overlay is deployed, we’ll place all hosts into a single subnet to emulate Layer 2 connectivity.
Launching a lab in the Netlab
Netlab Usage Notes:
As in previous lab we need to enable bfd in frr.yml
Lab Notes:
Encountered issues while configuring BFD for IS-IS. After successfully enabling it manually, I concluded that Netlab’s documentation is inaccurate regarding the lack of BFD support for IS-IS on FRR instances. To enable BFD, I modified the module responsible for FRR IS-IS configuration: /usr/local/lib/python3.10/dist-packages/netsim/ansible/templates/isis/frr.macro.j2
Netlab is supposed to be about zero manual configuration, even if manual edits are faster and simpler. However, I ran into a known FRR limitation - Note: There will be just one BFD session per interface. If both IPv4 and IPv6 are configured, only an IPv6-based session is created.
Note that there will be just one BFD session per interface. In case both IPv4 and IPv6 support are configured then just a IPv6 based session is created. Checked the Arista EOS documentation and found that: BFD is not supported for IPv6 IS-IS. At this point, one could give up — but I suspected the lack of support was due to incomplete module implementation, not platform limitations. Manual testing confirmed that BFD for IS-IS over IPv6 works on EOS. To integrate it cleanly, I extended the EOS IS-IS module:
/usr/local/lib/python3.10/dist-packages/netsim/ansible/templates/isis/eos.macro.j2
Final caveat: EOS requires explicit protocol declaration for BFD. Since FRR runs in dual-stack mode, EOS must be explicitly told to use IPv6 for BFD sessions.
File Topology For quick reference, here’s the inline listing:
Validating
Verify ping reachability to all device loopbacks from leaf-3
Device configuration files:
Last updated