qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [Bug 1642421] Re: qemu-system-x86_64: ipv6 and dns is broke


From: Rodrigo V. G.
Subject: [Qemu-devel] [Bug 1642421] Re: qemu-system-x86_64: ipv6 and dns is broken with netdev user
Date: Sun, 27 Nov 2016 21:57:36 -0000

I have a similar issue with qemu 2.7 from current Debian amd64
unstable/sid. Starting qemu with:

kvm -m 640 -hda debian-8-amd64.qcow2 -net nic,model=rtl8139 -net
user,hostfwd=tcp:127.0.0.1:5005-:22

I tested DNS resolution in the host and in the guest.

The conclusions are:

When the host's /etc/resolv.conf has, as the only line, a ipv6
nameserver like fd2d:[...]::1 or a ipv6 link-local address with a scope
like fe80::[...]%wlan0 then:

 In the host, DNS resolution works ok in Debian sid. In Debian 8 'host' and 
'dig' fail in the case of link-local address and work otherwise, and 'ping' 
works anyway.
 In the guest, DNS resolution does not work at all (but access to IPv4 
addresses directly works).

In this case there is not global ipv6 connectivity, but some
combinations of routers and network managers in the host lead to
/etc/resolv.conf with only nameserver line a ipv6 or ipv6 link-local
with scope address. This breaks DNS resolution in the guests. In this
same configuration VirtualBox works ok.

An old (2007) patch from glibc for the ipv6 link-local with scope case
is at:

https://sourceware.org/bugzilla/show_bug.cgi?id=5475


** Bug watch added: Sourceware.org Bugzilla #5475
   https://sourceware.org/bugzilla/show_bug.cgi?id=5475

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1642421

Title:
  qemu-system-x86_64: ipv6 and dns is broken with netdev user

Status in QEMU:
  New

Bug description:
  Hi,

  dhcp inside qemu returns an ipv6 address as dns-server. However this is not
  working. If i replace it with the ipv4 address '10.0.0.2' dns is working
  again. I would expect that the qemu emulated dhcp server responds either an
  ipv4 configuration that is working or its dns server/forwarder listens on the
  ipv6 address returned by the emulated dhcp server.

  I used latest qemu from git (
  b0bcc86d2a87456f5a276f941dc775b265b309cf) and used the following
  commands:

  $ ./qemu-system-x86_64 -enable-kvm -M pc -device virtio-rng-pci -device
  virtio-net-pci,netdev=user.0 -drive file=buildenv.img,if=virtio,bus=1,unit=0
  -no-reboot -netdev 
user,id=user.0,hostfwd=tcp::5022-:22,hostfwd=tcp::7587-:7588
  -m 1024 -usb -nographic -smp 4

  buildenv.img is a debian jessie amd64 installation.

  Inside qemu the network is configured to use dhcp:

  $ cat /etc/network/interfaces
  allow-hotplug eth0
  iface eth0 inet dhcp

  $ ifconfig eth0
  eth0      Link encap:Ethernet  HWaddr 52:54:00:12:34:56
            inet addr:10.0.2.15  Bcast:10.0.2.255  Mask:255.255.255.0
            inet6 addr: fe80::5054:ff:fe12:3456/64 Scope:Link
            inet6 addr: fec0::5054:ff:fe12:3456/64 Scope:Site
            UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
            RX packets:10 errors:0 dropped:0 overruns:0 frame:0
            TX packets:28 errors:0 dropped:0 overruns:0 carrier:0
            collisions:0 txqueuelen:1000
            RX bytes:3215 (3.1 KiB)  TX bytes:3638 (3.5 KiB)

  $ cat /etc/resolv.conf
  nameserver fec0::3

  $ arp google.de
  google.de: Host name lookup failure

  $ strace -f arp google.de
  ...
  socket(PF_INET6, SOCK_DGRAM|SOCK_NONBLOCK, IPPROTO_IP) = 4
  connect(4, {sa_family=AF_INET6, sin6_port=htons(53), inet_pton(AF_INET6, 
"fec0::3", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = 0
  poll([{fd=4, events=POLLOUT}], 1, 0)    = 1 ([{fd=4, revents=POLLOUT}])
  sendto(4, "\17\320\1\0\0\1\0\0\0\0\0\0\6google\2de\0\0\1\0\1", 27, 
MSG_NOSIGNAL, NULL, 0) = 27
  poll([{fd=4, events=POLLIN}], 1, 5000)  = 0 (Timeout)
  poll([{fd=4, events=POLLOUT}], 1, 0)    = 1 ([{fd=4, revents=POLLOUT}])
  sendto(4, "\17\320\1\0\0\1\0\0\0\0\0\0\6google\2de\0\0\1\0\1", 27, 
MSG_NOSIGNAL, NULL, 0) = 27
  poll([{fd=4, events=POLLIN}], 1, 5000)  = 0 (Timeout)
  close(4)                                = 0
  ...

  $ echo nameserver 10.0.0.2 > /etc/resolv.conf

  $ arp google.de
  google.de (216.58.208.35) -- no entry

  Note: I reported this bug also to debian: https://bugs.debian.org/cgi-
  bin/bugreport.cgi?bug=844566

  Regards,

    Manuel

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1642421/+subscriptions



reply via email to

[Prev in Thread] Current Thread [Next in Thread]