OpenStack is an open-source, community-driven, cloud management platform. It is a collection of Application Program Interfaces (APIs) that can be implemented with open-source technologies. OpenStack Networking often referred to as Neutron.
OpenStack Networking is a standalone service that often deploys several processes across several nodes. These processes interact with each other and other OpenStack services. The main process of the OpenStack Networking service is neutron-server, a Python daemon that exposes the OpenStack Networking API and passes tenant requests to a suite of plugins for additional processing.
Also, the OpenStack Networking service offers the end-users to define, utilize, and consume networking resources. OpenStack Networking was structured with a module design that gives extensibility of the API through open source network.
The following diagram illustrate the architectural flow of OpenStack Networking components:
This service runs on the network node to service the Networking API and its extensions. It also enforces the network model and IP addressing of each port.
Runs on each compute node to manage local virtual switch configuration. This service requires message queue access and depends on the plugin used.
Provides DHCP services to tenant networks. This agent is the same across all plug-ins and is responsible for maintaining DHCP configuration. The neutron-DHCP-agent requires message queue access.
Provides L3 forwarding for external network access of VMs on tenant networks.
Provides additional networking services to tenant networks. These SDN services may interact with neutron-server, neutron-plugin, and plugin-agents through communication channels such as REST APIs.
Below mentioned is the diagram of standard OpenStack Networking Setup which consists of 4 physical networking data centers.
Management network is used for the internal communication between OpenStack components. The IP addresses on this system ought to be reachable just inside the data center and is viewed as the Management Security Domain.
Used for VM data communication within the cloud deployment. The IP addressing requirements of this network depend on the OpenStack Networking plug-in in use and the network configuration choices of the virtual networks made by the tenant. This network is considered the Guest Security Domain.
Used to provide VMs with Internet access in some deployment scenarios. The IP addresses on this system ought to be reachable by anybody on the Internet. This network is in the Public Security Domain.
Uncovered all OpenStack APIs, including the OpenStack Networking API, to tenants. The IP addresses on this system ought to be reachable by anybody on the Internet. This might be a similar network as the external network, as it is conceivable to make a subnet for the external network that utilizations IP allotment reaches to utilize just not exactly the full scope of IP addresses in an IP block. This system is viewed as the Public Security Domain.
The requirement for cloud platform, an OpenStack to help physical and virtual system setups to help IaaS usefulness. Since a cloud system can be worked with networking from various vendors, OpenStack networking helps us provide with the concept of plugins which helps for additional processing.