Juinper Labs Routing IS-IS (lr3, frr-arm64)

Explanation

IS-IS is fairly simple in our lab—very similar to OSPF—so detailed theory is omitted here.
Please check here for routing topology.

Key points:

  • LRC3 isis-export policy-statement: export routes learned via ISIS into BGP
  • LRC3 eBGP-export policy-statement: updated to export routes learned via BGP into ISIS, plus the 10.0.4.0/30 network (the FRR-arm64 link)

FRR-arm64 Interfaces

# show interface lo
Interface lo is up, line protocol is up
  inet 200.4.4.4/32 lo:10

# show interface eth0
Interface eth0 is up, line protocol is up
  inet 10.0.4.2/30
  inet6 fe80::6c6a:c9ff:feb9:180/64

FRR-arm64 IS-IS Configuration

!                                   
ip router-id 200.4.4.4               
!                                   
interface lo                         
 ip router isis 1                    
exit                                 
!                                   
interface eth0                       
 ip router isis 1                    
exit                                 
!                                   
router isis 1                        
 net 49.0002.0010.0004.0002.00       
exit                                 
!                                   
end                                  

LR3 IS-IS & eBGP Integration

# 1. Configure ISO interfaces on LR3 for FRR-arm64
set interfaces lo0 unit 3 family iso address 49.0002.0010.0004.0001.00
set interfaces ge-0/0/4 unit 0  family iso

# 2. Export BGP routes into ISIS
set policy-options policy-statement isis-export term from-bgp from protocol bgp
set policy-options policy-statement isis-export term from-bgp then accept

# 3. Enable ISIS on LR3 interfaces and apply export policy
set protocols isis interface lo0.3 passive
set protocols isis interface ge-0/0/4.0
set protocols isis export isis-export

# 4. Update eBGP-export to include ISIS-learned and direct routes
set policy-options policy-statement eBGP-export term from-isis from protocol isis
set policy-options policy-statement eBGP-export term from-isis then accept           
set policy-options policy-statement eBGP-export term from-direct from protocol direct
set policy-options policy-statement eBGP-export term from-direct from route-filter 10.0.4.0/30 exact
set policy-options policy-statement eBGP-export term from-direct then accept    

Validation

LR3: ISIS Adjacency & Routing

# Check ISIS neighbors
lr3@acx1100:lr3> show isis adjacency
Interface       System                 L State  Hold SNPA
ge-0/0/4.0      noe4.sof.dachev.lan    1 Up     28  6e:6a:c9:b9:1:80
ge-0/0/4.0      noe4.sof.dachev.lan    2 Up     29  6e:6a:c9:b9:1:80

# ISIS routing table
lr3@acx1100:lr3> show isis route
 IS-IS routing table             L1:27  L2:33
0.0.0.0/0      int ge-0/0/4.0  via noe4.sof.dachev.lan
200.4.4.4/32   int ge-0/0/4.0  via noe4.sof.dachev.lan

# Ping FRR-arm64 loopback
lr3@acx1100:lr3> ping count 3 200.4.4.4

FRR-arm64: ISIS & IP Routes

# Check ISIS neighbors
noe4.sof.dachev.lan# show isis neighbor
System Id           Interface  L State  Hold SNPA
acx1100-lr3         eth0       1 Up     21  288a.1c7d.d904
acx1100-lr3         eth0       2 Up     22  288a.1c7d.d904

# ISIS L1 & L2 routes
noe4.sof.dachev.lan# show isis route
10.0.0.0/22   eth0  via 10.0.4.1  
…  
200.4.4.4/32  lo    directly connected

# IP routing table (default via DHCP)
noe4.sof.dachev.lan# show ip route
K>* 0.0.0.0/0 via 10.0.4.1
I>* 10.0.0.0/22 via 10.0.4.1
…  
C>* 200.4.4.4/32 directly connected

# Ping tests from FRR-arm64 (default route)
root@noe4:~# ping -c 3 100.0.1.1   # ACX1100 loopback
root@noe4:~# ping -c 3 100.1.2.3   # LRC loopback
root@noe4:~# ping -c 3 100.1.1.1   # LR1 loopback
root@noe4:~# ping -c 3 100.2.2.2   # LR2 loopback
root@noe4:~# ping -c 3 100.3.3.3   # LR3 loopback

# Internet connectivity test
root@noe4:~# ping -c 3 8.8.8.8

# Traceroutes
root@noe4:~# traceroute -n 8.8.8.8
root@noe4:~# traceroute -n 100.1.1.1

At this point, every logical system and node has full reachability to any IP or network in the lab topology.