Hi everyone,
We are currently evaluating Incus OVN as a replacement for our existing LXD + bridge setup.
Our goal is to make the physical network and the OVN network reachable directly from each other, without NAT. Because of that, we configured the OVN network with:
ipv4.nat: "false"
At this stage this is only a test environment, and the underlying OVN parent network is using bridge mode.
Background
We noticed that when creating an OVN network with a specific IPv4 subnet, the OVN network’s ipv4.address needs to be included in the parent bridge network’s ipv4.routes.
For example, our parent bridge network has:
ipv4.ovn.ranges: 10.10.1.200-10.10.1.255
ipv4.routes: 10.80.1.0/24
The OVN network is configured roughly like this:
ipv4.address: 10.80.1.0/24
ipv4.nat: “false”
volatile.network.ipv4.address: 10.10.1.200
After creating the OVN network, the host gets a route like this:
10.80.1.0/24 dev bridge
However, with this route, the host cannot directly reach the instances inside the OVN network.
If we manually delete that route and add it back with an explicit next-hop, then the host can reach the instances:
ip route del 10.80.1.0/24 dev bridge
ip route add 10.80.1.0/24 via 10.10.1.200 dev bridge
Question
I would like to ask whether this is the expected design when using Incus OVN with ipv4.nat=false, or whether we are misunderstanding how the parent bridge network, ipv4.routes, and the OVN router address are supposed to work together.
In particular:
-
Should the route to the OVN subnet be added as a direct
dev bridgeroute? -
Or should it normally point to the OVN external/router address as the next-hop?
-
If manual route replacement is required, is there a recommended Incus/OVN way to configure this instead of changing the host route manually?
I may be missing something basic in the intended network model, so any clarification would be very appreciated.
Thank you very much.