[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [Bug 1628971] [NEW] -netdev user: guestfwd doesn't work
From: |
Pas |
Subject: |
[Qemu-devel] [Bug 1628971] [NEW] -netdev user: guestfwd doesn't work |
Date: |
Thu, 29 Sep 2016 15:22:56 -0000 |
Public bug reported:
Hello!
QEMU emulator version 2.6.1 (Debian 1:2.6.1+dfsg-0ubuntu4), Copyright
(c) 2003-2008 Fabrice Bellard
The IP address 192.168.1.46 is assigned to eth0.
qemu-system-x86_64 \
-no-hpet \
-nodefconfig \
-machine accel=kvm \
-cpu host \
-smp 2 \
-drive if=virtio,file=yakkety-server-cloudimg-amd64.img \
-device virtio-net-pci,netdev=net0 \
-netdev
'user,id=net0,hostfwd=tcp::2222-:22,guestfwd=tcp:1.2.3.4:1234-cmd:nc
192.168.1.46 8842' \
-m 1024 \
-initrd yakkety-server-cloudimg-amd64-initrd-generic \
-kernel yakkety-server-cloudimg-amd64-vmlinuz-generic \
-append 'root=/dev/vda1 modprobe.blacklist=floppy systemd.log_level=debug
systemd.journald.forward_to_console=1'
Without the guestfwd=... part everything works nicely. With it I get the
following message.
qemu-system-x86_64: -netdev
user,id=net0,hostfwd=tcp::2222-:22,guestfwd=tcp:1.2.3.4:1234-cmd:nc
192.168.1.46 8842: conflicting/invalid host:port in guest forwarding rule
'tcp:1.2.3.4:1234-cmd:nc 192.168.1.46 8842'
qemu-system-x86_64: -netdev
user,id=net0,hostfwd=tcp::2222-:22,guestfwd=tcp:1.2.3.4:1234-cmd:nc
192.168.1.46 8842: Device 'user' could not be initialized
But I just compiled c640f2849ee8775fe1bbd7a2772610aa77816f9f, and I get the
same behavior.
address@hidden:~/qemu/x86_64-softmmu$ ./qemu-system-x86_64 -net
'user,guestfwd=tcp:1.2.3.4:1234-cmd:nc 192.168.1.48 80'
qemu-system-x86_64: -net user,guestfwd=tcp:1.2.3.4:1234-cmd:nc 192.168.1.48 80:
conflicting/invalid host:port in guest forwarding rule 'tcp:1.2.3.4:1234-cmd:nc
192.168.1.48 80'
qemu-system-x86_64: -net user,guestfwd=tcp:1.2.3.4:1234-cmd:nc 192.168.1.48 80:
Device 'user' could not be initialized
After poking a bit around it seems that this check fails in slirp/slirp.c:
(around line 1074)
if ((guest_addr->s_addr & slirp->vnetwork_mask.s_addr) !=
slirp->vnetwork_addr.s_addr ||
guest_addr->s_addr == slirp->vhost_addr.s_addr ||
guest_addr->s_addr == slirp->vnameserver_addr.s_addr) {
return -1;
}
Because guest_addr, and slirp has equivalent s_addr values.
x86_64-softmmu/qemu-system-x86_64 -net
'user,net=10.0.2.0/24,host=10.0.2.2,guestfwd=tcp:12.0.0.2:80-cmd:echo
ok'
guest_addr: 12.0.0.2
vnetwork_mask: 12.0.0.2
vhost_addr: 12.0.0.2
vnameserver_addr: 12.0.0.2
guest_addr & mask: 12.0.0.2
Thanks in advance for looking into this!
** Affects: qemu
Importance: Undecided
Status: New
** Summary changed:
- -netdev user: guestfwd doesn't work (and the error message is useless)
+ -netdev user: guestfwd doesn't work
--
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1628971
Title:
-netdev user: guestfwd doesn't work
Status in QEMU:
New
Bug description:
Hello!
QEMU emulator version 2.6.1 (Debian 1:2.6.1+dfsg-0ubuntu4), Copyright
(c) 2003-2008 Fabrice Bellard
The IP address 192.168.1.46 is assigned to eth0.
qemu-system-x86_64 \
-no-hpet \
-nodefconfig \
-machine accel=kvm \
-cpu host \
-smp 2 \
-drive if=virtio,file=yakkety-server-cloudimg-amd64.img \
-device virtio-net-pci,netdev=net0 \
-netdev
'user,id=net0,hostfwd=tcp::2222-:22,guestfwd=tcp:1.2.3.4:1234-cmd:nc
192.168.1.46 8842' \
-m 1024 \
-initrd yakkety-server-cloudimg-amd64-initrd-generic \
-kernel yakkety-server-cloudimg-amd64-vmlinuz-generic \
-append 'root=/dev/vda1 modprobe.blacklist=floppy systemd.log_level=debug
systemd.journald.forward_to_console=1'
Without the guestfwd=... part everything works nicely. With it I get
the following message.
qemu-system-x86_64: -netdev
user,id=net0,hostfwd=tcp::2222-:22,guestfwd=tcp:1.2.3.4:1234-cmd:nc
192.168.1.46 8842: conflicting/invalid host:port in guest forwarding rule
'tcp:1.2.3.4:1234-cmd:nc 192.168.1.46 8842'
qemu-system-x86_64: -netdev
user,id=net0,hostfwd=tcp::2222-:22,guestfwd=tcp:1.2.3.4:1234-cmd:nc
192.168.1.46 8842: Device 'user' could not be initialized
But I just compiled c640f2849ee8775fe1bbd7a2772610aa77816f9f, and I get the
same behavior.
address@hidden:~/qemu/x86_64-softmmu$ ./qemu-system-x86_64 -net
'user,guestfwd=tcp:1.2.3.4:1234-cmd:nc 192.168.1.48 80'
qemu-system-x86_64: -net user,guestfwd=tcp:1.2.3.4:1234-cmd:nc 192.168.1.48
80: conflicting/invalid host:port in guest forwarding rule
'tcp:1.2.3.4:1234-cmd:nc 192.168.1.48 80'
qemu-system-x86_64: -net user,guestfwd=tcp:1.2.3.4:1234-cmd:nc 192.168.1.48
80: Device 'user' could not be initialized
After poking a bit around it seems that this check fails in slirp/slirp.c:
(around line 1074)
if ((guest_addr->s_addr & slirp->vnetwork_mask.s_addr) !=
slirp->vnetwork_addr.s_addr ||
guest_addr->s_addr == slirp->vhost_addr.s_addr ||
guest_addr->s_addr == slirp->vnameserver_addr.s_addr) {
return -1;
}
Because guest_addr, and slirp has equivalent s_addr values.
x86_64-softmmu/qemu-system-x86_64 -net
'user,net=10.0.2.0/24,host=10.0.2.2,guestfwd=tcp:12.0.0.2:80-cmd:echo
ok'
guest_addr: 12.0.0.2
vnetwork_mask: 12.0.0.2
vhost_addr: 12.0.0.2
vnameserver_addr: 12.0.0.2
guest_addr & mask: 12.0.0.2
Thanks in advance for looking into this!
To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1628971/+subscriptions
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemu-devel] [Bug 1628971] [NEW] -netdev user: guestfwd doesn't work,
Pas <=