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 variants
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.
Sandbox Lab
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.
Start practicing
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.
Use cases
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.
Lessons learned
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.
Get started with XRd
Here are some resources to help you get started with XRd:
- xrdocs tutorials: The in-and-outs of XRd.
- xdr-tools Github repository: Scripts and tools to launch XRd.
Additional labs are available on the directory “~/xrd-tools/samples/xr_compose_topos” in the Sandbox.
- Because these labs are part of the xrd-tools GitHub repository, direct SSH will not work out of the box.
- You can use the host VM as a jump host or adapt the topologies following the instructions provided in this blog.
- IOS-XR Dev Center on DevNet: More material around IOS-XR programmability.
- For questions about XRd itself go to the Network Devices community.
- For issues with the Sandbox, first, release your current reservation and initiate a new one. If the issues persist, contact the Sandbox team on the Sandbox community space.
- For more technical details see the Cisco IOS XRd Data Sheet.
Want to get more content about XRd? Reach out to me on LinkedIn. I’m happy to hear your ideas.
One Comment