ipv4.address won’t work as that property only affect the assignment of IPv4 addresses in LXD’s dnsmasq. Since your public IP is outside of the subnet on that bridge, it will be ignored.
The way you’d usually do what you need here is:
- lxc network set lxdbr0 ipv4.routes 94.130.21.165/32
- In your container, do “ip -4 addr add dev eth0 94.130.21.165/32”
As a result your container will have both a private IP in your 10.10.10.0/24 subnet AND the public IPv4 address manually applied to it.
You can make this persistent by adding this to the container’s /etc/network/interfaces.d/50-cloud-init.cfg in the eth0 section:
post-up ip -4 addr add dev eth0 94.130.21.165/32
pre-down ip -4 addr del dev eth0 94.130.21.165/32
And then restart your container.
If it’s critical that you don’t have a private IPv4 address for the container, that should also be doable by replacing the whole eth0 section in the file and instead using:
auto eth0
iface eth0 inet static
address 94.130.21.165
netmask 255.255.255.0
gateway 10.10.10.1
pre-up ip -4 link set dev eth0 up
pre-up ip -4 route add dev eth0 10.10.10.1/32
Note that all the above is from memory, I’ve not actually tested any of this, so there may be some typos in there