Subject: [lisp] 6833bis - NMR with locator count !=0

From: "Victor Moreno (vimoreno)" <[email-masked]>
Date: Tue, 22 Aug 2017 06:07:19 +0000

Dear WG,

As we put some of our specifications to the test in deployments, we have found the ability to return RLOCs dynamically in an NMR to be compelling in a variety of deployment scenarios. Particularly in Networks with multiple Internet exit points. 

What are the thoughts of the group on allowing NMRs with a locator count !=0?

One option to indicate that a map-reply is an NMR could be to assign one of the reserved bits as an NMR flag.

Would like to gauge the inclination of the WG before proposing text/edits.

-v

---

From: "Joel M. Halpern" <[email-masked]>
Date: Tue, 22 Aug 2017 02:12:34 -0400

Can you explain what information you are conveying with the RLOCs?  I 
think we would need a clear use case before changing the spec.

Yours,
Joel

On 8/22/17 2:07 AM, Victor Moreno (vimoreno) wrote:
> _______________________________________________
> lisp mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/lisp
>

---

From: "Victor Moreno (vimoreno)" <[email-masked]>
Date: Tue, 22 Aug 2017 06:32:43 +0000

Would be mainly conveying the RLOCs of the feasible PETRs dynamically.
As PETRs are brought on-line in the network, they can be configured/added in the Mapping System, rather than touching a multitude of ITRs.
This would also allow a more elegant definition for the support of a default exit to the Internet in the Extranet case defined in the lisp-vpn draft. In this scenario, the RLOC record would convey the RLOC of the PETR plus the IID to which the Internet connects at the PETR.

-v

> On Aug 21, 2017, at 11:12 PM, Joel M. Halpern <[email-masked]> wrote:
> 
> Can you explain what information you are conveying with the RLOCs?  I think we would need a clear use case before changing the spec.
> 
> Yours,
> Joel
>

---

From: "Joel M. Halpern" <[email-masked]>
Date: Tue, 22 Aug 2017 10:40:33 -0400

Now speaking only as an individual:

If you want the Proxy ETR to be in the mapping system, wouldn't it make 
more sense to have it register the address block for which it is serving 
as a proxy?  With suitable indications so that ITRs which learn of it 
get back the bits that tell them to continue askign about more 
specifics?  That would seem to result in existing ITRs working with 
these newer PETRs without any changes.

Yours,
Joel

---

From: Dino Farinacci <[email-masked]>
Date: Tue, 22 Aug 2017 10:22:02 -0700

Here are some of my comments Victor.

> Would be mainly conveying the RLOCs of the feasible PETRs dynamically.

Anything or anyone can register mapping entries to the mapping database as long as they are authenticated with the map-server. So I believe you can achieve what you want with NO spec changes or additions to the protocol.

> As PETRs are brought on-line in the network, they can be configured/added in the Mapping System, rather than touching a multitude of ITRs.

Meaning you do not want ITRs to have to configure PETRs. That makes a ton of sense for scale and management reasons.

> This would also allow a more elegant definition for the support of a default exit to the Internet in the Extranet case defined in the lisp-vpn draft. In this scenario, the RLOC record would convey…

An ITR has no idea where a packet really ends up. So if its encapsulating to an ETR at the destination site or a PETR that decaps and sends the packet many “native” hops to a non-EID destination, then so be it.

I would not call these negative map-replies though. By definition, from the spec, a negative map-reply is a map-reply with an RLOC-count of 0. 

What many implemenationsn do is when they get a map-reply with an RLOC set of 0, they then decide, via configuration to encapsulate to a list of xTRs. Those xTRs are PETRs (by definition of the implementation).

It could be useful to write up a very short draft indicating a “dynamic use-case for PETRs”. But check the Interworking RFC to make sure we didn’t cover this, in some form (even brief) in that spec.

Cheers,
Dino

---

From: "Victor Moreno (vimoreno)" <[email-masked]>
Date: Tue, 22 Aug 2017 18:46:49 +0000

Thanks Joel,

That would be ideal, could you please shed some light on what you see as “suitable indications” in a map-reply?

The two things that are compelling about the NMR are:

1. Dynamic calculation of covering prefix for the non-EID requested
2. short TTL of the mapping so that we continue requesting more specifics (the ITR implementations usually know to assign a short TTL when the map-reply is an NMR [loc-count == 0])

If I can continue to achieve those without manually configuring the PETR RLOCs at the ITRs, we have what we need. But I didn’t see a way to do this in the framework of the current spec.

-v

> On Aug 22, 2017, at 7:40 AM, Joel M. Halpern <[email-masked]> wrote:
> 
> If you want the Proxy ETR to be in the mapping system, wouldn't it make more sense to have it register the address block for which it is serving as a proxy?  With suitable indications so that ITRs which learn of it get back the bits that tell them to continue askign about more specifics?  That would seem to result in existing ITRs working with these newer PETRs without any changes.
> 
> Yours,
> Joel
>

