All of lore.kernel.org
 help / color / mirror / Atom feed
From: Philipp Stanner <stanner@posteo.de>
To: David Laight <David.Laight@ACULAB.COM>,
	"'o.evistel@free.fr'" <o.evistel@free.fr>,
	Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Cc: linux-sctp <linux-sctp@vger.kernel.org>,
	'Andreas Fink' <afink@list.fink.org>
Subject: Re: Linux SCTP multihoming question
Date: Sat, 10 Feb 2024 17:48:44 +0000	[thread overview]
Message-ID: <04c483f34daaebb95d8de56e8e6a49a473c04fe4.camel@posteo.de> (raw)
In-Reply-To: <557a01dfcfd440e6b1b1b1762839d033@AcuMS.aculab.com>

Am Samstag, dem 10.02.2024 um 17:34 +0000 schrieb David Laight:
> From: Philipp Stanner
> > Sent: 10 February 2024 17:09
> > 
> > Am Samstag, dem 10.02.2024 um 17:03 +0000 schrieb David Laight:
> > > From: o.evistel@free.fr
> > > > Sent: 09 February 2024 10:06
> > > > 
> > > > I am using linux-sctp as transport for SIGTRAN M3UA on RHEL 8.4
> > > > with
> > > > multihoming (sctp_bindx(), sctp_connectx() API functions).
> > > > I would like to know, after association setup, if it is
> > > > possible to
> > > > instruct SCTP to use a specific local address from the list of
> > > > bound
> > > > addresses to reach the peer.
> > > 
> > > Unlikely in the extreme.
> > > 
> > > If there are 'n' bound local addresses and 'm' remote addresses
> > > (IIRC from the INIT_ACK - but they come from the far end) then
> > > Linux only verifies a route to each local address and picks an
> > > appropriate local address for each one.
> > > So it only sends heartbeats to 'm' addresses, not on 'n * m'
> > > address pairs.
> > > 
> > > So if anything of this nature did exist it would limit the
> > > remote addresses used, not the local ones.
> > 
> > I've been told once that using the socket option SO_BINDTODEVICE
> > should
> > serve the trick, i.e., it should provoke Linux into choosing the
> > picked
> > device's IP addr as the source IP addr.
> > 
> > I've never tested / verified that, though.
> > I'm also not sure if it would have other negative consequences,
> > such as
> > limiting the reachability through non-bound devices.
> 
> But won't that defeat the entire point of SCTP multihoming?

I guess it defeats the philosophy of the OS with its routing table
being solely responsible for choosing a source address.
I don't see how SCTP would be affected by that, though. SCTP doesn't
demand a certain number of interfaces being available, nor does it make
statements about how the networks behind the interfaces might or might
not be interconnected.

> You need two interfaces in different subnets that use entirely
> separate IP networks to connect to the two addresses the remote
> system gives you.
> (There are really only ever two addresses for each system.)

I assume you're coming from the perspective of a user where SCTP is
utilized with completely redundant and separated networks for
redundancy.
I, however, have only used the protocol in the normal boring Internet –
and there it's definitely possible to reach N endpoints from just 1
outgoing interface. All the endpoints are connected to the Internet,
after all, so the routers will ultimately direct your packages to the
target addr.

> 
> I don't know what the standards people were smoking, but the
> default 'send all my IP addresses to the far end' is so broken.

How else could you implement it?
Only alternative I can think of would be to have some sort of multi-
homing DNS that provides you with several addresses.

P.

> Requiring the application to know which addresses are 'local'
> (typically 192.178.x.x and 10.x.x.x) and pretty much must never
> be sent to a remote system (where they can easily mean something
> else) is just wrong, it ought to be a property of the protocol stack.
> 
> Never mind that the fact that API calls like bindx() were originally
> implemented using socket options being embedded in the standard.
> 
> 	David
> 
> -
> Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes,
> MK1 1PT, UK
> Registration No: 1397386 (Wales)


  reply	other threads:[~2024-02-10 17:48 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <6f6f11b5c30bce3d6e77d719ef75112dee75250d.profile@marceloleitner.u.sourceforge.net>
2022-07-07 13:39 ` Linux SCTP associations failure handlig Marcelo Ricardo Leitner
2022-07-08 14:46   ` o.evistel
2022-07-13 12:58   ` Linux SCTP performance question o.evistel
2022-07-15 18:48     ` Marcelo Ricardo Leitner
2022-07-18 11:54       ` o.evistel
2022-07-16 12:13     ` David Laight
2022-07-18 14:09       ` o.evistel
2022-07-18 14:44         ` David Laight
2022-07-18 14:46         ` David Laight
2024-02-09 10:05     ` Linux SCTP multihoming question o.evistel
2024-02-09 10:10       ` Andreas Fink
2024-02-09 11:01         ` o.evistel
     [not found]           ` <483A5123-AA38-48EC-8158-120DFFC1E5D8@list.fink.org>
2024-02-09 12:03             ` o.evistel
2024-02-10 17:03       ` David Laight
2024-02-10 17:09         ` Philipp Stanner
2024-02-10 17:34           ` David Laight
2024-02-10 17:48             ` Philipp Stanner [this message]
2024-02-10 18:02               ` David Laight
2024-02-10 18:37                 ` Philipp Stanner

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=04c483f34daaebb95d8de56e8e6a49a473c04fe4.camel@posteo.de \
    --to=stanner@posteo.de \
    --cc=David.Laight@ACULAB.COM \
    --cc=afink@list.fink.org \
    --cc=linux-sctp@vger.kernel.org \
    --cc=marcelo.leitner@gmail.com \
    --cc=o.evistel@free.fr \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.