XRd is a containerized version of IOS-XR where you can experiment with platform–independent features and deploy them to any on-premises or cloud infrastructure. providing all the benefits of using containers in network operations.
XRd comes with all the programmability aspects from IOS-XR, including Telemetry and YANG models, which makes it ideal for developers and network engineers.
The XRd sandbox provides an excellent opportunity to get started with XRd and explore network programmability.
XRd comes in two variants: XRd Control Plane and XRd vRouter. XRd Control Plane is ideal for compute use cases like Virtual Route Reflectors (vRR) or Path Compute Element (PCE). vRouter is designed to forward traffic efficiently and can also handle control plane computations.
The XRd Sandbox uses the XRd Control Plane, which is ideal for exploration and experimentation purposes.
XRd requires specific kernel settings on the host to work properly. The sandbox is already configured with these settings.
There are several ways to deploy XRd, including using Terraform, Helm or Packer. However, we used docker compose for the sandbox because it is simple and easy to manage.
Topology
For this sandbox, we based on the sample segment-routing topology from the xrd-tools GitHub repository. We used a custom compose format called XR-YAML, and the entire setup will be deployed in a single virtual machine (VM) using Docker Compose.
Modifications
A few changes were needed to make the topology work. First, we updared the IP addressing for the management network to match the available resources in the sandbox.
Second, we used the macvlan Docker driver so each XRd container had its own IP address instead of sharing the IP address with the host VM.
See the XRd Sandbox GitHub repository for details and to explore the config files used to create the sandbox.
Deploy
The lab provides everything you need; you’ll only need to create the compose file that will be used by Docker Compose. This file is created using the xr-compose script from xrd-tools.
Next, update the compose file (created by xr-compose) to point to the right container interface that will be created by the macvlan driver.
The sandbox instructions include the complete list of necessary commands.
To start experimenting, look for the XRd sandbox on the Cisco sandbox page.
Launch a reservation and follow the instructions. Use the commands to create and start the topology.
The XRd sandbox is perfect to get familiar with XRd, how to work with it, and to play with native network protocols (e.g., ISIS, OSPF, BGP, MPLS, SR) or to explore programmable use cases with YANG, NETCONF and GNMI.
When developing the sandbox, we ran into a challenge. We suddenly lost the SSH connection to the VM when docker compose was creating the topology.
It turned out that the links between XRd containers were created using docker bridge, which picked an IP segment used by the sandbox infrastructure, effectively blackholing the traffic. To fix it, we had to configure a default address pool to use an unused IP segment.
After applying this configuration, the issue was resolved.
Here are some resources to help you get started with XRd:
Additional labs are available on the directory “~/xrd-tools/samples/xr_compose_topos” in the Sandbox.
Want to get more content about XRd? Reach out to me on LinkedIn. I’m happy to hear your ideas.
Share: