qemu-devel
[Top][All Lists]
Advanced

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

[Bug 1628971] Re: -netdev user: guestfwd doesn't work


From: Thomas Huth
Subject: [Bug 1628971] Re: -netdev user: guestfwd doesn't work
Date: Thu, 12 Nov 2020 13:12:49 -0000

** Changed in: qemu
       Status: New => Invalid

-- 
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:
  Invalid

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.

  pas@strange:~/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



reply via email to

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