Cloud | 4 min read
Why is Juniper interested in SONiC?
Since I have an interest in open source and in networking, I wanted to learn more about SONiC and visited the project’s website. I spotted a link to a podcast by Juniper and Microsoft about SONiC that caught my attention: Why is Juniper interested in SONiC? Isn’t it more of a threat to them?
But first, let’s have a look at what SONiC really is: The name SONiC stands for “Software for Open Networking in the Cloud”. It was released by Microsoft at the OCP Summit 2016. If you remember what Microsoft’s CEO Ballmer touted about Linux in 2001, then this announcement was a shock: Microsoft released an open-source network operating system based on Debian Linux! Microsoft is heavily using it for its many Azure data centers.
I consider the “Switch Abstraction Interface” (SAI) the most important piece of SONiC. As the name indicates it is an abstraction layer that hides the various implementations of switching ASICS. This layer makes it much simpler to integrate support for new ASICs into SONiC. Unfortunately, vendors of switching ASICs are not known for collaborating with the open-source community by providing free documentation for their products. There are signs that this might change since even Broadcom open-sourced an SDK for a limited feature set of their Tomahawk ASIC in 2018.
Other remarkable components of SONiC’s architecture are a Redis database for storing the configuration and state information similar to Arista’s SysDB, the modularisation of the whole system and the usage of Linux containers.
The “Free Range Routing” (FRR) suite has been integrated to gain support for the usual routing protocols. Various well-known tools from the Linux eco-system are used if suitable (eg. teamd to provide LAG support and the well know lldpd).
Now that we know what SONiC is all about, let’s go back to that podcast with Microsoft and Juniper I mentioned in the beginning.
For my taste, there are too many phrases like “first in the industry”, “large scale”, “true modularity” and not enough content in this 23-minute talk. Maybe I was just expecting more technical details.
Juniper’s vision for SONiC is that it becomes a strong player in the data center and the ecosystem around it is growing. Maybe it grows into other areas of the network like the WAN. It could be that it becomes the dominant player in network operating systems. It could also be seen as the standardization of white-box switching. Juniper would welcome that and brings their routing stack to SONiC. That does not imply that RPD is open source though.
Junos has been modularized over the last few years. Now some components can be taken out, be put in a container and be used independently. The routing stack RPD has been packaged in a container and is now a product on its own with the name “cRPD”. Example use cases are the replacement for FRR in SONiC or usage as a route reflector on a Linux server.
Of course, the podcast contains also a short introduction into the architecture and use cases of SONiC.
I think SONiC is nice project and I would love to make use of it in real projects. Juniper’s RPD is a proven routing stack that is known to scale well with large numbers of routes and neighbours. But I’m sceptical that over time cRPD will be able to keep up with FRR which has gained a lot of traction since Cumulus and others forked it from Quagga. And Juniper is not alone in this game: also Arista put their software in a container and offered it as cEOS with the possibility to combine it with SONiC.
Probably Juniper is also gambling a bit: if the popularity of SONiC keeps growing as it did the last few years, then Juniper is already part of the eco-system and can shine with expertise in that area.
Finally the link to the podcast.
Share your thoughts with us on it on LinkedIn or XING!