Neutron concepts and components
Neutron is a component in OpenStack architecture. It provides networking services for VMs, manages virtual network resources (including networks, subnets, DHCP, and virtual routers), and creates an isolated virtual network for each tenant. Neutron provides a unified network resource model, based on which VCF fabric is implemented.
The following are basic concepts in Neutron:
Network—A virtual object that can be created. It provides an individual network for each tenant in a multitenant environment. A network equals to a switch with virtual ports which can be dynamically created and deleted.
Subnet—An address pool that contains a group of IP addresses. Two different subnets communicate with each other through a router.
Port—A connection port. A router or a VM connects to a network through a port.
Router—A virtual router that can be created and deleted. It performs routing selection and data forwarding.
Neutron has the following components:
Neutron server—Includes the daemon process neutron-server and multiple plug-ins (neutron-*-plugin). The Neutron server provides an API and forwards the API calls to the configured plugin. The plug-in maintains configuration data and relations between routers, networks, subnets, and ports in the Neutron database.
Plugin agent (neutron-*-agent)—Processes data packets on virtual networks. The choice of plug-in agents depends on Neutron plug-ins. A plug-in agent interacts with the Neutron server and the configured Neutron plug-in through a message queue.
DHCP agent (neutron-dhcp-agent)—Provides DHCP services for tenant networks.
L3 agent (neutron-l3-agent)—Provides Layer 3 forwarding to enable inter-tenant communication and external network access.