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

Warren Kumari <warren@kumari.net> Wed, 06 February 2019 21:39 UTC

Return-Path: <warren@kumari.net>
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 BBAC4130EEC for <lisp@ietfa.amsl.com>; Wed, 6 Feb 2019 13:39:41 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.042
X-Spam-Level:
X-Spam-Status: No, score=-2.042 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.142, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=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=kumari-net.20150623.gappssmtp.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 jhOmvs5gQYOb for <lisp@ietfa.amsl.com>; Wed, 6 Feb 2019 13:39:38 -0800 (PST)
Received: from mail-wr1-x430.google.com (mail-wr1-x430.google.com [IPv6:2a00:1450:4864:20::430]) (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 61E62130EE0 for <lisp@ietf.org>; Wed, 6 Feb 2019 13:39:38 -0800 (PST)
Received: by mail-wr1-x430.google.com with SMTP id x10so9257703wrs.8 for <lisp@ietf.org>; Wed, 06 Feb 2019 13:39:38 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kumari-net.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=h2vA8yVhZyp3UGI48Sg88G0AfnUujCSC4m47IdEgdSQ=; b=Hu4bSFoGejZtH8IkJgrXkIb0bcR4tXCrQ/C159QD/2HPyke57sWzY19Vkl10srxRbS jJ+jo1/moAGAJhGpcJvV6xeOJIXqha9uqa17cJ43E3vJcTPBuFNXl2Dlqa8BzxqEnTcT FrGQzcawCz4i1okCYzr2E1EuF8Opg4rzPNL8nrxTUsQYIFb+XVEZ2I3MD3Dq6TGQsUJu vbfkxGnCdSBrvct8ra5/TX0R81Y4Eh9s9763VEfLISBVLG118lzV1+8TjgTnMrQoLuaI z37TyjH3EfEMsxCVNuaA4dQaWfWtttXdS3KFEQgyTIE5whT/uavo7hKGEc6YKCyNnSMF FgcA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=h2vA8yVhZyp3UGI48Sg88G0AfnUujCSC4m47IdEgdSQ=; b=sslc+zfgjcrDqwlSn3bpwOqExlcQ1gxXV5KWiqEzCnQLzI40t9yCxe9wG05oQHih6C XegSlGRx6F7aP+ZWuENuP/9sA65ZDVWwdg+WqEVCGzVnMkGfWE0uxgbj2zAejKQd3aKX ekPkKsrloMA76vTbBkBamuqD4NRy9hiib+gsb6ilbRzFbSjNip7HFbl3HTU1UpmsLsr8 DPymt2Eg0PCoFe04BIWjmikApiwVxBjU86Go1rrqAETR0LqBm/ekf8RJs2j6i9aSawAh nYC+bJsToSN+djKh7PRHvGRh/iXwQ865nVhrRduIbFXxCXabPzGkpY9dN4pZgsxOXmK4 TQIg==
X-Gm-Message-State: AHQUAubmLya8sZ6gSG6XTHqnIjTLC1+FSZ9NeHMBf1xdA72dUlbk6QdG 0CJzirM11qSDFRToqaeQJa4VRS+7QYQPcyIPFuRFwA==
X-Google-Smtp-Source: AHgI3IagU3j0dnO1cooiBm8EkVgGBJ1QlZUrIBqjkWtBIlQkpCHjXF6b9KMDvNIArg3S7i1jm0maisqG6v74eWG8x4A=
X-Received: by 2002:adf:fa90:: with SMTP id h16mr8808636wrr.326.1549489176112; Wed, 06 Feb 2019 13:39:36 -0800 (PST)
MIME-Version: 1.0
References: <154941971479.32132.7227582520612116720.idtracker@ietfa.amsl.com> <E8FC2F26-A7F3-454C-ABBB-C3B47536EB58@gmail.com> <CAHw9_iLvNo7gdnyXcdKLyqA+iuvnLmMkX9ZHretgfy6Tn9-Lwg@mail.gmail.com> <0D72CB4B-2016-4978-97C9-E943AFD19D31@gmail.com>
In-Reply-To: <0D72CB4B-2016-4978-97C9-E943AFD19D31@gmail.com>
From: Warren Kumari <warren@kumari.net>
Date: Wed, 06 Feb 2019 16:38:59 -0500
Message-ID: <CAHw9_iKiEiELVVWeJQcHr6-pnXJ5_h+Wv6miU8hF-G2v7tfREA@mail.gmail.com>
To: Dino Farinacci <farinacci@gmail.com>
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-Type: multipart/alternative; boundary="000000000000ed171f0581408fb7"
Archived-At: <https://mailarchive.ietf.org/arch/msg/lisp/yzj7uP8JmGcHsfcsX-CL3egLA-4>
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 21:39:42 -0000

On Wed, Feb 6, 2019 at 2:41 PM Dino Farinacci <farinacci@gmail.com> wrote:

>
> >
> > 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?
>

Which changed text? It wasn't (as far as I could see) in the diff which you
attacked earlier.
Also, in the diff there is still the "example" typo: "For exmple of such
attacks"



>
> >  > 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.
>

... and someone reading this document is supposed to know that how? The
purpose of publishing documents like this is to allow for interoperable
implementations - expecting implementers to have to examine other
implementations to learn how not to shoot themselves in the foot doesn't
help anyone.

>
> > > 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).
>

Ok, this seems seems like a good optimization (but does require that the
RLOC storage needs to be larger ) - why not suggest this in the document?
It would only take a sentence or two, and would make future implementations
more likely / resilient.

>
> > 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.
>
>
Again, something like "many implementations default to not advertising that
they are echo-nonce capable in Map-Replies and so RLOC-probing tends to be
used for RLOC reachability." would help - there is no harm in trying to
make things easier for your readers / future implementors.



> > > 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.
>
>
Ok. No worries.
W



> Dino
>
>

-- 
I don't think the execution is relevant when it was obviously a bad idea in
the first place.
This is like putting rabid weasels in your pants, and later expressing
regret at having chosen those particular rabid weasels and that pair of
pants.
   ---maf