Juniper Cloud-Native Router Controller (cRPD)
Read this chapter to understand the Juniper Cloud-Native Router-controller (cloud-native router controller or cRPD), which is the Juniper Cloud-Native Router control plane.
Benefits of Juniper Cloud-Native Router Controller
The cRPD acts as the control plane in the Juniper Cloud-Native Router solution. The cRPD provides configuration interfaces to users (CLI) and applications (API) alike. You can use these interfaces to configure or program the Juniper Cloud-Native Router-vRouter forwarding plane. You can also configure the following using the Juniper Cloud-Native Router-controller:
-
Virtual function (VF) fabric interfaces
-
VF workload interfaces
-
Trunk interfaces
-
Access interfaces
-
L2 ACLs (firewall rules)
-
Bridge domains
-
Ethernet switching
-
VLANs
The cRPD performs the following functions:
-
Supports JCNR-vRouter as the forwarding plane
-
Maintains configuration for vRouter interfaces including trunk and access interfaces, virtual function interfaces (VFs), VLANs, and more
-
Maintains configuration of bridge domains
-
Maintains configuration for L2 firewall
-
Maintains configuration for bridge domains, VLANs, virtual-switches, and so on
-
Passes configuration information to the vRouter through the vRouter-agent
-
Stores license key information
Configuration Options
During deployment, you can configure the cRPD by changing the values of the key:value pairs contained within the values.yaml file that we include in the software distribution TAR file.
After deployment, we recommend that you use the NETCONF protocol with PyEZ to configure cRPD. See https://www.juniper.net/documentation/us/en/software/junos-pyez/junos-pyez-developer/index.html for details about PyEZ. Alternatively, you can SSH directly to the cRPD on TCP port 24 or using NETCONF on TCP port 830. Finally, you can also configure the cloud-native router by accessing the Junos CLI on the cRPD using Kubernetes commands to connect to the cRPD Pod.
Access to the CLI
In this procedure, we provide CLI commands that you run on the host server. We do not show a prompt before the commands so that you can copy and paste the commands into your own cloud-native router.
kubectl get pods -A
The output should look like:
NAMESPACE NAME READY STATUS RESTARTS AGE contrail-deploy contrail-k8s-deployer-7b5dd699b9-smqgn 1/1 Running 0 37h contrail contrail-vrouter-masters-htcvt 3/3 Running 0 37h default delete-crpd-dirs--1-bjngd 0/1 Completed 0 37h default delete-vrouter-dirs--1-k5wgb 0/1 Completed 0 37h default odu-pktgen-trunkint 1/1 Running 0 24h default odu-subinterface-3003 1/1 Running 0 7d kube-system calico-kube-controllers-57b9767bdb-76fvw 1/1 Running 52 (8d ago) 107d kube-system calico-node-pgljp 1/1 Running 18 (8d ago) 107d kube-system coredns-8474476ff8-2nbnv 1/1 Running 38 (8d ago) 107d kube-system dns-autoscaler-7f76f4dd6-8b4w5 1/1 Running 18 (8d ago) 107d kube-system kube-apiserver-nodem27.englab.juniper.net 1/1 Running 45 (8d ago) 107d kube-system kube-controller-manager-nodem27.englab.juniper.net 1/1 Running 34 (8d ago) 107d kube-system kube-crpd-worker-ds-89wzg 1/1 Running 0 32h kube-system kube-multus-ds-amd64-f2pls 1/1 Running 0 8d kube-system kube-proxy-vrqjm 1/1 Running 18 (8d ago) 107d kube-system kube-scheduler-nodem27.englab.juniper.net 1/1 Running 35 (8d ago) 107d kube-system nodelocaldns-hm56k 1/1 Running 43 (8d ago) 107d kube-system syslog-ng-54749b7b77-tqvpk 1/1 Running 0 37h
The command to access the cRPD CLI is in the form: kubectl exec -n kube-system -it
<full cRPD Pod name> -- bash
. If we use the output mentioned earlier in
this section, the command appears as: kubectl exec -n kube-system -it
kube-crpd-worker-ds-89wzg -- bash
.
The output from the command (when you use the full name of your cRPD Pod) should look like:
Defaulted container "kube-crpd-worker" out of: kube-crpd-worker, jcnr-crpd-config (init), install-cni (init) ===> Containerized Routing Protocols Daemon (CRPD) Copyright (C) 2020-2021, Juniper Networks, Inc. All rights reserved. <===
This output indicates that you have accessed the cRPD CLI. At this point, your access level
is root and you are in shell mode. Just as when you connect as root to any Junos OS-based
device, you must enter the cli
command to access the Junos CLI in operation
mode.