OpenKeel: the sovereign French Cloud solution of the inherent group, with a European reach Discover inherent

Architecture

Networking: Neutron, OVN and OVS

Neutron in Go writes the logical model into OVN; ovn-controller and Open vSwitch switch the packets of the VMs and containers.

Who does what, layer by layer

  1. Neutron (Go)

    API, MariaDB database, IPAM, policies; writes networks, ports, routers, security groups and floating IPs into OVN; a reconciler fixes drift

  2. OVN Northbound

    Logical model: switches, routers, ports, ACLs and Port_Groups, NAT (SNAT, floating IPs), DHCP, Octavia load balancers

  3. ovn-northd + Southbound

    Compiles the model into logical flows; binds each port to a node (chassis); schedules the HA gateways

  4. ovn-controller

    On each node: programs br-int with OpenFlow, Geneve tunnels, answers DHCP, ARP and RA locally

  5. Open vSwitch

    ovsdb-server and ovs-vswitchd: br-int bridge, kernel or userspace datapath, switches the packets of VMs and containers

IPv6 in Neutron

IPv6 subnets

slaac, dhcpv6-stateful and dhcpv6-stateless modes; same validations and errors as Python

Router advertisements

ipv6_ra_configs on the OVN router ports: addressing, MTU, metadata route

Agentless DHCPv6

DHCPv6 options written into OVN; SLAAC addresses computed with EUI-64

Security groups

ip6 and icmp6 ACLs, IPv6 remote groups, IPv6 egress rules by default

Routing

Default route ::/0 to the external gateway; SNAT and floating IPs stay IPv4

VM isolation

IPv6 forwarding off in the Pod, IPv6 disabled on the host veth

Not verified yet: tenant IPv6 subnets on the real lab data plane, Tempest's Octavia IPv6 tests. Prefix delegation, deprecated upstream, is not carried over.

OVSDB view

Diagram openkeel-ovsdb.svg Full screen
OVN Northbound and Southbound databases, the Open vSwitch database and their clients.