[Isis-wg] Clarification needed on domain-wide prefix distribution

Henk Smit hsmit@cisco.com
Fri, 1 Oct 1999 17:29:52 +0200 (MET DST)


> Folks,
> 	Here are some issues related to domain-wide prefix
> distribution draft and TE draft I would like clarification on.
> 
> I did like to clarify the preference order among different types of
> routes for inter-operability purpose. Here is one possible way to do
> it which actually is enforced implicitly by both the drafts.

  I'm one of the authors of both drafts.
 I was planning on adjusting draft-ietf-isis-domain-wide-01.txt, but
 unfortunately I haven't found the time to do it yet.

> Here is a list of possible route types (assuming external routes with
> internal metric type are the only ones supported).

  Why do you assume this ?
 RFC1195 specifies external routes with external metric type.
 Personally I don't think that is a very useful feature.
 As many of you know, our cisco IS-IS implementation never looked
 at the I/E bit. During the last several years, no customer has
 ever asked us to fix this. So I always assumed the I/E bit has
 limited use in real networks.

  Unfortunately (for me) one of our customers pushed recently to
 add a knob to recognize the I/E bit. For interoperability reasons.
 I am not too familiar with other IS-IS implementation, but I have
 been told that others either do recognize the I/E bit, or have
 knob to choose between recognizing and ignoring the I/E bit.

> 1) L1 intra-area
> 2) L1 external (imported from other protocols)

  So I think we must split this one in two.

> 3) L1 -> L2 inter-area (L2 intra-area leaked into L1)

  Guess this is a typo ?
 You mean (L1 intra-area leaked into L2) ?

> 4) L1 -> L2 external (L1 external leaked into L2).

  Yes, you could see this one as different from 3).
 But because RFC1195 does not specify L1 externals, RFC1195 does
 not specify whether L1 externals should be advertised into L2 as
 TLV128 or TLV130.
  FYI our cisco IOS advertises L1 externals into L2 as TLV128.

  I am sorry if someone does not like me mentioning how our cisco IOS
 does certain things that are not fully specified in rfc1195.
 But the goal of draft-ietf-isis-domain-wide-01.txt is to do something
 that is backwards compatible with the current installed base. So I
 think it is sometimes useful to describe current IOS behaviour.


> 5) L2 intra-area
> 6) L2 external 

  Again, I think we must split this one in two.

> 7) L2 -> L1 inter-area (L2 intra-area leaked into L1)
> 8) L2 -> L1 external (L2 external leaaked into L1)
> 
> There is no way to distinguish between 7) and 8) in the domain-wide
> draft.

  Agreed.

> From TE draft one can't differentiate between 1) & 2),

  Agreed.
 Note that rfc1195 says that there should be no difference in preference
 between IP prefixes advertised in TLV128 and TLV130. Our implementation
 does not even store the difference in the RIB. So Tony Li's first idea
 was that if there is no difference, why maintain it in the new draft ?
 I agree with him.

> nor between 3), 4), 5) & 6), nor between 7) and 8).

  Agreed.

> external routes.

  Can't parse this sentence. ;-)

> Now if one notes rfc 1195, it recognizes a subset of the above
> route types and treats them in the following order of 
> decreasing preference :
> 
> 1)
> 3) == 5) == 6)
> 9) L2 external routes with external metric type

  Agreed.
 I see you added a 9th route type.

> Note that it treats L2 intra-area and L1->l2 inter-area and L2 external
> routes with internal metric type equivalently, i.e. they have the same
> preference and the lower metric wins.

  Agreed.

> If one follows the same philosophy, i.e. treating external routes with
> internal metric type learnt in an area same as intra-area route, and
> by the virtue of both the drafts we are forced with the following
> order of decreasing preference.
> 
> 
> 1) == 2)
> 3) == 4) == 5) == 6) == 7) == 8) 

  I don't agree here.
 I think L2->L1 inter-area routes should have the lowest preference.
 That means:

   1) == 2)
   3) == 4) == 5) == 6)
   7) == 8) 


> This said, I want the WG to consider the following :
> 
> We still want the external routes to be distinguishable so as
> to allow filtering capcabilities when leaking routes from L2 to L1.
> So it would be be nice if the TE draft could be updated to either
> reserve a bit or add a subtlv to allow for this distinction.

  We thought about that.
 Tony came up with the nice idea that the prefix lenght only needs
 6 bits, so we had two bits to play with.
 Having the up/down bit is clearly very useful.
 Now what to do with the second bit ?
 We thought about using it for either
 a) Internal/external route-type bit (like TLV128 vs TLV130)
 b) Internal/external metric-type bit (like the old I/E bit)
 c) as a flag to indicate the existence of sub-TLVs

 a) is specified in rfc1195, but not used. so why waste the bit on this ?
 b) is specified and used in rfc1195. but in real life nobody uses it.
    so why waste the bit on this one ?
 c) using the prefix notation from BGP in ISIS gives us a win in the
    number of bytes used per IP prefix. In rfc1195 we use 12 bytes per
    prefix. 256 fragments * 1492 - a little / 12 bytes per prefix
    means that the maximum number of IP routes advertised by a single
    router is something like 30K prefixes. With the BGP notation it
    would be something like 48K prefixes. Always including the sub-TLV
    byte would bring this down to 42K. Tony Li liked to keep the number
    of bytes per prefix low. Because a) and b) didn't make much sense\
    in our opinion I agree with him.

