Kündigt über BGP die VM- und Floating-IPs an, die über den Knoten erreichbar sind.
Go FRR und OVNopenkeel-ovn-bgp-agent
Das Modul
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
Auszug aus openkeel-ovn-bgp-agent/README.md (auf Englisch).
Wie die Kompatibilität getestet wird
Der Agent hat keine REST-API; die Kompatibilität wird daher mit Event-Match-Vektoren und vom Python-Agenten aufgezeichneten Nebeneffekt-Szenarien auf dem Knoten sowie auf einem echten Kernel geprüft.
Unit- und Golden Tests
Event-Match-Vektoren
Die Northbound-Ereignisfilter entsprechen genau den OVN-Zeilenänderungen, auf die der Python-Agent reagiert.
Ausführung
make test-vectors auf cases-event-match_stable-2026.2.json, mit nachgebildeter Python-Mock-Semantik.
Letztes Ergebnis 122 / 122 im Umfang (SB- und EVPN-Fälle außerhalb des Umfangs); 20 / 20 handgeschriebene Fälle für Filter ohne Vektoren.
Der BGP-Agent implementiert den Northbound-Treiber nur mit Underlay-Exposure, als ein einziger abgleichender Prozess, und weist die Modi Southbound, EVPN und Stretched L2 ab.
Vereinfachte interne Mechanik
Southbound-, EVPN- und Stretched-L2-Treiber
Warum es ausgelassen wurde
Umfang des Rewrites: nur nb_ovn_bgp_driver mit Underlay-Exposure, für den das Neutron von OpenKeel die Schlüssel schreibt.
Warum die Lösung nicht beeinträchtigt ist
Provider-IPs, Floating IPs, Router-Gateways, Mandanten-Subnetze und Load-Balancer-VIPs werden angekündigt. EVPN (vrf) und Stretched L2 werden beim Start abgewiesen.
Hier ist nur aufgeführt, was bewusst ausgelassen wurde; noch nicht erledigte Arbeit steht in den Known gaps der docs/CONFORMANCE.md des Moduls. Alle Module