MPSE: SDN Controller for Operations, Research, and Teaching (SORT)
Master Projektsystementwicklung / Master Project System Development (MPSE)
The da/net research group offers a Master Projektsystementwicklung / Master Project System Development (MPSE) for the Summer Term 2021 in the space of the data networks, software development, and DevOps.
Our cooperation partners are:
- Deutsche Telekom as part of the project Common Optical Controller for SDN Networks
You will find a comprehensive description of the problem space and our approach to it further down in more detail.
Potential work topics are:
- Design and Implementation of a responsive Web-GUI, e.g., to display network topologies and propoerties of network devices
- Infrastructure as Code for the Test Lab (e.g., Terraform/Docker)
- netbox integration for infrastructure management
- prometheus exporter
- goSDN to .drawio exporter (for teaching)
Requirements for students:
- curiosity to learn the the go programming language (AKA golang),
- german and/or english language skills at any level,
- basic networking knowledge (bachelor level)
- optional: advanced networking knowledge of SDN, protocols, or optical networks
- optional: golang skills
Any type of data network, from the large-scale Internet over data center networks to your home network, requires several levels of configuration of the operations. The configuration of network parameters ranges from simple IP address management to more complex operations, such as learning about the complete topology and calculation of various path through the network.
Traditionally the tasks of configuration of networks is handled by vendor specific tools and multiple open source tools that stand on their own. However, in the last decade the approach of Software Defined Networking (SDN) has fueled the promise that a single logical entity, a so-called SDN controller, can configure and monitor complete networks, while relying on specific interfaces to the network equipment, the so-called Southbound Interface (SBI). One popular example for such an SBI is Openflow, amongst others.
There is a number of past and current SDN controllers, such as Pox, Floodlight, Opendaylight and ONOS, that can be used to operate networks and for experimental tasks in the field of data networks. The da/net research group (see below for more information), has used the ONOS controller (https://wiki.onosproject.org/) in teaching and research works, and evaluated other SDN controllers for its purpose, but the local experience showed that none of the controller is suitable for teaching, our lab operations, and research work.
First, none of the controllers is documented in a way that it can be used by students with meaningful effort within the setting of the permissable work load and the technical requirements for operating any of the controllers is too high, e.g., ONOS can easily take more than 700 MB of RAM, which can be too much for some student’s computers.
Second, the complexity and the lack of usable documentation is a hindrance for research and engineering works, at least in a University setting, where the intention is to have experimental implementations relative fast in order to prove theoretical claims.
Therefore, the da/net group started the design and implementation of the goSDN controller that is easily usable in teaching, is well documented, fits in today’s devops landscape with CI/CD, and makes use of a modern programming language. A first prototype for optical networks is ready.
The project uses a rapid prototyping and testing cycle to evaluate the design decisions and implementation choices. The body of related work in the space of SDN, networking, system design, etc is used to openly discuss what features are required and if such existing works can be applied to goSDN for the purpose of teaching and also directly for the usage in real deployments, e.g., in the group’s labs.
The first deployment of goSDN will be made in teaching at the computer science department in Bachelor or Master-level courses in the winter term 2021. The evaluation of the deployment and the usefulness of goSDN in teaching and learning will be part of the experimental approach.
We expect the goSDN source code to be open source, but this is currently under discussion.