[libvirt-users] virRandomBits - not very random

Daniel P. Berrange berrange at redhat.com
Tue Nov 4 08:18:28 UTC 2014

On Mon, Nov 03, 2014 at 11:09:12AM -0500, Brian Rak wrote:
> I just ran into an issue where I had about 30 guests get duplicate mac
> addresses assigned.  These were scattered across 30 different machines.
> Some debugging revealed that:
> 1) All the host machines were restarted within a couple seconds of each
> other
> 2) All the host machines had fairly similar libvirtd pids (within ~100 PIDs
> of each other)
> 3) Libvirt seeds the RNG using 'time(NULL) ^ getpid()'
> This perfectly explains why I saw so many duplicate mac addresses.
> Why is the RNG seed such a predictable value?  Surely there has to be a
> better source of a random seed then the timestamp and the pid?
> The PID seems to me to be a very bad source of any randomness.  I just ran a
> test across 60 of our hosts.  43 of them shared their PID with at least one
> other machine.

We should probably seed it with data from /dev/urandom, and/or the new
Linux getrandom() syscall (or BSD equivalent).

|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|

More information about the libvirt-users mailing list