Re: [Netconf] [netmod] draft-ietf-netconf-netconf-client-server – TCP keepalives

Kent Watsen <kwatsen@juniper.net> Tue, 12 June 2018 14:12 UTC

Return-Path: <kwatsen@juniper.net>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D5990130E52 for <netconf@ietfa.amsl.com>; Tue, 12 Jun 2018 07:12:56 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.7
X-Spam-Level:
X-Spam-Status: No, score=-2.7 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=juniper.net
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 WabJZE0pLSfV for <netconf@ietfa.amsl.com>; Tue, 12 Jun 2018 07:12:51 -0700 (PDT)
Received: from mx0a-00273201.pphosted.com (mx0a-00273201.pphosted.com [208.84.65.16]) (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 15D51130E3D for <netconf@ietf.org>; Tue, 12 Jun 2018 07:12:51 -0700 (PDT)
Received: from pps.filterd (m0108156.ppops.net [127.0.0.1]) by mx0a-00273201.pphosted.com (8.16.0.22/8.16.0.22) with SMTP id w5CE9j8T032552; Tue, 12 Jun 2018 07:12:48 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=juniper.net; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-id : content-transfer-encoding : mime-version; s=PPS1017; bh=aI4C9A+LWJD7otjS8Kps59zCR/9hoQFb8kIhpzmi3IE=; b=cp4YaUYfcSCZ9BU23ApYcLZgSasCEwT8TqKwhVmW6E26MLO9J1P6xDE3KVWuYdbum4eF sxVb1gZDS4m1UjA9MigcNKH9UUcOJ01l6YzoAOkSCPIxRC9pWQrhKIC3OGZYGT+3gLN8 bKZdbBrI75m76D0MKEwTLfvjTy+C+tcI1KAlX47LmLImCpXRr8MzNDMUEA/NgDoxvxEQ RnChiTXJWBTJrR41K7cjX/mRl+T1EyY/qQrIE79Atp8Tqgu9oHD6ZSaaGj54KKhA4m25 tanyYfo0LDXWtCmu4n08rLWEuHv/PaCYzk6/bXLzhlP7BojFwc6p9pH87U4yvs3QRDuL tQ==
Received: from nam03-co1-obe.outbound.protection.outlook.com (mail-co1nam03lp0024.outbound.protection.outlook.com [216.32.181.24]) by mx0a-00273201.pphosted.com with ESMTP id 2jjbkp0edc-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Tue, 12 Jun 2018 07:12:47 -0700
Received: from BYAPR05MB4230.namprd05.prod.outlook.com (52.135.200.153) by BYAPR05MB4581.namprd05.prod.outlook.com (52.135.204.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.863.6; Tue, 12 Jun 2018 14:12:46 +0000
Received: from BYAPR05MB4230.namprd05.prod.outlook.com ([fe80::959d:9fbe:90e4:3cc]) by BYAPR05MB4230.namprd05.prod.outlook.com ([fe80::959d:9fbe:90e4:3cc%3]) with mapi id 15.20.0863.010; Tue, 12 Jun 2018 14:12:46 +0000
From: Kent Watsen <kwatsen@juniper.net>
To: "Beauville, Yves (Nokia - BE/Antwerp)" <yves.beauville@nokia.com>, NICK HANCOCK <nick.hancock@adtran.com>
CC: "netconf@ietf.org" <netconf@ietf.org>
Thread-Topic: =?utf-8?B?W05ldGNvbmZdIFtuZXRtb2RdIGRyYWZ0LWlldGYtbmV0Y29uZi1uZXRjb25m?= =?utf-8?B?LWNsaWVudC1zZXJ2ZXIg4oCTIFRDUCBrZWVwYWxpdmVz?=
Thread-Index: AQHUAkGh8Rh+dKsRu0qFYObTJB07tKRcZ0sA
Date: Tue, 12 Jun 2018 14:12:45 +0000
Message-ID: <06A7280F-BD10-4FDB-9641-6F2B7D74AA94@juniper.net>
References: <51912D52-547F-475F-B71C-A87361DB5690@juniper.net> <5f6300fd-42cf-fa37-68fa-eefccb93e292@nokia.com>
In-Reply-To: <5f6300fd-42cf-fa37-68fa-eefccb93e292@nokia.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
user-agent: Microsoft-MacOutlook/f.20.0.170309
x-originating-ip: [66.129.241.13]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; BYAPR05MB4581; 7:WQbDCS5KgonOLMyPatr/FlVKP6WZMsvEVtgdTPlg1eC9oJ1SX0JbokV+LZVI45+87jBHQsngVBA5WeTA4hcg1Xrb+rCcx+Xb1RjENshv7+dL0+jly4IvNa3ZQHQPn1cnkv6AIw/n9tefwlrNk9ha6JivCf/mbrWlTHYJK9VNS/6MCYF5GpVP33gMf+ejjXnxvLD04aqE0qqz1Y2Q4QWs91NY3Dzdz7AAk8h2sE2HPLAxcQu+tuqeamNUPcK7GarB
x-ms-exchange-antispam-srfa-diagnostics: SOS;
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(5600026)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:BYAPR05MB4581;
x-ms-traffictypediagnostic: BYAPR05MB4581:
x-microsoft-antispam-prvs: <BYAPR05MB4581A2C2E7722361D701D39DA57F0@BYAPR05MB4581.namprd05.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:(10436049006162)(166708455590820)(192374486261705);
x-ms-exchange-senderadcheck: 1
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(93006095)(93001095)(10201501046)(3002001)(3231254)(944501410)(52105095)(6055026)(149027)(150027)(6041310)(20161123560045)(201703131423095)(201703031522075)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123558120)(20161123562045)(6072148)(201708071742011)(7699016); SRVR:BYAPR05MB4581; BCL:0; PCL:0; RULEID:; SRVR:BYAPR05MB4581;
x-forefront-prvs: 07013D7479
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(396003)(376002)(39380400002)(346002)(366004)(39860400002)(53754006)(189003)(199004)(54534003)(68736007)(229853002)(81156014)(81166006)(53936002)(486006)(305945005)(4326008)(25786009)(5250100002)(478600001)(82746002)(83716003)(6306002)(3280700002)(575784001)(8936002)(6246003)(7736002)(14454004)(3660700001)(6512007)(6436002)(6486002)(8656006)(86362001)(296002)(97736004)(59450400001)(316002)(2906002)(476003)(105586002)(966005)(26005)(66066001)(6116002)(36756003)(76176011)(102836004)(6506007)(53546011)(3846002)(106356001)(446003)(5660300001)(33656002)(110136005)(58126008)(186003)(2900100001)(11346002)(99286004)(2616005); DIR:OUT; SFP:1102; SCL:1; SRVR:BYAPR05MB4581; H:BYAPR05MB4230.namprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1;
received-spf: None (protection.outlook.com: juniper.net does not designate permitted sender hosts)
x-microsoft-antispam-message-info: GP5z8CpOjaHTyxgzwxYgOWDfO5YZ8tbA2lDskkXy9PmzqaaCLt6q5HqyzOQSrUFKlXT4p0ZgK9Kt0et+5JTAp/owMLV2SjiCq7RUFMSJqnp25N49dyazzIoqEyLX3wWrn+j/MFOtY1y4S9z/jiMoVy5snqEEcrXyYtrRBhhoLSNAL67Fun6TTzwf2w12sTet
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: text/plain; charset="utf-8"
Content-ID: <90353392CDC63141ACBF69014AC7B909@namprd05.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Office365-Filtering-Correlation-Id: 9159e785-bee9-403d-e783-08d5d06e922a
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-Network-Message-Id: 9159e785-bee9-403d-e783-08d5d06e922a
X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Jun 2018 14:12:45.9745 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR05MB4581
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2018-06-12_01:, , signatures=0
X-Proofpoint-Spam-Details: rule=outbound_spam_notspam policy=outbound_spam score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1805220000 definitions=main-1806120161
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/WCStGkvn1wA1Sofn0onjxFpOCq0>
Subject: Re: [Netconf] =?utf-8?q?=5Bnetmod=5D_draft-ietf-netconf-netconf-clie?= =?utf-8?q?nt-server_=E2=80=93_TCP_keepalives?=
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.26
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 12 Jun 2018 14:12:57 -0000

Yes, it seems that they're in the process:

https://github.com/openssl/openssl/issues/4856

Kent

===== original message =====

Hi Kent,

 From the change log of OpenSSL 
(https://urldefense.proofpoint.com/v2/url?u=https-3A__www.openssl.org_news_changelog.txt&d=DwIDaQ&c=HAkYuh63rsuhr6Scbfh0UjBXeMK-ndb3voDTXcWzoCI&r=9zkP0xnJUvZGJ9EPoOH7Yhqn2gsBYaGTvjISlaJdcZo&m=zzFq9Fp2lEWaEupRxa7mXtOgQHfoylXJshq8HQwfUnA&s=b2Ckx4ZL4J51XaBFNl95mcQaSVBtJUvrmCHAWFK6mUU&e=), I can see the following 
change being logged between 1.1.0h and 1.1.1:

   *) Heartbeat support has been removed; the ABI is changed for now.
      [Richard Levitte, Rich Salz]

Thanks,
Yves

On 12-06-18 03:22, Kent Watsen wrote:
> Looking into this just a little more, I know that Heartbeat was supported by OpenSSL before (recall Heartbleed bug?), so I grepped the 1.1.0g source code (which has the Heartbleed fix) and found evidence that the support might still be in the code.  That said, I can't tell if the code is specific to DTLS or works on TLS as well…
>
> /kw
>
>
> ===== original message =====
>
> [+netconf, -netmod]
>
> The issue appears to be with current TLS libraries not implementing TLS keepalives, the HeartbeatRequest messages defined by [RFC6520].   I have not myself validated this yet, does anyone have any experience?
>
> If it is true that HeartbeatRequest messages is not supported today, do we:
>    a) encourage the TLS library maintainers to implement it
>    b) or introduce an ability to configure TCP-level keepalives
>    c) or both?
>
> Any other ideas?
>
> Thanks,
> Kent
>
>
>
> On 6/11/18, 12:32 PM, "netmod on behalf of NICK HANCOCK" <netmod-bounces@ietf.org on behalf of nick.hancock@adtran.com>; wrote:
>
> Hi All,
>   
> A couple of companies are working on a solutions to implement devices, such as DPUs, based on the requirements of the Broadband Forum Technical Report TR-301 issue 2 “Architecture and Requirements for Fiber to the Distribution Point”, which requires TLS for the persistent NETCONF connection, for which the configuration of call home is to be by means of the ‘ietf-netconf-server’ module.
>   
> TLS heartbeat cannot be supported to keep the call home connection alive, because TLS heartbeat is not or no longer supported by many TLS libraries, such as OpenSSL in the wake of the Heartbleed security bug. Although TCP keep-alives are not secure, we will nevertheless be required to support TCP keepalives to ensure that the connection remains persistent and these keepalives would also need to be configurable. Unfortunately, the keepalive configuration implemented in ‘ietf-netconf-server’, although not bound to the ‘transport’ choice, is bound to the secure layer textually in the description of the data nodes (references to “SSH/TLS client” and “SSH/TLS-level message”), which makes its use for configuring TCP keepalives for specific implementations possible, but obviously problematic. RFC 8071, Section 4.1, S7, also heavily implies that it is intended to be used for the designated transport layer (e.g., SSH, TLS).
>   
> Since this issue affects the industry as a whole, we believe it would be better to provide support for the configuration of TCP keepalives within the ‘ietf-netconf-server’ module from the beginning, rather than wait for other SDOs or vendors to augment the module after publication as an RFC, which they will be practicably forced to do.
>   
> Would supporting TCP keepalives in the IETF-defined module be something the WG would agree to discuss? A possible solution, shown below, could be to add a new container parallel to the existing ‘keep-alives’ container to explicitly support the configuration for TCP keepalives. In addition, a feature statement (e.g. "keep-alives") could be added to the existing ‘keep-alives’ container, as RFC 8071 S7 says SHOULD (not MUST).
>                     container tcp-keep-alives {
>                       if-feature tcp-keep-alives;
>                       description
>                         "Configures the keep-alive policy, to
>                          proactively test the aliveness of the TCP
>                          peer.  An unresponsive TCP peer will
>                          be dropped after approximately max-attempts *
>                          max-wait seconds.";
>                       reference
>                         "RFC 1122: Requirements for Internet Hosts --
>                          Communication Layers, section 4.2.3.6.";
>                       leaf max-wait {
>                         type uint16 {
>                           range "1..32767";
>                         }
>                         units seconds;
>                         default 30;
>                         description
>                          "Sets the amount of time in seconds after
>                           which if no data has been received from
>                           the TCP peer, a TCP-level message
>                           will be sent to test the aliveness of the
>                           TCP peer.";
>                       }
>                       leaf max-attempts {
>                         type uint8 {
>                           range "1..127";
>                         }
>                         default 3;
>                         description
>                          "Sets the maximum number of sequential keep-
>                          alive messages that can fail to obtain a
>                          response from the TCP peer before
>                          assuming the TCP peer is no longer
>                          alive.";
>                       }
>                       leaf interval-between-attempts {
>                         type uint16  {
>                           range "1..32767";
>                         }
>                         units seconds;
>                         default 30;
>                         description
>                          "Sets the amount of time in seconds after
>                           which, if no reply to a keep-alive message
>                           has been received from the TCP peer, the
>                           next keep-alive message will be sent.";
>                       }
>                     }
>                   }
>   
>   
> What is the opinion of the list? Would this solution work?
>   
> Best regards
> Nick & Yves
>   
>   
>   
>   
>
>
> _______________________________________________
> Netconf mailing list
> Netconf@ietf.org
> https://urldefense.proofpoint.com/v2/url?u=https-3A__www.ietf.org_mailman_listinfo_netconf&d=DwIGaQ&c=HAkYuh63rsuhr6Scbfh0UjBXeMK-ndb3voDTXcWzoCI&r=9zkP0xnJUvZGJ9EPoOH7Yhqn2gsBYaGTvjISlaJdcZo&m=n1Ew69P_92NcpKfb6HiepQwhe21v4fTuNEa-YZ_vs6s&s=CVqduXP2RuuZY7nPF0drm5h9oFCMIMGg0ux6shk88OI&e=
>
>
> _______________________________________________
> Netconf mailing list
> Netconf@ietf.org
> https://urldefense.proofpoint.com/v2/url?u=https-3A__www.ietf.org_mailman_listinfo_netconf&d=DwIDaQ&c=HAkYuh63rsuhr6Scbfh0UjBXeMK-ndb3voDTXcWzoCI&r=9zkP0xnJUvZGJ9EPoOH7Yhqn2gsBYaGTvjISlaJdcZo&m=zzFq9Fp2lEWaEupRxa7mXtOgQHfoylXJshq8HQwfUnA&s=gxTeCP_OaETTpPPkfQ7cgU-ELC_B8b_vVF0XCONqtVE&e=