[libvirt] NBD drives with literal IPv6 addresses or hostnames starting with a digit

Ján Tomko jtomko at redhat.com
Fri May 31 11:38:51 UTC 2013


Hello,

since qemu's commit v1.4.0-736-gf17c90b [1]:
    nbd: Keep hostname and port separate

* literal IPv6 addresses no longer work in nbd URIs, because getaddrinfo is
called with the surrounding brackets:
$ qemu-system-x86_64 -drive file=nbd://[::1]:1234/quack
qemu-system-x86_64: -drive file=nbd://[::1]:1234/quack: address resolution
failed for [::1]:1234: Name or service not known

* hostnames starting with a digit now work in nbd URIs.
Before that, or with the non-URI syntax, they fail because inet_parse assumes
them to be literal IPv4 addresses:
$ qemu-system-x86_64 -drive file=nbd:123flour:1234:exportname=gashunk
qemu-system-x86_64: -drive file=nbd:123flour:1234:exportname=gashunk: error
parsing IPv4 address '123flour:1234'


In libvirt, we use the URI format on the command line only if the host
contains ':', so hostnames starting with a digit still don't work.

Migration with NBD and a literal IPv6 address doesn't work either, but that's
purely libvirt's fault, as we don't escape it with brackets. I've just posted
a patch for that. [2]

Jan

[1] http://git.qemu.org/?p=qemu.git;a=commitdiff;h=f17c90b
[2] https://www.redhat.com/archives/libvir-list/2013-May/msg02022.html




More information about the libvir-list mailing list