Network function virtualization (NFV) has emerged as an operator-promoted initiative with the objective of increasing the flexibility of network services. This is achieved by means of implementing network functions through software, avoiding specific hardware-based devices and reducing the return of investment. The work performed in this project focuses on an experiment with the virtualization of the routing function. In order to implement the virtualized routing, the project utilizes the OpenFlow protocol.
The project is structured in two phases, the design of the routing protocol using the virtualized function, and the corresponding implementation. The idea behind the virtualized function is to enable the network routing, both IPv4 and IPv6, when a switch does not have the knowledge to forward traffic packets. In this case, the communication protocol designed is responsible for enabling the interaction between the switch controller and the virtualized routing host, deployed in a different machine. To implement the prototype, we have modified the Floodlight controller, an OpenFlow controller developed in Java and commissioned to make decisions on how to handle traffic packets; on the other hand, a new bundle in the OpenNaaS framework has been created. OpenNaaS is an open-source framework, developed within the FP7 MANTYCHORE project, which provides several tools for managing network infrastructure resources. The virtualized routing function is implemented as an OpenNaaS resource with capabilities and an associated model utilized to maintain the overall view of the routing state.
The system has been tested and demonstrated in different scenarios. The test-bed deployed is based on L2 switching with multiple OpenFlow Islands (group of interconnected OpenFlow switches). Our scenario is composed of 5 Islands, each one controlled by a different OpenFlow controller, and a set of computing hosts connected at the edge of each island. The OpenFlow controllers are implemented with modified Floodlight controllers, which are connected with the virtualized OpenNaaS routing network function through a signaling control network deployed over a VPN. Among the different use cases analyzed in the project, the most relevant are the inter-domain routing management between islands, and the separation of IPv4 and IPv6 routing functions, since they can be deployed independently in different OpenNaaS resources.
The main purpose of each experiment has been to enable the communication between hosts located at different islands (e.g. video streaming) and analyze how the OpenFlow controller and the virtualized routing function perform using the designed protocol and the proof-of-concept prototype. Different approaches for the routing (i.e. reactive, and proactive) have been analyzed depending on the traffic load, as well as different performance indicators such as the number of flow entries in the switch or the overhead caused by the signaling packet exchange.