Re: [lisp] Warren Kumari's Discuss on draft-ietf-lisp-rfc6830bis-26: (with DISCUSS and COMMENT)

Dino Farinacci <farinacci@gmail.com> Wed, 06 February 2019 19:41 UTC

Return-Path: <farinacci@gmail.com>
X-Original-To: lisp@ietfa.amsl.com
Delivered-To: lisp@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 71FF5130F39; Wed, 6 Feb 2019 11:41:34 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level:
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
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 LTnpD5xtC037; Wed, 6 Feb 2019 11:41:31 -0800 (PST)
Received: from mail-pg1-x532.google.com (mail-pg1-x532.google.com [IPv6:2607:f8b0:4864:20::532]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id BC3B7130F29; Wed, 6 Feb 2019 11:41:31 -0800 (PST)
Received: by mail-pg1-x532.google.com with SMTP id v28so3343020pgk.10; Wed, 06 Feb 2019 11:41:31 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=wYlK7Js9Q5OUv1M7f/AOUyxP1y5QEeBXkFvoK/K8t2w=; b=jj3eqaOXTQaEFMg4FDQUL2XVwHrjiUuC8dcXEbSX+ij8JqcbT+xPKPOVm9Hv8f08p9 BcNyhCuwgEKxy2ifH3kxjEEPZFxhAigba30EWPtIqD+2PhfTUYocdLn+w2SFS0c2j273 8B8/ujtbodzk4181ftzXE/0FQUWSVyYIfRvQUXb7mPtvtDfJAtA+iygaoyuqAeY3z13Z xopj5fm+FDiSswKubAeZH86FkdZLWB0F8ve6jLLBXbJ+ztM4uKVsfLCEwV4u7C+8dXxU IxgmKmclxesQ9ITw+9x3fvz1mQ9gvCpEx0LZd2PpSUyPe60UVNtRZlMtAoBwT5r3NsrU Ri8A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=wYlK7Js9Q5OUv1M7f/AOUyxP1y5QEeBXkFvoK/K8t2w=; b=WrD/Haqv00uQ8UOrjasS7lBzO5qZrqs75lU3SsgKw/zQnlo1cFpb1Sln12RYcTAwgk 1/V3t5fn0ilox7N+J3h4b5udHpEkWSJaqCxAofw8skCQvRSB8qOqdFNOANchx5HYNB71 rUSar6+UsV4u9EgKrTzrAxWRmnDPh9KpsVXVeewMfOX1FdDGHw/CIULeNLhp0zY2ddOp 2jU/rp/8slao6p3n6Es5f079+lYEhKSZtQXPQuE6Aqguf9I69yWnIsFytUusqQuD8QmF cChpd1eh9IY+9J3yTwFsmvZd7v8bLkggjlavrUwDg3BY5vc6fH7K2ESyaLnqv0Svg/3s boJA==
X-Gm-Message-State: AHQUAuYmYRVNghfb0jhR4D1gM6H9U82uV8eW/8xRh7e9ol9WQ+uVVBVo mMJhRNO64xGqRZyPtdx8Fbbmy4so
X-Google-Smtp-Source: AHgI3IafkEh+Wrb+cnDkUecJzR8GMQKdzXgFj69cfR8llU/zA0F08zuzJmsGEy8mZlMteHQtS1i95w==
X-Received: by 2002:a65:6110:: with SMTP id z16mr11213953pgu.330.1549482091234; Wed, 06 Feb 2019 11:41:31 -0800 (PST)
Received: from [10.31.79.74] ([96.72.181.209]) by smtp.gmail.com with ESMTPSA id z1sm9894726pfi.155.2019.02.06.11.41.29 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 06 Feb 2019 11:41:30 -0800 (PST)
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 11.5 \(3445.9.1\))
From: Dino Farinacci <farinacci@gmail.com>
In-Reply-To: <CAHw9_iLvNo7gdnyXcdKLyqA+iuvnLmMkX9ZHretgfy6Tn9-Lwg@mail.gmail.com>
Date: Wed, 06 Feb 2019 11:41:29 -0800
Cc: The IESG <iesg@ietf.org>, draft-ietf-lisp-rfc6830bis@ietf.org, Luigi Iannone <ggx@gigix.net>, lisp-chairs@ietf.org, lisp@ietf.org
Content-Transfer-Encoding: quoted-printable
Message-Id: <0D72CB4B-2016-4978-97C9-E943AFD19D31@gmail.com>
References: <154941971479.32132.7227582520612116720.idtracker@ietfa.amsl.com> <E8FC2F26-A7F3-454C-ABBB-C3B47536EB58@gmail.com> <CAHw9_iLvNo7gdnyXcdKLyqA+iuvnLmMkX9ZHretgfy6Tn9-Lwg@mail.gmail.com>
To: Warren Kumari <warren@kumari.net>
X-Mailer: Apple Mail (2.3445.9.1)
Archived-At: <https://mailarchive.ietf.org/arch/msg/lisp/lz2ECOtlkrR4cdx3Ay9Zb3zEkJM>
Subject: Re: [lisp] Warren Kumari's Discuss on draft-ietf-lisp-rfc6830bis-26: (with DISCUSS and COMMENT)
X-BeenThere: lisp@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: List for the discussion of the Locator/ID Separation Protocol <lisp.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/lisp>, <mailto:lisp-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/lisp/>
List-Post: <mailto:lisp@ietf.org>
List-Help: <mailto:lisp-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/lisp>, <mailto:lisp-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 06 Feb 2019 19:41:34 -0000

