System Requirements for EKS Deployment
Minimum Host System Requirements
This section lists the host system requirements for installing the cloud-native router.
| Component | Value/Version |
|---|---|
| EKS Deployment | Self-managed Nodes |
| Host OS |
Amazon Linux 2 |
| EKS version | 1.25.12 |
| EC2 Instance Type | Any instance type with ENA adapters Note: There is no
minimum instance type imposed by Juniper Cloud-Native Router, but a typical
deployment runs c5.4xlarge or m5.4xlarge or larger (depending on performance
requirements).
|
| Kernel Version | The tested kernel version is 5.15.0-1040-aws |
| NIC | Elastic Network Adapter (ENA) |
| Kubernetes (K8s) | 1.26.3 |
| AWS CLI version | 2.11.9 |
| VPC CNI | v1.14.0-eksbuild.3 |
| Multus | 3.7.2 ( |
| Helm | 3.11 |
| Container-RT | containterd |
Resource Requirements
This section lists the resource requirements for installing the cloud-native router.
| Resource | Value | Usage Notes |
|---|---|---|
| Data plane forwarding cores | 2 cores (2P + 2S) | |
| Service/Control Cores | 0 | |
| UIO Driver | VFIO-PCI | To enable, follow the steps below:cat /etc/modules-load.d/vfio.conf vfio vfio-pci Enable Unsafe IOMMU mode echo Y > /sys/module/vfio_iommu_type1/parameter/allow_unsafe_interrupts echo Y > /sys/module/vfio/parameters/enable_unsafe_noiommu_mode |
| Hugepages (1G) | 6 Gi | Add GRUB_CMDLINE_LINUX_DEFAULT values in
/etc/default/grub on the host. For example:
GRUB_CMDLINE_LINUX_DEFAULT="console=tty1 console=ttyS0
default_hugepagesz=1G hugepagesz=1G hugepages=8 intel_iommu=on
iommu=pt"Update grub and reboot the host. For example:
Verify the hugepage is set by executing the following commands:
|
| Cloud-Native Router Controller cores | .5 | |
| Cloud-Native Router vRouter Agent cores | .5 |
Miscellaneous Requirements
This section lists additional requirements for installing the cloud-native router.
| Cloud-Native Router Release Miscellaneous Requirements |
|---|
| Disable source/destination checks on the AWS Elastic Network Interfaces (ENI) interfaces attached to JCNR. Cloud-Native Router being a transit router, is neither the source nor the destination of any traffic that it receives. |
Attach the AmazonEBSCSIDriverPolicy IAM policy to the role
assigned to the EKS cluster. |
Set IOMMU and IOMMU-PT in /etc/default/grub file. For example:
GRUB_CMDLINE_LINUX_DEFAULT="console=tty1 console=ttyS0 default_hugepagesz=1G hugepagesz=1G hugepages=8 intel_iommu=on iommu=pt"Update grub and reboot the host. For example: grub2-mkconfig -o /boot/grub2/grub.cfg |
|
Additional kernel modules need to be loaded on the host before deploying Cloud-Native Router in
L3 mode. These modules are usually available in
cat /etc/modules-load.d/crpd.conf tun fou fou6 ipip ip_tunnel ip6_tunnel mpls_gso mpls_router mpls_iptunnel vrf vxlan Note:
Applicable for L3 deployments only. |
Verify the core_pattern value is set on the host before deploying
JCNR:sysctl kernel.core_pattern kernel.core_pattern = |/usr/lib/systemd/systemd-coredump %P %u %g %s %t %c %h %e You
can update the core_pattern in kernel.core_pattern=/var/crash/core_%e_%p_%i_%s_%h_%t.gz |
If you are installing Cloud-Native Router on Amazon EKS, then update the
dpdkCommandAdditionalArgs key in the
helmchart/charts/jcnr-vrouter/values.yaml file and set tx and rx
descriptors to 256. For
example:dpdkCommandAdditionalArgs: "--yield_option 0 --dpdk_txd_sz 256 --dpdk_rxd_sz 256" |
Cloud-Native Router ConfigMap for VRRP
You can enable Virtual Router Redundancy Protocol (VRRP) for your Cloud-Native Router cluster.
You must create a Cloud-Native Router ConfigMap to define the behavior of VRRP for your Cloud-Native Router cluster in an EKS deployment. Considering that AWS VPC supports exactly one next-hop for a prefix, the ConfigMap defines how the VRRP mastership status is used to copy prefixes from routing tables in Cloud-Native Router to specific routing tables in AWS. An examplejcnr-aws-config.yaml manifest is
provided:apiVersion: v1
kind: ConfigMap
metadata:
name: jcnr-aws-config
namespace: jcnr
data:
aws-rttable-map.json: |
[
{
"jcnr-table-name":"default-rt.inet.0",
"jcnr-policy-name": "default-rt-to-aws-export",
"jcnr-nexthop-interface-name":"eth4",
"vpc-table-tag":"jcnr-aws-vpc-internal-table"
},
{
"jcnr-table-name":"default-rt.inet6.0",
"jcnr-policy-name":"default-rt-to-aws-export",
"jcnr-nexthop-interface-name":"eth4",
"vpc-table-tag":"jcnr-aws-vpc-internal-table"
}
]The table provided below describes the ConfigMap elements:
| Element | Description |
|---|---|
jcnr-table-name |
The routing table in Cloud-Native Router from which prefixes should be copied. |
jcnr-policy-name |
A routing policy in Cloud-Native Router that imports the prefixes in the named routing table to copy to the AWS routing table. |
jcnr-nexthop-interface-name |
Name of the Cloud-Native Router interface which should be used as the next-hop by the AWS routing table when this instance of the Cloud-Native Router is VRRP master. |
vpc-table-tag |
A freeform tag applied to the routing table in AWS to which the prefixes should be copied. |
The jcnr-aws-config.yaml must be applied to the Kubernetes system
before Cloud-Native Router installation. The Cloud-Native Router CNI deployer renders the cRPD configuration based on the
ConfigMap.
When not using VRRP, you must provide an empty list as the data for
aws-rttable-map.json.
Port Requirements
Juniper Cloud-Native Router listens on certain TCP and UDP ports. This section lists the port requirements for the cloud-native router.
| Protocol | Port | Description |
|---|---|---|
| TCP | 8085 | vRouter introspect–Used to gain internal statistical information about vRouter |
| TCP | 8070 | Telemetry information-Used to see telemetry data from cloud-native router |
| TCP | 9091 | vRouter health check–cloud-native router checks to ensure contrail-vrouter-dpdk process is running, etc. |
| TCP | 50052 | gRPC port–Cloud-Native Router listens on both IPv4 and IPv6 |
| TCP | 8081 | Cloud-Native Router Deployer Port |
| TCP | 22 | cRPD SSH |
| TCP | 830 | cRPD NETCONF |
| TCP | 666 | rpd |
| TCP | 1883 | Mosquito mqtt–Publish/subscribe messaging utility |
| TCP | 9500 | agentd on cRPD |
| TCP | 21883 | na-mqttd |
| TCP | 50051 | jsd on cRPD |
| TCP | 51051 | jsd on cRPD |
| UDP | 50055 | Syslog-NG |
Download Options
To deploy Cloud-Native Router on an EKS cluster you can either download the helm charts from the Juniper Support Site or subscribe via the AWS Marketplace.
https://enterprise.hub.juniper.net as the
Cloud-Native Router image registry.Cloud-Native Router Licensing
Starting with Juniper Cloud-Native Router (JCNR) Release 22.2, we have enabled our Juniper Agile Licensing (JAL) model. JAL ensures that features are used in compliance with Juniper's end-user license agreement. You can purchase licenses for the Juniper Cloud-Native Router software through your Juniper Account Team. You can apply the licenses by using the CLI of the cloud-native router controller. For details about managing multiple license files for multiple cloud-native router deployments, see Juniper Agile Licensing Overview.
Starting with Cloud-Native Router Release 23.2, the Cloud-Native Router license format has changed. Request a new license key from the JAL portal before deploying or upgrading to 23.2 or newer releases.