Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

header-navigation
keyboard_arrow_up
list Table of Contents
file_download PDF
{ "lLangCode": "en", "lName": "English", "lCountryCode": "us", "transcode": "en_US" }
English
keyboard_arrow_right

Install and Configure cRPD on SONiC

date_range 10-Dec-24
This section describes how to load and configure cRPD as a routing stack on Juniper Networks' QFX5210 and QFX5200 switches running Software for Open Networking in the Cloud (SONiC) network operating system.

To install SONiC on QFX5210 and QFX5200 switches, see Install and Upgrade SONiC on Juniper Networks QFX5210 and QFX5200 Switches

How to Load and Start cRPD on SONiC

To load the cRPD package on SONiC, you need to:

  • Download the cRPD package from Juniper’s software downloads page at https://support.juniper.net/support/downloads/. The cRPD package file name for example is junos-routing-crpd-docker-20.3R1.8.tgz

    Transfer the cRPD package to your QFX5210 or QFX5200 switches using scp or sftp file transfer protocol.

The following sections explain how to load and start cRPD on SONiC for QFX5210 or QFX5200 switches:

Load the cRPD Image into Docker

To load the cRPD image into docker, use the docker load -i junos-routing-crpd-docker-20.3R1.8.tgz command as shown below:

content_copy zoom_out_map
user@host:~$ docker load -i junos-routing-crpd-docker-20.3R1.8.tgz
b187ff70b2e4: Loading layer [==================================================>] 65.58MB/65.58MB
5930c9e5703f: Loading layer [==================================================>] 991.7kB/991.7kB
c64c52ea2c16: Loading layer [==================================================>] 15.87kB/15.87kB
ddc500d84994: Loading layer [==================================================>] 3.072kB/3.072kB
f76668b91ed5: Loading layer [==================================================>] 40.84MB/40.84MB
cefbbbf6a84d: Loading layer [==================================================>] 7.68kB/7.68kB
19ed2664dd77: Loading layer [==================================================>] 134.5MB/134.5MB
2f362bdab81b: Loading layer [==================================================>] 13.82kB/13.82kB
0d625ccfa452: Loading layer [==================================================>] 3.072kB/3.072kB
75f1d83621fc: Loading layer [==================================================>] 3.584kB/3.584kB
bba7d2bacea8: Loading layer [==================================================>] 3.584kB/3.584kB
911181312301: Loading layer [==================================================>] 3.584kB/3.584kB
98175a8ad5cb: Loading layer [==================================================>] 3.584kB/3.584kB
a113daea3487: Loading layer [==================================================>] 3.584kB/3.584kB
b224ed0cc92d: Loading layer [==================================================>] 3.584kB/3.584kB
48db2eb5713d: Loading layer [==================================================>] 3.584kB/3.584kB
1f620dc1de46: Loading layer [==================================================>] 2.56kB/2.56kB
b9722b673d30: Loading layer [==================================================>] 30.72kB/30.72kB
cc8250623a79: Loading layer [==================================================>] 6.656kB/6.656kB
5d3819eaf658: Loading layer [==================================================>] 3.584kB/3.584kB
e7ffff983953: Loading layer [==================================================>] 4.096kB/4.096kB
4054102bacd4: Loading layer [==================================================>] 4.096kB/4.096kB
9479c967844e: Loading layer [==================================================>] 4.096kB/4.096kB
91a4575e8d76: Loading layer [==================================================>] 4.096kB/4.096kB
d0aba2dd0145: Loading layer [==================================================>] 4.096kB/4.096kB
25bb582cc7dc: Loading layer [==================================================>] 22.53kB/22.53kB
Loaded image: crpd:20.3R1.8
user@host:~$

Verify that cRPD Image is Properly Loaded

To verify if the cRPD image is properly loaded, use the docker images command as shown below:

