Red Hat Bugzilla – Bug 503712
libvirtd does not listen by default to IPv6
Last modified: 2010-03-16 13:20:26 EDT
Description of problem:
In order to get libvirtd to listen on IPv6, you have to manually
set 'listen_addr = "::"' in /etc/libvirt/libvirtd.conf. By default,
it listens only on 0.0.0.0 (IPv4).
Version-Release number of selected component (if applicable):
Steps to Reproduce:
netstat -A inet6 -lnp | grep libvirtd
tcp 0 0 :::16509 :::* LISTEN 23321/libvirtd
tcp 0 0 :::16514 :::* LISTEN 23321/libvirtd
Looks like getaddrinfo() is returning the IPv4 address before the IPv6 address, and since Linux defaults to net.ipv6.bindv6only=0, when libvirtd tries to listen on the IPv6 address it fails with EADDRINUSE. I really don't know why it isn't returning the IPv6 address first during the lookup.
Data point: Works correctly on RHEL-5. Fails on Fedora 9 & 11
Fix pushed upstream
Fixed in 0.7.4 release