Red Hat Training

A Red Hat training course is available for Red Hat OpenStack Platform

Chapter 2. Understanding basic concepts

2.1. How does network virtualization work?

In the physical world, servers are mutually connected by physical Ethernet switches and cables. Each of them has a unique IP address and can either communicate directly or through IP routers. To access resources outside the server domain, communication goes through external gateways to external servers that are protected from any unwanted communication by firewalls. In most cases, servers in different domains cannot talk to each other directly, unless such communication is specifically established.

Figure 2.1. Physical networks

Physical networks

When using server virtualization, it is necessary to provide a similar networking strategy for virtual machines (VMs). In a virtualized environment, multiple independent VMs from different domains may run on the same physical server simultaneously, and VMs from the same domain may run on different physical servers. The virtual compute loads still require similar connectivity and security support as they would have in physical devices. Security becomes even more important when compute loads from different domains are hosted on the same server. Furthermore, virtual devices from different domains may even use the same, overlapping, private IP addresses.

Figure 2.2. Compute and Network virtualization

Compute and Network virtualization

Networking support for virtual compute resources is referred to as network virtualization, and is a common problem solved by Software-defined Networking (SDN) controllers. These environments can function independently from each other using tenant isolation.

2.2. What is software-defined networking?

Software-Defined Networking (SDN) is an approach for dynamically programming networks, including the ability to initialize, change and manage network behavior using open interfaces.

SDN often implies the physical separation of the network control plane from the forwarding plane such that a control plane may control several devices. The component that implements the SDN control plane is called SDN controller.

Figure 2.3. Functions of the SDN controller

Functions of the SDN controller

To make SDN work, there must be well-defined interfaces both between higher level management and orchestration systems and the SDN controller (northbound APIs) as well as between the SDN controller and data plane elements (southbound APIs).

SDN has broad applicability to many use cases. One area in which SDN has proved essential is cloud computing in general, and OpenStack in particular. OpenStack provides the foundation to build a private or public cloud in which virtualized compute resources, together with required networking and storage, can be dynamically instantiated and destroyed as needed. This dynamic environment requires a programmable networking solution that is equally dynamic — in other words, OpenStack needs SDN.

Later, you will learn more about how OpenDaylight is used as an SDN controller for OpenStack.

2.3. What is network functions virtualization?

In addition to basic networking, OpenDaylight can also be used with OpenStack to support network functions virtualization (NFV).

Network Functions Virtualization (NFV) is a software-based solution that helps the Communication Service Providers (CSPs) move beyond the traditional, proprietary hardware to achieve greater efficiency and agility while reducing operational costs.

NFV virtualizes network functions (for example, firewalls and load balancers) so they can run on a general-purpose servers in a cloud-based infrastructure to provide more agility, flexibility, simplicity, efficiency, and scalability than legacy infrastructure, while also reducing costs and allowing greater innovation.

SDN and NFV perform complementary functions in a virtualized network. NFV supports the virtualization of complex network functions while SDN is used to perform basic networking, and forward traffic to and between network functions.

For more on NFV concepts, see the Network Functions Virtualization Product Guide.