OpenKeel: la soluzione Cloud sovrana, francese e di portata europea, del gruppo inherent Scopri inherent

Componenti · Rete

Neutron-FWaaS

Gruppi, policy e regole di firewall (FWaaS v2).

Go ACL OVNopenkeel-neutron-fwaas

Il modulo

OpenKeel implementation in Go of OpenStack neutron-fwaas (neutron-fwaas-api), generated from the reverse-specification of branch stable/2026.2 by the generate-go-from-spec skill. It serves the FWaaS v2 API (/v2.0/fwaas) and programs firewall groups as OVN Port_Groups and stateless ACLs, replacing the firewall_v2 service plugin and its OVN driver: same routes, status codes, error bodies and policies, same NB rows. It runs beside openkeel-neutron, on its database and its OVN; clients reach it through a proxy in openkeel-neutron: see docs/NEUTRON-INTEGRATION.md. What is reproduced and what differs is in docs/CONFORMANCE.md; the security checklist is in docs/SECURITY.md.

  • Go module: github.com/openkeel/openkeel-neutron-fwaas
  • Binary: neutron-fwaas-api (API on port 9696, health and metrics on 9090)
  • Configuration: YAML, see config/config.example.yaml
  • Setting up a development environment, the database and the tests: docs/GETTING-STARTED.md
  • Database schema, migrations and upgrades: docs/DATABASE.md

Estratto da openkeel-neutron-fwaas/README.md (in inglese).

API REST

23 operazioni dell'API REST originale (route e azioni nel corpo) e il loro stato in OpenKeel.

  • 23Implementato

Come viene testata la compatibilità

I test FWaaS Python riregistrati vengono riprodotti sul servizio Go, e il driver OVN viene confrontato passo per passo con il vero driver Python su un Northbound reale.

Replay degli scambi registrati

Replay E2E dei test riregistrati

691 scambi di 135 test Python, riregistrati con l'identità di ciascuna richiesta, restituiscono le stesse risposte.

Esecuzione

make e2e-strict, su go-mysql-server e su MariaDB 11.4.

Ultimo risultato 689 / 691 (2026-10-31); le 2 differenze riguardano un percorso esterno all'estensione, 404 in entrambi i casi.

Fonte: openkeel-neutron-fwaas/docs/CONFORMANCE.md

Test differenziale

Confronto differenziale con il driver Python

Gli stessi passi restituiscono lo stesso stato, lo stesso stato di gruppo e ogni colonna delle righe Port_Group e ACL di neutron-fwaas con ovsdbapp.

Esecuzione

make ovn-test, test/ovn/differential, su un Northbound reale.

Ultimo risultato 47 / 47 passi identici (2026-10-31).

Fonte: openkeel-neutron-fwaas/docs/CONFORMANCE.md

Test unitari e golden test

Vettori ACL OVN e dei validatori

Le ACL corrispondono byte per byte alla funzione originale; convertitori e validatori corrispondono al vero neutron-lib.

Esecuzione

internal/ovnfw/acl_test.go; tools/gen_validator_vectors.py e internal/fwaas/attrs_test.go.

Ultimo risultato 935 / 935 vettori ACL; 97 / 97 vettori dei validatori (2026-10-31).

Fonte: openkeel-neutron-fwaas/docs/CONFORMANCE.md

Concorrenza su Galera

Concorrenza su MariaDB Galera

Quote, inserimento di regole, gruppi predefiniti e porte reggono su tre nodi.

Esecuzione

test/galera su un cluster a 3 nodi, scritture di quota e insert_rule tramite un solo nodo.

Ultimo risultato 4 test superati, 3 esecuzioni su 3. Rilievo aperto: in lettura-modifica-scrittura multinodo si perdono aggiornamenti dal 3 % al 18 % delle esecuzioni.

Fonte: openkeel-neutron-fwaas/docs/CONFORMANCE.md

End-to-end su un laboratorio

Installazione del laboratorio tramite Neutron

Token, estensione, firewall group ACTIVE, ACL nel Northbound, corpi di errore e pulizia, tutto tramite l'endpoint di Neutron.

Esecuzione

okadm install --mode lab --components neutron-fwaas su kind.

Ultimo risultato Superato (2026-10-31); il laboratorio non ha data plane, nessun pacchetto è stato filtrato.

Fonte: openkeel-neutron-fwaas/docs/CONFORMANCE.md

Tempest

neutron-tempest-plugin fwaas

I test API e di scenario FWaaS upstream.

Esecuzione

Richiede un cloud con data plane.

Ultimo risultato Non eseguito.

Fonte: openkeel-neutron-fwaas/docs/CONFORMANCE.md

Escluso dal rewrite

FWaaS v2 mantiene la sua API solo sul driver OVN, per cui scompaiono il percorso dell'agente con iptables, conntrack e NFLOG, il caricatore di plugin e lo strumento di sincronizzazione manuale.

Gestito dalla piattaforma Cloud Native

Driver dell'agente, iptables, conntrack e NFLOG

Gestito da OVN

Perché è stato escluso

Le regole firewall sono ACL e Port_Groups OVN scritti dal servizio; le estensioni degli agenti L2 e L3 e i loro topic RPC non servono con OVN.

Perché la soluzione non ne risente

I gruppi firewall si applicano alle porte dei router come con il driver OVN di Python; anche lì le porte delle VM vengono rifiutate (409). Il logging di rete NFLOG non è disponibile.

Fonte: openkeel-neutron-fwaas/docs/CONFORMANCE.md

Meccanismi interni semplificati

neutron-ovn-db-sync-util manuale

Perché è stato escluso

Un ciclo di riconciliazione (300 s, una sola replica tramite un lock OVSDB) rimuove le ACL obsolete e ricrea quelle mancanti.

Perché la soluzione non ne risente

OVN converge senza intervento dell'operatore; l'API resta invariata.

Fonte: openkeel-neutron-fwaas/docs/CONFORMANCE.md

Meccanismi interni semplificati

Caricamento dei service_plugins in neutron-server

Gestito da Kubernetes Deployments

Perché è stato escluso

FWaaS è un Deployment separato; openkeel-neutron gli inoltra /v2.0/fwaas e annuncia fwaas_v2.

Perché la soluzione non ne risente

I client chiamano lo stesso endpoint e gli stessi percorsi di Neutron.

Fonte: openkeel-neutron-fwaas/config/dropped-options.md

Qui è elencato solo ciò che è stato escluso per scelta progettuale; il lavoro non ancora svolto si trova nei Known gaps del docs/CONFORMANCE.md del modulo. Tutti i moduli

Interazioni Neutron-FWaaS

Vista del servizio generata dalla skill dei diagrammi a partire dal modello OpenKeel.

Diagramma openkeel-neutron-fwaas.svg Schermo intero
Le 2 interazioni del modello
DaAProtocolloCosa
Neutron serverNeutron FWaaSAPI RESTproxy /v2.0/fwaas/*, same token
Neutron FWaaSOVN Northbound DBOVSDBpg_* Port_Groups, stateless ACLs

Specifiche