FWIW, I had an absolutely terrible time setting up sonic on an edgecore switch which was "supported".<p>Everything was a battle. The configuration is very finicky and not well documented, and every time I went to edgecore or sonic for support, they would blame the other party.<p>We did eventually get everything working, but it took hours of tinkering on the configuration. There's all sorts of undocumented magic about how ports, interfaces, lanes, etc all have to line up with each other. If it doesn't like how you've configured BGP, it will silently fail and refuse to link. And God help you if you have breakout cables. And for some reason, all the services are run in docker containers, which makes it even more painful to debug. Reapplying configurations is slow and buggy in itself, so you have to reboot the switch constantly.<p>Ultimately I find sonic hard to recommend. Yes it's free, but I'm really not sure that's a benefit. Any home enthusiast will buy a consumer grade switch with an OS preinstalled, or use OpenWRT. Any business using this for production would be wise to go with a stable product with good support, like Cumulus. As much as I hate how Cisco does business, at least their products will mostly work how you need out of the box.
So my problem with SONiC, Cumulus, and all these other "network operating system" Linux platforms is that they all seem to be designed to be fiefdoms and tend to be really stale. In my view, they bring almost nothing of value to the table.<p>Let's talk a bit more about SONiC...<p>For one, SONiC literally lists that pull requests that aren't already planned and approved will not be accepted[1]. This defeats a good chunk of the value of having a community project. People will want to contribute and extend your platform in ways you never thought of, and they'll do it in a completely decentralized fashion.<p>Another issue I see is that SONiC literally holds back everything to an old Linux kernel and ships random BSP blobs that are unvetted. This is a nasty combination for anyone who wants to consider their NOS trusted or secure. They're on a 4.9.x kernel, and while that is still maintained, it is far from the best option if you want to take advantage of innovation in Linux networking.<p>I'm also generally confused on why this whole project isn't just "let's get the networking tools and hardware support stuff into standard Linux distributions and leverage their tooling and communities". This was also a problem I had with Cumulus. When I tore apart Cumulus, I figured out that it was less than a dozen unique tools and a distribution rebuilt for 32-bit MIPS and PowerPC. It was pretty trivial to rebase to standard Fedora or Debian and get a better platform out of it.<p>And finally, I don't really think this provides any real innovation. It's not really different from Cumulus, Open Network Linux, and others. And ONL actually is using more up to date kernels (5.4.x as of right now!) and offers better networking tools!<p>What I would <i>love</i> to see is all these people who keep doing this crap working in the actual Linux distribution communities to build and integrate with upstream projects so that everyone downstream gets all kinds of flexibility.<p>Imagine if you had a flavor of Fedora CoreOS for your network gear! The immutable OS, updated with RPM-OSTree, fresh software stack, and broad hardware support, all in one neat package.<p>If we treated the network gear like weaker servers, instead of specialty equipment, there's so many more interesting things you can do!<p>[1]: <a href="https://github.com/Azure/SONiC/wiki/Sonic-Roadmap-Planning" rel="nofollow">https://github.com/Azure/SONiC/wiki/Sonic-Roadmap-Planning</a>
Shameless plug: the Cisco 8000 series [1] recently got support for SONiC [2].<p>Right now, I believe it’s limited to fixed systems, but work is ongoing to get SONiC running on the distributed chassis. Exciting stuff!<p>[1]: <a href="https://www.cisco.com/c/en/us/products/routers/8000-series-routers/index.html" rel="nofollow">https://www.cisco.com/c/en/us/products/routers/8000-series-r...</a><p>[2]: <a href="https://blogs.cisco.com/sp/cisco-goes-sonic-on-cisco-8000" rel="nofollow">https://blogs.cisco.com/sp/cisco-goes-sonic-on-cisco-8000</a>
If you want an overview of of the state-of-the-art open source networking stack, you can check this last year FOSDEM 2019 presentation by one of the developers of BISDN [1]. Somehow I don't think they mentioned SONiC in their presentation though.<p>I teach computer networking lab but for now we need to resort using dual boot Linux Switch Appliance (LISA) that uses custom kernel and another vanilla kernel running Quagga on multi-port Ethernet embedded PC. The good thing is that both LISA and Quagga use CLI environment similar to familiar Cisco switch/router IOS. I really wish there is an open source alternative offering that can seamlessly support layer 2 and layer 3 without dual boot, perhaps using Software Defined Networking (SDN) concept with an intuitive CLI.<p>Recently the new Shortest Path Bridging (SPB) has been integrated with 802.1Q since 2018 (bye-bye TRILL). I reckon any reasonably good Linux based open source layer 2 and 3 network OS player will be extremely popular overnight for enterprise, consumer and education. Together with eBPF this thing should be flying on the new off-the-shelf whitebox supporting 40Gbps multi-port Ethernet. Imagine a LAN or Metro LAN party with this beast :-)<p>[1]<a href="https://archive.fosdem.org/2019/schedule/event/from_closed_to_open_source_switch/" rel="nofollow">https://archive.fosdem.org/2019/schedule/event/from_closed_t...</a>
Not really a "network" operating system since it doesn't seem to manage a network consisting of multiple devices the way something like ONOS, OpenDaylight or FAUCET would.<p>More like a "switch" operating system - it looks like SONiC is Microsoft's answer to ONL, Stratum, OpenSwitch, Cumulus et al.. Basically open source software to run on your cheap whitebox (or expensive greybox) switch.
Obligatory link to tutorial on how to run Sonic on an Arista switch:<p><a href="https://www.servethehome.com/get-started-with-40gbe-sdn-with-microsoft-azure-sonic-for-under-1k/" rel="nofollow">https://www.servethehome.com/get-started-with-40gbe-sdn-with...</a>