> Also I wonder if there is any reason for not considering reserved bit
> (bit 8) of the default metric in the IP reachabilty TLV in rfc1195 for
> the purpose of a downbit in the domain-wide prefix distribution
> draft. This would have left things cleaner.

  We thought about that.
 One of the main goals of draft-ietf-isis-domain-wide-01.txt is to
 be backwards compatible with current implementations running on
 L1-only routers. The "reserved bit" must not be set on transmision,
 and should be ignored on reception. But we feared that not all
 implementations could deal with this bit being set.

  Another reason is this:
 suppose you have a L2 prefix P, advertised by router A. Then two
 L1L2 routers B and C will leak it down into L1. Another L1-only
 router D will pick it up.
 P is advertised as external metric 5.
 The path-cost between A and B is 10. 
 The path-cost between A and C is 20.
 Suppose you could advertise the metric-type into the inter-area route.
 How are B and C going to advertise this into their L1 LSPs ?
 With the I/E bit set, and metric 5 ? Now D will not be able to see
 the real cost towards A.

  The reason we introduced L2->L1 interarea routes is so that L1-only
 routers know more about the cost of the L2 path. When external metrics
 are involved, the cost of the L2 path becomes less important. Thus
 L2->L1 inter-area routes become less important. So why even leak them ?

  Yes, we could change draft-ietf-isis-domain-wide-01.txt to use bit 8,
 in stead of the I/E bit. If there are others on this list who also like
 to do this, let us know.

> Also it would be nice to have external routes with external metric
> types. One can imagine the following additional types of routes
> 
> 9) L2 external with external metric type (rfc1195 supports this).

  Agreed.

> 10) L2 -> L1 external with ext metric type

  Yes, this could be added.
 RFC1195 does not specify if a L1 external should be advertised into L2
 in TLV128 or TLV130. Yes, it would be useful to maintain this distinction
 between L1 and L2. Allas, unfortunately we can't maintain this distinction
 when doing L2 -> L1, as L2->L1 interara is always advertised into TLV128.

  Actually now that I think about it once more, this is a perfect reason
 to switch to your proposal to use bit 8 in stead of the I/E bit. If
 we use bit 8, we can do L2->L1 interarea routes in TLV128 and TLV130.

> 11) L1 external with external metric type
> 12) L1 -> L2 external with ext metric type
> 
> 9) and 11) could still be supported with the existing domain wide 
> prefix dist draft without any change. It would be nice if TE
> draft could add capability for such a distinction.
> 
> 10) and 12) cant be supported without loss of knowledge of the
> distance to the exit router which originated the route as we do not
> keep any metric in the IP prefix TLV which preserves the distance from
> the exit router who originated the route, to the guy who's leaking the
> route across levels.  OSPF deals with that in one fashion. We could
> deal with it by introducing a subtlv which preserves this knowledge.

  Personally I don't like the idea of putting stuff in sub-TLVs that
 influences the basic SPF.

> Anyway 10), 11) , 12) need not be supported till a need for them
> is known. 9) is easy to support and in fact thats the only 
> thing rfc1195 supports. 

  Yes, 9) is easy to support if you use the trick from 10589.
 (multiply the external metric by 1024, and add the path cost).
 However it becomes a little more tricky when you mix TLV128/TLV130
 with TLV135.

> Also it would make more sense to have the following order of 
> decreasing preference of routes from implementation perspective.
> One might further specify tie-breaking rules for routes with
> same preference but different types.
> 
> 1) L1-intra
> 2) L2-intra, L1->L2 inter-area, L2->L1 inter-area
> 3) L1-ext, L2-ext, L1->L2 ext, L2->L1 ext (all with internal metric
>    type).
> 4) all external routes with external metric types.
>
> This is incompatible with rfc1195 by not treating L2-intra and
> L2-external routes with internal metric type equivalently.  But all
> the deployed base I know of happens to violate rfc1195 on this issue.

  I think L2->L1 should be the worst preference.
 Internal and external route-types should have the same preference.
 So I think the correct order would be:

 1) L1 intra-area, L1 external with internal metric
 2) L1 external with external metric
 3) L2 intra-area, L2 external with internal metric, L1->L2 inter-area
 4) L2 external with external metric
 5) L2->L1 inter-area

  This preference can be used on L1L2 routers, and then the L1-only
 routers with current implementations do not need to be upgraded.
 As this was one of the goals of draft-ietf-isis-domain-wide-01.txt,
 therefor I prefer the second scheme.

  I can't remember why Tony Li decided to use the I/E bit, and not bit 8.
 Tony, can you refresh our memory ?

      Henk.