> 
> What happens if you send 10,000,000 BGP routes in an update and the receiver can’t store it. It is the same problem. We have lots of research on this problem and there are pointers in the spec to it.
> 
> Well, what happens is that I tear down the session:
> accepted-prefix-limit {
>       maximum {{ peer_prefix_limit }};
>       teardown 85 idle-timeout 10;
> }
> 
> This is somewhat of a false analogy - I only accept BGP routes from configured peers, not just anyone on the Internet. 
> A better analogy would be Neighbor Discovery, where a random person on the Internet can cause your router to have to build state -- and we ended up having to publish RFC6583 - "Operational Neighbor Discovery Problems" to address exactly this issue.

I don’t think it is. Because a BGP table and a cache is still allocable memory that has to be managed. And it doesn’t matter if peers are configured or not, a bad peer can still damage a BGP cache.

And those limits can be placed on the LISP table as well.

> L is an architectural constant. If there tends to be tunnels between the ITR and ETR, then you choose L to be 1400. Or you run MTU discovery between the ITR and ETR to determine the effective MTU.
> 
> That doesn't sound like an "architectural constant" - it sounds like a configurable value.
> As an example: 
> "Both OSPF and IS-IS make a clear distinction between architectural constants and configurable parameters. Architectural constants are parameters which were fixed by the specification and cannot be changed by the network manager". 
> (from "OSPF and IS-IS: From Link State Routing Principles to Technologies").
> See also https://tools.ietf.org/html/rfc2328#appendix-B , https://tools.ietf.org/html/rfc3719, etc. 

Was the changed text sufficient?

>  > 4: "Note that reassembly can happen at the ETR if the encapsulated packet was
> > fragmented at or after the ITR." - I think that there needs to be more text /
> > description about resource constraints on routers performing reassembly of
> > fragments - in most cases a router doesn't have to / isn't expected to have to
> > reassemble transit packets from arbitrary sources on the Internet (things where
> > routers may reassemble are aimed at the control plane which can be
> > rate-limited, or are from expected source addresses). It seems that spoofing
> > lots of initial fragments without the final one will be a tax on the router.
> 
> We have chosen 3 methods to deal with MTU issues because ETR reassembly is the worst approach. And I certainly wouldn’t recommend using it.
> 
> Fair, but I think the document should say so. 

I don’t think it should. If someone has ETR resources to do so, it should be able to do it. Fragmentation/assembly is in the protocol to be used. Is it a good idea, that’s another question. Is it practical, that is another question.

> > deprecated. I start a timer, and second or two less than the TTL later I start
> > spoofing packets again, knowing that site X will soon expire the cache entry
> > and will once again be willing to accept mine again. A: I get some Site X to
> > Site Y traffic for a few seconds every TTL seconds, and B: the loss of this
> > traffic is a signal that TTL seconds again it will need to be refreshed.
> 
> It was a Google employee in the early days that wanted this feature (circa 2007). ;-) It was so return packets from a server side didn’t have to do the mapping system lookup. It is off by default and only used in trusted enviornments where you can control how the ITR and ETR behave.
> 
> You say that "it is off by default" -- but I don't see that in this document (nor, at a quick glance, in RFC 7832 - "Locator/ID Separation Protocol (LISP) Threat Analysis”).

It has been implemented in products as off by default.

> > valid nonce the ITR is requesting to be echoed within a small window of time. 
> > The goal is to convince the ITR that the ETR’s RLOC is  reachable even when it
> > may not be reachable."  attack listed in the document in that a: it doesn't
> > require any guessing, and b: makes an ETR appear down, not up.
> 
> You can’t overfill any cache. An xTR just remembers the last nonce that came with the E-bit set and when it returns packets it uses that nonce.
> 
> Um, I don't think this is right (or I've misunderstood) - you don't store "the last nonce that came with the E-bit set" (one number), you have to store "the last nonce that came with the E-bit set for every ITR which is sending them”.

Right. The context was from a single encapsulator.

> These have to be stored somewhere, and this is a limited size space (N slots). If I send you N+1 spoofed packets you will have to evict something from this space -- what am I missing?

They are stored in the map-cache since you encap to that ITR (which is now an ETR). So its a 24-bit number you use in an RLOC data structure in your implemenation. I have implemented this way twice (in 2 different implementations).

> Yes, many implementations default to not setting advertising they are echo-nonce capable in Map-Replies. So RLOC-probing tends to be used for RLOC reachability. Plus we added features into RLOC-probing that makes it more useful now (lisp-crypto key exchange for one).
> 
> 
> Pointer?

The LISP WG can provide pointes. Damien and Luigi did extensive research on this.

> > The document does mention "... attack can be mitigated by preventing RLOC
> > spoofing in the network by deploying uRPF BCP 38 [RFC2827]." - while that may
> > be true for many of the above, BCP38 is far from being universally deployed,
> > and this feels similar to solving world hunger by saying everyone must have
> > enough food. :-)
> 
> An ETR can verify mappings if it chooses to. The more overhead you want to put in the system for anti-spoofing, one can do. Tradeoffs.
> 
> By the way food is everywhere, you just have to be willing to eat it.  ;-)
> 
> As someone who was born in Africa and has seen the effects of famine firsthand, I find this statement offensive -- people don't starve to death because they didn't feel like eating their broccoli, they starve to death because there isn't any food.

It wasn’t intended to be offensive. And if that is how it was received, I am sorry for that.

Dino