ESnet Network Operating System (ENOS)
ESnet’s Network Operating System (E.NOS): a next-generation operating system for networks
ENOS, the ESnet Network Operating system is a prototype next-generation architecture for handling data-intensive science workflows. The concept of a “network operating system,” a software layer that enables applications to get information about the network and to program it to meet its needs, has been discussed academically for awhile but now appears feasible with the wide adoption of the Software-Defined Networking (SDN) paradigm. The SDN paradigm constitutes a network architecture that separates the control plane from the distributed data plane and provides logical centralization of the network control and state. These logical central control plane capabilities can evolve into the operating system through which network policies are implemented across the entire network and applications can program network behavior.
At a high level, an operating system interacts with hardware using device drivers while providing an environment with sufficient abstractions where multiple applications can run. The current vendor marketplace is focusing on SDN controller platforms that are equivalent to the device driver’ in a generalized OS model. In addition, since this evolution is in the early days there is no industry- or academic-accepted model of a network operating system. ESnet is taking the lead in the Research and Education domain by researching and developing an architectural framework for the OS and building an experimental version e applied towards specific science use-cases.
The ENOS approach will enable ESnet to build better application-engaged scientific networks and provide the interfaces, data and programmability for applications or science virtual organizations to better orchestrate their multi-site complex big data projects and optimize their use of storage, compute and cloud resources. In addition, this software capability will enable ESnet to provide custom services more cost-effectively.
ESnet Network Operating System (ENOS) was a set of two open source projects, netshell and enos, aimed at supporting the Software Defined Network (SDN) research conducted on the ESnet 100G SDN Testbed.
Netshell is a small distributed operating system, running within a Java Virtual Machine, that is designed to securely manage network resources, such as switches, routers, and servers, and allow authorized applications to use them. Those netshell applications implements network policies and services. Netshell currently includes:
- Interactive Shell
- SSH server
- Java Security Manager
- Role-based access control to resources
- Generic API to network resources and services
- Java and Python application support
- Hook to external SDN controllers (OpenDaylight)
ENOS is a set of Netshell applications implementing services for the ESnet SDN testbed. Currently, the following services are implemented:
- Layer 2 Topology
- Multipoint Layer2 provisioning (Multipoint VPN)
More information on ENOS:
- Internet2 Technology Exchange 2015 Talk on ENOS
- Internet2 Technology Exchange 2015 Talk on Network Operating Systems and Intent
- Video of our SC15 demonstration of ENOS and QoS
- ENOS Github
- Netshell Github