Turning a bridge created in netplan into a LXD managed network

Hi Everyone,

I am starting a LXD cluster with three machines. My goal is to create a small cloud environment with a graphical interface. I chose LXD and LXDware for this task. My cluster must allow the virtual machines and containers to use IP addresses from the local network, so students from other labs may access the services hosted on the cluster.

The three machines run Ubuntu 22.04. Each has a bridge called br-cloud, with enp2s0 attached. I set an IP address from the local network using netplan:

bridges:
    br-cloud:
      addresses:
      - 192.168.0.10/24
      routes:
      - to: default
        via: 192.168.0.1
      nameservers:
        addresses:
        - 8.8.8.8
        search:
        - mydomain.com
      mtu: 1500
      interfaces:
      - enp2s0

I created the cluster using instructions from official documentation. The cluster seems to work fine. I was able to create three VMs, each running on a different host, and attached a new interface with br-cloud as parent:

$ lxc launch ubuntu:22.04 Test01 --vm
$ lxc config device add Test01 eth1 nic nictype=bridged parent=br-cloud name=eth1
$ lxc exec Test01 -- ip addr add 192.168.0.110 dev enp6s0
$ lxc exec Test01 -- ip link set enp6s0 up

$ lxc launch ubuntu:22.04 Test02 --vm
$ lxc config device add Test02 eth1 nic nictype=bridged parent=br-cloud name=eth1
$ lxc exec Test02 -- ip addr add 192.168.0.111 dev enp6s0
$ lxc exec Test02 -- ip link set enp6s0 up

$ lxc launch ubuntu:22.04 Test03 --vm
$ lxc config device add Test03 eth1 nic nictype=bridged parent=br-cloud name=eth1
$ lxc exec Test03 -- ip addr add 192.168.0.112 dev enp6s0
$ lxc exec Test03 -- ip link set enp6s0 up

$ lxc list
+---------------+---------+-------------------------+-------------------------------------------------+-----------------+-----------+--------------+
|     NAME      |  STATE  |          IPV4           |                      IPV6                       |      TYPE       | SNAPSHOTS |   LOCATION   |
+---------------+---------+-------------------------+-------------------------------------------------+-----------------+-----------+--------------+
| Teste01       | RUNNING | 192.168.0.110  (enp6s0) | xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx (enp5s0) | VIRTUAL-MACHINE | 0         | host01      |
|               |         | 10.12.123.12 (enp5s0)   |                                                 |                 |           |              |
+---------------+---------+-------------------------+-------------------------------------------------+-----------------+-----------+--------------+
| Teste02       | RUNNING | 192.168.0.111  (enp6s0) | xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx  (enp5s0) | VIRTUAL-MACHINE | 0         | host02 |
|               |         | 10.12.123.47 (enp5s0)   |                                                 |                 |           |              |
+---------------+---------+-------------------------+-------------------------------------------------+-----------------+-----------+--------------+
| Teste03       | RUNNING | 192.168.0.112  (enp6s0) | xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx  (enp5s0) | VIRTUAL-MACHINE | 0         | host03      |
|               |         | 10.12.123.83 (enp5s0)   |                                                 |                 |           |              |
+---------------+---------+-------------------------+-------------------------------------------------+-----------------+-----------+--------------+
| lxd-dashboard | RUNNING | 10.12.123.103 (eth0)    | xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx  (eth0)   | CONTAINER       | 0         | host01         |
+---------------+---------+-------------------------+-------------------------------------------------+-----------------+-----------+--------------+

I can ping the VMs from other machines in the network, so they are accessible and I believe the cluster is OK. But as you can see from the output above, I deployed LXDware (container lxd-dashboard). When I try to repeat the steps above using the GUI, the bridge br-cloud is not available:

On the Networks tab, br-cloud is listed as “Managed = false”:

So, my question is: Is there a way to make br-cloud a managed network? Would it be any side effects?

The “Network” setting in LXDware is likely just setting the network NIC property. And this property specifies the LXD managed network to connect the NIC too.

As you have seen, your external bridge is not managed by LXD and so in the CLI you aren’t using the network NIC property, but rather the parent property.

I am not very familiar with LXDware, but you will need to specify the parent property somehow. I suspect the “Additional Properties” link at the bottom of the form maybe what you need.

Either that or you should create a profile that has the NIC device configured how you want and then use LXDware to apply that profile to the instances you want.

1 Like

Hello Thomas Parrott,

Thank you very much! I just needed to read the CLI more carefully to understand what is happening. In the form above, Property Set has value network, when it should be nictype. Together with NIC Type equal to bridge, I can use my external bridge.

Everything is working just as I expected.

Best regards.

2 Likes