Re: [radext] Are there RFCs for "Proxy path control" in RADIUS?

Alan DeKok <aland@deployingradius.com> Thu, 07 April 2022 15:19 UTC

Return-Path: <aland@deployingradius.com>
X-Original-To: radext@ietfa.amsl.com
Delivered-To: radext@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0675E3A07FD for <radext@ietfa.amsl.com>; Thu, 7 Apr 2022 08:19:34 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.909
X-Spam-Level:
X-Spam-Status: No, score=-6.909 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ubj9kHNdlI53 for <radext@ietfa.amsl.com>; Thu, 7 Apr 2022 08:19:29 -0700 (PDT)
Received: from mail.networkradius.com (mail.networkradius.com [62.210.147.122]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 4AC8F3A0B28 for <radext@ietf.org>; Thu, 7 Apr 2022 08:19:28 -0700 (PDT)
Received: from smtpclient.apple (unknown [75.98.136.130]) by mail.networkradius.com (Postfix) with ESMTPSA id 64EEA150; Thu, 7 Apr 2022 15:19:25 +0000 (UTC)
Authentication-Results: NetworkRADIUS; dmarc=none (p=none dis=none) header.from=deployingradius.com
Content-Type: text/plain; charset="us-ascii"
Mime-Version: 1.0 (Mac OS X Mail 15.0 \(3693.60.0.1.1\))
From: Alan DeKok <aland@deployingradius.com>
In-Reply-To: <7e818ffb-4dfd-5dc0-53ba-2003b486e4bc@dfn.de>
Date: Thu, 07 Apr 2022 11:19:23 -0400
Cc: radext@ietf.org
Content-Transfer-Encoding: quoted-printable
Message-Id: <362CF007-B99D-4F2B-A884-6BBBC290FAA9@deployingradius.com>
References: <7e818ffb-4dfd-5dc0-53ba-2003b486e4bc@dfn.de>
To: Jan-Frederik Rieckers <rieckers@dfn.de>
X-Mailer: Apple Mail (2.3693.60.0.1.1)
Archived-At: <https://mailarchive.ietf.org/arch/msg/radext/TjNkWji2-zQZBg_jMy5ThRTxaJA>
Subject: Re: [radext] Are there RFCs for "Proxy path control" in RADIUS?
X-BeenThere: radext@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: RADIUS EXTensions working group discussion list <radext.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/radext>, <mailto:radext-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/radext/>
List-Post: <mailto:radext@ietf.org>
List-Help: <mailto:radext-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/radext>, <mailto:radext-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 07 Apr 2022 15:19:34 -0000

On Apr 7, 2022, at 10:41 AM, Jan-Frederik Rieckers <rieckers@dfn.de> wrote:
> Are there RFCs which deal with controlling the proxy path of a RADIUS request?

  RADIUS is entirely "hop by hop", and has no concept of overall paths.

  There has been discussion about this over the years, but no concrete solutions.

> My use case is the following:
> 
> A roaming operator (e.g. an eduroam NRO) operates two redundant but independent RADIUS proxies (meaning they don't have an interconnection on the management/control plane). Their servers are connected to a number of other entities (RADIUS clients and servers).
> In the normal case, all proxy servers have a connection to all other entities.
> 
> The error case is now the following:
> Entity B loses connection to proxy server 1 (e.g. through a fiber cut), but is still connected to proxy server 2.
> If a login request for B comes from entity C to the proxy server 1, the server will have no connection and either reject or drop the reqest.
> 
> What I want to send back is a temporary error, meaning "I can't reach the server for this realm in the moment, try a different proxy.", which in this case would lead to entity C trying the authentication over the second server.

  That would be very useful.

> (The problem description is a bit short, if wanted I can elaborate further, but I didn't want to put a wall of text here)

  This is a common problem in proxying.

  A proxy can send packets from a client to destinations A and B.  If B is down, then the proxy sends packets to B, never gets a response from B, and therefore never replies to the client.

  So what can the client do?  It has no idea that routing is taking place.  All it knows is that it sends packets to the proxy.  Some packets get replies, and others don't get replies.

  From the clients point of view, it's not even sure if the proxy is up!  i.e. Let's say that for 10 minutes, the client only sends packets which are proxied to B, and never to A.  The client never sees a response from the proxy,  So it will think that the proxy is dead.  And will likely fail over to another proxy.

  The client *could* send packets to the proxy which would get routed to A, but the client doesn't know it can do that.  Because it has no idea about the overall routing of packets, or the mapping between realms and home servers.

> Is there a RADIUS extension that does that?
> My short research did not reveal anything that could help me here.
> I'd be happy about any pointers to existing standards (and if there is nothing of the sort yet, also about feedback if this is something that could be put in a draft)

  There is nothing.

  You're looking for a "hop by hop" notification that the destination is still alive.  This is the Status-Server packet, documented in RFC 5997.


  You're also looking for a RADIUS routing protocol, which has to be run on the proxies.

  i.e. each proxy has a list of destination realms, and which home servers can be used for those realms.   This information could be exchanged periodically.

  That routing protocol is likely independent of RADIUS, and could be done via some other means.  The systems have to exchange lists of which destinations are available, and how they can be reached.  This information has to flow through all of the proxies, so that they are all aware of the routes.

  This routing has traditionally been done manually, by system administrators.  Since much of the interconnection depends on legal / business issues, a routing protocol doesn't make that interconnection any easier.


  Alan DeKok.