Re: [OPSAWG] RADIUS Extension, Getting Started

"Massameno, Dan" <dan.massameno@yale.edu> Fri, 10 July 2020 12:08 UTC

Return-Path: <dan.massameno@yale.edu>
X-Original-To: opsawg@ietfa.amsl.com
Delivered-To: opsawg@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A82B83A0BFD; Fri, 10 Jul 2020 05:08:10 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.102
X-Spam-Level:
X-Spam-Status: No, score=-2.102 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=yale.edu
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 Usnd3znpVl_E; Fri, 10 Jul 2020 05:08:07 -0700 (PDT)
Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2130.outbound.protection.outlook.com [40.107.244.130]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 7EA6D3A0BFE; Fri, 10 Jul 2020 05:08:06 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=M+l4piKjyPF87INHFM4O7zmH1zx0s9WONrrHvxPmm82kBD2+rG4fgLyHYANx52TM5QjYBxRcN7tB3Tza/RU061wxvdjWyZObWvepZl0yCkbs+rmW2gLXkcrvwcwSMcIvhykuEcgaV77Op6GlZfRUiIBNYGUrZi88jOoIS5Wn8odWMqLhDNZTDXccp0Pmeh2pskG3B2fPQOTHZia8LPrZXOcqjHNFim8O6BgWpnLy3+cAKoHN98cgMoAThwrQ41O0RuxwL7uNrCq0qwSY3lRhN7U8j+RurtQXwRjhP/4zQ4juazkr19vU7Sd9Jr9CyCmWU7hEDXEU1DvrgWIwlVlnRg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=3XVh174Lpx//YynuLfu2LN0pN6WkpyQZWtCUojfEUqI=; b=P/L2LY3VmZBSiPjI5cXNa4ddsjzBShDMCKtEm1qfgzkbdByUvvXU56NtXKT2YYuqweY5P1Xo7Tqt7xCqDqS3fT9ZJh7VOgnySTlK1KEnWpVvTFRI1IXG/thTH2+jHr9F3LyB7eEd1bLm4sWz/Ter82R10ZY+tdiAD9lwhEC0HFquQNSBOluHY+6KGInGC399I/teDn0B5ZfJHVGZQSBDKJZMOIld3kvjQDRkqNIPNL0o+dyFihW04+HrYNS8W1dJRIS0eUZEMK3BaJhrmSnz+0Ov6j2nTPhz2Nhf8V9Fr0/0rKJ09pBrGaMeDjLdpekLLK1hL06IMrZL0Yc8oQ46gg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=yale.edu; dmarc=pass action=none header.from=yale.edu; dkim=pass header.d=yale.edu; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yale.edu; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=3XVh174Lpx//YynuLfu2LN0pN6WkpyQZWtCUojfEUqI=; b=BSGFL5gIwYsauAVudeWzsUEf/2eLht+HbBqJUoRBKccdzURQPlo/nqg1AJa2lGLSWnyCU4YzTa4XunKHhAYQKXhTjfaSCeN61VCXpxIkV2wwCiviowcf1Ed20Kf+pB4H+pieaKc6HXDuDyn9uGnMTJtlUL5hl07VJZ0UWEHMkLQ=
Received: from MN2PR08MB6223.namprd08.prod.outlook.com (2603:10b6:208:1a1::21) by MN2PR08MB6208.namprd08.prod.outlook.com (2603:10b6:208:1a7::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3174.22; Fri, 10 Jul 2020 12:08:05 +0000
Received: from MN2PR08MB6223.namprd08.prod.outlook.com ([fe80::ecc3:9854:f30f:fc9]) by MN2PR08MB6223.namprd08.prod.outlook.com ([fe80::ecc3:9854:f30f:fc9%3]) with mapi id 15.20.3174.022; Fri, 10 Jul 2020 12:08:05 +0000
From: "Massameno, Dan" <dan.massameno@yale.edu>
To: Alan DeKok <aland@deployingradius.com>
CC: "opsawg@ietf.org" <opsawg@ietf.org>, "radext@ietf.org" <radext@ietf.org>
Thread-Topic: [OPSAWG] RADIUS Extension, Getting Started
Thread-Index: AdZEnvKQAaU5dfBlRUu7icTII+cjdABGQyjQABvIqNAAA7YgEABP5jcAAFBdPqAACl9JAACH358gAPvKPlAAALjLgACC/lEAAKs6acAACdZ8gAC3tN1A
Date: Fri, 10 Jul 2020 12:08:05 +0000
Message-ID: <MN2PR08MB62230BDA9D5B4D78FEA5ADD790650@MN2PR08MB6223.namprd08.prod.outlook.com>
References: <BN7PR08MB44514D8E033B685D8BA64F83909A0@BN7PR08MB4451.namprd08.prod.outlook.com> <2064d9a1a5d54aa1899664f1f55d59aa@cert.org> <MN2PR11MB4366092A6A09FCA16421216BB5980@MN2PR11MB4366.namprd11.prod.outlook.com> <BN7PR08MB44513A5EF09B09171A852C1B90980@BN7PR08MB4451.namprd08.prod.outlook.com> <20200621024216.GF11992@kduck.mit.edu> <MN2PR11MB4366AD732CED678128212133B5970@MN2PR11MB4366.namprd11.prod.outlook.com> <CAHw9_i+a=Wi0brygvrweDO5883+teDR9Femi7aEMbF1MQURAtg@mail.gmail.com> <BN7PR08MB4451E5A877FC5DCDBACB42FC90920@BN7PR08MB4451.namprd08.prod.outlook.com> <BN7PR08MB4451E395E39AF0326A6819F7906F0@BN7PR08MB4451.namprd08.prod.outlook.com> <CE88D9AF-F9DC-485C-B47C-20DCB55F0181@cisco.com> <87adbd01-a100-7192-5b0d-fdc180ac2f5d@restena.lu> <MN2PR08MB62233158A0D7A7EA1B35AE9690690@MN2PR08MB6223.namprd08.prod.outlook.com> <1D54DD45-8F8A-4691-87C2-DC1BB5BE5C9F@deployingradius.com>
In-Reply-To: <1D54DD45-8F8A-4691-87C2-DC1BB5BE5C9F@deployingradius.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: deployingradius.com; dkim=none (message not signed) header.d=none;deployingradius.com; dmarc=none action=none header.from=yale.edu;
x-originating-ip: [107.3.32.193]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 245b4541-f549-4e49-1c95-08d824c9e717
x-ms-traffictypediagnostic: MN2PR08MB6208:
x-microsoft-antispam-prvs: <MN2PR08MB6208A41A66D37DC6484CA61590650@MN2PR08MB6208.namprd08.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: rFEspuBSxbwQ8uI4PrWiZEVKBqgWetjbsRrSemAel5L5BVP9aIAkAaDzuXUIqP+1AUymXlxLbmOh6Ap3sbasbUJ5ARzvjfzML2ekWbtUjCk5rx65/nwr8MY/kNE4ZW4SE5d2RdP0RmYHU5OgHyYX/vHBscTqEqOjzrW8Rxya1AtxOkNLramHyQhRtBDOU9mcPHHrkd7faIsV8B7vqhTreoW/w9D8AKEMjI+KWrl7Ik7zw/AXk7wNBJfTw9EIy+vIAJg/Fymsz0vpyY1rUxneveyu0oB5pZds1/Hq00+hQBJqPU4g3ByP4f/8oCDhbjeA2gcBKpyQYQynoYvH66ftT6SS/NIaSfut5ca4wKVdlx4Eh0Z2eVolp9jNQB+RXH8vPc2DSy1Y4bEy1iu6ZE6G6Q==
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR08MB6223.namprd08.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(136003)(346002)(366004)(376002)(396003)(39860400002)(33656002)(6506007)(966005)(55016002)(26005)(66946007)(478600001)(9686003)(71200400001)(45080400002)(786003)(8936002)(76116006)(66556008)(53546011)(316002)(66446008)(64756008)(75432002)(66476007)(4326008)(30864003)(186003)(83380400001)(5660300002)(2906002)(86362001)(54906003)(6916009)(8676002)(52536014)(7696005); DIR:OUT; SFP:1102;
x-ms-exchange-antispam-messagedata: FrnEICO0sUOFxMocmHqHJqxm2ppa8/QOz8i1v3NKUqCP2UFWB5veDrlPyoDzOfoUjIvasCDRH7XPWmaTYFzffs1+ZfNfnDxZlj8Up+/7pbmY89l3w7zLCFpLBFbuki3tUP0BEB2Ri8QNLyPyGE+WA0Z+yYXdy0xUju5xZBrg8I9J9ye3XkcwuLGgcbE18LTqZPnpuFK9ofgIh3qodmvMMQsJTc2cToiXC8Umx35YQ9ZwcXkSzPdK9FhJtk7htt2SA0izOC3zhYC4uHxaJCJe3oPdYnHSbMK2K9J8KoIo5af4yUnLD0d5fnurQaWu2SDeqAGSUWmii4asXq0PQImTWYTr+jNZnXlDN5CKra0QAMfgJhMHT2N/ALXJ605Mv46No8nLj3LoilxetL+U416AWSpdfdc6pewXRXgpdBls1EpPfEFMdXR2G/It3ZahYA2JTL/ZKvBpcN4RjrXO7N0AJprhbQRG2YHgjclzrdL57ug=
x-ms-exchange-transport-forked: True
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: yale.edu
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: MN2PR08MB6223.namprd08.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 245b4541-f549-4e49-1c95-08d824c9e717
X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Jul 2020 12:08:05.4514 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: dd8cbebb-2139-4df8-b411-4e3e87abeb5c
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: vQwmIaBY6fqkWJs7lcVRm8+oyeDSRhUIl3ztv7EnEXenKTva3KDeTiCjlbogQb/Pnh96wIVBpjLKrik+Nt0HAg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR08MB6208
Archived-At: <https://mailarchive.ietf.org/arch/msg/opsawg/k1gF1dlczBKbxSLfuoreMQ3hSZ8>
Subject: Re: [OPSAWG] RADIUS Extension, Getting Started
X-BeenThere: opsawg@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: OPSA Working Group Mail List <opsawg.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/opsawg>, <mailto:opsawg-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/opsawg/>
List-Post: <mailto:opsawg@ietf.org>
List-Help: <mailto:opsawg-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/opsawg>, <mailto:opsawg-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 10 Jul 2020 12:08:11 -0000

Alan,
Thank you for your thorough review.  I am completely new to the IETF process (I don't even know what a "nit" is) and I'm looking forward to the process.

I did want to dive into one of the last comments you made.  

        Even if the various nits and and issues above were fixed, this proposal would have serious security issues.  Even 
        if those security issues were addressed, I believe that load balancing is simply not appropriate for 
        the NAS.  Even if it was appropriate for the NAS, the vendors have spoken: NAS implementations 
        are simple, and server implementations are complex.
        As such, load balancing more properly belongs in the server.

If I have N number of RADIUS servers, how are the servers supposed to load balance if the load balancing function "belongs in the server"?  Won't the NAS need to know about all the RADIUS servers?  If yes, how does it decided on which one to user for any one particular session?

My experience with Cisco devices indicates that if multiple RADIUS servers are listed it simply uses the first one exclusively until it fails.  So, there is failover, but no load balancing.  The list of RADIUS servers are also statically configured via CLI, which is cumbersome when there is a large fleet of devices to configure.  These two overly sophomoric features were the ones I was endeavoring to fix.

--Dan 

-----Original Message-----
From: Alan DeKok <aland@deployingradius.com> 
Sent: Monday, July 6, 2020 16:16
To: Massameno, Dan <dan.massameno@yale.edu>
Cc: opsawg@ietf.org; radext@ietf.org; OpsAWG-Chairs <opsawg-chairs@ietf.org>; Benjamin Kaduk <kaduk@mit.edu>; radext-chairs@ietf.org
Subject: Re: [OPSAWG] RADIUS Extension, Getting Started

On Jul 6, 2020, at 11:40 AM, Massameno, Dan <dan.massameno@yale.edu> wrote:
> 
> Dear Ops and Management Area WG,
> 
> There have been a number of great suggestions on where to post this document (Thanks Stefan!).   I'm now emailing opsawg@ietf.org and cc'ing radext@ietf.org.  
> 
> The draft is posted here... https://nam05.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftools.ietf.org%2Fhtml%2Fdraft-massameno-radius-lb-00&amp;data=02%7C01%7Cdan.massameno%40yale.edu%7C6e11e17859e34020f10408d821e9727e%7Cdd8cbebb21394df8b4114e3e87abeb5c%7C0%7C0%7C637296633820432892&amp;sdata=diYmvpvWJyIfYY%2FCerbLRHgniQbbkgp%2BWxoLm9h9k5c%3D&amp;reserved=0
> 
> Do I need an official IETF sponsor?  Would it help to try and get a vendor interested in implementing the protocol?  Cisco is our primary vendor at Yale University.  I was wondering if there is anyone on either of these working groups that communicates with Cisco people on a regular basis?

  There are lots of Cisco people.  I'm sure some of those people have opinions.

  There are a few things ongoing here.  The RADEXT WG is still alive, but inactive.  There is a still an open discussion in the WG about previous documents which addressed shortcomings in the base RADIUS protocol.  The polite version is that the long-term RADEXT participants supported one draft.  Many people who had never been involved with RADEXT supported a competing draft.  There was never any resolution.  The RADEXT WG was left in limbo.

  I'll avoid the subject of the best place for this draft.

  Overall, I would oppose this draft.  For the simple reason that brains belong in the RADIUS server, not in the NAS.  NAS vendors haven't even implemented the retransmission behaviours suggested in RFC 5080 Section 2.1, which is well over a decade old at this point.  If they can't do that, how can they implement an even more complex load-balancing system?

  Further, there is no standard in RADIUS for load-balancing with fail-over and fail-back.  Every NAS vendor and RADIUS vendor does something different.  While this document tries to address that issue, it does not address a number of key points.


  I do have a review, as follows.  Many of these issues given below are nits, and can be fixed by rewording the document, or moving to an approach which follows existing standards (RFC 6158, RFC 6929, RFC 8044).  However, for reasons given above, I don't think it's useful to move ahead with this document.


* Section 2 - Message Summary

   I recommend deleting this part.  The RADIUS packet format is well known.  There's no need to repeat the definition here.  Just refer to RFC 5997.

* Section 2.2 - nitpick: 191 is not defined, so it's likely best to leave this attribute value as TBD, even if IANA is likely to choose 191.

  Further, RADIUS definitions use consistent names for attributes.  The names do not change when they're used in different packet types.  The attribute should just be called something like "Load-Balance-Status"

* Section 2.3.2 - the text here is simply wrong.  The Request-Authenticator is not "hashed with the identity material from the calling-station
   and the RADIUS shared secret."

   RFC 5997 Section 5 already mandates the use of Message-Authenticator with Status-Server.

  I suggest deleting 2.3.2 entirely.

* Section 3 - the definition of the LB-Request does not satisfy the requirements of RFC 6929 Section 5.2.  There is no reason to use a 16-bit data type here.

  https://nam05.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftools.ietf.org%2Fhtml%2Frfc6929%23section-6.2&amp;data=02%7C01%7Cdan.massameno%40yale.edu%7C6e11e17859e34020f10408d821e9727e%7Cdd8cbebb21394df8b4114e3e87abeb5c%7C0%7C0%7C637296633820432892&amp;sdata=Gz%2FOD3vyw1JpqYdvPTiLOzvf8mpC5t4iRZixCdnkjyU%3D&amp;reserved=0

  RFC 8044 also defines data types which are appropriate for use in RADIUS.  That RFC also suggests that there is no longer need for ASCII art in most cases, as attribute definitions can just use predefined data types.

  Also in general, reserved bits should go at the top of an integer attribute.  Status bits should be in the lower bits.

* Section 4.1 redefines attribute 191 to contain completely different data.  This definition violates the prohibition on polymorphic attributes given in RFC 6159 Section 3.4

https://nam05.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftools.ietf.org%2Fhtml%2Frfc6158%23section-3.4&amp;data=02%7C01%7Cdan.massameno%40yale.edu%7C6e11e17859e34020f10408d821e9727e%7Cdd8cbebb21394df8b4114e3e87abeb5c%7C0%7C0%7C637296633820432892&amp;sdata=fBLI70Az70EKFP5DiN%2FIsfjQfmAKl1ajetrhjqIQvRY%3D&amp;reserved=0

  I suggest using two different attributes, one for signalling client to server, and another for responding server to client.

  The text in this section is also unclear:

Server_Info
     The String field is one or more server_info PDUs.  Each PDU defines
     the status of a single server and its defining characteristics.

  What does that mean?  Is the intent to carry the SVR-Record attributes inside of attribute 191?  If so, then using attribute 191 as both a 16-bit bitfield, and as a TLV carrier is very odd.  It's safe to say that nothing will ever support this.  I suggest using two different attrributes.

  I suggest simply relying on the existence of one or more SRV-Record attributes in the reply.  There is no need to repeat the LB-* attribute.

* Section 5 The SRV-Record TLV

  This section does not define any TLV attribute.  It's not clear what this means.

* Section 5.1 and 5.2

 It's not clear why two different attributes are needed.  Why not just use SRV-Record?

  And there's no need to repeat ASCII art.  RFC 8044 Section 3.13 already defines the TLV data type, and format.  You should just reference that.

* Section 5.3 defines a table of attributes, including attributes not previously seen in the document.

  I suggest moving the table of attributes to later in the document, *after* the relevant attributes have been defined.

* Section 6

 There's no need for ASCII art.  RFC 8044 Section 2.1.2 makes this clear.  Just reference the data types.

* Section 7.1

  The document says:

   ...  Under these
   Status-Server-LB rules the NAS MUST send all RADIUS messages relative
   to a particular session to the same RADIUS server to maximize the
   probability of a cache-hit.

  What then, is the utility of land balancing?  If one RADIUS server goes down, cannot the NAS send packets for a session to a different, but *equivalent* RADIUS server?  This recommendation seems to drastically increase the likelihood of losing accounting packets, which seems bad.

  In addition, the discussion of "caching" seems odd, and uncommon.  Databases do user replication, not RADIUS servers.  We should not expose implementation details in a standard document.

  i.e. the RADIUS servers should be treated as identical, and local balancing should be done on a packet by packet basis.

* Section 7.2

  The document says:

   The weight field specifies a relative weight for entries with the
   same priority.  Larger weights SHOULD be given a proportionately
   higher probability of being used for AAA services. 

  Ok, *how* is this to be done?  Specifying this behaviour seems important.  Perhaps adding up all weights of a similar priority, and choosing a "W_i" at random, with probability W_i / Sum(W_0. ... W_n)

* Missing: discussion of shared secrets, authentication vs accounting, ports, TLS, TCP, etc.

  What shared secret is used for these different RADIUS servers?  The same one as used in the original Status-Server?

  What ports should the NAS send packets to?  Does this load balancing work for all packet types?

  What about TCP, UDP, TLS, etc.?  How does this proposal interact with dynamic discovery? (RFC 7585)

* Section 8

  The document says:

   RADIUS Server Load Balancing has many of the same security
   implications as the base RADIUS protocol.

  There are many additional security issues opened up by this new capability.  They should be discussed.

* Section 10

  The document says:

   The Vendor Specified Attribute 26 may be used to encapsulate the LB-
   Request and LB-Response PDU where no vendor interoperability is
   required.

   It is very odd to put standards text inside of an "IANA considerations" section.  Further, this text appears to be confused about the purpose of the RADIUS attribute numbers.  These numbers are location-sensitive. i.e. vendor attribute "191" has no relation whatsoever to attribute "191" in the main RADIUS space.  Similarly, it has no relation to an attribute "191" from another vendor.

  This text is wrong and should be deleted.

Summary:

  Even if the various nits and and issues above were fixed, this proposal would have serious security issues.  Even if those security issues were addressed, I believe that load balancing is simply not appropriate for the NAS.  Even if it was appropriate for the NAS, the vendors have spoken: NAS implementations are simple, and server implementations are complex.

  As such, load balancing more properly belongs in the server.

  Alan DeKok.