Yesterday, I introduced Keystone, which is currently the most core component in OpenStack. Today, I will introduce Neutron, the component I consider to be the most complex, which provides networking services for OpenStack.
Contents
Neutron Architecture
OpenStack Networking (Neutron) allows you to create network interfaces and connect them to services managed by other OpenStack components (such as Nova VMs), enabling them to connect to the network. It can accommodate various networking equipment and software through different backend plugins, providing flexibility for OpenStack architecture and deployment.
It includes the following components:
Neutron-server
Accepts API requests and routes them to the appropriate OpenStack Networking plugin for operation.
OpenStack Networking backend plug-ins and agents
Plugs and unplugs ports, creates networks or subnets, and provides IP addresses. These plugins and agents vary depending on the vendors and technologies used in different clouds. Common plugins include OVS, Linux Bridge, and OVN; their architectures will be introduced later.
Common agents include L3 (Layer 3), DHCP (Dynamic Host Configuration Protocol), and plugin agents.
Message Queue
Just like Nova and most other services, communication between components occurs via a Message Queue. OpenStack Networking uses it to exchange routing information between the neutron-server and various agents. It also acts as a database to store the network state for specific plugins.
OpenStack Networking is primarily used with OpenStack Compute to provide network connectivity for its instances (Nova VMs).
Services Provided by Neutron
Neutron provides network virtualization services, enabling the creation of overlay networks on OpenStack. It primarily provides the following services:
- Switch: Provides L2 connectivity for VMs on the same network segment
- Router: Provides L3 networking functions, such as SNAT and DNAT
- Firewall: Provides basic firewall features, such as port blocking
- Load Balancing: Provides load balancers; however, this functionality has been migrated to Octavia and was marked as deprecated in the Queens release.
Its concepts are essentially the same as general physical equipment, but they are achieved through software within OpenStack.
Summary
This post introduced the components and functions of Neutron. The next article will cover some basic concepts and terminology within Neutron.
Copyright Notice: All articles on this blog are licensed under CC BY-NC-SA 4.0 unless otherwise specified.

