Keywords

1 Introduction

Cloud computing has taken the IT industry and service providers into a whole different era, redefining the way IT resources and services are provisioned and used. In cloud computing, separate and distributed hardware resources, such as storage and computing capacity, can be acquired and utilized on demand, providing low-cost scalability and elasticity for applications. Traditional cloud networks typically had combined control and data plane where router device decides what path to take the traffic through policy and routing algorithm.

Software-defined networking (SDN) and network functions virtualization (NFV) hold the key to making a significant impact in this area. SDN relies on separating network control of data forwarding functionality, which allows controllers to directly program and abstract the underlying infrastructure as an abstraction of the network’s top-level service functionality and network applications. NFV provides an alternative approach to designing, deploying, and managing network resources. Separating the functions of the network, like firewalls, threat identification, etc., from owned hardware devices to allow them to be used more efficiently. Proprietary hardware devices are used in software and are deployed where needed [1,2,3,4].

The structure of the paper is as follows: An overview of cloud computing is presented in Sect. 2. A network architecture enabling SDN is presented in Sect. 3. Following, benefits of SDN in the cloud are described in Sect. 4. We illustrate our proposed architecture in Sect. 5, the implementation of SDN and NFV in the OpenStack cloud and discussion. Conclusion and future work are outlined in Sect. 6.

2 Overview of the Cloud

For several years, a concept called cloud computing has been researched and practiced and has been classified into three categories of services: Platform as a Service (PaaS), Software as a Service (SaaS), and Infrastructure as a Service (IaaS). PaaS is based on the sub-layer, where developers of applications are able to use services of the platform delivered through the cloud. While SaaS delivers full-featured software to cloud clients, integrating cloud-based messaging services, networking services, scheduling services, and essentially all of the programs that run on cloud. IaaS is its most basic, providing virtual machine servers as well as the associated infrastructure to clients in the cloud. The infrastructure is used for any purpose by the buyers, for example to deploy their owned servers or to develop applications that run on the VMs. Both SaaS and PaaS are deployed when using IaaS. However, for cloud services to be delivered, this requires the provider to build and support a very large-scale cloud data center(s), where thousands or physical hosting devices are interconnected over thousands of switches in the network. Given the considerable complication of large-scale network connectivity, this requires a provider to look at the network in the data center through a different angle compared to the standard network [5,6,7].

3 SDN Enabled the Architecture of the Network

Software-defined networking (SDN) is an evolutionary concept that has changed the architecture of traditional networks. They actually separate the data plane of the control plane and place that in a central server called a controller. This removes network management complexity by placing it in the hands of a software controller, while providing abstracted control of the subjacent infrastructure. Both the data plane and the simple hardware components of the network are enabled, making it immediately programmable as well as being managed in a centralized environment [8]. Figure 1 shows the differences in concept of a traditional network and an SDN network. In the traditional model, a control plane is positioned above the routing plane within every device in a network, with discrete decision made by every commutator processing collected data from neighboring devices on a highly decentralized scale. However, SDN puts the control plane in a centralized software controller that can monitor the network globally. Using information collected centrally, the controller is able to get simpler choices and deploy them to the transfer devices dynamically and efficiently [5, 9].

Fig. 1
figure 1

Traditional networks compared to SDN

Open Networking Foundation (ONF) [10] proposed an SDN reference model as shown in Fig. 2 which is composed of three layers, that is, infrastructure layer, control layer, and application layer, stacked on top of each other.

Fig. 2
figure 2

SDN architecture

The application layer includes programs communicating with a controller and requesting necessary resources. The control layer supplies logic-centric control functionality that monitors network behavior via opened interfaces. Typically, this is accomplished through a software component which can translate application requirements to data plane rules and provide the network information to them. The infrastructure layer is composed of the various components and low-level network devices involved in switching and transferring packets.

For interacting among different layers, there are two interfaces employed: the northbound interface, which assures that the applications communicate with a controller. The southbound interface ensures that the data path network elements communicate directly with the control layer, enabling the transfer rules to be controlled programmatically. The most extensive protocol used in this interface is OpenFlow [11].

4 SDN Advantages in Cloud

Software-defined networking is the latest revolution in networking innovations [12], and cloud computing changes the way people have been doing computing and business [13]. Cloud networks are highly exposed and robust in providing services; therefore, while we could utilize SDN on a traditional network, there are multiple benefits to doing so.

