public inbox for passt-user@passt.top
 help / color / mirror / Atom feed
From: David Gibson <david@gibson.dropbear.id.au>
To: Stefano Brivio <sbrivio@redhat.com>
Cc: Ben Woods <pasta@ben.woods.am>, passt-user@passt.top
Subject: Re: pasta behaviour with multiple NICs
Date: Mon, 28 Apr 2025 11:02:36 +0700	[thread overview]
Message-ID: <aA793La4Ot5tbBfm@zatzit> (raw)
In-Reply-To: <174557100872.151934.16258096252005211440@maja>

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

On Fri, Apr 25, 2025 at 10:49:56AM +0200, Stefano Brivio via user wrote:
> Date: Fri, 25 Apr 2025 10:49:56 +0200
> From: Stefano Brivio <sbrivio@redhat.com>
> To: Ben Woods <pasta@ben.woods.am>
> CC: passt-user@passt.top
> Subject: Re: pasta behaviour with multiple NICs
> Organization: Red Hat
> List-Id: "For passt users: support, questions and answers"
>  <passt-user.passt.top>
> 
> On Fri, 25 Apr 2025 15:49:16 +0800
> "Ben Woods" <pasta@ben.woods.am> wrote:
> 
> > Hi Stefano,
> > 
> > Thanks for the quick response.
> > 
> > I think my questions came from a misunderstanding of how pasta works.
> > I was thinking about the container network namespace directly sending
> > the traffic out the host physical interface based on the IP/gateway
> > inside the netns.
> > 
> > Reading your answer, I think I understand now that in fact the
> > network connection from inside the container netns is connected via a
> > socket to pasta running on the host…
> 
> Not even via a socket, it's a tap (tuntap) file descriptor:
> 
>   https://passt.top/#pasta-pack-a-subtle-tap-abstraction
> 
> with all the traffic encapsulated in Ethernet-like frames (Layer-2).
> 
> We also have a "tap bypass" path but that's for loopback traffic only.
> 
> > and then pasta simply creates
> > the TCP or UDP socket connection out the host physical interface
> > using the host network stack. Is that correct?
> 
> This part is correct, yes.
> 
> > That then explains why you’re saying that pasta itself is not
> > choosing the egress interface, route or source IP… it’s the kernel
> > that does that when pasta creates the TCP/UDP connection. Hence the
> > traffic egress interface, source IP and next-hop should be the same
> > as if it originated from a process on the host.
> 
> Right.
> 
> > It does make we wonder what’s the purpose of assigning an
> > IP/subnet/gateway inside the container netns at all - if all
> > connections are sent via the socket and host pasta process then
> > creates the actual connection?
> 
> Because it makes things transparent (again, by default) which is an
> advantage for many applications, for example service meshes, or
> any transport / application protocol that might embed IP addresses in
> the protocol itself (think of SIP for example).

I think reasonable people can disagree on exactly what "transparent"
should mean in this context.  Mostly we try to make networking inside
the container look as much like networking on the host does as
possible.  Of course, we can't make it 100% alike, so sometimes "as
close as possible" is more confusing rather than less.

I have ideas for how to rework this in ways that will be both more
flexible and (I think) less confusing.  However, because there's not a
lot of functional difference, it's been a pretty low priority to
implement.  I hope we can get to it some time, but we don't really
have any idea when.


> And, albeit with some drawbacks, in general it might also be more
> intuitive for users.
> 

> _______________________________________________
> 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 --]

      parent reply	other threads:[~2025-04-28 12:59 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <38893f85-ca3d-4e1e-929d-236df89ab9f6@app.fastmail.com>
2025-04-25  7:26 ` pasta behaviour with multiple NICs Stefano Brivio
2025-04-25  7:49   ` Ben Woods
2025-04-25  8:49     ` Stefano Brivio
2025-04-25  7:03       ` Ben Woods
     [not found]     ` <174557100872.151934.16258096252005211440@maja>
2025-04-28  4:02       ` David Gibson [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=aA793La4Ot5tbBfm@zatzit \
    --to=david@gibson.dropbear.id.au \
    --cc=passt-user@passt.top \
    --cc=pasta@ben.woods.am \
    --cc=sbrivio@redhat.com \
    /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).