public inbox for passt-user@passt.top
 help / color / mirror / Atom feed
From: David Gibson <david@gibson.dropbear.id.au>
To: baleti <baleti3266@gmail.com>
Cc: passt-user@passt.top
Subject: Re: port forward from guest to host- inquiry
Date: Mon, 27 Oct 2025 12:46:36 +1100	[thread overview]
Message-ID: <aP7O_CjWPSSMzIOv@zatzit> (raw)
In-Reply-To: <bf419075-6938-432f-9f74-2ce56e9899a4@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 3939 bytes --]

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

-- 
David Gibson (he or they)	| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you, not the other way
				| around.
http://www.ozlabs.org/~dgibson

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

  reply	other threads:[~2025-10-27  1:46 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 [this message]
2025-10-28  0:13       ` baleti

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=aP7O_CjWPSSMzIOv@zatzit \
    --to=david@gibson.dropbear.id.au \
    --cc=baleti3266@gmail.com \
    --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).