Neutron dynamic routing enables advertisement of self-service (private) network prefixes to physical network devices that support dynamic routing protocols such as routers, thus removing the conventional dependency on static routes.
It advertises three classes of routes:
For details refer to Route Advertisement.
Neutron dynamic routing consists of service plug-in and agent. The service plug-in implements the Networking service extension and the agent manages dynamic routing protocol peering sessions. The plug-in communicates with the agent through RPC.
The following figure shows the architecture of this feature:
Neutron dynamic Routing System Architecture
+---------------------------------------------------------------+
| Dynamic Routing plug-in |
| +---------------------------------------------------------+ |
| | Dynamic Routing API/Model | |
| +---------------------------------------------------------+ |
| | Dynamic Routing Agent Scheduler | |
| +---------------------------------------------------------+ |
| | |
+------------------------------|--------------------------------+
|
|
+-----------+
| RPC |
+-----------+
|
|
+----------------------|-------------------------+
| |
| |
+---------------------------+ +---------------------------+
| Dynamic Routing Agent1 | | Dynamic Routing Agent2 |
| | | |
| +---------------------+ | | +---------------------+ |
| | Driver Manager | | | | Driver Manager | |
| +---------------------+ | | +---------------------+ |
| | Common Driver API | | | | Common Driver API | |
| +---------------------+ | | +---------------------+ |
| | | | | |
| +---------+-----------+ | | +---------+-----------+ |
| | Ryu | Other | | | | Ryu | Other | |
| | Driver | Drivers | | | | Driver | Drivers | |
| +---------+-----------+ | | +---------+-----------+ |
| | | |
+---------------------------+ +---------------------------+
Using dynamic routing plugin one can enable/disable the support of dynamic routing protocols in neutron.
Dynamic routing API provides APIs to configure dynamic routing. API’s for below mentioned dynamic protocols are supported.
Three kinds of APIs are available for BGP functionality.For details refer to the API document.
Note
BGP is the only dynamic routing protocol currently supported.
Dynamic routing model maintains the database and communicates with the dynamic routing agent.
Dynamic routing agent scheduler, is responsible for scheduling a routing entity. For details refer to Agent Scheduler.
Dynamic routing can reside on hosts with or without other Networking service agents. It manages and configures different dynamic routing stack through Common Driver API.
Note
Currently, only integration with Ryu is supported. Future releases will add the support for Quagga, Bird, etc.