Anuncia por BGP las IP de las VM y las IP flotantes accesibles a través del nodo.
Go FRR y OVNopenkeel-ovn-bgp-agent
El módulo
OpenKeel's Go implementation of OpenStack ovn-bgp-agent (stable/2026.2, f770768b41dc), written from the reverse-spec reverse-spec-ovn-bgp-agent/.
The agent runs on every node whose FRR peers with the BGP fabric. It watches the OVN Northbound database (read-only) and, for every IP reachable through this node, it does two things:
it wires the kernel and OVS so that traffic reaches OVN: ip rule and route in a per-bridge routing table, permanent neighbour, NDP proxy, and the MAC-tweak flow (cookie 999);
it announces the IP by adding it to the dummy bgp-nic in VRF bgp-vrf, which the local FRR redistributes.
The IPs it covers are provider-network VM IPs, floating IPs (distributed and centralized, switched at run time by NB_Global external_ids:neutron:fip-distributed), router gateways, tenant subnets (host or subnet advertisement, SNAT filter, address scopes, GUA-only), OVN load-balancer VIPs and VIP-FIPs, and port-forwarding FIPs.
Module
github.com/openkeel/openkeel-ovn-bgp-agent
Executable
ovn-bgp-agent (cmd/ovn-bgp-agent)
Driver / exposing method
nb_ovn_bgp_driver / underlay (the others are refused at start: docs/CONFORMANCE.md)
API
none; :9750 serves /healthz, /readyz, /metrics
State
none (derived from OVN and the node); /etc/iproute2/rt_tables keeps the table numbers
Extracto de openkeel-ovn-bgp-agent/README.md (en inglés).
Cómo se prueba la compatibilidad
El agente no tiene API REST, por lo que la compatibilidad se verifica con vectores de coincidencia de eventos y escenarios de efectos secundarios en el nodo grabados desde el agente de Python, así como en un kernel real.
Tests unitarios y golden tests
Vectores de coincidencia de eventos
Los filtros de eventos del Northbound coinciden exactamente con los cambios de filas OVN a los que reacciona el agente de Python.
Ejecución
make test-vectors sobre cases-event-match_stable-2026.2.json, con la semántica de Mock de Python reproducida.
Último resultado 122 / 122 dentro del alcance (casos SB y EVPN fuera del alcance); 20 / 20 casos escritos a mano para los filtros sin vectores.
El agente BGP implementa el driver Northbound solo con exposición underlay, como un único proceso de reconciliación, y rechaza los modos Southbound, EVPN y L2 extendido.
Mecánica interna simplificada
Drivers Southbound, EVPN y L2 extendido
Por qué se excluyó
Alcance del rewrite: solo nb_ovn_bgp_driver con exposición underlay, cuyas claves escribe el Neutron de OpenKeel.
Por qué la solución no se ve afectada
Se anuncian las IP de provider, IP flotantes, pasarelas de router, subredes de tenant y VIP de load balancer. EVPN (vrf) y L2 extendido se rechazan al arrancar.
Aquí solo figura lo que se excluyó por diseño; el trabajo aún no realizado está en los Known gaps del docs/CONFORMANCE.md del módulo. Todos los módulos