Instance with static ip on hosts LAN

Thanks for taking the time to view this message. I recently had been experimenting with Proxmox, which, in its concept, is exactly what I want for my ever-growing services on my home server. Just cannot live with the conceptual idea that the host is not fully under my control and the continuous suggestion of a license. This brought me to the Incus project. Using Debian Trixie as base and the Incus stable release. It’s excellent so far, but I’m struggling with the network concept. So far, I have been able to achieve the following;

Bridge mode
Used the default bridge setup suggestion with a custom range 10.10.7.1/24. Added the routing 10.10.7.0/255.255.255.0 with the host as the gateway to my Fritzbox router. This also allows an instance to be set up with a fixed IP, such as 10.10.7.7, for a tiny Alpine-based AdGuardHome instance.
The problem:
DNS performance is really unstable and bad. It works, sometimes normal, sometimes slow, and sometimes no response.

Macvlan mode
Created a macvlan. I can add this to an instance, and as expected, the instance receives an IP from the host’s LAN DHCP (Fritzbox). Great.
The problem:
I can, of course, assign IPs on the router. However, I would like to be able to set up a specific static IP for a host that is not compatible with the DHCP range. Macvlan doesn’t seem to allow ipv4.address configuration. I would also prefer the host to utilize my primary DNS routing, which isn’t possible if this service utilized macvlan.

Questions;

  • Is it possible to set up an instance with a static IP on the host LAN?
  • Any suggestion why the bridge mode & routing setup is performing badly? Would a os level Bridge be better?

[update1]
I benchmarked the bridge setup a bit. It’s unusable. Running Alpine with native adguardhome is choking a lot on this clean deb setup with incus. The server is an i5-14600K with 32GB of DDR5 RAM. My Pi5 8GB running AdGuardHome on Docker never gives a hiccup. Now moving to macvlan testing, after that a new instance with alpine docker and adguard as docker container.

[update2]
Just came across something “unhandy”. I just realized I never changed the nameserver on the host. It was pointing to the old one (pi5). It could be an issue with bridge mode instability. Back to testing the bridge mode DNS filtering instance.

Solved!

I was mainly using the web-gui for configuration with some manual yaml. Not I realise the limitation to add a host bridge was just blocked by the web-gui not offering it as a configuration option. But in reality you can either add it to the yaml manually or use the incus command net work attach and attach-profile to add it to either instance or profile.

This will make each instance connected to the local lan as is, own max own ip own configuration. Making this static requires configuring the instance os network, incus can off course no longer manage this.

Hopefully this post shall be useful for someone in the future.