<div dir="ltr">Hello Libvirt Users,<br><br>I would like to setup a two node bare-metal cluster. I need to guidance on the network configuration. I have attached a small diagram, the same diagram can be seen here: <a href="https://i.imgur.com/SOk6a6G.png">https://i.imgur.com/SOk6a6G.png</a><br><br>I would like to configure the following details:<br>- Each node has a DHCP enabled guest network where VMs will run. (eg, <font face="monospace"><b><a href="http://192.168.1.0/24">192.168.1.0/24</a></b></font> for Host1, and <font face="monospace"><b><a href="http://192.168.2.0/24">192.168.2.0/24</a></b></font> for Host2)<br>- Any guest in Host1 should be able to ping guests in Host2, and vice versa.<br>- All guests have routes to reach the open internet (so that '<font face="monospace"><b>yum update</b></font>' will work "out-of-the-box")<br>- Each node will be able to operate fully if the other physical node fails. (no central DHCP server, etc)<br>- I would like to <u>add more physical nodes later</u> when I need the resources.<br><br>This is what I have done so far:<br>- Installed latest Ubuntu 18.04, with latest version of libvirt and supporting software from ubuntu's apt repo.<br>- Each node can reach the other via its own eth0.<br>- Each node has a working vxlan0, which can ping the other via its vxlan0, so it looks like the vxlan config is working. (I used <font face="monospace"><b>ip link add vxlan0 type vxlan...</b></font>)<br>- Configured route on Host1 like so: <b><font face="monospace">ip route add <a href="http://192.168.2.0/24">192.168.2.0/24</a> via 172.20.0.1</font></b><br>- Configured route on Host2 also: <b><font face="monospace">ip route add <a href="http://192.168.1.0/24">192.168.1.0/24</a> via 172.20.0.2</font></b><div>- All guests on Host1 (and Host1) can ping eth0 and vxlan0 on Host2, and vice versa, yay.<br>- Guests on Host1 <u>cannot</u> ping guests on Host2, I suspect because the the default NAT config of the libvirt network.<br><br>So, at this point I started to search for tutorials or more information/documentation, but I am a little overwhelmed by the sheer amount of information, as well as a lot of "stale" information on blogs etc.<br>I have learned that I can <b><font face="monospace">virsh net-edit default</font></b>, and then change it to an "open" network:<font face="monospace"><b> <forward mode='open'/></b></font></div><div>After doing this, the guests cannot reach outside their own network, nor reach the internet, so I assume that I would need to add some routes, or something else to get the network functioning like I want it. There is also <font face="monospace"><b><forward mode="route"/></b></font>, but I dont fully understand the scenarios where one would need an <b><font face="monospace">open</font></b> or a <b><font face="monospace">route</font></b> forward mode. I have also shied away from using openvswitch, and have opted for ifupdown2.<br>(I have taken most of my inspiration from this blog post: <a href="https://joejulian.name/post/how-to-configure-linux-vxlans-with-multiple-unicast-endpoints/">https://joejulian.name/post/how-to-configure-linux-vxlans-with-multiple-unicast-endpoints/</a> )<br><br>Some questions that I have for the mailing list, any help would be greatly appreciated:<br>- Is my target configuration of a KVM cluster uncommon? Do you see drawbacks of this setup, or does it go against "typical convention"?<br>- Would my scenario be better suited for an "<b><font face="monospace">open</font></b>" network or a "<b><font face="monospace">route</font></b>" network?<br>- What would be the approach to complete this setup?<br><br><br><br></div></div>