---

From: "Victor Moreno (vimoreno)" <[email-masked]>
Date: Tue, 22 Aug 2017 19:03:36 +0000

> On Aug 22, 2017, at 10:22 AM, Dino Farinacci <[email-masked]> wrote:
> 

That would be great, we’ve been trying and haven’t had luck.

> Meaning you do not want ITRs to have to configure PETRs. That makes a ton of sense for scale and management reasons.

Correct, we are looking at 1000s of ITRs in some of these networks.
> An ITR has no idea where a packet really ends up. So if its encapsulating to an ETR at the destination site or a PETR that decaps and sends the packet many “native” hops to a non-EID destination, t…

Correct, what is of interest is to have some sense of the likelihood of the mapping received changing and allow the ITR to check again. We are looking at the NMR as one way to indicate back to the ITR the nature of the mapping. Because the ITR can differentiate clearly between an NMR and a Positive MR, it can choose to treat the mappings differently. For example (maybe this is implementation specific) the cache-TTL assigned to the mapping received in an NMR may be in the order of minutes, vs. a mapping from a positive MR having a TTL in the order of hours..

> I would not call these negative map-replies though. By definition, from the spec, a negative map-reply is a map-reply with an RLOC-count of 0. 

What I am after is a map reply with the characteristics of an NMR (short TTL, dynamically calculated covering prefix for non-EID destination), but an RLOC-count > 0. If there is a way to encode this with a Positive MR, then we are covered. 

> What many implemenationsn do is when they get a map-reply with an RLOC set of 0, they then decide, via configuration to encapsulate to a list of xTRs. Those xTRs are PETRs (by definition of the imp…

We are trying to avoid the “decide, via configuration, to encapsulate to a list of xTRs”, but still have the ITR give the map-cache a short TTL. 

> It could be useful to write up a very short draft indicating a “dynamic use-case for PETRs”. But check the Interworking RFC to make sure we didn’t cover this, in some form (even brief) in that spec.

I can do that if it helps. It would be very very brief.

-v

---

From: Dino Farinacci <[email-masked]>
Date: Tue, 22 Aug 2017 12:18:13 -0700

> Correct, what is of interest is to have some sense of the likelihood of the mapping received changing and allow the ITR to check again. We are looking at the NMR as one way to indicate back to the ITR the nature 

Sounds like one way is using draft-rodrigueznatal-lisp-pubsub-00. Then the ITR doesn’t have to poll.

> of the mapping. Because the ITR can differentiate clearly between an NMR and a Positive MR, it can choose 

I am not convinced it needs to treat the mappings differently. You probably want the logic simple in the ITRs. That is, lookup a destination in the map-cache and encapsulate (and nothting more). 

> to treat the mappings differently. For example (maybe this is implementation specific) the cache-TTL assigned to the mapping received in an NMR may be in the order of minutes, vs. a mapping from a positive MR having a TTL in the order of hours..

That is something that the replier can control. Maybe you have a third-party that ligs non-EIDs, and when the length of the negative prefix changes, then a new mapping is registered, or you change the RLOC set of the existing mapping. In either case, pubsub will cause a map-server to Map-Notify the ITRs that are interested.

> What I am after is a map reply with the characteristics of an NMR (short TTL, dynamically calculated covering prefix for non-EID destination), but an RLOC-count > 0. If there is a way to encode thi…

ODL  ;-) Like I referneced above.

> We are trying to avoid the “decide, via configuration, to encapsulate to a list of xTRs”, but still have the ITR give the map-cache a short TTL. 

Completely understand. A good goal to go after.

Dino

---

From: Dino Farinacci <[email-masked]>
Date: Tue, 22 Aug 2017 12:26:07 -0700

> If I can continue to achieve those without manually configuring the PETR RLOCs at the ITRs, we have what we need. But I didn’t see a way to do this in the framework of the current spec.

You know I solved this problem in another way. By using a default mapping entry. Here is the idea (and what I implemented):

(1) You have something register 0.0.0.0/0 and 0::0/0 with a large set of PETRs as RLOCs.
(2) Those PETRs also run LISP-NAT according to the Interworking RFC.
(3) ITRs load-split traffic to non-EIDs across the large cluster of PETRs.
(4) The PETRs, after decapsulation, translate the source EID to its RLOC per Intewroking RFC.
(5) Returned packets to the EID, come to the PETR which the ITR chose (which is also a PITR). 
(6) THERE IS NO BGP route injection, so there is no participation required by the underlay.
(7) There is path symmetry (for good or bad).

You don’t need negative prefix calculation here because anything more specific is either a LISP site or the default mapping. 

I have this running in a AWS VM, if anyone wants to try it out.

Something to think about,
Dino