content_copy zoom_out_map
user@host:~$ docker images
REPOSITORY                    TAG                            IMAGE ID            CREATED                  SIZE
crpd                          21.2R1.10                      f9b634369718        Less than a second ago   374MB
docker-fpm-frr                HEAD.0-dirty-20201027.160709   94d35b3d6ff8        Less than a second ago   335MB
docker-fpm-frr                latest                         94d35b3d6ff8        Less than a second ago   335MB
docker-syncd-brcm             HEAD.0-dirty-20201027.160709   ef2f75e9156b        Less than a second ago   436MB
docker-syncd-brcm             latest                         ef2f75e9156b        Less than a second ago   436MB
docker-router-advertiser      HEAD.0-dirty-20201027.160709   d32efd117a97        Less than a second ago   289MB
docker-router-advertiser      latest                         d32efd117a97        Less than a second ago   289MB
docker-sonic-mgmt-framework   HEAD.0-dirty-20201027.160709   b6ebafc68f18        Less than a second ago   431MB
docker-sonic-mgmt-framework   latest                         b6ebafc68f18        Less than a second ago   431MB
docker-platform-monitor       HEAD.0-dirty-20201027.160709   ce3c952de93d        Less than a second ago   357MB
docker-platform-monitor       latest                         ce3c952de93d        Less than a second ago   357MB
docker-sflow                  HEAD.0-dirty-20201027.160709   05278fdd0019        Less than a second ago   315MB
docker-sflow                  latest                         05278fdd0019        Less than a second ago   315MB
docker-lldp-sv2               HEAD.0-dirty-20201027.160709   7f54d84f2da7        Less than a second ago   312MB
docker-lldp-sv2               latest                         7f54d84f2da7        Less than a second ago   312MB
docker-dhcp-relay             HEAD.0-dirty-20201027.160709   f86f0bce3b09        Less than a second ago   299MB
docker-dhcp-relay             latest                         f86f0bce3b09        Less than a second ago   299MB
docker-database               HEAD.0-dirty-20201027.160709   6daa6a1df857        Less than a second ago   289MB
docker-database               latest                         6daa6a1df857        Less than a second ago   289MB
docker-teamd                  HEAD.0-dirty-20201027.160709   7596d1a2c302        Less than a second ago   315MB
docker-teamd                  latest                         7596d1a2c302        Less than a second ago   315MB
docker-snmp-sv2               HEAD.0-dirty-20201027.160709   c258dfe91775        Less than a second ago   348MB
docker-snmp-sv2               latest                         c258dfe91775        Less than a second ago   348MB
docker-orchagent              HEAD.0-dirty-20201027.160709   3d602bee0ecb        Less than a second ago   333MB
docker-orchagent              latest                         3d602bee0ecb        Less than a second ago   333MB
docker-nat                    HEAD.0-dirty-20201027.160709   0e29ba4560e9        Less than a second ago   316MB
docker-nat                    latest                         0e29ba4560e9        Less than a second ago   316MB
docker-sonic-telemetry        HEAD.0-dirty-20201027.160709   521590e31e7d        Less than a second ago   353MB
docker-sonic-telemetry        latest                         521590e31e7d        Less than a second ago   353MB
user@host:~$

Create and Start the cRPD Container

This section describes how to create, start, and access the cRPD container.

To create the cRPD container, use the docker create --name crpd -h crpd --net=host --privileged -it crpd:20.3R1.8 b7444647abb7977e0b7eaa884ace8b47bab3632ff2f3f67091d9734a58fa686b command as shown below:

content_copy zoom_out_map
user@host:~$ docker create --name crpd -h crpd --net=host --privileged -it crpd:20.3R1.8
b7444647abb7977e0b7eaa884ace8b47bab3632ff2f3f67091d9734a58fa686b
user@host:~$

You need to stop zebra and bgpd daemons on the BGP container by running the docker exec bgp supervisorctl stop zebra bgpd command as shown below:

content_copy zoom_out_map
user@host:~$ docker exec bgp supervisorctl stop zebra bgpd
zebra: stopped
bgpd: stopped
user@host:~$

To start the cRPD container, use the docker start crpd command as shown below:

content_copy zoom_out_map
user@host:~$ docker start crpd
crpd
user@host:~$

To access the cRPD container, use the docker exec -it crpd command as shown below:

content_copy zoom_out_map
user@host:~$ docker exec -it crpd cli
root@crpd>

Enable RPD connection to fpmsyncd

To enable RPD connection to fpmsyncd, you need to enter the configuration mode and enable fib-agent at the [edit routing-options forwarding-table] hierarchy level as shown below:

content_copy zoom_out_map
root@crpd> configure
Entering configuration mode
[edit]
root@crpd# set routing-options forwarding-table fib-agent
[edit]
root@crpd# commit and-quit
commit complete
Exiting configuration mode
root@crpd>

Once cRPD is up and running, you can configure BGP from the cRPD CLI. The following is a sample BGP configuration:

content_copy zoom_out_map
user@host:~$ docker exec -it crpd cli
root@crpd> configure
Entering configuration mode

root@crpd# show protocols
bgp {
    group EBGPv4 {
        type external;
        neighbor 192.168.1.2 {
            description <neighbor_description>;
            local-address 192.168.1.4;
            peer-as 65000;
        }
    }
}
footer-navigation