
On 11/25/15 12:00, Daniel P. Berrange wrote:
On Wed, Nov 25, 2015 at 11:52:21AM +0100, Laszlo Ersek wrote:
I recently upgraded my laptop from RHEL-7.1 to RHEL-7.2.
I always pay attention to *.rpmnew config files, and I manually diff and merge them with the ones I have in place.
I did the same with "/etc/libvirt/qemu.conf" this time.
Now libvirtd doesn't start for me. Systemd doesn't actually notice the startup failure (insert bitter joke about systemd being so much better than startup scripts); it only reports the service inactive/dead (= unstarted), rather than failed.
But, the libvirtd log file gives the reason:
migration_address must not be the address of the local machine: 127.0.0.1
The error is easy to fix up in the config file, but my question is:
Why must migration_address not be the address of the local machine?
The migration address for incoming migration over TCP needs to be a public facing IP address, otherwise the remote machine won't be able to connect to it. If you configure migration_address on the target machine to be 127.0.0.1, then obviously no migration client connection will ever succeed, hence we consider 127.0.0.1 as an invalid configuration.
BTW, my purpose is not in-host migration (perhaps that's indeed unsupported, I don't know); I just want to lock down the incoming migration port (and not just with firewall rules).
What's wrong with using firewall rules ? IMHO you are describing exactly the scenario that are intended to deal with.
I certainly use firewall rules. But, I like to disable listeners, especially public listeners, on the individual application level too, if I don't have a good use for the service.
If there's a way to disable incoming migration in libvirtd, I'd be interested in that.
You could setup libvirt's API access control rules to deny the "migrate" privilege to all users. Using firewall rules is a more secure solution though IMHO
I agree about that. Thanks Laszlo
Regards, Daniel