FullStack routing software


FullStack carrier routing software is a new way to build and run your network, applying a cloud-native approach to deliver routing software that is more robust, more controllable and costs far less than a conventional network. Disaggregating your routing software from hardware allows you to build a distributed Software Defined Network, using software that delivers at carrier-scale.

Use-Cases and Applications

RtBrick's modular code makes it suitable for many use-cases that require robust and highly scalable IP/MPLS routing, including:

Why distribute your SDN?

Distributing the control layer achieves all SDN’s objectives:

  • Agile – it’s still easy to add and test new services
  • Highly programmable – every network attribute is exposed to higher level systems
  • Lower cost – because it uses low-cost bare-metal hardware and automates operations


Distributed SDN

But compared to using a centralized SDN controller to make routing decisions, it is also:

  • Lower risk – a highly distributed control system is more robust and can contain any ‘blast radius’
  • More scalable – unrestricted by the I/O limits of a single controller
  • Easier to operate and migrate - network elements can work side-by-side with legacy routers, and can even be controlled by a classical SDN system

How do we make this work?

We’ve done three fundamental, new things that have changed everything:

  1. We’ve used one ‘state database’ in each network element (separated from run-code)
  2. We’ve created ‘composable’ code – built from simple blocks
  3. We’ve used ‘cloud-native’ design principles: with independent microservices running in Linux containers

One state-database – a massive simplification

In the past, limitations in silicon performance meant that routing code had to optimize for CPU and memory utilization. This led to hundreds of different state databases in each router, each optimized for a different job. But we’ve replaced all of these with a single database, operating independently from run-code. This has brought a huge gain in simplicity.

  • ~1000 times fewer database interactions to manage
  • It’s more robust - everything is versioned and preserved in one place, enabling fast restart and re-sync of state
  • We can scale by using hundreds of processor cores - this is how the cloud-natives scale (Amazon uses 128 cores in a server). Even mobile phones can do that, yet traditional routers can’t!
  • It’s easier to program, with every element exposed to higher level systems via a single interface
  • And this simplicity makes it possible to automate the testing of every feature to reduce the risk of bugs

Modular 'composable' code – deploy only what you need, test everything you use

We’ve taken an approach to our software that is native to virtual IT environments. You get your own unique code-version, built from discrete blocks and delivered as a Linux container. Your code is no longer bloated with features that you don’t use. This allows us to upgrade or add each feature independently, in sub-milliseconds, with no service disruption. As a result, route-processing, updates and restart is 20x faster than JUNOS or IOS-XR. And we publish open interfaces – so you can even develop your own unique features if you want to.

From Carrier-Grade to Web-Scale – the cloud-native approach

Rather than try to build an unattainable flawless system, we’ve taken a web-scale approach and focused on self-healing systems.

Our composable code and single state database makes it easier to contain risk. For example, we can isolate different routing universes (such as public and enterprise networks) and watchdogs can detect issues and redeploy software if needed. And it’s inherently simpler to control, as we’ve replaced a ‘full-mesh’ of logical relationships between the control system and many network element databases with single links.

Resulting in a simpler, safer, lower-cost operating environment

You can manage your whole network from a single browser window. And you get automation straight out-of-the-box. Simply power-on your bare metal switches and they will self-register, download the correct software image, discover their topology and all microservices self-start. Automated software version management reduces risk of human error, and new microservices can be updated and tested independently of other operating software. The system also includes tools to simplify repair, such as ‘clone a switch’ for zero-touch replacement of broken hardware. And there’s in-depth alarm and status management, with thresholds and abnormalities automatically flagged: from data rates to fan speeds. You can glue this into your existing OSS using our REST APIs, such as gNMI (Google Network Management Interface).  The cost will be significantly lower than traditional systems.

Is this like CUPS?

RtBrick's software is completely compatible with CUPS (Control and User Plane Separation). The control plane is independent of the forwarding (or user) plane. The control plane is usually collocated with the forwarding plane on the same bare-metal switch, taking advantage of the x86 processors that the switch provides, but it could be run remotely on dedicated x86 infrastructure, using RtBrick's state synchronisation protocol to communicate between the two.

Products

The software is available in a number of discrete products, such as a vBNG (virtual Broadband Network Gateway) and a PE Router (Provider Edge).

Features

The features supported by RtBrick FullStack are expanding all the time, because it's much faster for us to add and test new features than it is using a traditional monolithic code base. Currently supported features include:

Features *BNGPE Router



General

Routing Policy
LDP
L2X
BGP

IPv4
IPv6
LU-v4
LU-v6
VPNv4
VPNv6
Add-path
Multi-path
Multi-hop
Segment Routing
4-Byte AS
TCP-AO
ISIS

IPv4
IPv6
Segment Routing
OSPFv2

IPv4
IPv6

Segment Routing
Forwarding Plane

VPP
ACLs (IPv4/6, L2)
QoS (policing, scheduling, queuing, hierarchical)
Access

Radius support
PPPoE
L2TPv2 (LAC)
Accounting (Time/Volume based)
Operations

ResmondD (RtBrick resource monitoring application)
CLI
Inband Management
ZTP Provisioning
RBMS (RtBrick Management System)

Rules Engine
Topology Discovery & Inventory
REST API
Microservice
Dynamic Service Selection



* may include some road-map features

Compatible Hardware

RtBrick's Full Stack routing software can operate on many bare metal switches, depending on your performance and port count requirements. You can find details of compatible hardware here