Cloud-based centralized network provisioning: Not only can SDN along with programmability as well as virtualized technologies offer design flexibility, provisioning, and predefined scheduling, it provides the capacity for dynamic scalability to meet runtime requirements.

Integrated approach to business administration: With SDN, experimenting is possible inside virtualized network topologies and introducing novel alternatives is also streamlined and economical.

Intelligent security: With SDN, an easy and agile central application interface is provided for managing QoS policies, security, and controlling attacks.

Cloud abstraction: With SDN, network abstractions are essentially created to enable more agility and app-responsive behavior among a variety of cloud-IoT appliances. The network components comprising massive data center platforms are all manageable from the SDN controller.

Reduced downtime: SDN also supports the creation of configuration snapshots, allowing for quick recovery from upgrade failures.

Guaranteed content delivery: The capability to control and shape data traffic is a key benefit of software-defined networking. High-quality video streaming becomes easier as SDN provides improved network responsiveness to deliver a seamless user experience.

5 Proposed Architecture, Implementation, and Discussion

5.1 Proposed Architecture

An illustration of our proposed architecture is shown in Fig. 3 as an approach for improving network services, and the machine descriptions are as Table1.

Fig. 3
figure 3

Integration OpenStack and OpenDaylight

Table 1 Machine descriptions

5.2 Deploying an SDN Solution on a High-Performing Cluster

To ensure that the controller is more reliably available and to achieve the goal of high availability, we have opted to use OpenDaylight’s clustering technology. The installation procedure and the easy step-by-step installation are available at [14].

After running and configuring the three controllers in a cluster, we tested the cluster using a cluster monitoring tool. It will monitor the status of each node in the cluster, displaying two states—leader and follower. When a node is not working, it displays an error message. The leader state signifies that the node is in charge of this or that fragment, whereas follower is a safeguard state for a fragment that is under another node’s supervision.

Figure 4 shows the fragment for which the controller is responsible. The fragment names are displayed along X-direction, whereas controller roles appear along Y-direction. Follower and leader are displayed in the center of the window as shown in the figure. In this way, the status of the cluster can be monitored.

Fig. 4
figure 4

Monitoring tool for clusters

5.3 OpenDaylight SDN Cluster Integration with OpenStack Cloud Platforms

The OpenStack [15] can use OpenDaylight [16] as a network management provider via the Modular Layer 2 (ML2) plugin to the north. OpenDaylight handles network flows to OpenStack compute nodes via the OVSDB plugin in the south [17].

After the successful installation of OpenStack in two nodes (controller and compute), the installation procedure and easy step-by-step installation can be found in [18], and then, we moved on to its integration with the OpenDaylight cluster.

To achieve the integration, two main steps had to be taken: enabling OpenStack to utilize OpenDaylight as a provider of network management via the ML2 northward plugin and then OpenDaylight for managing the network flows for OpenStack nodes via the OVSDB southward plugin. After these steps, we got the following result. The two Open vSwitch of both compute and control nodes appeared on OpenDaylight as shown in Fig. 5.

Fig. 5
An image of the user interface of the Open Daylight website. The Controls section is open, with Topology selected in the left pane. Other options are Nodes, Yang U I, and Yang Visualizer. An option to reload is exhibited under the Controls title. Two open flow files are present.

DLUX showing Open vSwitch nodes

Now, we have just to create and launch the instances. At this point, we confirm that the OpenStack integration is complete and the virtual machine traffic is controlled by OpenDaylight.

5.4 Discussion

The proposed architecture includes SDN and NFV plugin integrated into the OpenStack cloud network. SDN provides various new applications like resiliency, load balancing, and quality of service for cloud services to provide users for better flexibility and enhanced cloud service. Migrates traditional cloud network services into SDN offers both flexibility and reliability through a programmable controller named SDN controller. NFV with SDN brings robust control of network through network virtualization as well as programmable routing of the network.

6 Conclusion and Future Work

The introduction of SDN has brought new varieties of approaches to the virtualization and monitoring of networks both within and external the cloud. In addition to NFV, SDN has enhanced cloud network control and expedited the delivery of novel network services. As an example of the applicability of integrating cloud computing and SDN paradigms, we demonstrated a practical study of OpenStack and OpenDaylight deployment. OpenDaylight and OpenStack are both large open-source projects that are backed by end-user and industry sponsored communities. Through our research, we have realized this insight. We incorporated SDN into cloud computing. Finally, it will be interesting to evaluate the overall performance of the proposal.