1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
|
permissions: 0.982
register: 0.978
files: 0.974
architecture: 0.970
arm: 0.969
device: 0.969
debug: 0.969
performance: 0.967
semantic: 0.966
assembly: 0.965
graphic: 0.964
user-level: 0.958
kernel: 0.954
socket: 0.953
ppc: 0.952
virtual: 0.952
boot: 0.951
PID: 0.951
network: 0.951
risc-v: 0.945
peripherals: 0.944
mistranslation: 0.939
vnc: 0.935
KVM: 0.922
VMM: 0.915
TCG: 0.915
hypervisor: 0.915
i386: 0.913
x86: 0.891
qemu-system-x86_64: ipv6 and dns is broken with netdev user
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
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
The QEMU project is currently considering to move its bug tracking to another system. For this we need to know which bugs are still valid and which could be closed already. Thus we are setting all older bugs to
"Incomplete" now.
If you still think this bug report here is valid, then please switch the state back to "New" within the next 60 days, otherwise this report will be marked as "Expired". Thank you and sorry for the inconvenience.
[Expired for QEMU because there has been no activity for 60 days.]
|