Networking is a standalone component in the OpenStack modular architecture. It's positioned alongside OpenStack components such as Compute, Image Service, Identity, or the Dashboard. Like those components, a deployment of Networking often involves deploying several services to a variety of hosts.
The Networking server uses the neutron-server
daemon to expose the Networking
API and enable administration of the configured Networking
plug-in. Typically, the plug-in requires access to a database
for persistent storage (also similar to other OpenStack
services).
If your deployment uses a controller host to run centralized Compute components, you can deploy the Networking server to that same host. However, Networking is entirely standalone and can be deployed to a dedicated host. Depending on your configuration, Networking can also include the following agents:
Agent | Description |
---|---|
plug-in
agent
(neutron-*-agent ) |
Runs on each hypervisor to perform local vSwitch configuration. The agent that runs, depends on the plug-in that you use. Certain plug-ins do not require an agent. |
dhcp
agent
(neutron-dhcp-agent ) |
Provides DHCP services to tenant networks. Required by certain plug-ins. |
l3
agent
(neutron-l3-agent ) |
Provides L3/NAT forwarding to provide external network access for VMs on tenant networks. Required by certain plug-ins. |
metering agent
(neutron-metering-agent ) |
Provides L3 traffic metering for tenant networks. |
These agents interact with the main neutron process through RPC (for example, RabbitMQ or Qpid) or through the standard Networking API. In addition, Networking integrates with OpenStack components in a number of ways:
Networking relies on the Identity service (Keystone) for the authentication and authorization of all API requests.
Compute (Nova) interacts with Networking through calls to its standard API. As part of creating a VM, the
nova-compute
service communicates with the Networking API to plug each virtual NIC on the VM into a particular network.The Dashboard (Horizon) integrates with the Networking API, enabling administrators and tenant users to create and manage network services through a web-based GUI.