OpenNaaS is a platform for provisioning network resources that allow the deployment of dynamic network infrastructures, supporting all types of applications, each with their own access and network resource usage patterns.
Based on the Network as a Service (NaaS) paradigm the platform offers a robust and extensible open source framework, with which network virtualization can be achieved. OpenNaaS works as a key enabler to address this challenge by offering virtual infrastructures to third parties through the platform’s services. It allows creation of virtual representations of physical resources (e.g. networks, routers, switches, optical devices or computing servers), which are described using an abstract model. Often the virtualized model achieves partitioning (aka slicing) and/or aggregation of the physical resources.
OpenNaaS was born with the aim of creating an open source project community that allows several stakeholders to contribute and benefit from a common NaaS software stack. OpenNaaS offers a versatile toolset for the deployment of NaaS oriented services. It is released with a dual L-GPL/ASF licensing schema that ensures that the platform will remain open and consistent, while commercial derivatives can be built on top. This open schema allows trust to be built on the platform, as NRENs and commercial network operators can rely on the continuity, transparency and adaptability of the platform.
Based on this framework, each network domain is able to use their own OpenNaaS instance to:
- Get resources from the network infrastructure: routers, switches, links or provisioning systems.
- Abstract them to service resources, independent from vendor and model details.
- Embed instantiation of virtualized resources in the regular BSS workflows.
- Delegate management permissions over the infrastructure resources they own so that “Infrastructure integrators” can control them during a period of time.
With an eye on versatility and smooth integration, OpenNaaS offers a powerful remote command line, as well as web-service interfaces. This web-service interface offer the possibility to both build a GUI and integrate it with existing middleware applications already deployed in the virtual research organisations.
Several extensions for OpenNaaS were developed inside the Mantychore FP7 project. Beyond that, other extensions are being created in parallel projects, leveraging the same core components and bringing reusability across distinct research efforts. As of version 0.24, OpenNaaS supports the following abstracted resources:
- BoD Domain services
- IP Networks
For the Router resource, a driver for JunOS has been implemented which supports virtualization (interfaces and routing instances), IP, routing (static and OSPF) and GRE tunnels. More capabilities will be added in the near future, such as IPv6 and firewalling. The ROADM extension allows dynamically modifying the ROADM switching table between optical channels.
On the other hand, the BoD Domain represents an opaque domain, controlled by a provisioning system that the user can call to obtain L2 links. The current implementation supports GEANT BoD (AutoBAHN).
The IP Network resource groups together Routers and BoD Domain resources into a logical unit, while adding a topology. This allows users to manage all the resources in an orchestrated way (currently you can deploy network-wide OSPF configurations). Furthermore, it allows delegating configuration rights to users in an aggregated mode, instead of dealing with individual infrastructure resources.
How to start?
You are welcome to contribute and become a member of the development team. You will find the source code in the GitHub repository but we recommend that you start with the Quick Start Guide in the Documentation section.
Once you have a good understanding of the tool you could follow the tutorials we have created:
Whenever you have questions, join our mailing list and get in touch! Happy coding!