I’m working on a new project, and I am using Multipass on an Ubuntu machine to provision some virtual machines on my local machine using cloudinit files. All good so far!
I wanted to expose one of the services I’ve created to the bridged network (so I can run
avahi-daemon), and did this by running
multipass launch -n vm01 --network enp3s0 when, what should I see but:
launch failed: The bridging feature is not implemented on this backend. OH NO!
By chance, I found a random Stack Overflow answer, which said:
Currently only the LXD driver supports the networks command on Linux.
So, let’s make multipass on Ubuntu use LXD! (Be prepared for entering your password a few times!)
Firstly, we need to install LXD. Dead simple:
snap install lxd
Next, we need to tell snap that it’s allowed to connect LXD to multipass:
snap connect multipass:lxd lxd
And lastly, we tell multipass to use lxd:
multipass set local.driver=lxd
user@host:~$ multipass networks Name Type Description enp3s0 ethernet Ethernet device mpbr0 bridge Network bridge for Multipass
And when I brought my machine up with avahi-daemon installed and configured to broadcast it’s hostname?
user@host:~$ ip -4 addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever 37: br-enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 inet 192.0.2.33/24 brd 192.0.2.255 scope global dynamic noprefixroute br-enp3s0 valid_lft 6455sec preferred_lft 6455sec user@host:~$ multipass list Name State IPv4 Image vm01 Running 203.0.113.15 Ubuntu 22.04 LTS 192.0.2.101 user@host:~$ ping vm01.local PING vm01.local (192.0.2.101) 56(84) bytes of data.
Featured image is “Apoptosis Network (alternate)” by “Simon Cockell” on Flickr and is released under a CC-BY license.