Re: [Hipsec] WGLC: draft-ietf-hip-native-nat-traversal-15

Jeff Ahrenholz <j.ahrenholz@temperednetworks.com> Thu, 09 March 2017 15:39 UTC

Return-Path: <j.ahrenholz@temperednetworks.com>
X-Original-To: hipsec@ietfa.amsl.com
Delivered-To: hipsec@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 41BC012965E for <hipsec@ietfa.amsl.com>; Thu, 9 Mar 2017 07:39:34 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.601
X-Spam-Level:
X-Spam-Status: No, score=-2.601 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-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 hEk_GKmj35Ox for <hipsec@ietfa.amsl.com>; Thu, 9 Mar 2017 07:39:33 -0800 (PST)
Received: from out.west.exch081.serverdata.net (cas081-co-7.exch081.serverdata.net [199.193.204.188]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0CB4112949E for <hipsec@ietf.org>; Thu, 9 Mar 2017 07:39:32 -0800 (PST)
Received: from MBX081-W5-CO-2.exch081.serverpod.net (10.224.129.85) by MBX081-W5-CO-2 (10.224.129.85) with Microsoft SMTP Server (TLS) id 15.0.1178.4; Thu, 9 Mar 2017 07:39:31 -0800
Received: from MBX081-W5-CO-2.exch081.serverpod.net ([10.224.129.85]) by MBX081-W5-CO-2.exch081.serverpod.net ([10.224.129.85]) with mapi id 15.00.1178.000; Thu, 9 Mar 2017 07:39:31 -0800
From: Jeff Ahrenholz <j.ahrenholz@temperednetworks.com>
To: Tom Henderson <tomhend@u.washington.edu>, Gonzalo Camarillo <Gonzalo.Camarillo@ericsson.com>, HIP <hipsec@ietf.org>
Thread-Topic: [Hipsec] WGLC: draft-ietf-hip-native-nat-traversal-15
Thread-Index: AQHSfUUiMmMxzUu5xUyi7rZbLtB96aFxEnMAgBvJsoA=
Date: Thu, 09 Mar 2017 15:39:31 +0000
Message-ID: <98E7B40F-8DB4-45C6-8550-9C1DA71BBF08@temperednetworks.com>
References: <f70ecd7b-9558-806e-319c-9e85f263e1e3@ericsson.com> <alpine.LRH.2.01.1702190718360.26978@hymn03.u.washington.edu>
In-Reply-To: <alpine.LRH.2.01.1702190718360.26978@hymn03.u.washington.edu>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [216.168.34.194]
Content-Type: text/plain; charset="utf-8"
Content-ID: <662F36C61B231A4FAFD83B321FCCA7FD@exch081.serverpod.net>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/hipsec/j5DEmKuNNlokm4Y9vqPPjpjEsMk>
Subject: Re: [Hipsec] WGLC: draft-ietf-hip-native-nat-traversal-15
X-BeenThere: hipsec@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "This is the official IETF Mailing List for the HIP Working Group." <hipsec.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/hipsec>, <mailto:hipsec-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/hipsec/>
List-Post: <mailto:hipsec@ietf.org>
List-Help: <mailto:hipsec-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/hipsec>, <mailto:hipsec-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 09 Mar 2017 15:39:34 -0000

> 3) In section 4.10 (NAT keepalives), it states:
>    
>        Both a registered client and relay server SHOULD
>        send a HIP NOTIFY packets to each other every 15 seconds (the so-
>        called Tr value in ICE) unless they have exchange some other traffic
>        over the used UDP ports.
>    
>    However, I couldn't find an explanation anywhere (also in RFC 5770) about
> how to code this NOTIFY.  Would it make sense to define also a "NAT_KEEPALIVE"
> NOTIFY message type for this purpose?

Tom has a good point here, about how to code the NOTIFY keepalive.

I have a more general question about NAT keepalives based on some recent experiences with implementing/fielding this approach.
(My comments below shouldn’t hold up the publishing of this draft...)

Have we considered using UPDATE packets versus NOTIFY?
What are the tradeoffs?

I was thinking about the following advantages of the UPDATE:
- SEQ protects against packet replays
- instead of each endpoint periodically tx NOTIFY, one side could send an UPDATE and request acknowledgement (a bi-directional check)
- you could send an UPDATE or an UPDATE acknowledgement every 15 seconds (no need for both)
- if you’re not sending data, but only receiving, you can still do a bi-directional check to ensure liveness (and vice versa)
- you can include ESP_INFO with SPI number (old SPI == new SPI), which will help HIP middleboxes, and will help endpoints know which SA is being kept alive
- NOTIFY should not be used to change state (RFC 7401)

What happens if you don’t receive keepalives?
- if your UPDATE goes unacknowledged, do something -- retransmit, or start an address check, rekey, or teardown procedure

Potential drawbacks:
- is UPDATE considered too heavyweight?
- UPDATE doesn’t have a purpose code, is the swiss army knife of HIP packets (rekey, readdress, address check, etc.)
- UPDATE requires established state; NOTIFY does not

thanks,
-Jeff