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

_______________________________________________
lisp mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/lisp

Reply via email to