Nokia SR Linux and Juniper cRPD
Description | A Nokia SR Linux connected back-to-back with Juniper cRPD |
Components | Nokia SR Linux, Juniper cRPD |
Resource requirements1 | 2 2 GB |
Topology file | srlcrpd01.clab.yml |
Name | srlcrpd01 |
Version information2 | containerlab:0.9.0 , srlinux:20.6.3-145 , crpd:20.2R1.10 , docker-ce:19.03.13 |
Description#
A lab consists of an SR Linux node connected with Juniper cRPD via a point-to-point ethernet link. Both nodes are also connected with their management interfaces to the clab
docker network.
Use cases#
This lab allows users to launch basic interoperability scenarios between Nokia SR Linux and Juniper cRPD network operating systems.
OSPF#
Configuration#
Once the lab is deployed with containerlab, use the following configuration instructions to make interfaces configuration and enable OSPF on both nodes.
Get into SR Linux CLI with docker exec -it clab-srlcrpd01-srl sr_cli
and start configuration
# enter candidate datastore
enter candidate
# configure loopback and data interfaces
set / interface ethernet-1/1 admin-state enable
set / interface ethernet-1/1 subinterface 0 admin-state enable
set / interface ethernet-1/1 subinterface 0 ipv4 address 192.168.1.1/24
set / interface lo0 subinterface 0 admin-state enable
set / interface lo0 subinterface 0 ipv4 address 10.10.10.1/32
# configure OSPF
set / network-instance default router-id 10.10.10.1
set / network-instance default interface ethernet-1/1.0
set / network-instance default interface lo0.0
set / network-instance default protocols ospf instance main admin-state enable
set / network-instance default protocols ospf instance main version ospf-v2
set / network-instance default protocols ospf instance main area 0.0.0.0 interface ethernet-1/1.0 interface-type point-to-point
set / network-instance default protocols ospf instance main area 0.0.0.0 interface ethernet-1/1.0
# commit config
commit now
cRPD configuration needs to be done both from the container process, as well as within the CLI.
First attach to the container process bash
shell and configure interfaces: docker exec -it clab-srlcrpd01-crpd bash
# configure linux interfaces
ip addr add 192.168.1.2/24 dev eth1
ip addr add 10.10.10.2/32 dev lo
docker exec -it clab-srlcrpd01-crpd cli
: # enter configuration mode
configure
set routing-options router-id 10.10.10.2
set protocols ospf area 0.0.0.0 interface eth1 interface-type p2p
set protocols ospf area 0.0.0.0 interface lo.0 interface-type nbma
# commit configuration
commit
Verificaton#
After the configuration is done on both nodes, verify the control plane by checking the route tables on both ends and ensuring dataplane was programmed as well by pinging the remote loopback
# control plane verification
A:srl# / show network-instance default route-table ipv4-unicast summary | grep ospf
| 10.10.10.2/32 | 0 | true | ospfv2 | 1 | 10 | 192.168.1.2 (direct) | ethernet-1/1.0 |
# data plane verification
A:srl# ping 10.10.10.2 network-instance default
Using network instance default
PING 10.10.10.2 (10.10.10.2) 56(84) bytes of data.
64 bytes from 10.10.10.2: icmp_seq=1 ttl=64 time=1.15 ms
# control plane verification
root@crpd> show route | match OSPF
10.10.10.1/32 *[OSPF/10] 00:01:24, metric 1
224.0.0.5/32 *[OSPF/10] 00:05:49, metric 1
IS-IS#
Configuration#
Once the lab is deployed with containerlab, use the following configuration instructions to make interfaces configuration and enable IS-IS on both nodes.
Get into SR Linux CLI with docker exec -it clab-srlcrpd01-srl sr_cli
and start configuration
# enter candidate datastore
enter candidate
# configure loopback and data interfaces
set / interface ethernet-1/1 admin-state enable
set / interface ethernet-1/1 subinterface 0 admin-state enable
set / interface ethernet-1/1 subinterface 0 ipv4 address 192.168.1.1/24
set / interface lo0 subinterface 0 admin-state enable
set / interface lo0 subinterface 0 ipv4 address 10.10.10.1/32
# configure IS-IS
set / network-instance default router-id 10.10.10.1
set / network-instance default interface ethernet-1/1.0
set / network-instance default interface lo0.0
set / network-instance default protocols isis instance main admin-state enable
set / network-instance default protocols isis instance main net [ 49.0001.0100.1001.0001.00 ]
set / network-instance default protocols isis instance main interface ethernet-1/1.0 admin-state enable
set / network-instance default protocols isis instance main interface ethernet-1/1.0 circuit-type point-to-point
set / network-instance default protocols isis instance main interface lo0.0
# commit config
commit now
cRPD configuration needs to be done both from the container process, as well as within the CLI.
First attach to the container process bash
shell and configure interfaces: docker exec -it clab-srlcrpd01-crpd bash
# configure linux interfaces
ip addr add 192.168.1.2/24 dev eth1
ip addr add 10.10.10.2/32 dev lo
docker exec -it clab-srlcrpd01-crpd cli
: # enter configuration mode
configure
set interfaces lo0 unit 0 family iso address 49.0001.0100.1001.0002.00
set routing-options router-id 10.10.10.2
set protocols isis interface all point-to-point
set protocols isis interface lo0.0
set protocols isis level 1 wide-metrics-only
set protocols isis level 2 wide-metrics-only
set protocols isis reference-bandwidth 100g
# commit configuration
commit
Verification#
# control plane verification
A:srl# / show network-instance default route-table ipv4-unicast summary | grep isis
| 10.10.10.2/32 | 0 | true | isis | 10 | 18 | 192.168.1.2 (direct) | ethernet-1/1.0 |
| 172.20.20.0/24 | 0 | true | isis | 110 | 18 | 192.168.1.2 (direct) | ethernet-1/1.0 |
# data plane verification
A:srl# ping 10.10.10.2 network-instance default
Using network instance default
PING 10.10.10.2 (10.10.10.2) 56(84) bytes of data.
64 bytes from 10.10.10.2: icmp_seq=1 ttl=64 time=1.15 ms
# control plane verification
root@crpd> show route table inet.0 | match IS-IS
10.10.10.1/32 *[IS-IS/18] 00:00:13, metric 100