I have got myself a very nice new laptop. Lots(!) if ram and an i7 6 core CPU.

I want to be installing all sorts of software, some of which will be incompatible with other bits, so the answer is to build some virtual machines and install to them. So I am endeavouring to build a LAN of disparate versions of Linux as VMs under KVM. This is all a bit new to me, so if I mention something you think is incorrect, please jump in and let me/us know. I am using the Virtual Machine Manager GUI rather than doing it via the command line.

Anyway, I started with Centos to act as the central server for the virtual LAN. It all seemed to work just fine. It could connect to the internet, and also to the other machines on my real LAN. I set its name to "servervm".

Next I thought I might try Bodhi. It is built on top of Ubuntu 18.04 LTS but uses Enlightenment for the desktop. Its a bit different and feels a little primitive, but I was wanting something lightweight just to host a couple of applications. Installation and set up went fine with a quite sensible set of defaults.

First I tried to connect it to the internet, and that worked OK - promising.
Then I tried servervm - the response was "Temporary failure in name resolution". I know now that the error should not contain "Temporary" - it is never going to work. Similarly when trying to connect to machines on the real LAN. These machines have names like "lenovo" and "acer".

At this point I will skip over the several days of searching the web, trying out every thing that seemed even vaguely possible, a lot of rebooting, and a lot of reading about stuff.

The problem is with something from the Pottering world called systemd-resolved. It is broken by design as far as I can determine. Basically it is a DNS stub that listens on D-Bus (dog knows why), the usual C API, and the loop back address 127.0.0.53. It does what one would expect for the local addresses (i.e. those within the same machine) and also for addresses such as "google.com" which it passes up to a real DNS. However, for "single-label" addresses, such as "servervm" or "lenovo" it does not use DNS at all but tries to use a protocol called LLMNR.

I eventually got my virtual LAN working by introducing a domain name, "vm". I did try "internal" along the way, but apparently that gets treated like "localdomain". The guests can now chat amongst themselves and also contact the internet. So servervm has become servervm.vm - I might change that later to just server.vm.

My problem is that the machines on the real LAN have these single-label names and cannot be contacted with a machine using systemd-resolved. The new laptop has Ubuntu LTS as its OS, but I have had to turn off the system-resolved daemon and use direct entries in /etc/resolv.conf. (Also requires changing the config file for NetworkManager so its doesn't get clobbered.) This was for a different reason, to overcome a problem with the modem/router where it doesn't seem to like simultaneous ip4 and ip6 DNS requests. As a result it goes directly to the modem/router for its DNS. I don't have that option for the virtual machines.

Anyway, this is a warning for the future that when Fedora starts to use systemd-resolved there is going to be problems if your LAN uses machines with single label names.

My next thing is to see if I can persuade the modem/router to use a domain. A first glance through its menus was not encouraging.