public inbox for passt-user@passt.top
 help / color / mirror / Atom feed
From: baleti <baleti3266@gmail.com>
To: David Gibson <david@gibson.dropbear.id.au>
Cc: passt-user@passt.top
Subject: Re: port forward from guest to host- inquiry
Date: Tue, 28 Oct 2025 00:13:24 +0000	[thread overview]
Message-ID: <e024fd55-32a4-4cba-bfe9-955f0ae460e9@gmail.com> (raw)
In-Reply-To: <aP7O_CjWPSSMzIOv@zatzit>

Thanks David for writing down these options and confirming that:
 > At present there isn't a way to expose only certain host ports to the
guest.

That was my main objective as vm guest is not trusted and I didn't want 
to expose other services listening on the host. Also thanks for 
confirming that with --no-map-gw option host network interfaces get 
properly isolated from the guest.

On 10/27/25 1:46 AM, David Gibson wrote:
> On Sat, Oct 25, 2025 at 10:23:07PM +0100, baleti wrote:
>> Thanks for explaining David, that makes sense. I've added --no-map-gw to my
>> setup and ended up forwarding diod using vsock and socat. Sorry are you
>> saying that guest still has access to services listening on the host? Is
>> there a way to block it and any other private IPs? I was trying to isolate
>> the virtual machine as much as possible except for selected
>> services.
> Ah, ok.  --no-map-gw disables the defaults I was mentioning.  So with
> that there's no (direct) way for the guest to reach services on the
> host; or at least not via the address which is shared with the guest.
> If the services are listening on multiple (non loopback) host
> addresses, the guest can reach them via one of the other addresses.
>
> At present there isn't a way to expose only certain host ports to the
> guest.  We'd like to have the flexibility to do that (amongst many
> other things), and we're working towards it. but it requires quite a
> bit of infrastructure work.
>
> In the meantime you have a few options:
>
>   1) Remove --no-map-gw, and use the default NAT.  This does expose the
>      host slightly, in the sense that the guest can connect to it in a
>      way that appears to come from loopback, so that might not meat
>      your isolation requirement.
>
>   2) Use:
>   	--map-guest-addr XXXX --map-host-loopback none
> 	(or equivalently --map-guest-addr XXXX --no-map-gw)
>      This will let the guest access the host at address XXXX.  In a
>      sense this does expose the host more than your current setup, but
>      since connections via this NAT won't appear to come from loopback
>      on the host (they'll appear to come from the host's public IP),
>      you're not really exposing the host to the VM any more than it's
>      already exposed to the outside world.
>
> [Arguably, this should be the default behaviour; it's not for
>   historical reasons]
>
>   3) Change the guest address away from the default (which is the same
>       as the host's address) with:
> 	-a YYYY --no-map-gw
>      Now the guest will think it has address YYYY, and can access host
>      services via the host's usual public address.  Again, those
>      connections from the VM won't appear to come from loopback, so
>      it's not exposing the host to the VM any more than it's exposed to
>      the world.
>
>> On 10/25/25 9:14 AM, David Gibson wrote:
>>> On Sat, Oct 25, 2025 at 01:02:36AM +0100, baleti wrote:
>>>> does anyone know if passt can port forward from guest to host? I'm trying to
>>>> make a diod server available on the guest?
>>> I'm assuming you're using passt (guest is a VM) not pasta (guest is a
>>> container).
>>>
>>>> on host I run a service listening on 9564:
>>>>    ~ $ diod --foreground --listen 0.0.0.0:9564 --export
>>>> /home/user/autocad-ballet --no-auth
>>>>
>>>> is there a way for passt to make it available on the guest?
>>> Yes, but you don't need an explicit forward for this - passt's default
>>> behaviour is to let the guest access things outside, including the
>>> host.  The complication is that, by default, the guest gets the same
>>> address as the host, so the guest can't access the host using it's
>>> normal address.
>>>
>>> However, also by default, we remap the default gateway address to the
>>> host.  That is, if on the guest you connect to the address of the
>>> default gateway, port 9564, that will actually connect to diod on the
>>> host.
>>>
>>> The details of this can be adjusted with the --map-host-loopback,
>>> --map-guest-addr and -no-map-gw options.
>>>
>> _______________________________________________
>> user mailing list -- passt-user@passt.top
>> To unsubscribe send an email to passt-user-leave@passt.top

      reply	other threads:[~2025-10-28  0:13 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-10-25  0:02 baleti
2025-10-25  8:14 ` David Gibson
2025-10-25 21:23   ` baleti
2025-10-27  1:46     ` David Gibson
2025-10-28  0:13       ` baleti [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=e024fd55-32a4-4cba-bfe9-955f0ae460e9@gmail.com \
    --to=baleti3266@gmail.com \
    --cc=david@gibson.dropbear.id.au \
    --cc=passt-user@passt.top \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for IMAP folder(s).