Fixes at the documentation
This is a follow up of [1] [1] https://review.opendev.org/c/openstack/ovn-bgp-agent/+/903407 Change-Id: Ifda13d090b1e298ae8b5393a313c2ea4df105fcb
This commit is contained in:
parent
5cb7349091
commit
921e39ba02
@ -34,9 +34,10 @@ BGP Driver (SB)
|
||||
BGP Driver (NB)
|
||||
---------------
|
||||
|
||||
OVN version 23.09 is required to expose tenant networks and ovn-lb, because
|
||||
CR-LRP port chassis information in the NB DB is only available in that
|
||||
version (https://bugzilla.redhat.com/show_bug.cgi?id=2107515).
|
||||
OVN version 23.09 is required to expose tenant networks and ovn Load Balancers,
|
||||
because Distributed Gateway port (cr-lrp) chassis information in the NB DB is
|
||||
only available in that version
|
||||
(https://bugzilla.redhat.com/show_bug.cgi?id=2107515).
|
||||
|
||||
The following table lists the various methods you can use to expose the
|
||||
networks/IPS, how they expose the IPs and the tenant networks, and whether
|
||||
|
@ -19,10 +19,11 @@ allocated):
|
||||
needs to be running on the networker nodes. In OpenStack, with OVN
|
||||
networking, the N/S traffic to the tenant VMs (without FIPs) needs to go
|
||||
through the networking nodes, more specifically the one hosting the
|
||||
chassisredirect OVN port (cr-lrp), connecting the provider network to the
|
||||
OVN virtual router. Hence, the VM IPs are advertised through BGP in that
|
||||
node, and from there it follows the normal path to the OpenStack compute
|
||||
node where the VM is located — through the tunnel.
|
||||
Distributed Gateway Port (chassisredirect OVN port (cr-lrp)),
|
||||
connecting the provider network to the OVN virtual router.
|
||||
Hence, the VM IPs are advertised through BGP in that node, and from there it
|
||||
follows the normal path to the OpenStack compute node where the VM is
|
||||
located — through the tunnel.
|
||||
|
||||
- Similarly, for OVN load balancer the IPs are exposed on the networker node.
|
||||
In this case the ARP request for the VIP is replied by the OVN router
|
||||
|
@ -61,6 +61,6 @@ the route:
|
||||
As we also want to be able to expose VM connected to tenant networks
|
||||
(when ``expose_tenant_networks`` or ``expose_ipv6_gua_tenant_networks``
|
||||
configuration options are enabled), there is a need to expose the Neutron
|
||||
router gateway port (CR-LRP on OVN) so that the traffic to VMs in tenant
|
||||
router gateway port (cr-lrp on OVN) so that the traffic to VMs in tenant
|
||||
networks is injected into OVN overlay through the node that is hosting
|
||||
that port.
|
@ -45,9 +45,9 @@ Then, either upon events or due to (re)sync (regularly or during start up), it:
|
||||
*IP dev br-ex scope link* # IPs on provider or FIPs
|
||||
|
||||
|
||||
- Adds a static ARP entry for the OVN router gateway ports (CR-LRP) so that the
|
||||
traffic is steered to OVN via br-int -- this is because OVN does not reply
|
||||
to ARP requests outside its L2 network:
|
||||
- Adds a static ARP entry for the OVN Distributed Gateway Ports (cr-lrps) so
|
||||
that the traffic is steered to OVN via br-int -- this is because OVN does
|
||||
not reply to ARP requests outside its L2 network:
|
||||
|
||||
.. code-block:: ini
|
||||
|
||||
|
@ -24,8 +24,8 @@ it is common to use pure Layer 3 spine and leaf network deployments in data
|
||||
centers. The benefits of this practice reduce scaling complexities,
|
||||
failure domains, and broadcast traffic limits.
|
||||
|
||||
The southbound OVN BGP agent is a Python-based daemon that runs on each
|
||||
OpenStack Controller and Compute node.
|
||||
The Southbound driver for OVN BGP Agent is a Python-based daemon that runs on
|
||||
each OpenStack Controller and Compute node.
|
||||
The agent monitors the Open Virtual Network (OVN) southbound database
|
||||
for certain VM and floating IP (FIP) events.
|
||||
When these events occur, the agent notifies the FRR BGP daemon (bgpd)
|
||||
@ -137,11 +137,11 @@ watched for BGP use as the base (inherit from).
|
||||
The BGP watcher reacts to the following events:
|
||||
|
||||
- ``PortBindingChassisCreatedEvent``: Detects when a port of type
|
||||
``""`` (empty double-qoutes), ``virtual``, or ``chassisredirect`` gets
|
||||
``""`` (empty double-quotes), ``virtual``, or ``chassisredirect`` gets
|
||||
attached to the OVN chassis where the agent is running. This is the case for
|
||||
VM or amphora LB ports on the provider networks, VM or amphora LB ports on
|
||||
tenant networks with a FIP associated, and neutron gateway router ports
|
||||
(CR-LRPs). It calls ``expose_ip`` driver method to perform the needed
|
||||
(cr-lrps). It calls ``expose_ip`` driver method to perform the needed
|
||||
actions to expose it.
|
||||
|
||||
- ``PortBindingChassisDeletedEvent``: Detects when a port of type
|
||||
@ -149,7 +149,7 @@ The BGP watcher reacts to the following events:
|
||||
detached from the OVN chassis where the agent is running. This is the case
|
||||
for VM or amphora LB ports on the provider networks, VM or amphora LB ports
|
||||
on tenant networks with a FIP associated, and neutron gateway router ports
|
||||
(CR-LRPs). It calls ``withdraw_ip`` driver method to perform the needed
|
||||
(cr-lrps). It calls ``withdraw_ip`` driver method to perform the needed
|
||||
actions to withdraw the exposed BGP route.
|
||||
|
||||
- ``FIPSetEvent``: Detects when a Port_Binding entry of type ``patch`` gets
|
||||
@ -301,10 +301,10 @@ The following limitations apply:
|
||||
|
||||
- In OpenStack with OVN networking the N/S traffic to the ovn-octavia VIPs on
|
||||
the provider or the FIPs associated to the VIPs on tenant networks needs to
|
||||
go through the networking nodes (the ones hosting the Neutron Router Gateway
|
||||
Ports, i.e., the chassisredirect cr-lrp ports, for the router connecting the
|
||||
load balancer members to the provider network). Therefore, the entry point
|
||||
into the OVN overlay needs to be one of those networking nodes, and
|
||||
consequently the VIPs (or FIPs to VIPs) are exposed through them. From those
|
||||
nodes the traffic follows the normal tunneled path (Geneve tunnel) to
|
||||
the OpenStack compute node where the selected member is located.
|
||||
go through the networking nodes (the ones hosting the Distributed Router
|
||||
Gateway Ports, i.e., the chassisredirect cr-lrp ports, for the router
|
||||
connecting the load balancer members to the provider network). Therefore,
|
||||
the entry point into the OVN overlay needs to be one of those networking
|
||||
nodes, and consequently the VIPs (or FIPs to VIPs) are exposed through them.
|
||||
From those nodes the traffic follows the normal tunneled path (Geneve
|
||||
tunnel) to the OpenStack compute node where the selected member is located.
|
||||
|
@ -89,7 +89,7 @@ The driver react specifically to the following events:
|
||||
attached to the OVN chassis where the agent is running. This is the case for
|
||||
VM or amphora LB ports on the provider networks, VM or amphora LB ports on
|
||||
tenant networks with a FIP associated, and neutron gateway router ports
|
||||
(CR-LRPs). It calls ``expose_ip`` driver method to perform the needed
|
||||
(cr-lrps). It calls ``expose_ip`` driver method to perform the needed
|
||||
actions to expose it.
|
||||
|
||||
- ``PortBindingChassisDeletedEvent``: Detects when a port of type
|
||||
@ -97,7 +97,7 @@ The driver react specifically to the following events:
|
||||
detached from the OVN chassis where the agent is running. This is the case
|
||||
for VM or amphora LB ports on the provider networks, VM or amphora LB ports
|
||||
on tenant networks with a FIP associated, and neutron gateway router ports
|
||||
(CR-LRPs). It calls ``withdraw_ip`` driver method to perform the needed
|
||||
(cr-lrps). It calls ``withdraw_ip`` driver method to perform the needed
|
||||
actions to withdraw the exposed BGP route.
|
||||
|
||||
- ``SubnetRouterAttachedEvent``: Detects when a patch port gets created.
|
||||
|
@ -180,14 +180,14 @@ The specific defined events to react to are:
|
||||
- ``PortBindingChassisCreatedEvent`` (set gateway port for router):
|
||||
Detects when a port of type ``chassisredirect`` gets attached to the OVN
|
||||
chassis where the agent is running. This is the case for neutron gateway
|
||||
router ports (CR-LRPs). It calls ``expose_ip`` driver method to decide if
|
||||
router ports (cr-lrps). It calls ``expose_ip`` driver method to decide if
|
||||
it needs to expose it through EVPN (in case it has related EVPN info
|
||||
annotated).
|
||||
|
||||
- ``PortBindingChassisDeletedEvent`` (unset gateway port for router):
|
||||
Detects when a port of type ``chassisredirect`` gets detached from the OVN
|
||||
chassis where teh agent is running. This is the case for neutron gateway
|
||||
router ports (CR-LRPs). It calls ``withdraw_ip`` driver method to decide if
|
||||
router ports (cr-lrps). It calls ``withdraw_ip`` driver method to decide if
|
||||
it needs to withdraw the exposed EVPN route (in case it had EVPN info
|
||||
annotated).
|
||||
|
||||
@ -426,7 +426,7 @@ gateway port (cr-lrp on OVN).
|
||||
However this is not enough as the traffic needs to be redirected to the OVN
|
||||
Overlay. To do that the VRF is added to the br-ex OVS provider bridge (br-ex),
|
||||
and two routes are added to the VRF routing table to redirect the traffic
|
||||
going to the network (20.0.0.0/24) through the CR-LRP port to the br-ex OVS
|
||||
going to the network (20.0.0.0/24) through the cr-lrp port to the br-ex OVS
|
||||
bridge.
|
||||
That injects the traffic properly into the OVN overlay, which will redirect
|
||||
it through the geneve tunnel (by the br-int ovs flows) to the compute node
|
||||
|
@ -25,17 +25,18 @@ it is common to use pure Layer 3 spine and leaf network deployments in
|
||||
data centers. The benefits of this practice reduce scaling complexities,
|
||||
failure domains, and broadcast traffic limits
|
||||
|
||||
The northbound OVN BGP agent is a Python-based daemon that runs on each
|
||||
OpenStack Controller and Compute node.
|
||||
The Northbound driver for OVN BGP agent is a Python-based daemon that runs
|
||||
on each OpenStack Controller and Compute node.
|
||||
The agent monitors the Open Virtual Network (OVN) northbound database
|
||||
for certain VM and floating IP (FIP) events.
|
||||
When these events occur, the agent notifies the FRR BGP daemon (bgpd)
|
||||
to advertise the IP address or FIP associated with the VM.
|
||||
The agent also triggers actions that route the external traffic to the OVN
|
||||
overlay.
|
||||
Unlike its predecessor, the (southbound) OVN BGP agent, the northbound OVN BGP
|
||||
agent uses the northbound database API which is more stable than the southbound
|
||||
database API because the former is isolated from internal changes to core OVN.
|
||||
Unlike its predecessor, the Southbound driver for OVN BGP agent, the
|
||||
Northbound driver uses the northbound database API which is more stable than
|
||||
the southbound database API because the former is isolated from internal
|
||||
changes to core OVN.
|
||||
|
||||
.. note::
|
||||
|
||||
@ -120,7 +121,7 @@ for now you can select:
|
||||
as supported by the driver at :ref:`bgp_driver`.
|
||||
|
||||
- ``ovn``: using an extra OVN cluster per node to perform the routing at
|
||||
OVN/OVS level instead of kernel, therefore enabling datapath acceleration
|
||||
OVN/OVS level instead of kernel, enabling datapath acceleration
|
||||
(Hardware Offloading and OVS-DPDK). More information about this mechanism
|
||||
at :ref:`bgp_driver`.
|
||||
|
||||
@ -204,23 +205,25 @@ The specific defined events to react to are:
|
||||
|
||||
- ``ChassisRedirectCreateEvent``: Similar to
|
||||
``LogicalSwitchPortProviderCreateEvent`` but with the focus on logical router
|
||||
ports, such as the OVN gateway ports (cr-lrps), instead of logical switch
|
||||
ports. The driver calls ``expose_ip`` which performs additional steps to also
|
||||
ports, such as the Distributed Router Ports (cr-lrps), instead of logical
|
||||
switch ports.
|
||||
The driver calls ``expose_ip`` which performs additional steps to also
|
||||
expose IPs related to the cr-lrps, such as the ovn-lb or IPs in tenant
|
||||
networks. The watcher ``match`` checks the chassis information in the
|
||||
``status`` field, which must be ovn23.09 or later.
|
||||
|
||||
- ``ChassisRedirectDeleteEvent``: Similar to
|
||||
``LogicalSwitchPortProviderDeleteEvent`` but with the focus on logical router
|
||||
ports, such as the OVN gateway ports (cr-lrps), instead of logical switch
|
||||
ports. The driver calls ``withdraw_ip`` which performs additional steps to
|
||||
ports, such as the Distributed Router Ports (cr-lrps), instead of logical
|
||||
switch ports.
|
||||
The driver calls ``withdraw_ip`` which performs additional steps to
|
||||
also withdraw IPs related to the cr-lrps, such as the ovn-lb or IPs in tenant
|
||||
networks. The watcher ``match`` checks the chassis information in the
|
||||
``status`` field, which must be ovn23.09 or later.
|
||||
|
||||
- ``LogicalSwitchPortSubnetAttachEvent``: Detects Logical Switch Ports of type
|
||||
``router`` (connecting Logical Switch to Logical Router) and checks if the
|
||||
associated router is associated to the local chassis, i.e., if the CR-LRP of
|
||||
associated router is associated to the local chassis, i.e., if the cr-lrp of
|
||||
the router is located in the local chassis. If that is the case, the
|
||||
``expose_subnet`` driver method is called which is in charge of the wiring
|
||||
needed for the IPs on that subnet (set of IP routes and rules).
|
||||
@ -274,8 +277,8 @@ exposed.
|
||||
|
||||
.. note::
|
||||
|
||||
To be able to expose tenant networks a ovn version ovn23.09 or newer is
|
||||
needed
|
||||
To be able to expose tenant networks a OVN version OVN 23.09 or newer is
|
||||
required.
|
||||
|
||||
To accomplish the network configuration and advertisement, the driver ensures:
|
||||
|
||||
|
@ -11,13 +11,6 @@ relying on Kernel routing.
|
||||
Purpose
|
||||
-------
|
||||
|
||||
The addition of a BGP driver enables the OVN BGP agent to expose virtual
|
||||
machine (VMs) and load balancer (LBs) IP addresses through the BGP dynamic
|
||||
protocol when these IP addresses are either associated with a floating IP
|
||||
(FIP) or are booted or created on a provider network.
|
||||
The same functionality is available on project networks, when a special
|
||||
flag is set.
|
||||
|
||||
This document presents the design decision behind the extensions on the
|
||||
NB OVN BGP Driver to support OVN routing instead of kernel routing,
|
||||
and therefore enabling datapath acceleartion.
|
||||
@ -250,10 +243,10 @@ Limitations
|
||||
|
||||
The following limitations apply:
|
||||
|
||||
- OVN 23.06 or later is needed
|
||||
- OVN 23.06 or later is required
|
||||
|
||||
- Tenant networks, subnet and ovn-loadbalancer are not yet supported, and will
|
||||
require OVN 23.09 or nlaterewer.
|
||||
- Tenant networks, subnet and OVN load balancers are not yet supported, and
|
||||
will require OVN vesion 23.09 or newer.
|
||||
|
||||
- IPv6 not yet supported
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user