Would love to understand the inner workings of the OVN network

  Hello everyone, I have three servers with LXD cluster and OVN cluster deployed on them.I’m keen to understand how LXD integrates with OVN.

The chart below is my current understanding.

  First of all, I will introduce this diagram a little, and then ask some questions.The three rectangles standing vertically represent my three LXD servers.And I deployed the OVN cluster on these three servers.

  I created an OVN network and then used OVN commands to try to understand what the topology of the OVN network looked like.

here is command:

  • ovs-vsctl show
  • ovn-nbctl show
  • ovn-sbctl show

  I found that the container is first connected to a logical switch, then the switch is connected to a logical router, and then the logical router is connected to a bridge with the name “lxdovn2”.The lxdovn2 bridge is connected to another bridge with the name br-int.The br-int bridge is remotely connected to the br-int bridge of another lxd server.

  Taking one OVN network as an example, the figure shows my personal understanding of the OVN network topology.

Below is my question:
Question1. There are two bridges and I’m not too sure what they do.Is lxdovn2 used to ensure that instances joining the OVN network can access the external network? Is br-int used to ensure that instances joining the OVN network can access instances on other lxd hosts?

Question2. I know that the OVN network does not belong to a specific LXD server.But in fact? Is it true that in an OVN network, logical routers and logical switches do belong to a specific LXD server.For example, as shown in the figure, an OVN network involves logical routers and logical switches that are actually deployed on lxdhost2. if I create a new container on lxdhost1 and join this OVN network. Is this new container directly connected to the br-int bridge equivalent to joining this OVN network?

Question3.Every OVN network actually involves two logic switch and one logic router.I don’t quite understand whether these three components are deployed repeatedly on every OVN chassis, or only on one of them.I guess it’s only on one of the chassis?

If my understanding is wrong, you are more than welcome to point it out and tell me what is right.

Finally, let me explain why I ask these kinds of questions:
1.I have a total of 3 LXD Host in two az on the Azure cloud(3 virtual machine).
2.One vm is in AZ1 and the other two vms are in AZ2.
3.In AZ1 I have a private network(172.31.85.0/24),In AZ2 I have another private network(172.31.89.0/24). And I use peer-to-peer networking technology to get the two private networks to interoperate.
4.I have deployed an OVN cluster on these three vms, but when I set up the uplink network for the OVN network, I don’t know how to set the ipv4.ovn.ranges attribute.
5.If a logic router of an OVN network belongs exclusively to a particular chassis(Let’s say the IP of this chassis is 172.31.89.5),Then I must make sure that the volatile.network.ipv4.address of the logic router also belongs to the 89 network segment.But my other chassis belong to the 85 segment, because my three chassis actually join two unconnected networks, and they are connected to each other through peer-to-peer technology.

If anyone can help me explain the principle of OVN network, or help me analyze the actual problems I encounter,I can’t thank you enough.

1 Like